re PR rtl-optimization/64316 (ICE in simplify_const_unary_operation after r218503)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
2
3         PR rtl-optimization/64316
4         * simplify-rtx.c (simplify_relational_operation_1): For
5         (eq/ne (and x y) x) and (eq/ne (and x y) y) optimizations use
6         CONST0_RTX instead of const0_rtx.
7
8 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
9
10         PR target/62642
11         * ira.c (rtx_moveable_p): Prevent UNSPEC_VOLATILE moves.
12
13 2014-12-15  Vladimir Makarov  <vmakarov@redhat.com>
14
15         * ira-int.h (ira_prohibited_class_mode_regs): Remove.
16         (struct target_ira_int): Move x_ira_prohibited_class_mode_regs to
17         ...
18         * ira.h (struct target_ira): ... here.
19         (ira_prohibited_class_mode_regs): Define.
20         * lra-constraints.c (process_alt_operands): Add one more condition
21         to refuse alternative when reload pseudo of given class can not
22         hold value of given mode.
23
24 2014-12-15  Richard Biener  <rguenther@suse.de>
25
26         PR tree-optimization/64312
27         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Use
28         vuse_ssa_val as callback to walk_non_aliased_vuses.
29         (vn_reference_lookup): Likewise.
30
31 2014-12-15  Segher Boessenkool  <segher@kernel.crashing.org>
32
33         * gcc/config/rs6000/rs6000.md (*add>mode>3_imm_dot,
34         *add<mode>3_imm_dot2): Change the constraint for the second
35         alternative for operand 1 from "r" to "b".
36
37 2014-12-15  Richard Biener  <rguenther@suse.de>
38
39         * vec.h (vec::safe_grow): Guard against a grow to zero size.
40
41 2014-12-15  Richard Biener  <rguenther@suse.de>
42
43         PR middle-end/64295
44         * match.pd (X / CST -> X * (1 / CST): Use const_binop instead of
45         fold_binary to compute the constant to multiply with.
46
47 2014-12-15  Richard Biener  <rguenther@suse.de>
48
49         PR middle-end/64246
50         * cfgloop.c (mark_loop_for_removal): Make safe against multiple
51         invocations on the same loop.
52
53 2014-12-15  Marek Polacek  <polacek@redhat.com>
54
55         PR middle-end/64292
56         * fold-const.c (negate_expr_p): Add INTEGRAL_TYPE_P check.
57
58 2014-12-15  Renlin Li  <renlin.li@arm.com>
59
60         * config/aarch64/aarch64.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
61         (CTZ_DEFINED_VALUE_AT_ZERO): Update to support more modes.
62
63 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
64
65         PR sanitizer/64265
66         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
67         call on edge from entry block to single succ instead
68         of after labels of single succ of entry block.
69
70 2014-12-15  Richard Biener  <rguenther@suse.de>
71
72         PR tree-optimization/64284
73         * tree-ssa-threadupdate.c (duplicate_seme_region): Mark
74         the loop for removal if we copied the loop header.
75
76 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
77
78         * ipa.c (process_references): Fix conditoinal on flag_optimize
79
80 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
81
82         PR ipa/61558
83         * symtab.c (symbol_table::insert_to_assembler_name_hash
84         symbol_table::unlink_from_assembler_name_hash): Do not ICE when 
85         DECL_ASSEMBLER_NAME is NULL.
86
87 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
88
89         * cgraphunit.c (analyze_functions): Always analyze targets of aliases.
90
91 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
92
93         PR lto/64043
94         * tree.c (virtual_method_call_p): Return false when OTR type has
95         no BINFO.
96
97 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
98
99         * cgraphunit.c (analyze_functions): Do not analyze extern inline
100         funtions when not optimizing; skip comdat locals.
101
102 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
103
104         PR rtl-optimization/64037
105         * combine.c (setup_incoming_promotions): Pass the argument
106         before any promotions happen to promote_function_mode.
107
108 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
109
110         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment.
111
112 2014-12-12  Vladimir Makarov  <vmakarov@redhat.com>
113
114         PR target/64110
115         * lra-constraints.c (process_alt_operands): Refuse alternative
116         when reload pseudo of given class can not hold value of given
117         mode.
118
119 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
120
121         * gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check
122         intermediate walk_tree results for for_incr.
123         <GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too.
124         <GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing.
125
126 2014-12-12  Richard Sandiford  <richard.sandiford@arm.com>
127
128         PR middle-end/64182
129         * wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied
130         cases.
131         * double-int.c (div_and_round_double): Fix handling of unsigned
132         cases.  Use same rounding approach as wide-int.h.
133
134 2014-12-12  Marek Polacek  <polacek@redhat.com>
135
136         PR middle-end/64274
137         * fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.
138
139 2014-12-12  Jakub Jelinek  <jakub@redhat.com>
140
141         PR tree-optimization/64269
142         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
143         len2 or diff are too large.
144
145 2014-12-12  Richard Biener  <rguenther@suse.de>
146
147         PR middle-end/64280
148         * tree-cfg.c (replace_uses_by): Guard assert properly.
149
150 2014-12-12  Anthony Green  <green@moxielogic.com>
151
152         * config/moxie/moxie.md: Add use of zex instruction.
153
154 2014-12-12  Marc Glisse  <marc.glisse@inria.fr>
155
156         * real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
157         HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded
158         declarations.
159         * real.c (HONOR_NANS): Fix indentation.
160         (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
161         HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads.
162         * builtins.c (fold_builtin_cproj, fold_builtin_signbit,
163         fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument
164         of HONOR_*.
165         * fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc):
166         Likewise.
167         * gimple-fold.c (gimple_val_nonnegative_real_p): Likewise.
168         * ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise.
169         * omp-low.c (omp_reduction_init): Likewise.
170         * rtlanal.c (may_trap_p_1): Likewise.
171         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
172         * tree-ssa-dom.c (record_equality, record_edge_info): Likewise.
173         * tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise.
174         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
175         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
176
177 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
178
179         * ipa-inline.c (ipa_inline): Fix condition on when
180         TODO_remove_unreachable_functions is needed.
181
182 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
183
184         * ipa-devirt.c (possible_polymorphic_call_targets): Return early
185         if otr_type has no BINFO.
186
187 2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
188
189         PR rtl-optimization/63917
190         * ifcvt.c (cc_in_cond): New function.
191         (end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
192         (noce_process_if_block, check_cond_move_block): Check CC references.
193
194 2014-12-11  Andrew Pinski  <apinski@cavium.com>
195
196         * config/aarch64/aarch64-protos.h (tune_params): Add align field.
197         * config/aarch64/aarch64.c (generic_tunings): Specify align.
198         (cortexa53_tunings): Likewise.
199         (cortexa57_tunings): Likewise.
200         (thunderx_tunings): Likewise.
201         (aarch64_override_options): Set align_loops, align_jumps,
202         align_functions based on what the tuning struct.
203
204 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
205
206         * doc/md.texi (Insn Lengths): Fix description of (pc).
207
208 2014-12-11  Jan Hubicka  <hubicka@ucw.cz>
209
210         PR ipa/61324
211         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
212         * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
213         * cgraphunit.c (symbol_table::process_new_functions): Add
214         IPA_SSA_AFTER_INLINING.
215         (ipa_passes): Update call of remove_unreachable_nodes.
216         (symbol_table::compile): Remove call of remove_unreachable_nodes.
217         * ipa-inline.c (inline_small_functions): Do not ICE with
218         -flto-partition=none
219         (ipa_inline): Update symtab->state; fix formatting
220         update call of remove_unreachable_nodes.
221         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
222         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
223         * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
224         (remove_unreachable_nodes): Update.
225         * ipa.c (process_references): Keep external references only
226         when optimizing.
227         (walk_polymorphic_call_targets): Keep possible polymorphic call
228         target only when devirtualizing.
229         (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
230         parameter.
231         (ipa_single_use): Update comment.
232         * ipa-pure-const.c (cdtor_p): New function.
233         (propagate_pure_const): Track if some cdtor was turned pure/const.
234         (execute): Return TODO_remove_functions if needed.
235         * ipa-comdats.c (ipa_comdats): Update comment.
236
237 2014-12-11  Aldy Hernandez  <aldyh@redhat.com>
238
239         * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
240         parameter.
241         (gen_inlined_subroutine_die): Same.
242         (gen_block_die): Same.
243         (decls_for_scope): Same.
244
245 2014-12-11  Renlin Li  <renlin.li@arm.com>
246
247         * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
248         AARCH64_FL_FOR_ARCH8.
249         * config/aarch64/aarch64.c (all_cores): Use FLAGS from
250         aarch64-cores.def file only.
251
252 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
253
254         PR fortran/44054
255         * diagnostic.c (diagnostic_action_after_output): Make it extern.
256         Take diagnostic_t argument instead of diagnostic_info. Count also
257         DK_WERROR towards max_errors.
258         (diagnostic_report_diagnostic): Update call according to the above.
259         (error_recursion): Likewise.
260         * diagnostic.h (diagnostic_action_after_output): Declare.
261         * pretty-print.c (pp_formatted_text_data): Delete.
262         (pp_append_r): Call output_buffer_append_r.
263         (pp_formatted_text): Call output_buffer_formatted_text.
264         (pp_last_position_in_text): Call output_buffer_last_position_in_text.
265         * pretty-print.h (output_buffer_formatted_text): New.
266         (output_buffer_append_r): New.
267         (output_buffer_last_position_in_text): New.
268
269 2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com
270
271         * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
272         message to say +no only when removing extension.
273
274 2014-12-11  Andrew MacLeod  <amacleod@redhat.com>
275
276         * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
277         for generator file.  Add comment indicating it is a generated file.
278         * config/tilepro/mul-tables.c: Update generated file.
279         * config/tilegx/mul-tables.c: Likewise.
280
281 2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
282
283         * combine.c (try_combine): Do not allow combining a PARALLEL I2
284         with a register move I3 if that I2 is an asm.
285
286 2014-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
287
288         * config/arm/arm_neon.h (vrndqn_f32): Rename to...
289         (vrndnq_f32): ... this.
290         (vrndqa_f32): Rename to...
291         (vrndaq_f32): ... this.
292         (vrndqp_f32): Rename to...
293         (vrndpq_f32): ... this.
294         (vrndqm_f32): Rename to...
295         (vrndmq_f32): ... this.
296         (vrndx_f32): New intrinsic.
297         (vrndxq_f32): Likewise.
298
299 2014-12-11  Marek Polacek  <polacek@redhat.com>
300
301         * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
302         (extract_muldiv_1): Likewise.
303         (maybe_canonicalize_comparison_1): Likewise.
304         (fold_comparison): Likewise.
305         (tree_binary_nonnegative_warnv_p): Likewise.
306         (tree_binary_nonzero_warnv_p): Likewise.
307         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
308         * tree-scalar-evolution.c (simple_iv): Likewise.
309         (scev_const_prop): Likewise.
310         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
311         * tree-vect-generic.c (expand_vector_operation): Likewise.
312         * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
313         (ANY_INTEGRAL_TYPE_P): Define.
314         (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
315         Add ANY_INTEGRAL_TYPE_CHECK.
316         (any_integral_type_check): New function.
317
318 2014-12-11  Tobias Burnus  <burnus@net-b.de>
319             Manuel López-Ibáñez  <manu@gcc.gnu.org>
320
321         * error.c (gfc_get_terminal_width): Renamed from
322         get_terminal_width and use same-named common function.
323         (gfc_error_init_1): Update call.
324
325 2014-12-10  Aldy Hernandez  <aldyh@redhat.com>
326
327         * gdbhooks.py (class DWDieRefPrinter): New class.
328         (build_pretty_printer): Register dw_die_ref's.
329
330 2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>
331
332         * config.gcc: Support "knl".
333         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
334         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
335         PROCESSOR_KNL.
336         * config/i386/i386.c (m_KNL): Define.
337         (processor_target_table): Add "knl".
338         (PTA_KNL): Define.
339         (ix86_issue_rate): Add PROCESSOR_KNL.
340         (ix86_adjust_cost): Ditto.
341         (ia32_multipass_dfa_lookahead): Ditto.
342         (get_builtin_code_for_version): Handle "knl".
343         (fold_builtin_cpu): Ditto.
344         * config/i386/i386.h (TARGET_KNL): Define.
345         (processor_type): Add PROCESSOR_KNL.
346         * config/i386/i386.md (attr "cpu"): Add knl.
347         * config/i386/x86-tune.def: Add m_KNL.
348
349 2014-12-10  Jan Hubicka  <hubicka@ucw.cz>
350
351         * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
352         * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
353         when it is not streamed to the given ltrans.
354         (compute_ltrans_boundary): Make code adding all polymorphic
355         call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
356         * common.opt (fdevirtualize-at-ltrans): New flag.
357
358 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
359
360         * varpool.c (varpool_node::get_create): Force output of vars with
361         "omp declare target" attribute.
362
363 2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
364
365         * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
366         * real.c: Include rtl.h and options.h.
367         (HONOR_NANS): Define three overloads.
368         * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
369         Simplify argument of HONOR_NANS.
370         * fold-const.c (combine_comparisons, fold_truth_not_expr,
371         fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
372         fold_comparison, fold_binary_loc): Likewise.
373         * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
374         * ipa-inline-analysis.c (add_clause,
375         set_cond_stmt_execution_predicate): Likewise.
376         * match.pd: Likewise.
377         * rtlanal.c (may_trap_p_1): Likewise.
378         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
379         * tree-if-conv.c (parse_predicate): Likewise.
380         * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
381         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
382         * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
383         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
384         * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
385
386 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
387
388         PR tree-optimization/62021
389         * omp-low.c (simd_clone_adjust_return_type): Use
390         vector of pointer_sized_int_node types instead vector of pointer
391         types.
392         (simd_clone_adjust_argument_types): Likewise.
393
394 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
395             Evgeny Stupachenko  <evstupac@gmail.com>
396
397         PR target/64252
398         * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
399         set dcopy.target to a new pseudo.
400
401 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
402
403         * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
404
405 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
406
407         * config/rs6000/40x.md (ppc403-compare): Remove "compare".
408         config/rs6000/440.md (ppc440-compare): Remove "compare".
409         config/rs6000/476.md (ppc476-compare): Remove "compare".
410         config/rs6000/601.md (ppc601-compare): Remove "compare".
411         config/rs6000/603.md (ppc603-compare): Remove "compare".
412         config/rs6000/6xx.md (ppc604-compare): Remove "compare".
413         config/rs6000/7450.md (ppc7450-compare): Remove "compare".
414         config/rs6000/7xx.md (ppc750-compare): Remove "compare".
415         config/rs6000/8540.md (ppc8540_su): Remove "compare".
416         config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
417         "compare".
418         config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
419         config/rs6000/e500mc.md (e500mc_su): Remove "compare".
420         config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
421         config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
422         config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
423         config/rs6000/mpc.md (mpccore-compare): Remove "compare".
424         config/rs6000/power4.md (power4-compare): Remove "compare".
425         config/rs6000/power5.md (power5-compare): Remove "compare".
426         config/rs6000/power6.md (power6-compare): Remove "compare".
427         config/rs6000/power7.md (power7-compare): Remove "compare".
428         config/rs6000/power8.md (power8-compare): Remove "compare".  Update
429         comment.
430         config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
431         (three times).
432         (is_cracked_insn): Remove TYPE_COMPARE case.
433         (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
434         config/rs6000/rs6000.md (type): Remove "compare".
435         (cell_micro): Remove "compare".
436         config/rs6000/rs64.md (rs64a-compare): Remove "compare".
437
438 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
439
440         * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
441         Change type from "compare" to "two".
442
443 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
444
445         PR target/64180
446         * config/rs6000/predicates.md (unsigned_comparison_operator): New.
447         (signed_comparison_operator): New.
448         * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
449         * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
450         (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
451         * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
452         add to addc,adde directly, if !TARGET_POWERPC64.
453         (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
454         if !TARGET_POWERPC64.
455         (neg<mode>2): Delete expander.
456         (*neg<mode>2): Rename to "neg<mode>2".
457         (addti3, subti3): Delete.
458         (addti3, subti3): New expanders.
459         (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
460         (cstore<mode>4_unsigned): New expander.
461         (cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
462         (cstore<mode>4 for FP): Remove superfluous quotes.
463         (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
464         *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
465         *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
466         compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
467         splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
468         *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
469         *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
470         *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
471         *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
472         *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
473         *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
474         *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
475         Delete.
476         (eq<mode>3, ne<mode>3): New.
477         (*neg_eq_<mode>, *neg_ne_<mode>): New.
478         (*plus_eq_<mode>, *plus_ne_<mode>): New.
479         (*minus_eq_<mode>, *minus_ne_<mode>): New.
480
481 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
482
483         PR target/64180
484         * config/rs6000/predicates.md (adde_operand): New.
485         * config/rs6000/rs6000.md (add<mode>3_carry): New.
486         (*add<mode>3_imm_carry_pos): New.
487         (*add<mode>3_imm_carry_0): New.
488         (*add<mode>3_imm_carry_m1): New.
489         (*add<mode>3_imm_carry_neg): New.
490         (add<mode>3_carry_in): New.
491         (*add<mode>3_carry_in_internal): New.
492         (add<mode>3_carry_in_0): New.
493         (add<mode>3_carry_in_m1): New.
494         (subf<mode>3_carry): New.
495         (*subf<mode>3_imm_carry_0): New.
496         (*subf<mode>3_imm_carry_m1): New.
497         (subf<mode>3_carry_in): New.
498         (*subf<mode>3_carry_in_internal): New.
499         (subf<mode>3_carry_in_0): New.
500         (subf<mode>3_carry_in_m1): New.
501         (subf<mode>3_carry_in_xx): New.
502
503 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
504
505         PR target/64180
506         * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
507         "*add<mode>3".
508         (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
509         Delete.
510         (*add<mode>3_dot, *add<mode>3_dot2): New.
511         (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
512
513 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
514
515         PR target/64180
516         * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
517         alternative.
518
519 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
520
521         PR target/64180
522         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
523         *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
524         to "b".  Increase length.
525         (splitters for these): Split to cmp+addi instead of addic.
526
527 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
528
529         PR target/64180
530         * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
531         (macho_low_di): Ditto.
532         * config/rs6000/rs6000.md (*largetoc_low): Ditto.
533         (tocref<mode>): Ditto.
534         (elf_low): Ditto.
535         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
536         (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
537         (mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
538         (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
539
540 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
541
542         PR target/64180
543         * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
544         (rs6000_md_asm_clobbers): New function.
545
546 2014-12-10  Felix Yang  <felix.yang@huawei.com>
547
548         * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
549         declaration of removed function.
550
551 2014-12-10  Richard Biener  <rguenther@suse.de>
552
553          * tree-ssa-loop-im.c
554          (move_computations_dom_walker::before_dom_children): Clear
555          SSA_NAME_RANGE_INFO on moved stmts.
556
557 2014-12-10  Martin Liska  <mliska@suse.cz>
558
559         * sreal.c (sreal::shift_right): New implementation
560         for int64_t as m_sig.
561         (sreal::normalize): Likewise.
562         (sreal::to_int): Likewise.
563         (sreal::operator+): Likewise.
564         (sreal::operator-): Likewise.
565         (sreal::operator*): Likewise.
566         (sreal::operator/): Likewise.
567         (sreal::signedless_minus): Removed.
568         (sreal::signedless_plus): Removed.
569         (sreal::debug): const keyword is added.
570         * sreal.h (sreal::operator<): New implementation
571         for int64_t as m_sig.
572         * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
573         with sreal::min ().
574
575 2014-12-10  Martin Liska  <mliska@suse.cz>
576
577         * gimple-iterator.h (gsi_start_bb_nondebug): New function.
578         * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
579         replaces loop based on precomputed number of non-debug statements.
580
581 2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
582
583         * config/linux.c (linux_has_ifunc_p): Remove.
584         * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
585
586 2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>
587
588         * contrib/check_GNU_style.sh (col): Got rid of cut operation
589         from the pipe chain and instead added cut inside awk command.
590
591 2014-12-10  Richard Biener  <rguenther@suse.de>
592
593         PR tree-optimization/64191
594         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
595         mark clobbers as necessary.
596         (eliminate_unnecessary_stmts): Keep clobbers live if we can.
597
598 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
599
600         PR target/63594
601         * config/i386/sse.md (vec_dupv4sf): Move after
602         <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
603         (*vec_dupv4si, *vec_dupv2di): Likewise.
604         (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
605         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
606         pattern.
607         (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
608         TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
609         is set too).
610         * config/i386/i386.c (enum ix86_builtins): Remove
611         IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
612         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
613         IX86_BUILTIN_PBROADCASTQ512_MEM.
614         (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
615         __builtin_ia32_pbroadcastq256_gpr_mask and
616         __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
617         regardless of OPTION_MASK_ISA_64BIT.
618         * config/i386/avx512fintrin.h (_mm512_set1_epi64,
619         _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
620         builtins regardless of whether TARGET_64BIT is defined or not.
621         * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
622         _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
623         Likewise.
624
625         * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
626         Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
627
628 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
629
630         PR target/53513
631         * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
632
633 2014-12-10  Marek Polacek  <polacek@redhat.com>
634
635         PR tree-optimization/61686
636         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
637         p->high.
638
639 2014-12-10  Kito Cheng  <kito@0xlab.org>
640
641         * doc/libgcc.texi: Update text to match implementation in
642         libgcc/libgcc2.c
643
644 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>
645
646         * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
647         gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
648         doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
649         param_is.
650
651 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
652
653         PR target/53513
654         * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
655         Document it.
656
657 2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
658
659         PR middle-end/64225
660         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
661         for BUILT_IN_POW when flag_errno_math is present.
662
663 2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>
664
665         * lto-wrapper.c (compile_offload_image): Start processing in_argv
666         from 0 instead of 1.
667         (run_gcc): Put offload objects into offload_argv, put LTO objects and
668         possible preceding arguments into lto_argv.
669         Pass offload_argv to compile_images_for_offload_targets instead of argv.
670         Use lto_argv for LTO recompilation instead of argv.
671
672 2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
673
674         * doc/install.texi: Describe --with-aix-soname option.
675
676 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
677
678         * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
679
680 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
681
682         PR target/63870
683         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
684         Delete.
685         * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
686         Delete.
687         * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
688         vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
689         (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
690         __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
691         __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
692         __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
693         __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
694         __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
695         __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
696         __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
697         __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
698         __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
699         __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
700         __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
701         (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
702         'q2' argument.
703         (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
704         __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
705         __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
706         __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
707         __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
708         __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
709         __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
710         __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
711         __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
712         __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
713         __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
714         __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
715         to __aarch64_vdup_lane_any.
716         (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
717         vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
718         vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
719         vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
720         vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
721         vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
722         vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
723         vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
724         vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
725         vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
726         vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
727         vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
728         vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
729         vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
730         vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
731         vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
732         vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
733         vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
734         vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
735         vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
736         vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
737         vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
738         vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
739         vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
740         vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
741         vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
742         vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
743         vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
744         vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
745         vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
746         __aarch64_vget_lane_any.
747
748 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
749
750         PR target/63870
751         * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
752         message for SIMD_ARG_CONSTANT.
753
754 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
755
756         PR target/63870
757         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
758         TYPES_BINOPV): Delete.
759         (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
760         AARCH64_SIMD_PATTERN_START.
761         (aarch64_init_simd_builtins): Register
762         __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
763         (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
764         AARCH64_SIMD_PATTERN_START.
765
766         * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
767         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
768
769         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
770         (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
771         __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
772         vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
773         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
774         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
775         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
776         vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
777
778 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
779
780         PR target/63950
781         * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
782         New.
783         (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
784         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
785         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
786         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
787         number of lanes.
788         (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
789         vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
790         vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
791         __aarch64_vset_lane_any rather than vset_lane_xxx.
792
793 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
794
795         * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
796         earlyclobbering result operand.
797
798         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
799         Remove final qualifier_internal.
800         (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
801
802 2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
803
804         * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
805         tuning parameters.
806         * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
807         Define.
808         (aarch64_reassociation_width): New function.
809         (generic_tunings): Add reassociation tuning parameters.
810         (cortexa53_tunings): Likewise.
811         (cortexa57_tunings): Likewise.
812         (thunderx_tunings): Likewise.
813
814 2014-12-09  Andrew Pinski  apinski@cavium.com
815             Kyrylo Tkachov  kyrylo.tkachov@arm.com
816
817         * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
818         (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
819         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
820
821 2014-12-09  David Malcolm  <dmalcolm@redhat.com>
822
823         PR jit/64166
824         * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
825         New function.
826         (gcc::dump_manager::get_dump_file_name): Split out bulk of
827         implementation into a new overloaded variant taking a
828         dump_file_info *.
829         * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
830         New function.
831         (gcc::dump_manager::get_dump_file_name): New overloaded variant of
832         this function, taking a dump_file_info *.
833
834 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
835
836         PR bootstrap/64213
837         Revert:
838         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
839
840         PR rtl-optimization/64037
841         * combine.c (setup_incoming_promotions): Pass the argument
842         before any promotions happen to promote_function_mode.
843
844 2014-12-09  Richard Biener  <rguenther@suse.de>
845
846         PR tree-optimization/64193
847         * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
848         and valueize the VUSE before looking up the def stmt.
849         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
850         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
851         to walk_non_aliased_vuses.
852         (vn_reference_lookup): Likewise.
853         * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
854         callback to walk_non_aliased_vuses.
855
856 2014-12-09  Richard Biener  <rguenther@suse.de>
857
858         PR middle-end/64199
859         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
860
861 2014-12-09  Richard Biener  <rguenther@suse.de>
862
863         PR tree-optimization/64191
864         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
865         not relevant (nor are their uses).
866
867 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
868
869         * lto/lto-partition.c (privatize_symbol_name): Correctly
870         privatize instrumentation clones.
871
872 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
873
874         * lto-cgraph.c (input_cgraph_1): Don't break existing
875         instrumentation clone references.
876         * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
877         instrumented_version references appropriately.
878
879 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
880
881         PR bootstrap/63995
882         * tree-chkp.c (chkp_make_static_bounds): Share bounds var
883         between nodes sharing assembler name.
884
885 2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
886
887         PR target/64204
888         * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
889         constant moves if -mupper-regs-df.
890
891         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
892         0.0L to TFmode.
893         (movtd_64bit_nodm): Likewise.
894         (mov<mode>_32bit, FMOVE128 case): Likewise.
895
896 2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>
897
898         * simplify-rtx.c (simplify_relational_operation_1): Handle
899         simplification identities for BICS patterns.
900
901 2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>
902
903         * config/nvptx/nvptx.c: Convert htabs to hash_table.
904
905 2014-12-08  David Edelsohn  <dje.gcc@gmail.com>
906
907         PR target/64226
908         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
909         [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
910         TARGET_TOC. Always use rs6000_emit_move.
911
912 2014-12-08  Mark Wielaard  <mjw@redhat.com>
913
914         PR debug/60782
915         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
916
917 2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>
918
919         PR target/61692
920         * cfgexpand.c (expand_asm_operands): Count all inline asm params.
921
922 2014-12-08  David Malcolm  <dmalcolm@redhat.com>
923
924         PR jit/63854
925         * cgraph.h (xstrdup_for_dump): New function.
926         * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
927         within fprintf with xstrdup_for_dump.
928         (cgraph_edge::make_speculative): Likewise.
929         (cgraph_edge::resolve_speculation): Likewise.
930         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
931         (cgraph_node::dump): Likewise.
932         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
933         * ipa-cp.c (perhaps_add_new_callers): Likewise.
934         * ipa-inline.c (report_inline_failed_reason): Likewise.
935         (want_early_inline_function_p): Likewise.
936         (edge_badness): Likewise.
937         (update_edge_key): Likewise.
938         (flatten_function): Likewise.
939         (inline_always_inline_functions): Likewise.
940         * ipa-profile.c (ipa_profile): Likewise.
941         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
942         (ipa_make_edge_direct_to_target): Likewise.
943         (remove_described_reference): Likewise.
944         (propagate_controlled_uses): Likewise.
945         * ipa-utils.c (ipa_merge_profiles): Likewise.
946
947 2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
948
949         PR ipa/64049
950         * ipa-polymorphic-call.c
951         (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
952
953 2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>
954
955         * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
956         New define_insn.
957         * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
958         Likewise.
959
960 2014-12-08  Felix Yang  <felix.yang@huawei.com>
961             Haijian Zhang  <z.zhanghaijian@huawei.com>
962             Jiji Jiang  <jiangjiji@huawei.com>
963             Pengfei Sui  <suipengfei@huawei.com>
964
965         * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
966         builtin functions.
967         (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
968         vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
969         (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
970         vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
971         vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
972         vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
973         vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
974         vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
975         vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
976         vrsubhn_high_u64): Likewise.
977         * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
978         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
979         * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
980         * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
981         subhn2, rsubhn2, urecpe): New builtins.
982
983 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
984
985         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
986         * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
987
988 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
989
990         * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
991         (expand_vec_perm_vpermi2_vpshub2): New.
992         (ix86_expand_vec_perm_const_1): Use it.
993         (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
994         * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
995
996 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
997
998         * tree-chkp.c (chkp_build_returned_bound): Don't predict
999         return bounds for strchr calls.
1000
1001 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
1002
1003         * tree-chkp.c (chkp_call_returns_bounds_p): New.
1004         (chkp_build_returned_bound): Use zero bounds as
1005         returned by calls not returning bounds.
1006
1007 2014-12-08  Richard Biener  <rguenther@suse.de>
1008
1009         * builtins.c (fold_builtin_0): Remove unused ignore parameter.
1010         (fold_builtin_1): Likewise.
1011         (fold_builtin_3): Likewise.
1012         (fold_builtin_varargs): Likewise.
1013         (fold_builtin_2): Likewise.  Do not fold stpcpy here.
1014         (fold_builtin_n): Adjust.
1015         (fold_builtin_stpcpy): Move to gimple-fold.c.
1016         (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
1017         (gimple_fold_builtin): Fold stpcpy here.
1018
1019 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
1020
1021         * symtab.c (symtab_node::verify): Check for section attribute before
1022         asserting something isn't in a section and a comdat group.
1023
1024 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
1025
1026         PR target/50751
1027         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
1028
1029 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
1030
1031         * compare-elim.c: Fix head comment.
1032         (conforming_compare): Remove redundant test.
1033         (can_eliminate_compare): New function extracted from...
1034         (before_dom_children): ...here.  Use it, replace direct uses of
1035         flag_non_call_exceptions and tidy up.
1036         (maybe_select_cc_mode): Tidy up.
1037
1038 2014-12-07  Felix Yang  <felix.yang@huawei.com>
1039             Shanyao Chen  <chenshanyao@huawei.com>
1040
1041         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
1042         patterns.
1043         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
1044         builtins.
1045         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
1046         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
1047         vcntq_u8): Rewrite using builtin functions.
1048
1049 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
1050
1051         * symtab.c (symtab_node::equal_address_to): New function.
1052         * cgraph.h (symtab_node::equal_address_to): Declare.
1053         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
1054         * c-family/c-common.c: Refuse weaks for symbols that can not change
1055         visibility.
1056
1057 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
1058
1059         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
1060
1061 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
1062             Sebastian Pop  <s.pop@samsung.com>
1063             Brian Rzycki  <b.rzycki@samsung.com>
1064
1065         PR tree-optimization/54742
1066         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
1067         max-fsm-thread-paths): New.
1068
1069         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
1070         max-fsm-thread-paths): Documented.
1071
1072         * tree-cfg.c (split_edge_bb_loc): Export.
1073         * tree-cfg.h (split_edge_bb_loc): Declared extern.
1074
1075         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
1076         original value of cond when simplification fails.
1077         (fsm_find_thread_path): New.
1078         (fsm_find_control_statement_thread_paths): New.
1079         (thread_through_normal_block): Call find_control_statement_thread_paths.
1080
1081         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
1082         EDGE_FSM_THREAD.
1083         (verify_seme): New.
1084         (duplicate_seme_region): New.
1085         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
1086         calling duplicate_seme_region.
1087
1088         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
1089
1090 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1091
1092         PR target/64200
1093         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1094         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1095
1096 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
1097
1098         PR sanitizer/64170
1099         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
1100         non-NULL, call maybe_get_dominating_check on it even if g is
1101         non-NULL.
1102
1103 2014-12-05  Jeff Law  <law@redhat.com>
1104
1105         * doc/md.texi: Note problems using function calls to determine
1106         insn lengths and point readers to a potential workaround.
1107
1108 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
1109
1110         * combine.c (is_parallel_of_n_reg_sets)
1111         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
1112
1113 2014-12-05  Andrew Pinski  <apinski@cavium.com>
1114
1115         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
1116         than CF10 so 2 is appended on the code.
1117         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
1118         (bswap<mode>2): This so it matches for the optabs.
1119
1120 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1121
1122         * regrename.c (find_best_rename_reg): Rename to ...
1123         (find_rename_reg): This. Also add a parameter to skip tick check.
1124         * regrename.h: Likewise.
1125         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
1126
1127 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1128
1129         PR ipa/64192
1130         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
1131         from bits to bytes after checking they are byte-aligned.
1132
1133 2014-12-05  Renlin Li  <renlin.li@arm.com>
1134
1135         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
1136         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1137         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
1138         IDENT to SCHED.
1139
1140 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
1141
1142         * config/aarch64/aarch64.md (load_pair<mode>): Split to
1143         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
1144         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
1145         from load_pair<mode>.  New alternative to support int/fp
1146         registers in fp/int mode patterns.
1147         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
1148         store_pairsf and store_pairdi.
1149         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
1150         from store_pair<mode>.  New alternative to support int/fp
1151         registers in fp/int mode patterns.
1152         (*load_pair_extendsidi2_aarch64): New pattern.
1153         (*load_pair_zero_extendsidi2_aarch64): New pattern.
1154         (aarch64-ldpstp.md): Include.
1155         * config/aarch64/aarch64-ldpstp.md: New file.
1156         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
1157         New.
1158         (extract_base_offset_in_addr): New.
1159         (aarch64_operands_ok_for_ldpstp): New.
1160         (aarch64_operands_adjust_ok_for_ldpstp): New.
1161         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
1162         (TARGET_SCHED_FUSION_PRIORITY): New hook.
1163         (fusion_load_store): New functon.
1164         (extract_base_offset_in_addr): New function.
1165         (aarch64_gen_adjusted_ldpstp): New function.
1166         (aarch64_sched_fusion_priority): New function.
1167         (aarch64_operands_ok_for_ldpstp): New function.
1168         (aarch64_operands_adjust_ok_for_ldpstp): New function.
1169
1170 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1171
1172         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
1173         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
1174         DWARF_REG_TO_UNWIND_COLUMN.
1175
1176 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1177
1178         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
1179         one particular reg for expand_builtin_init_dwarf_reg_sizes.
1180         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
1181         account for dwarf register spans.
1182
1183 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1184
1185         PR target/64003
1186         * config/i386/i386.md (*jcc_1_bnd): New.
1187         (*jcc_2_bnd): New.
1188         (jump_bnd): New.
1189         (*jcc_1): Remove bnd prefix.
1190         (*jcc_2): Likewise.
1191         (jump): Likewise.
1192
1193 2014-12-05  Renlin Li  <renlin.li@arm.com>
1194
1195         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1196         selected_tune.
1197         (aarch64_override_options): Use selected_cpu's tuning.
1198
1199 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
1200
1201         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1202         alignment to section name. Increase default alignment to word.
1203
1204 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1205
1206         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
1207         (cgraph_edge): New method redirect_callee_duplicating_thunks.
1208         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
1209         created thunks.
1210         (redirect_edge_duplicating_thunks): Turned into edge method
1211         redirect_callee_duplicating_thunks.
1212         (cgraph_node::expand_all_artificial_thunks): New method.
1213         (create_clone): Call expand_all_artificial_thunks.
1214         * ipa-cp.c (perhaps_add_new_callers): Call
1215         redirect_callee_duplicating_thunks instead of redirect_callee.
1216         Also call expand_all_artificial_thunks.
1217
1218 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1219
1220         PR target/64056
1221         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.
1222
1223 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1224
1225         * diagnostic.h (diagnostic_expand_location): New inline function.
1226         * diagnostic.c (diagnostic_build_prefix): Use it.
1227         (diagnostic_show_locus): Likewise.
1228
1229 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
1230
1231         PR bootstrap/64189
1232         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
1233         * configure: Regenerated.
1234
1235 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1236
1237         * diagnostic.c (diagnostic_color_init): New.
1238         * diagnostic.h: Declare.
1239         * gcc.c (driver::global_initializations): Use it.
1240         (driver_handle_option): Handle -fdiagnostics-color_.
1241         * toplev.c: Do not include diagnostic-color.h.
1242         (process_options): Do not initialize color diagnostics here.
1243         * common.opt (fdiagnostics-color=): Add Driver.
1244         * opts-global.c (init_options_once): Initialize color here.
1245         * opts.c (common_handle_option): Use diagnostics_color_init.
1246         * diagnostic-color.h: Fix comment.
1247
1248 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1249
1250         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
1251         (NIY): Likewise.
1252         (buffer): Rename this variable to...
1253         (tree_pp): ...this.
1254
1255         (do_niy): Rename param from "buffer" to "pp".
1256         (dump_decl_name): Likewise.
1257         (dump_function_name): Likewise.
1258         (dump_function_declaration): Likewise.
1259         (dump_array_domain): Likewise.
1260         (dump_omp_clause): Likewise.
1261         (dump_omp_clauses): Likewise.
1262         (dump_location): Likewise.
1263         (dump_block_node): Likewise.
1264         (dump_generic_node): Likewise.
1265         (print_declaration): Likewise.
1266         (print_struct_decl): Likewise.
1267         (print_call_name): Likewise.
1268         (pretty_print_string): Likewise.
1269         (newline_and_indent): Likewise.
1270
1271         (print_generic_decl): Update for renaming of "buffer" to
1272         "tree_pp".
1273         (print_generic_stmt): Likewise.
1274         (print_generic_stmt_indented): Likewise.
1275         (print_generic_expr): Likewise.
1276         (maybe_init_pretty_print): Likewise.
1277
1278 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1279
1280         PR jit/63854
1281         * tree-pretty-print.c: Eliminate include of <new>.
1282         (buffer): Convert this variable from a pretty_printer to a
1283         pretty_printer *.
1284         (initialized): Eliminate this variable in favor of the NULL-ness
1285         of "buffer".
1286         (print_generic_decl): Update for "buffer" becoming a pointer.
1287         (print_generic_stmt): Likewise.
1288         (print_generic_stmt_indented): Likewise.
1289         (print_generic_expr): Likewise.
1290         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
1291         heap and using its non-NULL-ness to ensure idempotency.
1292
1293 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1294
1295         PR jit/63854
1296         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
1297         ipa_add_new_function on function_insertion_hook_holder being
1298         non-NULL.
1299         * ipa-reference.c (ipa_reference_c_finalize): Remove
1300         node_removal_hook_holder and node_duplication_hook_holder if
1301         they've been added to symtab.
1302         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
1303         before cgraph_c_finalize so that the former can access "symtab".
1304
1305 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1306
1307         * doc/cfg.texi (GIMPLE statement iterators): Add note about
1308         gphi_iterator, and use one in the example.
1309         * doc/gimple.texi (Tuple specific accessors): Add missing
1310         GIMPLE_GOTO section and menu item.
1311         (gimple_build_asm, gimple gimple_build_assign_with_ops)
1312         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
1313         description of removed functions.
1314         (gimple_build_assign, gimple_build_bind, gimple_build_call,
1315         gimple_build_call_from_tree, gimple_build_call_vec,
1316         gimple_build_catch, gimple_build_cond,
1317         gimple_build_cond_from_tree, gimple_build_debug_bind,
1318         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
1319         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
1320         gimple_build_omp_continue, gimple_build_omp_critical,
1321         gimple_build_omp_for, gimple_build_omp_parallel,
1322         gimple_build_omp_sections, gimple_build_omp_single,
1323         gimple_build_return, gimple_build_resx, gimple_build_switch,
1324         gimple_build_try): Update return type within description to
1325         reflect changes in gimple.h to using gimple subclasses.
1326         (gimple_build_asm_vec): Update return type, params and
1327         description.
1328         (gimple_asm_ninputs): Update param.
1329         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1330         gimple_asm_set_input_op, gimple_asm_output_op
1331         gimple_asm_set_output_op, gimple_asm_clobber_op,
1332         gimple_asm_set_clobber_op, gimple_asm_string,
1333         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1334         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1335         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1336         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1337         gimple_call_return_type, gimple_call_set_chain,
1338         gimple_call_set_tail, gimple_call_tail_p,
1339         gimple_call_copy_skip_args, gimple_catch_types,
1340         gimple_catch_types_ptr, gimple_catch_handler,
1341         gimple_catch_set_types, gimple_catch_set_handler,
1342         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1343         gimple_cond_true_label, gimple_cond_set_true_label,
1344         gimple_cond_set_false_label, gimple_cond_false_label,
1345         gimple_cond_make_false, gimple_cond_make_true,
1346         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1347         gimple_eh_must_not_throw_fndecl,
1348         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1349         gimple_label_set_label, gimple_goto_set_dest,
1350         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1351         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1352         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1353         gimple_omp_continue_control_def,
1354         gimple_omp_continue_control_def_ptr,
1355         gimple_omp_continue_set_control_def,
1356         gimple_omp_continue_control_use,
1357         gimple_omp_continue_control_use_ptr,
1358         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1359         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1360         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1361         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1362         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1363         gimple_omp_parallel_data_arg_ptr,
1364         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1365         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1366         gimple_resx_set_region, gimple_return_retval,
1367         gimple_return_set_retval, gimple_switch_num_labels,
1368         gimple_switch_set_num_labels, gimple_switch_index,
1369         gimple_switch_set_index, gimple_switch_label,
1370         gimple_switch_set_label, gimple_switch_default_label,
1371         gimple_switch_set_default_label, gimple_try_set_eval,
1372         gimple_try_set_cleanup): Update initial param within description
1373         to reflect changes in gimple.h to using gimple subclasses.
1374         (Adding a new GIMPLE statement code): Update to reflect gimple
1375         statement subclassing.
1376
1377 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
1378             H.J. Lu  <hongjiu.lu@intel.com>
1379
1380         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1381         Linux/x86-64 linker supports PIE with copy reloc.
1382         * config.in: Regenerated.
1383         * configure: Likewise.
1384
1385         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1386         pc-relative address for undefined, non-weak, non-function
1387         symbol reference in 64-bit PIE if linker supports PIE with
1388         copy reloc.
1389
1390         * doc/sourcebuild.texi: Document pie_copyreloc target.
1391
1392 2014-12-04  Marek Polacek  <polacek@redhat.com>
1393
1394         PR middle-end/56917
1395         * fold-const.c (fold_unary_loc): Perform the negation in A's type
1396         when transforming ~ (A - 1) or ~ (A + -1) to -A.
1397
1398 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1399
1400         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1401
1402 2014-12-04  Richard Biener  <rguenther@suse.de>
1403
1404         * doc/match-and-simplify.texi: Update for recent changes.
1405
1406 2014-12-04  Martin Jambor  <mjambor@suse.cz>
1407
1408         * ipa-prop.h (ipa_alignment): New type.
1409         (ipa_jump_func): New field alignment.
1410         (ipcp_transformation_summary) New type.
1411         (ipcp_grow_transformations_if_necessary): Declare.
1412         (ipa_node_agg_replacements): Removed.
1413         (ipcp_transformations): Declare.
1414         (ipcp_get_transformation_summary): New function.
1415         (ipa_get_agg_replacements_for_node): Use it.
1416         * ipa-cp.c (ipcp_param_lattices): New field alignment.
1417         (print_all_lattices): Also print alignment.
1418         (alignment_bottom_p): New function.
1419         (set_alignment_to_bottom): Likewise.
1420         (set_all_contains_variable): Also set alignment to bottom.
1421         (initialize_node_lattices): Likewise.
1422         (propagate_alignment_accross_jump_function): New function.
1423         (propagate_constants_accross_call): Call it.
1424         (ipcp_store_alignment_results): New function.
1425         (ipcp_driver): Call it.
1426         * ipa-prop.c (ipa_node_agg_replacements): Removed.
1427         (ipcp_transformations): New.
1428         (ipa_print_node_jump_functions_for_edge): Also print alignment.
1429         (ipa_set_jf_unknown): New function.
1430         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
1431         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
1432         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
1433         (ipcp_grow_transformations_if_necessary): New function.
1434         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
1435         (ipa_node_removal_hook): Likewise.
1436         (ipa_node_duplication_hook): Also duplicate alignment results.
1437         (ipa_write_jump_function): Also stream alignments.
1438         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
1439         alignments.
1440         (write_agg_replacement_chain): Renamed to
1441         write_ipcp_transformation_info, also stream alignments.
1442         (read_agg_replacement_chain): Renamed to
1443         read_ipcp_transformation_info, also stream alignments.
1444         (ipa_prop_write_all_agg_replacement): Renamed to
1445         ipcp_write_transformation_summaries. Stream always.
1446         (ipa_prop_read_all_agg_replacement): Renamed to
1447         ipcp_read_transformation_summaries.
1448         (ipcp_update_alignments): New function.
1449         (ipcp_transform_function): Call it, free also alignments.
1450
1451 2014-12-04  Richard Biener  <rguenther@suse.de>
1452
1453         * gimple-fold.c (replace_stmt_with_simplification): Properly
1454         fail when maybe_push_res_to_seq fails.
1455
1456 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1457
1458         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
1459
1460 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1461
1462         * doc/install.texi: Remove mentions of cloog and ppl.
1463         * doc/invoke.texi: Likewise
1464
1465 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
1466
1467         PR c++/56493
1468         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1469         Handle COMPOUND_EXPR.
1470
1471 2014-12-04  Richard Biener  <rguenther@suse.de>
1472
1473         * builtins.c (target_newline): Export.
1474         (target_percent_s_newline): Likewise.
1475         (fold_builtin_1): Do not fold printf functions here.
1476         (fold_builtin_2): Likewise.
1477         (fold_builtin_3): Likewise, do not fold strncat.
1478         (fold_builtin_strncat): Move to gimple-fold.c.
1479         (fold_builtin_printf): Likewise.
1480         * builtins.h (target_newline): Declare.
1481         (target_percent_s_newline): Likewise.
1482         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
1483         builtins.c and gimplify.
1484         (gimple_fold_builtin_printf): Likewise.
1485         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
1486         vprintf, printf_chk and vprintf_chk here.
1487
1488 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
1489
1490         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
1491         (floatunssidf2_internal): Same.
1492         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
1493         (rs6000_emit_int_cmove): Same.
1494         (rs6000_sched_reorder): Same.
1495         (altivec_expand_vec_perm_const): Same.
1496         (rs6000_expand_vec_perm_const_1): Same.
1497
1498 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1499
1500         PR rtl-optimization/64010
1501         * reload.c (push_reload): Before reusing a register contained
1502         in an operand as input reload register, ensure that it is not
1503         used in CALL_INSN_FUNCTION_USAGE.
1504
1505 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
1506
1507         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
1508         if it exists.
1509
1510 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1511
1512         * expmed.c (expand_mult): Use std::swap.
1513
1514         PR c/59708
1515         * expmed.c (expand_widening_mult): Return const0_rtx if
1516         coeff is 0.
1517
1518         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
1519         (gimple_build_assign): Document the new overloads.
1520
1521 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1522
1523         PR target/64019
1524         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1525         not create LO_SUM address for constant addresses if the type can
1526         go in Altivec registers.
1527
1528 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1529
1530         PR fortran/44054
1531         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
1532         (pp_flush): Flush only if flush_p.
1533         (pp_really_flush): New.
1534         * pretty-print.h (struct output_buffer): Add flush_p.
1535         (pp_really_flush): Declare.
1536
1537 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1538
1539         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
1540         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
1541         (GENGTYPE_OBJS): New.
1542         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
1543         Remove explicit dependencies.
1544         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
1545         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
1546         instead of -DGENERATOR_FILE.
1547         (CFLAGS-errors.o): New.
1548         * gengtype.c: Instead of testing GENERATOR_FILE define, test
1549         HOST_GENERATOR_FILE.  If defined, include config.h and define
1550         GENERATOR_FILE afterwards, otherwise include bconfig.h.
1551         * gengtype-parse.c: Likewise.
1552         * gengtype-state.c: Likewise.
1553         * gengtype-lex.l: Likewise.
1554         * errors.c: Likewise.
1555
1556 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1557
1558         * config/epiphany/epiphany.c (epiphany_override_options):
1559         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
1560         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
1561         reverse_condition_maybe_unordered if flag_finite_math_only is set.
1562
1563 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
1564
1565         Revert:
1566
1567         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
1568         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1569         when architecture is older than ARMv7.
1570
1571 2014-12-03  Richard Biener  <rguenther@suse.de>
1572
1573         * builtins.c (target_percent_c): Export.
1574         (fold_builtin_fprintf): Move to gimple-fold.c.
1575         (fold_builtin_2): Do not fold fprintf functions.
1576         (fold_builtin_3): Likewise.
1577         (fold_builtin_4): Remove.
1578         (fold_builtin_n): Do not call fold_builtin_4.
1579         * builtins.h (target_percent_c): Declare.
1580         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
1581         builtins.c and gimplify.
1582         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
1583         fprintf_chk and vfprintf_chk here.
1584
1585 2014-12-03  Martin Jambor  <mjambor@suse.cz>
1586
1587         PR ipa/64153
1588         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1589         type sizes before view_converting.
1590
1591 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
1592
1593         PR rtl-optimization/64151
1594         PR rtl-optimization/64156
1595         * ira-costs.c (scan_one_insn): Revert r218266.
1596
1597 2014-12-03  Richard Biener  <rguenther@suse.de>
1598
1599         * builtins.c (fold_builtin_fpclassify): Change to take
1600         array of arguments instead of CALL_EXPR tree.
1601         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
1602         (fold_builtin_n): Dispatch to fold_builtin_varargs.
1603         (fold_call_expr): Always use fold_builtin_n.
1604         (fold_builtin_call_array): Change to not build the unfolded call,
1605         always use fold_builtin_n.
1606         (fold_builtin_varargs): Change to take array of arguments instead
1607         of CALL_EXPR tree.
1608         (fold_call_stmt): Always use fold_builtin_n.
1609         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
1610         * fold-const.c (fold_build_call_array_loc): Build the call
1611         if fold_builtin_call_array returned NULL_TREE.
1612         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
1613         a CALL_EXPR and use fold_builtin_call_array instead of
1614         fold_call_expr.
1615
1616 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
1617
1618         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
1619         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
1620         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
1621         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
1622         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
1623         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
1624         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
1625         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
1626         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
1627         Change VDQ to VDQ_I.
1628
1629         (mul<mode>3): Change VDQM to VDQ_BHSI.
1630         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
1631         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
1632         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
1633         
1634         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
1635         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
1636         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
1637         Change VDW to VD_BHSI.
1638         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
1639         Change VDIC to VD_BHSI.
1640
1641         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
1642         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
1643         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
1644
1645         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
1646         VDIC, VDQQHS): Remove.
1647         (Vwtype): Update comment (changing VDW to VD_BHSI).
1648
1649 2014-12-03  Richard Biener  <rguenther@suse.de>
1650
1651         PR middle-end/14541
1652         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
1653         * match.pd: ... here as patterns.
1654
1655 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
1656
1657         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
1658         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
1659         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
1660         reservation order.
1661
1662 2014-12-03  Tom de Vries  <tom@codesourcery.com>
1663
1664         PR rtl-optimization/63957
1665         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
1666         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
1667         flag_ipa_ra.
1668         (get_call_reg_set_usage): Same.
1669         * lra-assigns.c (lra_assign): Same.
1670         * lra-constraints.c (need_for_call_save_p): Same.
1671         * lra-lives.c (process_bb_lives): Same.
1672         * lra.c (lra): Same.
1673         * calls.c (expand_call): Same.
1674         (emit_library_call_value_1): Same.
1675         * config/arm/arm.c (arm_option_override): Same.
1676         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
1677         OPT_fipa_ra.
1678         * target.def (call_fusage_contains_non_callee_clobbers): Replace
1679         fuse-caller-save with fipa-ra.
1680         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
1681         * common.opt: Same.
1682
1683 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
1684
1685         * sanopt.c (maybe_get_single_definition): New function.
1686         (maybe_get_dominating_check): Ditto.
1687         (can_remove_asan_check): Ditto.
1688         (struct tree_map_traits): New struct.
1689         (struct sanopt_ctx): Use custom traits for asan_check_map.
1690         (maybe_optimize_ubsan_null_ifn): Move code to
1691         maybe_get_dominating_check.
1692         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
1693         into account when optimizing.
1694         (sanopt_optimize_walker): Optimize ASan checks even when
1695         recovering.
1696
1697 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
1698
1699         * config/i386/constraints.md (Yr): New.
1700         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
1701         (REG_CLASS_NAMES): Likewise.
1702         (REG_CLASS_CONTENTS): Likewise.
1703         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
1704         which use only NO_REX_SSE_REGS.
1705         (vec_set<mode>_0): Likewise.
1706         (*vec_setv4sf_sse4_1): Likewise.
1707         (sse4_1_insertps): Likewise.
1708         (*sse4_1_extractps): Likewise.
1709         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
1710         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
1711         (*sse4_1_<code><mode>3<mask_name>): Likewise.
1712         (*sse4_1_<code><mode>3): Likewise.
1713         (*sse4_1_eqv2di3): Likewise.
1714         (sse4_2_gtv2di3): Likewise.
1715         (*vec_extractv4si): Likewise.
1716         (*vec_concatv2si_sse4_1): Likewise.
1717         (vec_concatv2di): Likewise.
1718         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
1719         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
1720         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
1721         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
1722         (<sse4_1_avx2>_mpsadbw): Likewise.
1723         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
1724         (<sse4_1_avx2>_pblendvb): Likewise.
1725         (sse4_1_pblendw): Likewise.
1726         (sse4_1_phminposuw): Likewise.
1727         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
1728         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
1729         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
1730         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
1731         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
1732         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1733         (sse4_1_ptest): Likewise.
1734         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
1735         (sse4_1_round<ssescalarmodesuffix>): Likewise.
1736         * config/i386/subst.md (mask_prefix4): New.
1737         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
1738
1739 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
1740
1741         PR rtl-optimization/52714
1742         * combine.c (try_combine): Allow combining two insns into two
1743         new insns if at least one of those is a noop.
1744
1745 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
1746
1747         * target.def (fusion_priority): Wrap code with @smallexample.
1748         * doc/tm.texi: Regenerated.
1749
1750 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1751
1752         * diagnostic.c (diagnostic_show_locus): Honor override_column when
1753         placing the caret.
1754
1755 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
1756
1757         * asan.c: (asan_finish_file): Use default priority for constructors
1758         in kernel mode.
1759
1760 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1761
1762         PR target/64115
1763         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1764         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1765
1766 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1767
1768         PR target/64108
1769         * config/i386/i386.c (decide_alg): Stop only if there aren't
1770         any usable algorithms.
1771
1772 2014-12-02  Tom de Vries  <tom@codesourcery.com>
1773
1774         PR rtl-optimization/63718
1775         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
1776         Thumb1.
1777
1778 2014-12-02  Richard Biener  <rguenther@suse.de>
1779
1780         * match.pd: When combining divisions exclude the degenerate
1781         case involving INT_MIN from overflow handling.
1782
1783 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1784
1785         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
1786
1787 2014-12-02  Martin Jambor  <mjambor@suse.cz>
1788
1789         PR ipa/63814
1790         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
1791         (cgraph_edge_brings_value_p): New parameter dest, use
1792         same_node_or_its_all_contexts_clone_p and check availability.
1793         (cgraph_edge_brings_value_p): Likewise.
1794         (get_info_about_necessary_edges): New parameter dest, pass it to
1795         cgraph_edge_brings_value_p.  Update caller.
1796         (gather_edges_for_value): Likewise.
1797         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
1798         both the destination and availability.
1799
1800 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
1801
1802         PR target/64113
1803         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1804         using post-reload splitter.  Use peephole2 pass instead.
1805         (call_value_osf_tlsldm): Ditto.
1806         (TLS_CALL): New int iterator.
1807         (tls): New int attribute.
1808         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1809         and call_value_tlsldm using TLS_CALL int iterator.
1810
1811 2014-12-02  Richard Biener  <rguenther@suse.de>
1812             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
1813
1814         * genmatch.c: Include hash-set.h.
1815         (fatal_at): Add source_location overload.
1816         (parser::record_operlist): New method.
1817         (parser::push_simplify): Likewise.
1818         (parser::oper_lists_set): New member.
1819         (parser::oper_lists): Likewise.
1820         (parser::parse_operation): Record seen operator list references.
1821         (parser::parse_c_expr): Likewise.
1822         (parser::parse_simplify): Init oper_lists_set and oper_lists
1823         and use push_simplify.
1824         (parser::parser): Init oper_lists_set and oper_lists.
1825
1826 2014-12-02  Richard Biener  <rguenther@suse.de>
1827
1828         * match.pd: Restrict division combining to trunc_div and
1829         exact_div.
1830
1831 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
1832
1833         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
1834         Remove NULL last argument from create_tmp_var calls.
1835         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
1836         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
1837         * config/i386/i386.c (add_condition_to_bb,
1838         ix86_atomic_assign_expand_fenv): Likewise.
1839         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
1840         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1841         * config/aarch64/aarch64-builtins.c
1842         (aarch64_atomic_assign_expand_fenv): Likewise.
1843         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1844         Likewise.
1845         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
1846         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
1847         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1848
1849         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
1850         gimple_build_assign instead of gimple_build_assign_with_ops and swap
1851         the order of first two arguments.
1852         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
1853         Likewise.  Remove last NULL_TREE argument.
1854
1855 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1856
1857         PR rtl-optimization/59278
1858         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
1859
1860 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1861
1862         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
1863
1864 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1865
1866         * combine.c (is_parallel_of_n_reg_sets): New function.
1867         (can_split_parallel_of_n_reg_sets): New function.
1868         (try_combine): If I2 is a PARALLEL of two SETs, split it into
1869         two insns if possible.
1870
1871 2014-12-01  Tobias Burnus  <burnus@net-b.de>
1872             Jack Howarth  <howarth@bromo.med.uc.edu>
1873
1874         PR middle-end/64017
1875         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
1876         New check.
1877         * doc/install.texi (ISL): Permit ISL 0.14.
1878         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
1879         Conditionally use ISL 0.13+ functions.
1880         * graphite-interchange.c: Make 'extern "C"' conditional.
1881         * graphite-isl-ast-to-gimple.c: Ditto.
1882         * graphite-poly.c: Ditto.
1883         * graphite-sese-to-poly.c: Ditto.
1884         * config.in: Regenerate.
1885         * gcc/configure: Regenerate.
1886
1887 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1888
1889         * combine.c (distribute_links): Handle multiple SETs.
1890
1891 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1892
1893         * combine.c (struct insn_link): New field `regno'.
1894         (alloc_insn_link): New parameter `regno'.  Use it.
1895         (find_single_use): Check the new field.
1896         (can_combine_def_p, can_combine_use_p): New functions.  Split
1897         off from ...
1898         (create_log_links): ... here.  Correct data type of `regno'.
1899         Adjust call to alloc_insn_link.
1900         (adjust_for_new_dest): Find regno, use it in call to
1901         alloc_insn_link.
1902         (try_combine): Check reg_used_between_p when combining a PARALLEL
1903         as earlier insn.  Adjust call to alloc_insn_link.
1904         (distribute_links): Check the new field.
1905
1906 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1907
1908         PR jit/63854
1909         * real.c (real_from_string): Add missing mpfr_clear.
1910
1911 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1912
1913         PR jit/63854
1914         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
1915         release of stmts by converting it to an auto_vec.
1916
1917 2014-12-01  Richard Biener  <rguenther@suse.de>
1918
1919         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
1920         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
1921         bootstrap with old GCC.
1922         (generic-match.o-warn): Likewise.
1923
1924 2014-12-01  Richard Biener  <rguenther@suse.de>
1925
1926         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
1927         Properly handle FIXED_CST shifts by INTEGER_CST.
1928         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
1929         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
1930         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
1931         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
1932         (fold_binary_loc): ... here.  Call const_binop overload
1933         with result type.
1934
1935 2014-12-01  Marek Polacek  <polacek@redhat.com>
1936             Jakub Jelinek  <jakub@redhat.com>
1937
1938         PR sanitizer/64121
1939         * ubsan.c (instrument_object_size): Stop searching if the base
1940         occurs in abnormal phi.
1941
1942 2014-12-01  Marek Polacek  <polacek@redhat.com>
1943
1944         PR sanitizer/63956
1945         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
1946
1947 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
1948
1949         * gimple.h (gimple_build_assign_stat): Remove prototype.
1950         (gimple_build_assign): Remove define.  Add overload prototypes
1951         with tree lhs and either a tree rhs, or enum tree_code and
1952         1, 2 or 3 tree operands.
1953         * gimple.c (gimple_build_assign_stat): Renamed to...
1954         (gimple_build_assign): ... this.  Add overloads with
1955         enum tree_code and 1, 2 or 3 tree operands.
1956         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
1957         Rename the 3 operand overload to ...
1958         (gimple_build_assign_1): ... this.  Make it static inline.
1959         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
1960         instead of gimple_build_assign_with_ops, swap the order of first
1961         two arguments and adjust formatting where necessary.
1962         * tree-vect-slp.c (vect_get_constant_vectors,
1963         vect_create_mask_and_perm): Likewise.
1964         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1965         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1966         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1967         * tsan.c (instrument_builtin_call): Likewise.
1968         * tree-chkp.c (chkp_compute_bounds_for_assignment,
1969         chkp_generate_extern_var_bounds): Likewise.
1970         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1971         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
1972         * gimple-builder.c (build_assign, build_type_cast): Likewise.
1973         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
1974         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
1975         gimple_mod_subtract): Likewise.
1976         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1977         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1978         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
1979         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
1980         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
1981         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
1982         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
1983         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
1984         adjust_bool_pattern_cast, adjust_bool_pattern,
1985         vect_recog_bool_pattern): Likewise.
1986         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
1987         insert_initializers, introduce_cast_before_cand,
1988         replace_one_candidate): Likewise.
1989         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
1990         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
1991         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
1992         Likewise.
1993         * tree-tailcall.c (adjust_return_value_with_ops,
1994         update_accumulator_with_ops): Likewise.
1995         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
1996         * tree-ssa-reassoc.c (build_and_add_sum,
1997         optimize_range_tests_to_bit_test, update_ops,
1998         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1999         negate_value, repropagate_negates, attempt_builtin_powi,
2000         reassociate_bb): Likewise.
2001         * tree-vect-loop.c (vect_is_simple_reduction_1,
2002         get_initial_def_for_induction, vect_create_epilog_for_reduction):
2003         Likewise.
2004         * ipa-split.c (split_function): Likewise.
2005         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
2006         abs_replacement, neg_replacement): Likewise.
2007         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
2008         * tree-vrp.c (simplify_truth_ops_using_ranges,
2009         simplify_float_conversion_using_ranges,
2010         simplify_internal_call_using_ranges): Likewise.
2011         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
2012         * tree-vect-generic.c (expand_vector_divmod,
2013         optimize_vector_constructor): Likewise.
2014         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
2015         instrument_bool_enum_load): Likewise.
2016         * tree-ssa-loop-manip.c (create_iv): Likewise.
2017         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
2018         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
2019         expand_cilk_for, simd_clone_adjust): Likewise.
2020         * trans-mem.c (expand_transaction): Likewise.
2021         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
2022         vect_setup_realignment, vect_permute_load_chain,
2023         vect_shift_permute_load_chain): Likewise.
2024         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2025         vectorizable_simd_clone_call, vect_gen_widened_results_half,
2026         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
2027         vectorizable_shift, vectorizable_operation, vectorizable_store,
2028         permute_vec_elements, vectorizable_load): Likewise.
2029
2030 2014-12-01  Richard Biener  <rguenther@suse.de>
2031
2032         PR middle-end/64111
2033         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
2034         htab_hash_pointer to not break PCH.
2035
2036 2014-12-01  Richard Biener  <rguenther@suse.de>
2037
2038         PR tree-optimization/15346
2039         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
2040         add -Wno-unused-but-set-variable.
2041         * match.pd: Combine two successive divisions.
2042
2043 2014-12-01  Richard Biener  <rguenther@suse.de>
2044
2045         PR middle-end/64126
2046         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
2047         and -1 - A -> ~A.
2048         * fold-const.c (fold_binary_loc): Remove transforms here.
2049
2050 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
2051
2052         * config/mips/mips.c (mips16_build_call_stub): Move the save of
2053         the return address in $18 ahead of passing arguments to FPRs.
2054
2055 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
2056
2057         PR target/64055
2058         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
2059         values in array domain.
2060
2061 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
2062
2063         PR tree-optimization/63941
2064         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
2065         DOM_BB has non-true predicate, conditionally set non-true predicate
2066         for BB.
2067
2068 2014-12-01  Martin Jambor  <mjambor@suse.cz>
2069
2070         PR ipa/63551
2071         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
2072         value of the argument to the type of the value in the condition.
2073
2074 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
2075
2076         PR target/63986
2077         PR target/51244
2078         * config/sh/sh.c (sh_unspec_insn_p,
2079         sh_insn_operands_modified_between_p): New functions.
2080         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
2081         are modified or if it has side effects, may trap or is volatile.
2082
2083 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2084
2085         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
2086         create_tmp_reg): Add default NULL value to last argument.
2087         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
2088         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
2089         last argument from create_tmp_var_raw, create_tmp_var,
2090         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
2091         * tree-ssa-strlen.c (get_string_length): Likewise.
2092         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
2093         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2094         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2095         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2096         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2097         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
2098         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2099         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2100         * tsan.c (instrument_expr, instrument_builtin_call,
2101         instrument_func_entry): Likewise.
2102         * varpool.c (add_new_static_var): Likewise.
2103         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2104         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
2105         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
2106         gimplify_init_ctor_eval_range, gimplify_init_constructor,
2107         gimplify_omp_atomic, gimplify_expr): Likewise.
2108         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2109         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
2110         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
2111         vect_loop_versioning): Likewise.
2112         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
2113         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2114         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
2115         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
2116         vect_recog_over_widening_pattern): Likewise.
2117         * tree-sra.c (build_ref_for_offset, create_access_replacement):
2118         Likewise.
2119         * tree-cfg.c (make_blocks): Likewise.
2120         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
2121         Likewise.
2122         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
2123         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
2124         Likewise.
2125         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
2126         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
2127         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
2128         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
2129         * tree-ssa-reassoc.c (build_and_add_sum,
2130         optimize_range_tests_to_bit_test, update_ops,
2131         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2132         negate_value, repropagate_negates): Likewise.
2133         * tree-vect-loop.c (vect_is_simple_reduction_1,
2134         vect_create_epilog_for_reduction): Likewise.
2135         * ipa-split.c (split_function): Likewise.
2136         * tree-inline.c (remap_ssa_name, setup_one_parameter,
2137         declare_return_variable, tree_function_versioning): Likewise.
2138         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
2139         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
2140         Likewise.
2141         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
2142         neg_replacement): Likewise.
2143         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
2144         Likewise.
2145         * tree-vrp.c (simplify_truth_ops_using_ranges,
2146         simplify_float_conversion_using_ranges,
2147         simplify_internal_call_using_ranges): Likewise.
2148         * tree-switch-conversion.c (emit_case_bit_tests,
2149         build_one_array, build_arrays, gen_def_assigns): Likewise.
2150         * gimple-fold.c (gimple_fold_builtin_memory_op,
2151         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
2152         * tree-vect-generic.c (expand_vector_divmod,
2153         optimize_vector_constructor): Likewise.
2154         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
2155         ubsan_expand_objsize_ifn, instrument_si_overflow,
2156         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
2157         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
2158         * tree-ssa-loop-manip.c (create_iv,
2159         tree_transform_and_unroll_loop): Likewise.
2160         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
2161         lower_rec_input_clauses, lower_lastprivate_clauses,
2162         expand_parallel_call, expand_omp_for_static_chunk,
2163         expand_omp_atomic_pipeline, expand_omp_target,
2164         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
2165         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
2166         lower_depend_clauses, lower_omp_target, lower_omp_1,
2167         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
2168         * tree-parloops.c (take_address_of, create_phi_for_local_result,
2169         create_call_for_reduction_1, separate_decls_in_region,
2170         create_parallel_loop): Likewise.
2171         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
2172         handle_scalar_deps_crossing_scop_limits): Likewise.
2173         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
2174         expand_assign_tm, expand_call_tm, expand_transaction,
2175         ipa_tm_insert_gettmclone_call): Likewise.
2176         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
2177         Likewise.
2178         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2179         vectorizable_call, vectorizable_simd_clone_call,
2180         vectorizable_conversion, vectorizable_store, permute_vec_elements,
2181         vectorizable_load): Likewise.
2182
2183 2014-11-29  Tobias Burnus  <burnus@net-b.de>
2184             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2185
2186         * opt-functions.awk (lang_enabled_by): Support || for
2187         enabled-by.
2188         * optc-gen.awk: Ditto.
2189         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
2190         || syntax.
2191
2192 2014-11-28  Mike Stump  <mikestump@comcast.net>
2193
2194         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
2195         (bitmap_ior_and_compl): Likewise.
2196
2197 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2198
2199         PR target/64061
2200         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
2201         subreg.
2202
2203 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
2204
2205         PR target/64093
2206         * config/rs6000/rs6000.md (and<mode>3): Don't generate
2207         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
2208
2209 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2210
2211         PR rtl-optimization/64087
2212         * lra-lives.c (process_bb_lives): Add debug output.
2213         (lra_create_live_ranges): Don't remove dead insn on the second
2214         call of lra_create_live_ranges_1.
2215
2216 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
2217
2218         PR rtl-optimization/64037
2219         * combine.c (setup_incoming_promotions): Pass the argument
2220         before any promotions happen to promote_function_mode.
2221
2222 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
2223
2224         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
2225         permutations to loads group of size 3.
2226
2227 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
2228
2229         * config/arm/arm.md (copysignsf3): New pattern.
2230         (copysigndf3): Likewise.
2231
2232 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2233             Ilya Verbin  <ilya.verbin@intel.com>
2234
2235         * omp-low.c (lower_omp_critical): Mark critical sections
2236         inside target functions as offloadable.
2237
2238 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2239
2240         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
2241         file contains sections with LTO and offload IR, respectively.
2242
2243 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2244
2245         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
2246         (symbol_table::compile): Set flag_generate_offload if there is something
2247         to offload.
2248         * common.opt (flag_generate_offload): New Variable declaration.
2249         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
2250         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
2251         flag_generate_offload is set.
2252         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
2253         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
2254         is set.
2255         * toplev.c (compile_file): Emit LTO marker if offload info has been
2256         previously emitted.  Do not emit lto_slim marker if
2257         flag_generate_offload is without flag_generate_lto.
2258         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
2259
2260 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2261
2262         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
2263         * config/arm/arm-tables.opt: Regenerate.
2264         * config/arm/arm-tune.md: Regenerate.
2265         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
2266         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
2267         MULTILIB_MATCHES.
2268
2269 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2270
2271         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
2272         Include cortex-a17.md.
2273         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
2274         * config/arm/arm-cores.def (cortex-a17): New entry.
2275         * config/arm/arm-tables.opt: Regenerate.
2276         * config/arm/arm-tune.md: Regenerate.
2277         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
2278         * config/arm/cortex-a17.md: New file.
2279         * config/arm/cortex-a17-neon.md: New file.
2280         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
2281         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
2282
2283 2014-11-28  Richard Biener  <rguenther@suse.de>
2284
2285         PR middle-end/64084
2286         * genmatch.c (dt_node::gen_kids_1): New function, split out
2287         from dt_node::gen_kids.
2288         (decision_tree::cmp_node): DT_TRUE are generally not equal.
2289         (decision_tree::find_node): Treat DT_TRUE as barrier for
2290         node CSE on the same level.
2291         (dt_node::append_node): Do not keep DT_TRUE last.
2292         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
2293
2294 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2295
2296         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2297         -march=armv8-a+crc.
2298
2299 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
2300
2301         * config/i386/i386.md (preferred_for_size): New attribute
2302         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
2303         attribute to conditionally disable alternative 1.
2304         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
2305         and prefered_for_speed attributes to conditionally disable
2306         alternative 1.
2307         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
2308         preferred_for_size attribute to conditionally disable
2309         alternatives 3 and 4.
2310         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
2311         preferred_for_size and prefered_for_speed attributes to conditionally
2312         disable alternatives 3 and 4.
2313         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
2314
2315 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2316
2317         * dwarf2out.c (set_block_origin_self): Skip nested functions.
2318
2319 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
2320
2321         PR target/63833
2322         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
2323         R15_REG for 64-bit.
2324         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2325
2326 2014-11-27  Martin Liska  <mliska@suse.cz>
2327             David Malcolm  <dmalcolm@redhat.com>
2328
2329         * ipa-icf.c (sem_function::equals_private): int* is replaced with
2330         auto_vec.
2331         (sem_function::bb_dict_test): Likewise.
2332         * ipa-icf.h: Likewise.
2333
2334 2014-11-27  Richard Biener  <rguenther@suse.de>
2335
2336         PR middle-end/64088
2337         * fold-const.c (const_unop): Re-instantiate missing condition
2338         before calling fold_abs_const.
2339
2340         PR tree-optimization/64088
2341         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2342         the stmt break from the loop over use operands.
2343
2344 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
2345
2346         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2347         Define.
2348         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2349         (fold_builtin_cpu): Ditto.
2350         * doc/extend.texi: Documment it.
2351
2352 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
2353
2354         PR middle-end/64067
2355         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2356         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2357         not only if modifier is EXPAND_INITIALIZER, but whenever
2358         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2359
2360         PR tree-optimization/64024
2361         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2362         field.  Add simd_clone_info field.
2363         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2364         (STMT_VINFO_SIMD_CLONE_INFO): Define.
2365         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2366         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2367         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
2368         base and linear_step from analysis phase and use it during transform
2369         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2370         multiplied by linear_step.
2371         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2372
2373         PR lto/64025
2374         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
2375         if it is CONSTANT_P other than CONST_INT.
2376
2377 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2378
2379         PR target/59593
2380         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2381         based on mode size.
2382         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2383         make it TARGET_EITHER.
2384         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2385         and move HFmode handling from consttable_4 to it.
2386         (consttable_4): Move HFmode handling to consttable_2 pattern.
2387         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2388         (consttable_2): Ditto.
2389
2390 2014-11-27  Richard Biener  <rguenther@suse.de>
2391
2392         * tree-ssa-sccvn.c (try_to_simplify): Allow
2393         gimple_fold_stmt_to_constant_1 to follow SSA edges.
2394
2395 2014-11-27  Richard Biener  <rguenther@suse.de>
2396
2397         PR tree-optimization/64083
2398         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2399         forcibly mark loop for removal the wrong way.
2400
2401 2014-11-27  Richard Biener  <rguenther@suse.de>
2402
2403         PR middle-end/63704
2404         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2405         and instead return false when !fstrict-aliasing.
2406
2407 2014-11-27  Richard Biener  <rguenther@suse.de>
2408
2409         PR tree-optimization/61634
2410         * tree-vect-slp.c: Include gimple-walk.h.
2411         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
2412         down the SLP tree for one scalar statement.
2413         (vect_detect_hybrid_slp_1): New walker function.
2414         (vect_detect_hybrid_slp_2): Likewise.
2415         (vect_detect_hybrid_slp): Properly handle pattern statements
2416         in a pre-scan over all loop stmts.
2417
2418 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2419
2420         Revert:
2421         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2422         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
2423         aarch64_convert_mode, aarch64_gen_ccmp_first,
2424         aarch64_gen_ccmp_next): New functions.
2425         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
2426
2427 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
2428
2429         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
2430         without -pie or -shared, error on -fsanitize=thread -static instead.
2431
2432 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2433
2434         PR ipa/61190
2435         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
2436         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2437         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
2438         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
2439         Add new optional parameter exclude_virtual_thunks.
2440         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
2441         optional parameter exclude_virtual_thunks.
2442         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
2443         (cgraph_node::set_pure_flag): Likewise.
2444         (cgraph_node::function_symbol): Simplified.
2445         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2446         * ipa-pure-const.c (analyze_function): For virtual thunks set
2447         pure_const_state to IPA_NEITHER.
2448         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
2449
2450 2014-11-26  Richard Biener  <rguenther@suse.de>
2451
2452         PR middle-end/63738
2453         * tree-data-ref.c (split_constant_offset_1): Do not follow
2454         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2455
2456 2014-11-26  Richard Biener  <rguenther@suse.de>
2457
2458         * fold-const.h (const_unop): Declare.
2459         (const_binop): Likewise.
2460         * fold-const.c (const_binop): Export overload that expects
2461         a type parameter and dispatches to fold_relational_const as well.
2462         Check both operand kinds for guarding the transforms.
2463         (const_unop): New function, with constant folding from fold_unary_loc.
2464         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
2465         Remove constant folding done there from the simplifications.
2466         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
2467         (fold_negate_expr): Remove dead code from the REAL_CST case.
2468         Avoid building garbage in the COMPLEX_CST case.
2469         * gimple-match-head.c (gimple_resimplify1): Dispatch to
2470         const_unop.
2471         (gimple_resimplify2): Dispatch to const_binop.
2472         (gimple_simplify): Likewise.
2473
2474 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2475
2476         PR bootstrap/63995
2477         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
2478         debug statement when searching for a new position for
2479         bounds load/creation statement.
2480
2481 2014-11-26  Marek Polacek  <polacek@redhat.com>
2482
2483         PR sanitizer/63788
2484         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
2485         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
2486         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
2487
2488 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2489
2490         PR lto/64075
2491         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
2492         proper size for function_code bitfield.
2493         (pack_ts_function_decl_value_fields): Likewise.
2494
2495 2014-11-21  Mark Wielaard  <mjw@redhat.com>
2496
2497         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
2498         * opts.c (common_handle_option): Accept -gdwarf-5.
2499         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
2500         DW_LANG_C_plus_plus_14.
2501         (lower_bound_default): Likewise. Plus DW_LANG_C11.
2502         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
2503         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
2504         (output_compilation_unit_header): Output at most a DWARFv4 header.
2505         (output_skeleton_debug_sections): Likewise.
2506         (output_line_info): Likewise.
2507         (output_aranges): Document header version number.
2508
2509 2014-11-26  Richard Biener  <rguenther@suse.de>
2510
2511         * gimple-fold.c (get_symbol_constant_value): Allow all
2512         GIMPLE register type zero-constants.
2513
2514 2014-11-26  Mark Wielaard  <mjw@redhat.com>
2515
2516         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
2517         function decl has TREE_THIS_VOLATILE.
2518
2519 2014-11-26  Richard Biener  <rguenther@suse.de>
2520
2521         PR tree-optimization/62238
2522         * tree-predcom.c (ref_at_iteration): Unshare the expression
2523         before gimplifying it.
2524         (prepare_initializers_chain): Discard unused seq.
2525
2526 2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>
2527
2528         * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
2529         for p5600.
2530
2531 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2532
2533         * ira-lives.c (process_bb_node_lives): Make code with conditional
2534         REAL_PIC_OFFSET_TABLE_REGNUM.
2535
2536 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2537
2538         PR target/63527
2539         * ira-lives.c (process_bb_node_lives): Check and remove conflict
2540         of pic pseudo with pic hard reg.
2541
2542 2014-11-25  Rohit  <rohitarulraj@freescale.com>
2543
2544         PR bootstrap/63703
2545         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2546         added GCC hard register numbers for SPE high registers.
2547
2548 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2549
2550         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
2551         before removing it, not after.
2552
2553 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2554
2555         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
2556         PATTERN call.
2557
2558 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2559
2560         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
2561         of addic.
2562
2563 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2564
2565         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
2566         (rest of file): Replace those with code resp. CODE.
2567
2568 2014-11-25  Tom de Vries  <tom@codesourcery.com>
2569
2570         * tree-cfg.c (verify_sese): New function.
2571         (move_sese_region_to_fn): Call verify_sese.
2572         * tree-cfg.h (verify_sese): Declare.
2573
2574 2014-11-25  Richard Biener  <rguenther@suse.de>
2575
2576         PR lto/64065
2577         * lto-streamer-out.c (output_struct_function_base): Stream
2578         last_clique field.
2579         * lto-streamer-in.c (input_struct_function_base): Likewise.
2580
2581 2014-11-25  Martin Liska  <mliska@suse.cz>
2582
2583         PR bootstrap/64050
2584         PR ipa/64060
2585         * sreal.c (sreal::operator+): Addition fixed.
2586         (sreal::signedless_plus): Negative numbers are
2587         handled correctly.
2588         (sreal::operator-): Subtraction is fixed.
2589         (sreal::signedless_minus): Negative numbers are
2590         handled correctly.
2591         * sreal.h (sreal::operator<): Equal negative numbers
2592         are compared correctly.
2593         (sreal::shift): New checking asserts are introduced.
2594         Operation is fixed.
2595
2596 2014-11-25  Richard Biener  <rguenther@suse.de>
2597
2598         PR tree-optimization/61927
2599         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2600         of group and pattern analysis to the one in GCC 4.8.
2601
2602 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
2603             Jakub Jelinek  <jakub@redhat.com>
2604
2605         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
2606         strlen, strncpy.
2607         * lto-wrapper.c (append_offload_options): Likewise.
2608
2609 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2610
2611         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
2612         load the static chain if the call was originally direct.
2613
2614 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
2615
2616         PR ipa/64059
2617         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
2618         devirtualization is disabled.
2619
2620 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2621
2622         PR target/63965
2623         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2624         Altivec & -16 mask if the type is not valid for Altivec registers.
2625         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2626         reg) that occurs during push_reload processing.
2627
2628         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2629         alternative for moving constant vectors which are easy altivec
2630         constants to GPRs.  Set the length attribute each of the
2631         alternatives.
2632
2633         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
2634         work in progress patch was committed instead of the fixes for
2635         63965.
2636         * config/rs6000/rs6000.c: Likewise.
2637
2638 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2639
2640         PR ipa/63671
2641         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
2642         and -fno-devirtualize more carefully.
2643         (can_remove_node_now_p): Update.
2644
2645 2014-11-24  Andrew Pinski  <apinski@cavium.com>
2646
2647         PR rtl-opt/63972
2648         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
2649
2650 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2651
2652         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
2653
2654 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2655
2656         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2657         Refactor by combining switch statements and make arrays into scalars.
2658
2659 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
2660
2661         PR c++/58561
2662         * dbxout.c: Include stringpool.h
2663         (dbxout_type) [default]: Ignore auto type.
2664
2665 2014-11-24  Richard Biener  <rguenther@suse.de>
2666
2667         PR tree-optimization/63679
2668         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
2669         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
2670         to properly leave off at -1.
2671         (fully_constant_vn_reference_p): Generalize folding from
2672         constant initializers.
2673         (vn_reference_lookup_3): When looking through aggregate copies
2674         handle offsetted reads and try simplifying the result to
2675         a constant.
2676         * gimple-fold.h (fold_ctor_reference): Export.
2677         * gimple-fold.c (fold_ctor_reference): Likewise.
2678
2679 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
2680
2681         * simplify-rtx.c (simplify_ternary_operation): Simplify
2682         vec_merge (vec_duplicate (vec_select)).
2683
2684 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2685
2686         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
2687         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
2688         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
2689
2690 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2691
2692         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
2693         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
2694         (cortexa57_tunings): Likewise.
2695         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
2696
2697 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2698
2699         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
2700         in the not conditional jump case.
2701         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2702         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2703
2704 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2705
2706         * config/aarch64/aarch64.c: Include tm-constrs.h
2707         (AARCH64_FUSE_ADRP_ADD): Define.
2708         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
2709         (cortexa53_tunings): Likewise.
2710         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
2711
2712 2014-11-24  Martin Liska  <mliska@suse.cz>
2713
2714         * ipa-inline.c (edge_badness): long is replaced by sreal
2715         as fibonacci_heap template type.
2716         (update_edge_key): Likewise.
2717         (inline_small_functions): Likewise.
2718
2719 2014-11-24  Martin Liska  <mliska@suse.cz>
2720
2721         * predict.c (propagate_freq): More elegant sreal API is used.
2722         (estimate_bb_frequencies): Precomputed constants replaced by integer
2723         constants.
2724         * sreal.c (sreal::normalize): New function.
2725         (sreal::to_int): Likewise.
2726         (sreal::operator+): Likewise.
2727         (sreal::operator-): Likewise.
2728         (sreal::signedless_plus): Likewise.
2729         (sreal::signedless_minus): Likewise.
2730         (sreal::operator/): Negative number support is added.
2731         * sreal.h: Definition of new functions added.
2732         (inline sreal operator<<): New function.
2733         (inline sreal operator>>): Likewise.
2734
2735 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2736
2737         * config/aarch64/aarch64-protos.h (struct tune_params): Add
2738         fuseable_ops field.
2739         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
2740         (cortexa53_tunings): Likewise.
2741         (cortexa57_tunings): Likewise.
2742         (thunderx_tunings): Likewise.
2743         (aarch64_macro_fusion_p): New function.
2744         (aarch_macro_fusion_pair_p): Likewise.
2745         (TARGET_SCHED_MACRO_FUSION_P): Define.
2746         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2747         (AARCH64_FUSE_MOV_MOVK): Likewise.
2748         (AARCH64_FUSE_NOTHING): Likewise.
2749
2750 2014-11-24  Martin Liska  <mliska@suse.cz>
2751
2752         PR lto/63968
2753         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
2754         with replace_key method.
2755         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
2756         (fibonacci_heap::replace_key_data): Likewise.
2757         (fibonacci_heap::replace_key): New method that can even increment key,
2758         this operation costs O(log N).
2759         (fibonacci_heap::extract_min): New argument.
2760         (fibonacci_heap::delete_node): Likewise.
2761
2762 2014-11-24  Richard Biener  <rguenther@suse.de>
2763
2764         PR tree-optimization/55334
2765         * function.h (struct function): Add last_clique member.
2766         * tree-inline.c (remap_dependence_clique): New function.
2767         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
2768         (copy_tree_body_r): Likewise.
2769         (copy_cfg_body): Free dependence map.
2770         (copy_gimple_seq_and_replace_locals): Likewise.
2771         * tree-pretty-print.c (dump_generic_node): Dump
2772         dependence info.
2773         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
2774         to answer alias query.
2775         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
2776         tree-pretty-print.h and gimple-walk.h.
2777         (struct variable_info): Add is_restrict_var flag and ruid
2778         member.
2779         (new_var_info): Initialize is_restrict_var.
2780         (make_constraint_from_restrict): Likewise.
2781         (create_variable_info_for): Exclude restricts from global vars
2782         from new handling.
2783         (intra_create_variable_infos): But not those from parameters.
2784         (visit_loadstore): New function.
2785         (maybe_set_dependence_info): Likewise.
2786         (compute_dependence_clique): Likewise.
2787         (compute_may_aliases): Call compute_dependence_clique.
2788         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
2789         to fake MEM_REF.
2790         (dr_may_alias_p): Use recorded dependence info to answer
2791         alias query.
2792         * tree-core.h (struct tree_base): Add clique, base struct in
2793         union.
2794         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
2795         (MR_DEPENDENCE_BASE): Likewise.
2796         * tree-inline.h (dependence_hasher): New hash-map kind.
2797         (struct copy_body_data): Add dependence_map pointer.
2798         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
2799         throwing away dependence info.
2800         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
2801         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
2802
2803 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
2804
2805         PR target/53976
2806         * config/sh/sh_optimize_sett_clrt.cc
2807         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2808         of void.  Abort at complex edges.
2809         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2810         returned false.
2811
2812 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
2813
2814         PR other/63694
2815         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
2816         declarations.
2817         * configure: Regenerated.
2818         * config.in: Regenerated.
2819
2820 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2821
2822         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
2823         clones as having abstract origin used.
2824         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
2825         origin check.
2826         (clone_inlined_nodes): Copy abstract originflag.
2827         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
2828         abstract origin node.
2829
2830 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
2831
2832         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
2833         * config/i386/i386.c (ix86_option_override_internal): Do not increase
2834         PARAM_MAX_COMPLETELY_PEELED_INSNS.
2835
2836 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2837
2838         PR target/63783
2839         PR target/51244
2840         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2841         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
2842         Adjust related comments throughout the file.
2843
2844 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2845
2846         PR target/63986
2847         PR target/51244
2848         * config/sh/sh.c (sh_is_logical_t_store_expr,
2849         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
2850         (sh_split_movrt_negc_to_movt_xor): New function.
2851         (sh_find_set_of_reg): Move to ...
2852         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
2853         to template function.
2854         (set_of_reg): Use rtx_insn* for insn member.
2855         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
2856         rtx_insn* for insn argument.
2857         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
2858         sequence using new sh_split_movrt_negc_to_movt_xor function.
2859         (movrt_xor): Allow also for SH2A.
2860         (*movt_movrt): Delete insns and splits.
2861
2862 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
2863
2864         PR tree-optimization/60770
2865         * tree-sra.c (clobber_subtree): New function.
2866         (sra_modify_constructor_assign): Call it.
2867
2868 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
2869
2870         PR target/63897
2871         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
2872         argument.
2873         (process_bb_lives): Rename dead_insn_p on remove_p
2874         and global_live_info_p on dead_insn_p.  Calculate local live info
2875         unconditionally.  Remove last argument in calls mark_regno_live and
2876         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
2877         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
2878         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
2879         flag of live info change.
2880         (lra_create_live_ranges): New.
2881
2882 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2883
2884         PR target/63848
2885         PR target/63975
2886         * internal-fn.c (expand_arith_overflow_result_store,
2887         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
2888         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
2889         adjust arguments to those functions.  Use unsignedp = true for
2890         EQ, NE, GEU, LEU, LTU and GTU comparisons.
2891
2892         PR tree-optimization/64006
2893         * tree-vrp.c (stmt_interesting_for_vrp): Return true
2894         for {ADD,SUB,MUL}_OVERFLOW internal calls.
2895         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
2896         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
2897         immediate uses would change their value ranges and return
2898         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
2899         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
2900         interesting for vrp.
2901
2902 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2903
2904         PR target/63965
2905         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2906         Altivec & -16 mask if the type is not valid for Altivec registers.
2907         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2908         reg) that occurs during push_reload processing.
2909
2910         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2911         alternative for moving constant vectors which are easy altivec
2912         constants to GPRs.  Set the length attribute each of the
2913         alternatives.
2914
2915 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
2916
2917         * configure.ac: When checking for MIPS .module support ensure that
2918         o32 FPXX is supported to avoid a second configure check.
2919         * configure: Regenerate.
2920
2921 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
2922
2923         * config/aarch64/iterators.md (VS): New mode iterator.
2924         (vsi2qi): New mode attribute.
2925         (VSI2QI): Likewise.
2926         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
2927         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
2928         * config/aarch64/aarch64-builtins.c
2929         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
2930
2931 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
2932
2933         PR bootstrap/63784
2934         * configure: Regenerated.
2935
2936 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2937
2938         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
2939
2940 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2941
2942         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
2943         OPTION_MASK_ISA_PCOMMIT_SET): New.
2944         (ix86_handle_option): Handle OPT_mpcommit.
2945         * config.gcc: Add pcommitintrin.h
2946         * config/i386/pcommitintrin.h: New file.
2947         * config/i386/cpuid.h (bit_PCOMMIT): Define.
2948         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
2949         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2950         __PCOMMIT__.
2951         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
2952         (PTA_PCOMMIT): Define.
2953         (ix86_option_override_internal): Handle new option.
2954         (ix86_valid_target_attribute_inner_p): Add pcommit.
2955         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
2956         (bdesc_special_args): Add __builtin_ia32_pcommit.
2957         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
2958         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
2959         (pcommit): New instruction.
2960         * config/i386/i386.opt: Add mpcommit.
2961         * config/i386/x86intrin.h: Include pcommitintrin.h.
2962
2963 2014-11-20  Mark Wielaard  <mjw@redhat.com>
2964
2965         PR debug/38757
2966         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
2967         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
2968         (darwin_override_options): Likewise.
2969         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
2970         Likewise.
2971         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2972         Likewise.
2973         * dbxout.c (get_lang_number): Likewise.
2974         (dbxout_type): Likewise.
2975         (dbxout_symbol_location): Likewise.
2976         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
2977         also for DW_LANG_{C,C99,ObjC}.
2978         (highest_c_language): New function.
2979         (gen_compile_unit_die): Call highest_c_language to merge LTO
2980         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
2981         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
2982         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
2983         * langhooks.h (struct lang_hooks): Add version comment to name.
2984         (lang_GNU_C): New function declaration.
2985         (lang_GNU_CXX): Likewise.
2986         * langhooks.c (lang_GNU_C): New function.
2987         (lang_GNU_CXX): Likewise.
2988         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
2989
2990 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2991
2992         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
2993         OPTION_MASK_ISA_CLWB_SET): New.
2994         (ix86_handle_option): Handle OPT_mclwb.
2995         * config.gcc: Add clwbintrin.h.
2996         * config/i386/clwbintrin.h: New file.
2997         * config/i386/cpuid.h (bit_CLWB): Define.
2998         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
2999         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3000         __CLWB__.
3001         * config/i386/i386.c (ix86_target_string): Add -mclwb.
3002         (PTA_CLWB): Define.
3003         (ix86_option_override_internal): Handle new option.
3004         (ix86_valid_target_attribute_inner_p): Add clwb.
3005         (ix86_builtins): Add IX86_BUILTIN_CLWB.
3006         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
3007         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
3008         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
3009         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
3010         (clwb): New instruction.
3011         * config/i386/i386.opt: Add mclwb.
3012         * config/i386/x86intrin.h: Include clwbintrin.h.
3013
3014 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3015
3016         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
3017         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
3018         (ix86_handle_option): Handle OPT_mavx512vbmi.
3019         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
3020         * config/i386/avx512vbmiintrin.h: New file.
3021         * config/i386/avx512vbmivlintrin.h: Ditto.
3022         * config/i386/cpuid.h (bit_AVX512VBMI): New.
3023         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
3024         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3025         __AVX512VBMI__.
3026         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
3027         (PTA_AVX512VBMI): Define.
3028         (ix86_option_override_internal): Handle new options.
3029         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
3030         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
3031         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
3032         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
3033         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
3034         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
3035         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
3036         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
3037         IX86_BUILTIN_VPERMI2VARQI128.
3038         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
3039         __builtin_ia32_vpmultishiftqb256_mask,
3040         __builtin_ia32_vpmultishiftqb128_mask,
3041         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
3042         __builtin_ia32_vpermt2varqi512_maskz,
3043         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
3044         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
3045         __builtin_ia32_vpermt2varqi256_maskz,
3046         __builtin_ia32_vpermt2varqi128_mask,
3047         __builtin_ia32_vpermt2varqi128_maskz,
3048         __builtin_ia32_vpermi2varqi256_mask,
3049         __builtin_ia32_vpermi2varqi128_mask.
3050         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
3051         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
3052         * config/i386/i386.opt: Add mavx512vbmi.
3053         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
3054         avx512vbmivlintrin.h.
3055         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
3056         (VI1_AVX512VL): New iterator.
3057         (<avx512>_permvar<mode><mask_name>): Use it.
3058         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
3059         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
3060         (<avx512>_vpermi2var<mode>3_mask): Ditto.
3061         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
3062         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
3063         (<avx512>_vpermt2var<mode>3_mask): Ditto.
3064         (vpmultishiftqb<mode><mask_name>): Ditto.
3065
3066 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3067
3068         PR rtl-optimization/63952
3069         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
3070         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
3071         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
3072
3073 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3074
3075         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
3076         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
3077         (ix86_handle_option): Handle OPT_mavx512ifma.
3078         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
3079         * config/i386/avx512ifmaintrin.h: New file.
3080         * config/i386/avx512ifmaivlntrin.h: Ditto.
3081         * config/i386/cpuid.h (bit_AVX512IFMA): New.
3082         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3083         avx512ifma.
3084         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3085         __AVX512IFMA__.
3086         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
3087         (PTA_AVX512IFMA): Define.
3088         (ix86_option_override_internal): Handle new options.
3089         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
3090         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
3091         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
3092         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
3093         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
3094         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
3095         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
3096         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
3097         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
3098         __builtin_ia32_vpmadd52luq512_maskz,
3099         __builtin_ia32_vpmadd52huq512_mask,
3100         __builtin_ia32_vpmadd52huq512_maskx,
3101         __builtin_ia32_vpmadd52luq256_mask,
3102         __builtin_ia32_vpmadd52luq256_maskz,
3103         __builtin_ia32_vpmadd52huq256_mask,
3104         __builtin_ia32_vpmadd52huq256_maskz,
3105         __builtin_ia32_vpmadd52luq128_mask,
3106         __builtin_ia32_vpmadd52luq128_maskz,
3107         __builtin_ia32_vpmadd52huq128_mask,
3108         __builtin_ia32_vpmadd52huq128_maskz,
3109         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
3110         * config/i386/i386.opt: Add mavx512ifma.
3111         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
3112         avx512ifmavlintrin.h.
3113         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
3114         UNSPEC_VPMADD52HUQ.
3115         (VPMADD52): New iterator.
3116         (vpmadd52type): New attribute.
3117         (vpamdd52huq<mode>_maskz): New.
3118         (vpamdd52luq<mode>_maskz): Ditto.
3119         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
3120         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
3121
3122 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
3123
3124         Revert:
3125         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
3126         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
3127
3128 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
3129
3130         * config/mips/mips.c (mips_process_sync_loop): Place a 
3131         nop in the delay slot of the branch likely instruction.
3132         (mips_output_sync_loop): Ensure mips_branch_likely is 
3133         set before calling mips_output_sync_loop.
3134         (mips_sync_loop_insns): Likewise.
3135
3136 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3137
3138         PR/target 63673
3139         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
3140         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
3141         double.
3142
3143 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
3144
3145         Forward-port from 2014-10-30 4_9-branch r216934
3146
3147         PR target/63633
3148         * config/avr/avr-protos.h (regmask): New inline function.
3149         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
3150         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
3151         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
3152         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
3153         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
3154         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
3155         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
3156         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
3157         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
3158         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
3159         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
3160         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
3161         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
3162         needed.
3163
3164 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3165
3166         PR target/61137
3167         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
3168         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
3169
3170 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
3171
3172         * config/aarch64/aarch64-simd.md
3173         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
3174         output mnemonic and operands.
3175         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
3176         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
3177
3178 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3179
3180         * config/i386/i386.c (ix86_option_override_internal): Increase
3181         PARAM_MAX_COMPLETELY_PEELED_INSNS.
3182
3183 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3184
3185         PR target/60451
3186         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
3187         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
3188         replace for V16QI, V16HI and V32QI modes.
3189         (ix86_expand_vec_perm_const_1): Add new expand.
3190
3191 2014-11-21  Nick Clifton  <nickc@redhat.com>
3192
3193         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
3194         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
3195         (rl78_expand_prologue): Save the ES register in interrupt handlers
3196         that use it.
3197         (rl78_expand_epilogue): Restore the ES register if necessary.
3198         (rl78_start_function): Mention if the function uses the ES
3199         register.
3200         (rl78_lo16): Record the use of the ES register.
3201         (transcode_memory_rtx): Likewise.
3202
3203 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3204
3205         PR tree-optimization/61773
3206         * tree-ssa-strlen.c (get_string_length): Don't assert
3207         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
3208
3209         PR target/63910
3210         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
3211         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
3212         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
3213
3214 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
3215
3216         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
3217         HOST_WIDE_INT_M1U instead of ~0.
3218         (includes_rldicr_lshift_p): Likewise.
3219
3220 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3221
3222         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
3223         we need to look into its operand to determine if it is a valid
3224         address.
3225
3226 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3227
3228         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
3229         vaarg_p argument and create correct CFI info.
3230         (nds32_expand_prologue): Pass true or false to
3231         nds32_emit_stack_push_multiple function.
3232
3233 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3234
3235         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
3236         as RTX_FRAME_RELATED_P rtx.
3237
3238 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3239
3240         * config/nds32/nds32.opt (march): Add help message.
3241
3242 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
3243
3244         * tree-vrp.c (test_for_singularity): New parameter
3245         strict_overflow_p.  Set *strict_overflow_p to true if signed
3246         overflow must be undefined for the return value to satisfy the
3247         conditional.
3248         (simplify_cond_using_ranges): Don't perform the simplification
3249         if it violates overflow rules.
3250
3251 2014-11-20  Marek Polacek  <polacek@redhat.com>
3252
3253         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
3254
3255 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
3256
3257         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3258         condition would be removed due to undefined behaviour.
3259
3260 2014-11-20  Andrew Pinski  <apinski@cavium.com>
3261
3262         PR ipa/63981
3263         PR ipa/63982
3264         * ipa-polymorphic-call.c (possible_placement_new):
3265         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
3266         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
3267         (extr_type_from_vtbl_ptr_store): Likewise.
3268
3269 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
3270
3271         * config/rs6000/constraints.md: Avoid signed integer overflows.
3272         * config/rs6000/predicates.md: Likewise.
3273         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
3274         (includes_rldic_lshift_p): Likewise.
3275         (includes_rldicr_lshift_p): Likewise. 
3276         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
3277         * loop-iv.c (determine_max_iter): Likewise.
3278         (iv_number_of_iterations): Likewise.
3279         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
3280         * varasm.c (get_section_anchor): Likewise.
3281
3282 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
3283
3284         PR target/63870
3285         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
3286         expression to aarch64_simd_lane_bounds.
3287         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
3288         prototype.
3289         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
3290         call to aarch64_simd_lane_bounds.
3291         (aarch64_get_lanedi): Likewise.
3292         (aarch64_ld2_lane<mode>): Likewise.
3293         (aarch64_ld3_lane<mode>): Likewise.
3294         (aarch64_ld4_lane<mode>): Likewise.
3295         (aarch64_im_lane_boundsi): Likewise.
3296         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
3297         parameter. Report calling function in error message if exp is non-NULL.
3298
3299 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3300
3301         PR target/60111
3302         * config/sh/sh.c: Use signed char for signed field.
3303
3304 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3305
3306         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
3307         hash_table.
3308
3309 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3310
3311         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
3312         tree-scalar-evolution.c: Replace htab with hash_table.
3313
3314 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3315
3316         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
3317         (lto_free_function_in_decl_state): Likewise.
3318         * lto-streamer-out.c (copy_function_or_variable): Likewise.
3319         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
3320         (lto_file_decl_data_num_ ## name ## s): Likewise.
3321         (struct lto_tree_ref_table): Remove.
3322         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
3323
3324 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3325
3326         * hash-map.h (hash_map::iterator): New class.
3327         (hash_map::begin): New method.
3328         (hash_map::end): Likewise.
3329         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3330         replace splay_tree with hash_map.
3331
3332 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3333
3334         * hash-table.h (hash_table::hash_table): Call alloc_entries.
3335         (hash_table::alloc_entries): new method.
3336         (hash_table::expand): Call alloc_entries.
3337         (hash_table::empty): Likewise.
3338
3339 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3340
3341         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3342         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3343
3344 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3345
3346         * doc/gty.texi: Document the new cache gty attribute.
3347         * gengtype.c (finish_cache_funcs): New function.
3348         (write_roots): Call gt_clear_cache on global variables with the cache
3349         gty attribute.
3350         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3351         * ggc.h (gt_clear_caches): New declaration.
3352         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3353         memory.
3354         (gt_cleare_cache): New function.
3355         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3356
3357 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3358
3359         * combine.c (try_combine): Prefer to delete dead SETs inside
3360         a PARALLEL over keeping them.
3361
3362 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3363
3364         * combine.c (combine_validate_cost): Always print the insn costs
3365         to the dump file.
3366
3367 2014-11-20  Richard Henderson <rth@redhat.com>
3368
3369         PR target/63977
3370         * config/i386/i386.c (ix86_static_chain): Reinstate the check
3371         for DECL_STATIC_CHAIN.
3372
3373 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
3374
3375         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3376         Fixup prototype.
3377         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3378         aarch64_cannot_force_const_mem, aarch64_classify_address,
3379         aarch64_classify_symbolic_expression): Fixup call to
3380         aarch64_classify_symbol.
3381         (aarch64_classify_symbol): Add range-checking for
3382         symbol + offset addressing for tiny and small models.
3383
3384 2014-11-20  Richard Biener  <rguenther@suse.de>
3385
3386         PR middle-end/63962
3387         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3388         Guard with single-use operand 0.
3389
3390 2014-11-20   Richard Biener  <rguenther@suse.de>
3391
3392         PR tree-optimization/63677
3393         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3394         (avail_exprs_stack): Make a vector of pairs.
3395         (struct hash_expr_elt): Replace stmt member with vop member.
3396         (expr_elt_hasher::equal): Simplify.
3397         (initialize_hash_element): Adjust.
3398         (initialize_hash_element_from_expr): Likewise.
3399         (dom_opt_dom_walker::thread_across_edge): Likewise.
3400         (record_cond): Likewise.
3401         (dom_opt_dom_walker::before_dom_children): Likewise.
3402         (print_expr_hash_elt): Likewise.
3403         (remove_local_expressions_from_table): Restore previous state
3404         if requested.
3405         (record_equivalences_from_stmt): Record &x + CST as constant
3406         &MEM[&x, CST] for further propagation.
3407         (vuse_eq): New function.
3408         (lookup_avail_expr): For loads use the alias oracle to see
3409         whether a candidate from the expr hash is usable.
3410         (avail_expr_hash): Do not hash VUSEs.
3411
3412 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3413
3414         PR target/59593
3415         * config/arm/arm.md (*movhi_insn): Use right formatting
3416         for immediate.
3417
3418 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
3419
3420         PR sanitizer/63845
3421         * function.c (assign_parms): Move init of pic_offset_table_rtx
3422         from here to...
3423         * cfgexpand.c (expand_used_vars): ...here.
3424
3425 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3426
3427         * tree.c (free_lang_data_in_type): If BINFO has no important
3428         information in it, set it to NULL.
3429         (get_binfo_at_offset): Do not walk fields, only bases.
3430         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
3431         to be NULL.
3432         * ipa-polymorphic-call.c (record_known_type): Likewise.
3433
3434 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3435
3436         PR jit/63854
3437         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
3438         congruence_class_group *.
3439
3440 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
3441
3442         PR target/63947
3443         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
3444         Output "b" and "nb" suffix for FP mode.
3445
3446 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3447
3448         PR bootstrap/63963
3449         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
3450         DECL_FUNCTION_SPECIFIC_TARGET
3451         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
3452         DECL_FUNCTION_SPECIFIC_TARGET.
3453
3454 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3455
3456         PR jit/63854
3457         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
3458
3459 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3460
3461         PR jit/63854
3462         * lra.c (lra): After creating live ranges in preparation for call
3463         to lra_inheritance, set live_p to true.
3464
3465 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3466
3467         PR jit/63854
3468         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
3469         "path", delete it.
3470         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
3471
3472 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3473
3474         PR jit/63854
3475         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
3476         vec<> to auto_vec<> to fix a leak.
3477
3478 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3479
3480         PR jit/63854
3481         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
3482
3483 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3484
3485         PR jit/63854
3486         * ira-costs.c (ira_costs_c_finalize): New function.
3487         * ira.h (ira_costs_c_finalize): New prototype.
3488         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
3489
3490 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3491
3492         PR jit/63854
3493         * ipa-reference.c (ipa_reference_c_finalize): Release
3494         optimization_summary_obstack.
3495
3496 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3497
3498         PR jit/63854
3499         * toplev.c (toplev::finalize): Free opts_obstack.
3500
3501 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3502
3503         PR jit/63854
3504         * toplev.c (toplev::finalize): Clean up save_decoded_options.
3505
3506 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3507
3508         PR jit/63854
3509         * bb-reorder.c
3510         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
3511         local bbs_in_hot_partition from vec<> to auto_vec<>.
3512
3513 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3514
3515         PR jit/63854
3516         * config/alpha/alpha.c (alpha_option_override): Remove static from
3517         "handle_trap_shadows_info" and "align_insns_info".
3518         * config/i386/i386.c (ix86_option_override): Likewise for
3519         "insert_vzeroupper_info".
3520         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
3521         "rl78_devirt_info" and "rl78_move_elim_info".
3522         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
3523         "analyze_swaps_info".
3524         * context.c (gcc::context::~context): New.
3525         * context.h (gcc::context::~context): New.
3526         * dumpfile.c (dump_files): Add "false" initializers for new field
3527         "owns_strings".
3528         (gcc::dump_manager::~dump_manager): New.
3529         (gcc::dump_manager::dump_register): Add param "take_ownership".
3530         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
3531         (gcc::dump_manager::~dump_manager): New.
3532         (gcc::dump_manager::dump_register): Add param "take_ownership".
3533         * pass_manager.h (gcc::pass_manager::operator delete): New.
3534         (gcc::pass_manager::~pass_manager): New.
3535         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
3536         new "owns_strings" argument to dump_register.
3537         (pass_manager::operator delete): New.
3538         (delete_pass_tree): New function.
3539         (pass_manager::~pass_manager): New.
3540         * statistics.c (statistics_early_init): Pass "false" to
3541         new "owns_strings" argument to dump_register.
3542         * toplev.c (toplev::finalize): Clean up the context and thus the
3543         things it owns.
3544
3545 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3546
3547         PR jit/63854
3548         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
3549         obstack_free when cleaning up valid_mode_changes_obstack.
3550
3551 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3552
3553         PR jit/63854
3554         * opts.c (finalize_options_struct): New.
3555         * opts.h (finalize_options_struct): New.
3556         * toplev.c (toplev::finalize): Call finalize_options_struct
3557         on global_options and global_options_set.
3558
3559 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3560             Jakub Jelinek  <jakub@redhat.com>
3561
3562         PR driver/36312
3563         PR driver/63837
3564         * gcc.c (process_command): Don't check for input/output
3565         filename equality if output is HOST_BIT_BUCKET.
3566         * toplev.c (init_asm_output): Likewise.
3567
3568 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3569
3570         Merger of git branch "gimple-classes-v2-option-3".
3571
3572         * ChangeLog.gimple-classes: New.
3573
3574         * coretypes.h (struct gcond): Add forward decl.
3575         (struct gdebug): Likewise.
3576         (struct ggoto): Likewise.
3577         (struct glabel): Likewise.
3578         (struct gswitch): Likewise.
3579         (struct gassign): Likewise.
3580         (struct gasm): Likewise.
3581         (struct gcall): Likewise.
3582         (struct gtransaction): Likewise.
3583         (struct greturn): Likewise.
3584         (struct gbind): Likewise.
3585         (struct gcatch): Likewise.
3586         (struct geh_filter): Likewise.
3587         (struct geh_mnt): Likewise.
3588         (struct geh_else): Likewise.
3589         (struct gresx): Likewise.
3590         (struct geh_dispatch): Likewise.
3591         (struct gphi): Likewise.
3592         (struct gtry): Likewise.
3593         (struct gomp_atomic_load): Likewise.
3594         (struct gomp_atomic_store): Likewise.
3595         (struct gomp_continue): Likewise.
3596         (struct gomp_critical): Likewise.
3597         (struct gomp_for): Likewise.
3598         (struct gomp_parallel): Likewise.
3599         (struct gomp_task): Likewise.
3600         (struct gomp_sections): Likewise.
3601         (struct gomp_single): Likewise.
3602         (struct gomp_target): Likewise.
3603         (struct gomp_teams): Likewise.
3604
3605         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
3606         for renaming of gimple subclasses.
3607
3608         * gdbhooks.py: Update.
3609
3610         * gimple-iterator.c (gsi_for_phi): New.
3611         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3612         to gphi_iterator.
3613         * gimple-iterator.h (struct gphi_iterator): New subclass of
3614         gimple_stmt_iterator.
3615         (gsi_for_phi): New prototype.
3616         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3617         to gphi_iterator.
3618         (gsi_next_nonvirtual_phi): Strengthen param from
3619         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
3620         gimple to gphi *.
3621
3622         * gsstruct.def: Update for renamings of classes.
3623
3624         * gimple.c (gimple_build_return): Strengthen return type from
3625         gimple to greturn *.
3626         (gimple_call_reset_alias_info): Strengthen param to gcall *.
3627         (gimple_build_call_1): Strengthen return type from gimple to
3628         gcall *.
3629         (gimple_build_call_vec): Likewise.
3630         (gimple_build_call): Likewise.
3631         (gimple_build_call_valist): Likewise.
3632         (gimple_build_call_internal_1): Likewise.
3633         (gimple_build_call_internal): Likewise.
3634         (gimple_build_call_internal_vec): Likewise.
3635         (gimple_build_call_from_tree): Likewise.
3636         (gimple_build_assign_stat): Strengthen return type from gimple to
3637         gassign *.
3638         (gimple_build_assign_with_ops): Likewise.
3639         (gimple_build_assign_with_ops): Likewise.
3640         (gimple_build_cond): Strengthen return type from gimple to
3641         gcond *.
3642         (gimple_build_cond_from_tree): Likewise.
3643         (gimple_cond_set_condition_from_tree): Require a gcond *.
3644         (gimple_build_label): Strengthen return type from gimple to
3645         glabel *.
3646         (gimple_build_goto): Strengthen return type from gimple to
3647         ggoto *.
3648         (gimple_build_bind): Strengthen return type from gimple to
3649         gbind *.
3650         (gimple_build_asm_1): Strengthen return type from gimple to
3651         gasm *.
3652         (gimple_build_asm_vec): Likewise.
3653         (gimple_build_catch): Strengthen return type from gimple to
3654         gcatch *.
3655         (gimple_build_eh_filter): Strengthen return type from gimple to
3656         geh_filter *.
3657         (gimple_build_eh_must_not_throw): Strengthen return type from
3658         gimple to geh_mnt *.
3659         (gimple_build_eh_else): Strengthen return type from gimple to
3660         geh_else *.
3661         (gimple_build_try): Update for renaming of gimple_statement_try to
3662         gtry.
3663         (gimple_build_resx): Strengthen return type from gimple to
3664         gresx *.
3665         (gimple_build_switch_nlabels): Strengthen return type from gimple
3666         to gswitch *.
3667         (gimple_build_switch): Likewise.
3668         (gimple_build_eh_dispatch): Strengthen return type from gimple to
3669         geh_dispatch *.
3670         (gimple_build_debug_bind_stat): Strengthen return type from gimple
3671         to gdebug *.
3672         (gimple_build_debug_source_bind_stat): Strengthen return type from
3673         gimple to gdebug *.
3674         (gimple_build_omp_critical): Strengthen return type from gimple to
3675         gomp_critical *.
3676         (gimple_build_omp_for): Strengthen return type from gimple to
3677         gomp_for *.
3678         (gimple_build_omp_parallel): Strengthen return type from gimple to
3679         gomp_parallel *.
3680         (gimple_build_omp_task): Strengthen return type from gimple to
3681         gomp_task *.
3682         (gimple_build_omp_continue): Strengthen return type from gimple to
3683         gomp_continue *.
3684         (gimple_build_omp_sections): Strengthen return type from gimple to
3685         gomp_sections *.
3686         (gimple_build_omp_single): Strengthen return type from gimple to
3687         gomp_single *.
3688         (gimple_build_omp_target): Strengthen return type from gimple to
3689         gomp_target *.
3690         (gimple_build_omp_teams): Strengthen return type from gimple to
3691         gomp_teams *.
3692         (gimple_build_omp_atomic_load): Strengthen return type from gimple
3693         to gomp_atomic_load *.
3694         (gimple_build_omp_atomic_store): Strengthen return type from gimple
3695         to gomp_atomic_store *.
3696         (gimple_build_transaction): Strengthen return type from gimple
3697         to gtransaction *.
3698         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
3699         (gimple_call_fnspec): Require a const gcall *.
3700         (gimple_call_arg_flags): Likewise.
3701         (gimple_call_return_flags): Likewise.
3702         (gimple_set_bb): Add a checked cast.
3703         (gimple_copy): Within the cases, add locals of the appropriate
3704         subclass and use in place of "stmt" and "copy" for typesafety.
3705         (gimple_has_side_effects): Add a checked cast.
3706         (gimple_could_trap_p_1): Likewise.
3707         (gimple_call_copy_skip_args): Require a gcall *, and return one.
3708         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3709         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
3710         dyn_cast, introducing local "return_stmt" and using ti in place
3711         of "stmt".
3712
3713         * gimple.h (gimple_vec): Eliminate this typedef.
3714         (struct gimple_statement_call): Rename to...
3715         (struct gcall): ...this.
3716         (struct gimple_statement_bind): Rename to...
3717         (struct gbind): ...this.
3718         (struct gimple_statement_catch): Rename to...
3719         (struct gcatch): ...this.
3720         (struct gimple_statement_eh_filter): Rename to...
3721         (struct geh_filter): ...this.
3722         (struct gimple_statement_eh_else): Rename to...
3723         (struct geh_else): ...this.
3724         (struct gimple_statement_eh_mnt): Rename to...
3725         (struct geh_mnt): ...this.
3726         (struct gimple_statement_phi): Rename to...
3727         (struct gphi): ...this.
3728         (struct gimple_statement_resx): Rename to...
3729         (struct gresx): ...this.
3730         (struct gimple_statement_eh_dispatch): Rename to...
3731         (struct geh_dispatch): ...this.
3732         (struct gimple_statement_try): Rename to...
3733         (struct gtry): ...this.
3734         (struct gimple_statement_asm): Rename to...
3735         (struct gasm): ...this.
3736         (struct gimple_statement_omp_critical): Rename to...
3737         (struct gomp_critical): ...this.
3738         (struct gimple_statement_omp_for): Rename to...
3739         (struct gomp_for): ...this.
3740         (struct gimple_statement_omp_parallel): Rename to...
3741         (struct gomp_parallel): ...this.
3742         (struct gimple_statement_omp_target): Rename to...
3743         (struct gomp_target): ...this.
3744         (struct gimple_statement_omp_task): Rename to...
3745         (struct gomp_task): ...this.
3746         (struct gimple_statement_omp_sections): Rename to...
3747         (struct gomp_sections): ...this.
3748         (struct gimple_statement_omp_continue): Rename to...
3749         (struct gomp_continue): ...this.
3750         (struct gimple_statement_omp_single): Rename to...
3751         (struct gomp_single): ...this.
3752         (struct gimple_statement_omp_teams): Rename to...
3753         (struct gomp_teams): ...this.
3754         (struct gimple_statement_omp_atomic_load): Rename to...
3755         (struct gomp_atomic_load): ...this.
3756         (struct gimple_statement_omp_atomic_store :): Rename to...
3757         (struct gomp_atomic_store :): ...this.
3758         (struct gimple_statement_transaction): Rename to...
3759         (struct gtransaction): ...this.
3760         (struct gcond): New subclass.
3761         (struct gdebug): New subclass.
3762         (struct ggoto): New subclass.
3763         (struct glabel): New subclass.
3764         (struct gswitch): New subclass.
3765         (struct gassign): New subclass.
3766         (struct greturn): New subclass.
3767         (is_a_helper <gimple_statement_asm *>::test): Rename to...
3768         (is_a_helper <gasm *>::test): ...this.
3769         (is_a_helper <gimple_statement_bind *>::test): Rename to...
3770         (is_a_helper <gbind *>::test): ...this.
3771         (is_a_helper <gassign *>::test): New.
3772         (is_a_helper <gimple_statement_call *>::test): Rename to...
3773         (is_a_helper <gcall *>::test): ...this.
3774         (is_a_helper <gimple_statement_catch *>::test): Rename to...
3775         (is_a_helper <gcatch *>::test): ...this.
3776         (is_a_helper <gimple_statement_resx *>::test): Rename to...
3777         (is_a_helper <gresx *>::test): ...this.
3778         (is_a_helper <gcond *>::test): New.
3779         (is_a_helper <gdebug *>::test): New.
3780         (is_a_helper <ggoto *>::test): New.
3781         (is_a_helper <glabel *>::test): New.
3782         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
3783         (is_a_helper <geh_dispatch *>::test): ...this.
3784         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
3785         (is_a_helper <geh_else *>::test): ...this.
3786         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
3787         (is_a_helper <geh_filter *>::test): ...this.
3788         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
3789         (is_a_helper <geh_mnt *>::test): ...this.
3790         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
3791         (is_a_helper <gomp_atomic_load *>::test): ...this.
3792         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
3793         (is_a_helper <gomp_atomic_store *>::test): ...this.
3794         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
3795         (is_a_helper <gomp_continue *>::test): ...this.
3796         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
3797         (is_a_helper <gomp_critical *>::test): ...this.
3798         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
3799         (is_a_helper <gomp_for *>::test): ...this.
3800         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
3801         (is_a_helper <gomp_parallel *>::test): ...this.
3802         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
3803         (is_a_helper <gomp_target *>::test): ...this.
3804         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
3805         (is_a_helper <gomp_sections *>::test): ...this.
3806         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
3807         (is_a_helper <gomp_single *>::test): ...this.
3808         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
3809         (is_a_helper <gomp_teams *>::test): ...this.
3810         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
3811         (is_a_helper <gomp_task *>::test): ...this.
3812         (is_a_helper <gimple_statement_phi *>::test): Rename to...
3813         (is_a_helper <gphi *>::test): ...this.
3814         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
3815         (is_a_helper <gtransaction *>::test): ...this.
3816         (is_a_helper <greturn *>::test): New.
3817         (is_a_helper <gswitch *>::test): New.
3818         (is_a_helper <gimple_statement_try *>::test): Rename to...
3819         (is_a_helper <gtry *>::test): ...this.
3820         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
3821         (is_a_helper <const gasm *>::test): ...this.
3822         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
3823         (is_a_helper <const gbind *>::test): ...this.
3824         (is_a_helper <const gimple_statement_call *>::test): Rename to...
3825         (is_a_helper <const gcall *>::test): ...this.
3826         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
3827         (is_a_helper <const gcatch *>::test): ...this.
3828         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
3829         (is_a_helper <const gresx *>::test): ...this.
3830         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
3831         (is_a_helper <const geh_dispatch *>::test): ...this.
3832         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
3833         (is_a_helper <const geh_filter *>::test): ...this.
3834         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
3835         Rename to...
3836         (is_a_helper <const gomp_atomic_load *>::test): ...this.
3837         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
3838         Rename to...
3839         (is_a_helper <const gomp_atomic_store *>::test): ...this.
3840         (is_a_helper <const gimple_statement_omp_continue *>::test):
3841         Rename to...
3842         (is_a_helper <const gomp_continue *>::test): ...this.
3843         (is_a_helper <const gimple_statement_omp_critical *>::test):
3844         Rename to...
3845         (is_a_helper <const gomp_critical *>::test): ...this.
3846         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
3847         (is_a_helper <const gomp_for *>::test): ...this.
3848         (is_a_helper <const gimple_statement_omp_parallel *>::test):
3849         Rename to...
3850         (is_a_helper <const gomp_parallel *>::test): ...this.
3851         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
3852         (is_a_helper <const gomp_target *>::test): ...this.
3853         (is_a_helper <const gimple_statement_omp_sections *>::test):
3854         Rename to...
3855         (is_a_helper <const gomp_sections *>::test): ...this.
3856         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
3857         (is_a_helper <const gomp_single *>::test): ...this.
3858         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
3859         (is_a_helper <const gomp_teams *>::test): ...this.
3860         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
3861         (is_a_helper <const gomp_task *>::test): ...this.
3862         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
3863         (is_a_helper <const gphi *>::test): ...this.
3864         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
3865         (is_a_helper <const gtransaction *>::test): ...this.
3866         (gimple_build_return): Strengthen return type to greturn *.
3867         (gimple_call_reset_alias_info): Require a gcall *.
3868         (gimple_build_call_vec): Return a gcall *.
3869         (gimple_build_call): Likewise.
3870         (gimple_build_call_valist): Likewise.
3871         (gimple_build_call_internal): Likewise.
3872         (gimple_build_call_internal_vec): Likewise.
3873         (gimple_build_call_from_tree): Likewise.
3874         (gimple_build_assign_stat): Return a gassign *.
3875         (gimple_build_assign_with_ops): Likewise.
3876         (gimple_build_cond): Return a gcond *.
3877         (gimple_build_cond_from_tree): Likewise.
3878         (gimple_cond_set_condition_from_tree): Require a gcond *.
3879         (gimple_build_label): Return a glabel *.
3880         (gimple_build_goto): Return a ggoto *.
3881         (gimple_build_bind): Return a gbind *.
3882         (gimple_build_asm_vec): Return a gasm *.
3883         (gimple_build_catch): Return a gcatch *.
3884         (gimple_build_eh_filter): Return a geh_filter *.
3885         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
3886         (gimple_build_eh_else): Return a geh_else *.
3887         (gimple_build_try): Return a gtry *.
3888         (gimple_build_resx): Return a gresx *.
3889         (gimple_build_switch_nlabels): Return a gswitch *.
3890         (gimple_build_switch): Return a gswitch *.
3891         (gimple_build_eh_dispatch): Return a geh_dispatch *.
3892         (gimple_build_debug_bind_stat): Return a gdebug *.
3893         (gimple_build_debug_source_bind_stat): Return a gdebug *.
3894         (gimple_build_omp_critical): Return a gomp_critical *.
3895         (gimple_build_omp_for): Return a gomp_for *.
3896         (gimple_build_omp_parallel): Return a gomp_parallel *.
3897         (gimple_build_omp_task): Return a gomp_task *.
3898         (gimple_build_omp_continue): Return a gomp_continue *.
3899         (gimple_build_omp_sections): Return a gomp_sections *.
3900         (gimple_build_omp_single): Return a gomp_single *.
3901         (gimple_build_omp_target): Return a gomp_target *.
3902         (gimple_build_omp_teams): Return a gomp_teams *.
3903         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
3904         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
3905         (gimple_build_transaction): Return a gtransaction *.
3906         (gimple_call_arg_flags): Require a const gcall *.
3907         (gimple_call_return_flags): Likewise.
3908         (gimple_call_copy_skip_args): Require and return a gcall *.
3909         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3910         (gimple_seq_first_stmt_as_a_bind): New.
3911         (gimple_assign_nontemporal_move_p): Require a const gassign *
3912         rather than a const_gimple.
3913         (gimple_call_internal_fn): Update for renaming to gcall.
3914         (gimple_call_fntype): Likewise.
3915         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
3916         (gimple_call_set_fn): Likewise.
3917         (gimple_call_set_internal_fn): Likewise.
3918         (gimple_call_set_chain): Likewise.
3919         (gimple_call_set_tail): Likewise.
3920         (gimple_call_tail_p): Likewise.
3921         (gimple_call_set_return_slot_opt): Likewise.
3922         (gimple_call_return_slot_opt_p): Likewise.
3923         (gimple_call_set_from_thunk): Likewise.
3924         (gimple_call_from_thunk_p): Likewise.
3925         (gimple_call_set_va_arg_pack): Likewise.
3926         (gimple_call_va_arg_pack_p): Likewise.
3927         (gimple_call_set_nothrow): Likewise.
3928         (gimple_call_nothrow_p): Likewise.
3929         (gimple_call_set_alloca_for_var): Likewise.
3930         (gimple_call_alloca_for_var_p): Likewise.
3931         (gimple_call_use_set): Likewise.
3932         (gimple_call_clobber_set): Likewise.
3933         (gimple_call_return_type): Require a const gcall * rather than a
3934         const_gimple.
3935         (gimple_call_chain_ptr): Likewise.
3936         (gimple_call_copy_flags): Require a pair of gcall *.
3937         (gimple_cond_set_code): Require a gcond * rather than a gimple
3938         (gimple_cond_set_lhs): Likewise.
3939         (gimple_cond_set_rhs): Likewise.
3940         (gimple_cond_set_true_label): Likewise.
3941         (gimple_cond_set_false_label): Likewise.
3942         (gimple_cond_make_false): Likewise.
3943         (gimple_cond_make_true): Likewise.
3944         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
3945         const_gimple.
3946         (gimple_cond_rhs_ptr): Likewise.
3947         (gimple_cond_true_label): Likewise.
3948         (gimple_cond_false_label): Likewise.
3949         (gimple_cond_true_p): Likewise.
3950         (gimple_cond_false_p): Likewise.
3951         (gimple_cond_set_condition): Likewise.
3952         (gimple_label_label): Require a const glabel *.
3953         (gimple_label_set_label): Require a glabel *.
3954         (gimple_goto_set_dest): Require a ggoto *.
3955         (gimple_bind_vars): Require a const gbind *.
3956         (gimple_bind_block): Likewise.
3957         (gimple_bind_set_vars): Require a gbind *.
3958         (gimple_bind_append_vars): Likewise.
3959         (gimple_bind_body_ptr): Likewise.
3960         (gimple_bind_body): Likewise.
3961         (gimple_bind_set_body): Likewise.
3962         (gimple_bind_add_stmt): Likewise.
3963         (gimple_bind_add_seq): Likewise.
3964         (gimple_bind_set_block): Likewise.
3965         (gimple_asm_ninputs): Require a const gasm *.
3966         (gimple_asm_noutputs): Likewise.
3967         (gimple_asm_nclobbers): Likewise.
3968         (gimple_asm_nlabels): Likewise.
3969         (gimple_asm_input_op): Likewise.
3970         (gimple_asm_input_op_ptr): Likewise.
3971         (gimple_asm_output_op): Likewise.
3972         (gimple_asm_output_op_ptr): Likewise.
3973         (gimple_asm_clobber_op): Likewise.
3974         (gimple_asm_label_op): Likewise.
3975         (gimple_asm_string): Likewise.
3976         (gimple_asm_volatile_p): Likewise.
3977         (gimple_asm_input_p): Likewise.
3978         (gimple_asm_set_input_op): Require a gasm *.
3979         (gimple_asm_set_output_op): Likewise.
3980         (gimple_asm_set_clobber_op): Likewise.
3981         (gimple_asm_set_label_op): Likewise.
3982         (gimple_asm_set_volatile): Likewise.
3983         (gimple_asm_set_input): Likewise.
3984         (gimple_catch_types): Require a const gcatch *.
3985         (gimple_catch_types_ptr): Require a gcatch *.
3986         (gimple_catch_handler_ptr): Likewise.
3987         (gimple_catch_handler): Likewise.
3988         (gimple_catch_set_types): Likewise.
3989         (gimple_catch_set_handler): Likewise.
3990         (gimple_eh_filter_types): Update for renaming of subclass to
3991         geh_filter.
3992         (gimple_eh_filter_types_ptr): Likewise.
3993         (gimple_eh_filter_failure_ptr): Likewise.
3994         (gimple_eh_filter_set_types): Require a geh_filter *.
3995         (gimple_eh_filter_set_failure): Likewise.
3996         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
3997         (gimple_eh_must_not_throw_set_fndecl): Likewise.
3998         (gimple_eh_else_n_body_ptr): Require a geh_else *.
3999         (gimple_eh_else_n_body): Likewise.
4000         (gimple_eh_else_e_body_ptr): Likewise.
4001         (gimple_eh_else_e_body): Likewise.
4002         (gimple_eh_else_set_n_body): Likewise.
4003         (gimple_eh_else_set_e_body): Likewise.
4004         (gimple_try_set_kind): Require a gtry *.
4005         (gimple_try_set_catch_is_cleanup): Likewise.
4006         (gimple_try_set_eval): Likewise.
4007         (gimple_try_set_cleanup): Likewise.
4008         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
4009         (gimple_try_cleanup_ptr): Likewise.
4010         (gimple_phi_capacity): Update for renaming of subclass to gphi.
4011         (gimple_phi_num_args): Likewise.
4012         (gimple_phi_result): Likewise.
4013         (gimple_phi_result_ptr): Likewise.
4014         (gimple_phi_arg): Likewise.
4015         (gimple_phi_set_result): Require a gphi *.
4016         (gimple_phi_set_arg): Likewise.
4017         (gimple_phi_arg_def_ptr): Likewise.
4018         (gimple_phi_arg_edge): Likewise.
4019         (gimple_phi_arg_location): Likewise.
4020         (gimple_phi_arg_location_from_edge): Likewise.
4021         (gimple_phi_arg_set_location): Likewise.
4022         (gimple_phi_arg_has_location): Likewise.
4023         (gimple_resx_region): Require a const gresx *.
4024         (gimple_resx_set_region): Require a gresx *.
4025         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
4026         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
4027         (gimple_switch_num_labels): Require a const gswitch *.
4028         (gimple_switch_set_num_labels): Likewise.
4029         (gimple_switch_index): Likewise.
4030         (gimple_switch_index_ptr): Likewise.
4031         (gimple_switch_label): Likewise.
4032         (gimple_switch_default_label): Likewise.
4033         (gimple_switch_set_index): Require a gswitch *.
4034         (gimple_switch_set_label): Likewise.
4035         (gimple_switch_set_default_label): Likewise.
4036         (gimple_omp_critical_name): Require a const gomp_critical *.
4037         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
4038         (gimple_omp_critical_set_name): Likewise.
4039         (gimple_omp_for_set_kind): Require a gomp_for *.
4040         (gimple_omp_for_set_combined_p): Likewise.
4041         (gimple_omp_for_set_combined_into_p): Likewise.
4042         (gimple_omp_for_clauses): Update for renaming of subclass to
4043         gomp_for.
4044         (gimple_omp_for_clauses_ptr): Likewise.
4045         (gimple_omp_for_set_clauses): Likewise.
4046         (gimple_omp_for_collapse): Likewise.
4047         (gimple_omp_for_index): Likewise.
4048         (gimple_omp_for_index_ptr): Likewise.
4049         (gimple_omp_for_set_index): Likewise.
4050         (gimple_omp_for_initial): Likewise.
4051         (gimple_omp_for_initial_ptr): Likewise.
4052         (gimple_omp_for_set_initial): Likewise.
4053         (gimple_omp_for_final): Likewise.
4054         (gimple_omp_for_final_ptr): Likewise.
4055         (gimple_omp_for_set_final): Likewise.
4056         (gimple_omp_for_incr): Likewise.
4057         (gimple_omp_for_incr_ptr): Likewise.
4058         (gimple_omp_for_set_incr): Likewise.
4059         (gimple_omp_for_pre_body): Likewise.
4060         (gimple_omp_for_set_pre_body): Likewise.
4061         (gimple_omp_parallel_clauses): Update for renaming of subclass to
4062         gomp_parallel.
4063         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
4064         (gimple_omp_parallel_set_clauses): Likewise.
4065         (gimple_omp_parallel_child_fn_ptr): Likewise.
4066         (gimple_omp_parallel_set_child_fn): Likewise.
4067         (gimple_omp_parallel_data_arg_ptr): Likewise.
4068         (gimple_omp_parallel_set_data_arg): Likewise.
4069         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
4070         (gimple_omp_parallel_data_arg): Likewise.
4071         (gimple_omp_task_clauses): Update for renaming of subclass to
4072         gomp_task.
4073         (gimple_omp_task_clauses_ptr): Likewise.
4074         (gimple_omp_task_set_clauses): Likewise.
4075         (gimple_omp_task_child_fn): Likewise.
4076         (gimple_omp_task_child_fn_ptr): Likewise.
4077         (gimple_omp_task_set_child_fn): Likewise.
4078         (gimple_omp_task_data_arg): Likewise.
4079         (gimple_omp_task_data_arg_ptr): Likewise.
4080         (gimple_omp_task_set_data_arg): Likewise.
4081         (gimple_omp_taskreg_clauses): Whitespace fixes.
4082         (gimple_omp_taskreg_clauses_ptr): Likewise.
4083         (gimple_omp_taskreg_set_clauses): Likewise.
4084         (gimple_omp_taskreg_child_fn): Likewise.
4085         (gimple_omp_taskreg_child_fn_ptr): Likewise.
4086         (gimple_omp_taskreg_set_child_fn): Likewise.
4087         (gimple_omp_taskreg_data_arg): Likewise.
4088         (gimple_omp_taskreg_data_arg_ptr): Likewise.
4089         (gimple_omp_taskreg_set_data_arg): Likewise.
4090         (gimple_omp_task_copy_fn): Update for renaming of subclass to
4091         gomp_task.
4092         (gimple_omp_task_copy_fn_ptr): Likewise.
4093         (gimple_omp_task_set_copy_fn): Likewise.
4094         (gimple_omp_task_arg_size): Likewise.
4095         (gimple_omp_task_arg_size_ptr): Likewise.
4096         (gimple_omp_task_set_arg_size): Likewise.
4097         (gimple_omp_task_arg_align): Likewise.
4098         (gimple_omp_task_arg_align_ptr): Likewise.
4099         (gimple_omp_task_set_arg_align): Likewise.
4100         (gimple_omp_single_clauses): Update for renaming of subclass to
4101         gomp_single.
4102         (gimple_omp_single_clauses_ptr): Likewise.
4103         (gimple_omp_single_set_clauses): Likewise.
4104         (gimple_omp_target_clauses): Update for renaming of subclass to
4105         gomp_target.
4106         (gimple_omp_target_clauses_ptr): Likewise.
4107         (gimple_omp_target_set_clauses): Require a gomp_target *.
4108         (gimple_omp_target_set_kind): Likewise.
4109         (gimple_omp_target_child_fn_ptr): Likewise.
4110         (gimple_omp_target_set_child_fn): Likewise.
4111         (gimple_omp_target_data_arg_ptr): Likewise.
4112         (gimple_omp_target_set_data_arg): Likewise.
4113         (gimple_omp_target_child_fn): Require a const gomp_target *.
4114         (gimple_omp_target_data_arg): Likewise.
4115         (gimple_omp_teams_clauses): Update for renaming of subclass to
4116         gomp_teams.
4117         (gimple_omp_teams_clauses_ptr): Likewise.
4118         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
4119         (gimple_omp_sections_clauses): Update for renaming of subclass to
4120         gomp_sections.
4121         (gimple_omp_sections_clauses_ptr): Likewise.
4122         (gimple_omp_sections_set_clauses): Likewise.
4123         (gimple_omp_sections_control): Likewise.
4124         (gimple_omp_sections_control_ptr): Likewise.
4125         (gimple_omp_sections_set_control): Likewise.
4126         (gimple_omp_for_set_cond): Likewise.
4127         (gimple_omp_for_cond): Likewise.
4128         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
4129         (gimple_omp_atomic_store_val_ptr): Likewise.
4130         (gimple_omp_atomic_load_set_lhs): Likewise.
4131         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
4132         (gimple_omp_atomic_load_lhs): Likewise.
4133         (gimple_omp_atomic_load_rhs): Likewise.
4134         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
4135         (gimple_omp_atomic_load_set_rhs): Likewise.
4136         (gimple_omp_atomic_load_rhs_ptr): Likewise.
4137         (gimple_omp_continue_control_def): Require a const gomp_continue *.
4138         (gimple_omp_continue_control_use): Likewise.
4139         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
4140         (gimple_omp_continue_set_control_def): Likewise.
4141         (gimple_omp_continue_control_use_ptr): Likewise.
4142         (gimple_omp_continue_set_control_use): Likewise.
4143         (gimple_transaction_body_ptr): Require a gtransaction *.
4144         (gimple_transaction_body): Likewise.
4145         (gimple_transaction_label_ptr): Likewise.
4146         (gimple_transaction_label): Require a const gtransaction *.
4147         (gimple_transaction_subcode): Likewise.
4148         (gimple_transaction_set_body): Require a gtransaction *.
4149         (gimple_transaction_set_label): Likewise.
4150         (gimple_transaction_set_subcode): Likewise.
4151         (gimple_return_retval_ptr): Require a const greturn *.
4152         (gimple_return_retval): Likewise.
4153         (gimple_return_set_retval): Require a greturn *.
4154         (gimple_expr_type): Introduce local "call_stmt" and use in place of
4155         "stmt" for typesafety.
4156
4157         * asan.c: Use gimple subclasses.
4158         * auto-profile.c: Likewise.
4159         * builtins.c: Likewise.
4160         * builtins.h: Likewise.
4161         * cfgexpand.c: Likewise.
4162         * cfgloop.c: Likewise.
4163         * cfgloopmanip.c: Likewise.
4164         * cgraph.c: Likewise.
4165         * cgraph.h: Likewise.
4166         * cgraphbuild.c: Likewise.
4167         * cgraphclones.c: Likewise.
4168         * cgraphunit.c: Likewise.
4169         * expr.h: Likewise.
4170         * gimple-builder.c: Likewise.
4171         * gimple-builder.h: Likewise.
4172         * gimple-fold.c: Likewise.
4173         * gimple-low.c: Likewise.
4174         * gimple-pretty-print.c: Likewise.
4175         * gimple-ssa-isolate-paths.c: Likewise.
4176         * gimple-ssa-strength-reduction.c: Likewise.
4177         * gimple-streamer-in.c: Likewise.
4178         * gimple-streamer-out.c: Likewise.
4179         * gimple-walk.c: Likewise.
4180         * gimplify-me.c: Likewise.
4181         * gimplify.c: Likewise.
4182         * gimplify.h: Likewise.
4183         * graphite-scop-detection.c: Likewise.
4184         * graphite-sese-to-poly.c: Likewise.
4185         * internal-fn.c: Likewise.
4186         * internal-fn.def:: Likewise.
4187         * internal-fn.h: Likewise.
4188         * ipa-icf-gimple.c: Likewise.
4189         * ipa-icf-gimple.h: Likewise.
4190         * ipa-icf.c: Likewise.
4191         * ipa-inline-analysis.c: Likewise.
4192         * ipa-prop.c: Likewise.
4193         * ipa-prop.h: Likewise.
4194         * ipa-pure-const.c: Likewise.
4195         * ipa-split.c: Likewise.
4196         * lto-streamer-in.c: Likewise.
4197         * lto-streamer-out.c: Likewise.
4198         * omp-low.c: Likewise.
4199         * predict.c: Likewise.
4200         * sanopt.c: Likewise.
4201         * sese.c: Likewise.
4202         * ssa-iterators.h: Likewise.
4203         * stmt.c: Likewise.
4204         * trans-mem.c: Likewise.
4205         * tree-call-cdce.c: Likewise.
4206         * tree-cfg.c: Likewise.
4207         * tree-cfg.h: Likewise.
4208         * tree-cfgcleanup.c: Likewise.
4209         * tree-chkp.c: Likewise.
4210         * tree-chkp.h: Likewise.
4211         * tree-complex.c: Likewise.
4212         * tree-data-ref.c: Likewise.
4213         * tree-dfa.c: Likewise.
4214         * tree-eh.c: Likewise.
4215         * tree-eh.h: Likewise.
4216         * tree-emutls.c: Likewise.
4217         * tree-if-conv.c: Likewise.
4218         * tree-inline.c: Likewise.
4219         * tree-inline.h: Likewise.
4220         * tree-into-ssa.c: Likewise.
4221         * tree-into-ssa.h: Likewise.
4222         * tree-loop-distribution.c: Likewise.
4223         * tree-nrv.c: Likewise.
4224         * tree-object-size.c: Likewise.
4225         * tree-outof-ssa.c: Likewise.
4226         * tree-parloops.c: Likewise.
4227         * tree-phinodes.c: Likewise.
4228         * tree-phinodes.h: Likewise.
4229         * tree-predcom.c: Likewise.
4230         * tree-profile.c: Likewise.
4231         * tree-scalar-evolution.c: Likewise.
4232         * tree-scalar-evolution.h
4233         * tree-sra.cn_function):
4234         * tree-ssa-alias.c: Likewise.
4235         * tree-ssa-alias.h: Likewise.
4236         * tree-ssa-ccp.c: Likewise.
4237         * tree-ssa-coalesce.c: Likewise.
4238         * tree-ssa-copy.c: Likewise.
4239         * tree-ssa-copyrename.c: Likewise.
4240         * tree-ssa-dce.c: Likewise.
4241         * tree-ssa-dom.c: Likewise.
4242         * tree-ssa-forwprop.c: Likewise.
4243         * tree-ssa-ifcombine.c: Likewise.
4244         * tree-ssa-live.c: Likewise.
4245         * tree-ssa-loop-im.c: Likewise.
4246         * tree-ssa-loop-ivcanon.c: Likewise.
4247         * tree-ssa-loop-ivopts.c: Likewise.
4248         * tree-ssa-loop-manip.c: Likewise.
4249         * tree-ssa-loop-niter.c: Likewise.
4250         * tree-ssa-loop-prefetch.c: Likewise.
4251         * tree-ssa-loop-unswitch.c: Likewise.
4252         * tree-ssa-math-opts.c: Likewise.
4253         * tree-ssa-operands.c: Likewise.
4254         * tree-ssa-phiopt.c: Likewise.
4255         * tree-ssa-phiprop.c: Likewise.
4256         * tree-ssa-pre.c: Likewise.
4257         * tree-ssa-propagate.c: Likewise.
4258         * tree-ssa-propagate.h: Likewise.
4259         * tree-ssa-reassoc.c: Likewise.
4260         * tree-ssa-sccvn.c: Likewise.
4261         * tree-ssa-sccvn.h: Likewise.
4262         * tree-ssa-sink.c: Likewise.
4263         * tree-ssa-strlen.c
4264         * tree-ssa-structalias.c
4265         * tree-ssa-tail-merge.c: Likewise.
4266         * tree-ssa-ter.c: Likewise.
4267         * tree-ssa-threadedge.c: Likewise.
4268         * tree-ssa-threadedge.h: Likewise.
4269         * tree-ssa-threadupdate.c: Likewise.
4270         * tree-ssa-uncprop.c: Likewise.
4271         * tree-ssa-uninit.c: Likewise.
4272         * tree-ssa.c: Likewise.
4273         * tree-stdarg.c: Likewise.
4274         * tree-switch-conversion.c: Likewise.
4275         * tree-tailcall.c: Likewise.
4276         * tree-vect-data-refs.c: Likewise.
4277         * tree-vect-generic.c: Likewise.
4278         * tree-vect-loop-manip.c: Likewise.
4279         * tree-vect-loop.c: Likewise.
4280         * tree-vect-patterns.c: Likewise.
4281         * tree-vect-slp.c: Likewise.
4282         * tree-vect-stmts.c: Likewise.
4283         * tree-vectorizer.h: Likewise.
4284         * tree-vrp.c: Likewise.
4285         * tree.c: Likewise.
4286         * ubsan.c: Likewise.
4287         * value-prof.c: Likewise.
4288         * value-prof.h: Likewise.
4289         * vtable-verify.c: Likewise.
4290
4291 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4292
4293         * config/rs6000/constraints.md: Avoid signed integer overflows.
4294         * config/rs6000/predicates.md: Likewise.
4295
4296 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4297
4298         PR target/63424
4299         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
4300
4301 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4302
4303         PR middle-end/63762
4304         * ira.c (ira): Update preferred class.
4305
4306 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4307
4308         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
4309         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4310         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
4311         inline overload to use it.  Add unary arg overload.
4312         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
4313         (gimple_assign_set_rhs_from_tree): Use
4314         gimple_assign_set_rhs_with_ops instead of
4315         gimple_assign_set_rhs_with_ops_1.
4316         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4317         (gimple_assign_set_rhs_with_ops): ... this.
4318         * ipa-split.c (split_function): Remove last NULL argument
4319         from gimple_build_assign_with_ops call.
4320         * tree-ssa-loop-im.c
4321         (move_computations_dom_walker::before_dom_children): Likewise.
4322         * tsan.c (instrument_builtin_call): Likewise.
4323         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4324         vectorizable_conversion, vectorizable_load): Likewise.
4325         * tree-vect-loop.c (vect_is_simple_reduction_1,
4326         get_initial_def_for_induction): Likewise.
4327         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4328         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4329         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4330         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4331         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4332         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4333         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4334         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4335         neg_replacement): Likewise.
4336         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4337         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4338         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4339         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4340         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4341         simd_clone_adjust): Likewise.
4342         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4343         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4344         replace_one_candidate): Likewise.
4345         * gimple-builder.c (build_type_cast): Likewise.
4346         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4347         (forward_propagate_addr_expr_1): Remove last NULL argument
4348         from gimple_assign_set_rhs_with_ops call.
4349         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4350         instead of gimple_assign_set_rhs_with_ops_1.
4351         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4352         argument from gimple_build_assign_with_ops call.
4353         (repropagate_negates): Remove last NULL argument from
4354         gimple_assign_set_rhs_with_ops call.
4355         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4356         last NULL argument from gimple_build_assign_with_ops call.
4357         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
4358         from gimple_assign_set_rhs_with_ops call.
4359         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4360         Remove last NULL argument from gimple_build_assign_with_ops call.
4361         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
4362         of gimple_assign_set_rhs_with_ops_1.
4363         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4364         instead of gimple_assign_set_rhs_with_ops_1.
4365         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4366         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4367         from gimple_build_assign_with_ops call.
4368         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4369         from gimple_assign_set_rhs_with_ops call.
4370         * tree-vrp.c (simplify_truth_ops_using_ranges,
4371         simplify_bit_ops_using_ranges): Remove last NULL argument from
4372         gimple_assign_set_rhs_with_ops call.
4373         (simplify_float_conversion_using_ranges,
4374         simplify_internal_call_using_ranges): Remove last NULL argument from
4375         gimple_build_assign_with_ops call.
4376
4377 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
4378
4379         PR target/61915
4380         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4381         cost.
4382
4383 2014-11-19  Marek Polacek  <polacek@redhat.com>
4384
4385         PR sanitizer/63690
4386         * ubsan.c (instrument_object_size): Check for MEM_REF.
4387
4388 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
4389
4390         PR regression/63868
4391         * cgraph.c (cgraph_node::create): Guard g->have_offload with
4392         ifdef ENABLE_OFFLOADING.
4393         * omp-low.c (create_omp_child_function): Likewise.
4394         (expand_omp_target): Guard node->mark_force_output and offload_funcs
4395         with ifdef ENABLE_OFFLOADING.
4396         * varpool.c (varpool_node::get_create): Guard g->have_offload and
4397         offload_vars with ifdef ENABLE_OFFLOADING.
4398
4399 2014-11-19  Felix Yang  <felix.yang@huawei.com>
4400             Shanyao Chen  <chenshanyao@huawei.com>
4401
4402         PR target/59593
4403         * config/arm/arm.md (define_attr "arch"): Add v6t2.
4404         (define_attr "arch_enabled"): Add test for the above.
4405         (*movhi_insn_arch4): Add new alternative.
4406
4407 2014-11-19  Richard Henderson  <rth@redhat.com>
4408
4409         * c-family/c-common.c (c_common_reswords): Add
4410         __builtin_call_with_static_chain.
4411         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
4412         * c/c-parser.c (c_parser_postfix_expression): Handle it.
4413         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
4414
4415         * calls.c (prepare_call_address): Allow decl or type for first arg.
4416         (expand_call): Pass type to prepare_call_address if no decl.
4417         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
4418         the function doesn't use it; fold it otherwise.
4419         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
4420         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
4421         function calls.
4422
4423         * targhooks.c (default_static_chain): Remove check for
4424         DECL_STATIC_CHAIN.
4425         * config/moxie/moxie.c (moxie_static_chain): Likewise.
4426         * config/i386/i386.c (ix86_static_chain): Allow decl or type
4427         as the first argument.
4428         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
4429         of the unused first parameter.
4430         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
4431         may be a type.
4432         * target.def (static_chain): Likewise.
4433
4434 2014-11-19  Renlin Li  <renlin.li@arm.com>
4435
4436     * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
4437         __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
4438
4439 2014-11-19  Marek Polacek  <polacek@redhat.com>
4440
4441         PR sanitizer/63879
4442         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
4443         !TYPE_OVERFLOW_SANITIZED.
4444         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
4445         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
4446         is 0.
4447
4448 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
4449
4450         * collect2.c (main): Don't call fatal_error before
4451         diagnostic_initialize.
4452         * lto-wrapper.c (main): Likewise.
4453
4454 2014-11-19  Tom de Vries  <tom@codesourcery.com>
4455
4456         PR tree-optimization/62167
4457         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
4458         conservatively.
4459         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
4460         assigns.
4461
4462 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4463
4464         PR tree-optimization/63915
4465         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
4466         true instead of false as last argument to gsi_replace.
4467
4468         PR sanitizer/63520
4469         * internal-fn.c (expand_ubsan_result_store): New function.
4470         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
4471         Use it instead of just emit_move_insn.
4472
4473 2014-11-19  Richard Biener  <rguenther@suse.de>
4474
4475         PR tree-optimization/63844
4476         * omp-low.c (fixup_child_record_type): Use a restrict qualified
4477         referece type for the receiver parameter.
4478
4479 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4480
4481         PR sanitizer/63913
4482         * ubsan.c: Include tree-eh.h.
4483         (instrument_bool_enum_load): Handle loads that can throw.
4484
4485         PR rtl-optimization/63843
4486         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
4487         optimization of ashiftrt of subreg of lshiftrt, check that code
4488         is ASHIFTRT.
4489
4490 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
4491
4492         * attribs.c (decl_attributes): Remove always true condition,
4493         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
4494
4495 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4496
4497         PR target/63937
4498         * target.def (use_by_pieces_infrastructure_p): Take unsigned
4499         HOST_WIDE_INT as the size parameter.
4500         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
4501         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
4502         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
4503         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
4504         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
4505         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
4506         * config/aarch64/aarch64.c
4507         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
4508         * doc/tm.texi: Regenerate.
4509
4510 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
4511
4512         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
4513         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
4514         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
4515         (good_cloning_opportunity_p): Likewise.
4516         (ipa-cp gate): Enable ipa-cp with LTO.
4517         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
4518         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
4519         inheritance.
4520         * ipa-inline-transform.c (inline_transform): Check if there are inlines
4521         to apply even at -O0.
4522         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
4523         (analyze_functions): Build type inheritance graph.
4524         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
4525         (want_early_inline_function_p, want_inline_small_function_p):
4526         Likewise.
4527         (check_callers): Likewise.
4528         (edge_badness): Likewise.
4529         (inline_small_functions): Always be ready for indirect inlining
4530         to happend.
4531         (ipa_inline): Always use want_inline_function_to_all_callers_p.
4532         (early_inline_small_functions): Use opt_for_fn.
4533         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
4534         (estimate_function_body_sizes): Likewise.
4535         (compute_inline_parameters): Likewise.
4536         (estimate_edge_devirt_benefit): Likewise.
4537         (inline_analyze_function): Likewise.
4538         * ipa-devirt.c (ipa_devirt): Likewise.
4539         (gate): Use in_lto_p.
4540         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
4541         (try_make_edge_direct_virtual_call): Likewise.
4542         (update_indirect_edges_after_inlining): Likewise.
4543         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
4544         * common.opt (findirect-inlining): Turn into optimization.
4545         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
4546         (pure_const_generate_summary): Likewise.
4547         (gate_pure_const): Always enable with in_lto_p.
4548
4549 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4550
4551         * config/mips/mips.md (compression): Add `micromips32' setting.
4552         (enabled, length): Handle it.
4553         (shift_compression): Replace `micromips' with `micromips32' in
4554         the `compression' attribute.
4555         (*add<mode>3, sub<mode>3): Likewise.
4556
4557 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4558
4559         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
4560         range, a jump otherwise.
4561
4562 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4563
4564         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
4565         Split into...
4566         (cortex_a15_gp_to_vfp): ...This.
4567         (cortex_a15_fp_to_gp): ...And this.
4568         Define and comment bypass from vfp operations to fp->gp moves.
4569
4570 2014-11-18  Martin Liska  <mliska@suse.cz>
4571
4572         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
4573
4574 2014-11-18  Martin Liska  <mliska@suse.cz>
4575
4576         * bt-load.c (add_btr_def): New fibonacci_heap is used.
4577         (migrate_btr_defs): Likewise.
4578
4579 2014-11-18  Martin Liska  <mliska@suse.cz>
4580
4581         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
4582
4583 2014-11-18  Martin Liska  <mliska@suse.cz>
4584
4585         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
4586         (find_traces): Likewise.
4587         (find_traces_1_round): Likewise.
4588
4589 2014-11-18  Martin Liska  <mliska@suse.cz>
4590
4591         * fibonacci_heap.h: New file.
4592         (fibonacci_heap::insert): Created from fibheap_insert.
4593         (fibonacci_heap::empty): Created from fibheap_empty.
4594         (fibonacci_heap::nodes): Created from fibheap_nodes.
4595         (fibonacci_heap::min_key): Created from fibheap_min_key.
4596         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
4597         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
4598         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
4599         (fibonacci_heap::min): Created from fibheap_min.
4600         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
4601         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
4602         (fibonacci_heap::union_with): Created from fibheap_union.
4603         * ipa-inline.c (update_edge_key): New heap API is used.
4604         (update_caller_keys): Likewise.
4605         (update_callee_keys): Likewise.
4606         (lookup_recursive_calls): Likewise.
4607         (recursive_inlining): Likewise.
4608         (add_new_edges_to_heap): Likewise.
4609         (heap_edge_removal_hook): Likewise.
4610         (inline_small_functions): Likewise.
4611
4612 2014-11-18  Marek Polacek  <polacek@redhat.com>
4613
4614         PR sanitizer/63866
4615         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
4616         put it into TYPE_NAME and TYPE_STUB_DECL.
4617         * ubsan.c (ubsan_type_descriptor_type): New variable.
4618         Function renamed to ...
4619         (ubsan_get_type_descriptor_type): ... this.  Cache
4620         return value in ubsan_type_descriptor_type variable.
4621         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
4622         TYPE_NAME and TYPE_STUB_DECL.
4623         (ubsan_get_source_location_type): Create a TYPE_DECL for
4624         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
4625         (ubsan_type_descriptor, ubsan_create_data): Call
4626         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
4627         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
4628
4629 2014-11-18  Felix Yang  <felix.yang@huawei.com>
4630
4631         * config/aarch64/aarch64.c (doloop_end): New pattern.
4632         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
4633
4634 2014-11-18  Jason Merrill  <jason@redhat.com>
4635
4636         * tree.c (warn_deprecated_use): Show declaration with inform.
4637
4638 2014-11-18  Richard Biener  <rguenther@suse.de>
4639
4640         PR tree-optimization/63914
4641         * tree-ssa-ccp.c (canonicalize_value): Remove float value
4642         canonicalization.
4643         (valid_lattice_transition): Allow (partial) transition
4644         from NaN to non-NaN if !HONOR_NANS.
4645         (set_lattice_value): Check for valid lattice transitions
4646         only when checking is enabled.
4647
4648 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
4649
4650         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
4651
4652 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
4653
4654         * config/arm/neon-testgen.ml (emit_prologue): Handle new
4655         compile_test_optim argument.
4656         (emit_automatics): Rename to emit_variables. Support variable
4657         indentation of its output.
4658         (compile_test_optim): New function.
4659         (test_intrinsic): Call compile_test_optim.
4660         * config/arm/neon.ml (features): Add Compiler_optim.
4661         (ops): Add Compiler_optim feature to Vbic and Vorn.
4662         (type_in_crypto_only): Replace 'or' by '||'.
4663         (reinterp): Likewise.
4664         (reinterpq): Likewise.
4665
4666 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
4667
4668         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
4669         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
4670         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
4671         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
4672         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
4673         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
4674         pointer dereference.
4675
4676 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
4677
4678         * tree.c (element_mode, integer_truep): New functions.
4679         * tree.h (element_mode, integer_truep): Declare them.
4680         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
4681         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
4682         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
4683         fold_strip_sign_ops): Use element_mode.
4684         (fold_binary_loc): Use element_mode and element_precision.
4685         * match.pd: Use integer_truep, element_mode, element_precision,
4686         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
4687         vectors. Simplify A/-A.
4688
4689 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4690
4691         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
4692         manual swapping implementation.
4693         (movcond_addsi): Likewise.
4694         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
4695         (arm_select_dominance_cc_mode): Likewise.
4696         (arm_reload_out_hi): Likewise.
4697         (gen_operands_ldrd_strd): Likewise.
4698         (output_move_double): Likewise.
4699         (arm_print_operand_address): Likewise.
4700         (thumb_output_move_mem_multiple): Likewise.
4701         (SWAP_RTX): Delete.
4702
4703 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4704
4705         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
4706         (COPYSIGNF_QUALIFIERS): Likewise.
4707         (CREATE_QUALIFIERS): Likewise.
4708         (DUP_QUALIFIERS): Likewise.
4709         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4710         (FLOAT_NARROW_QUALIFIERS): Likewise.
4711         (REINTERP_QUALIFIERS): Likewise.
4712         (RINT_QUALIFIERS): Likewise.
4713         (SPLIT_QUALIFIERS): Likewise.
4714         (FIXCONV_QUALIFIERS): Likewise.
4715         (SCALARMUL_QUALIFIERS): Likewise.
4716         (SCALARMULL_QUALIFIERS): Likewise.
4717         (SCALARMULH_QUALIFIERS): Likewise.
4718         (SELECT_QUALIFIERS): Likewise.
4719         (VTBX_QUALIFIERS): Likewise.
4720         (SHIFTIMM_QUALIFIERS): Likewise.
4721         (SCALARMAC_QUALIFIERS): Likewise.
4722         (LANEMUL_QUALIFIERS): Likewise.
4723         (LANEMULH_QUALIFIERS): Likewise.
4724         (LANEMULL_QUALIFIERS): Likewise.
4725         (SHIFTACC_QUALIFIERS): Likewise.
4726         (SHIFTINSERT_QUALIFIERS): Likewise.
4727         (VTBL_QUALIFIERS): Likewise.
4728         (LOADSTRUCT_QUALIFIERS): Likewise.
4729         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4730         (STORESTRUCT_QUALIFIERS): Likewise.
4731         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4732         (neon_builtin_type_mode): Delete.
4733         (v8qi_UP): Map to V8QImode.
4734         (v8qi_UP): Map to V8QImode.
4735         (v4hi_UP): Map to V4HImode.
4736         (v4hf_UP): Map to V4HFmode.
4737         (v2si_UP): Map to V2SImode.
4738         (v2sf_UP): Map to V2SFmode.
4739         (di_UP): Map to DImode.
4740         (v16qi_UP): Map to V16QImode.
4741         (v8hi_UP): Map to V8HImode.
4742         (v4si_UP): Map to V4SImode.
4743         (v4sf_UP): Map to V4SFmode.
4744         (v2di_UP): Map to V2DImode.
4745         (ti_UP): Map to TImode.
4746         (ei_UP): Map to EImode.
4747         (oi_UP): Map to OImode.
4748         (neon_itype): Delete.
4749         (neon_builtin_datum): Remove itype, make mode a machine_mode.
4750         (VAR1): Update accordingly.
4751         (arm_init_neon_builtins): Use machine_mode directly.
4752         (neon_dereference_pointer): Likewise.
4753         (arm_expand_neon_args): Use qualifiers to decide operand types.
4754         (arm_expand_neon_builtin): Likewise.
4755         * config/arm/arm_neon_builtins.def: Remap operation type for
4756         many builtins.
4757
4758 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4759
4760         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
4761         (enum arm_simd_type): Likewise.
4762         (struct arm_simd_type_info): Likewise
4763         (arm_mangle_builtin_scalar_type): Likewise.
4764         (arm_mangle_builtin_vector_type): Likewise.
4765         (arm_mangle_builtin_type): Likewise.
4766         (arm_simd_builtin_std_type): Likewise.
4767         (arm_lookup_simd_builtin_type): Likewise.
4768         (arm_simd_builtin_type): Likewise.
4769         (arm_init_simd_builtin_types): Likewise.
4770         (arm_init_simd_builtin_scalar_types): Likewise.
4771         (arm_init_neon_builtins): Rewrite using qualifiers.
4772         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
4773         * config/arm/arm-simd-builtin-types.def: New file.
4774         * config/arm/t-arm (arm-builtins.o): Depend on it.
4775         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
4776         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
4777         (int16x4_t): Likewise.
4778         (int32x2_t): Likewise.
4779         (float16x4_t): Likewise.
4780         (float32x2_t): Likewise.
4781         (poly8x8_t): Likewise.
4782         (poly16x4_t): Likewise.
4783         (uint8x8_t): Likewise.
4784         (uint16x4_t): Likewise.
4785         (uint32x2_t): Likewise.
4786         (int8x16_t): Likewise.
4787         (int16x8_t): Likewise.
4788         (int32x4_t): Likewise.
4789         (int64x2_t): Likewise.
4790         (float32x4_t): Likewise.
4791         (poly8x16_t): Likewise.
4792         (poly16x8_t): Likewise.
4793         (uint8x16_t): Likewise.
4794         (uint16x8_t): Likewise.
4795         (uint32x4_t): Likewise.
4796         (uint64x2_t): Likewise.
4797
4798 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4799
4800         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
4801         (neon_itype): Add new types corresponding to the types used in
4802         qualifiers names.
4803         (arm_unop_qualifiers): New.
4804         (arm_bswap_qualifiers): Likewise.
4805         (arm_binop_qualifiers): Likewise.
4806         (arm_ternop_qualifiers): Likewise.
4807         (arm_getlane_qualifiers): Likewise.
4808         (arm_lanemac_qualifiers): Likewise.
4809         (arm_setlane_qualifiers): Likewise.
4810         (arm_combine_qualifiers): Likewise.
4811         (arm_load1_qualifiers): Likewise.
4812         (arm_load1_lane_qualifiers): Likewise.
4813         (arm_store1_qualifiers): Likewise.
4814         (arm_storestruct_lane_qualifiers): Likewise.
4815         (UNOP_QUALIFIERS): Likewise.
4816         (DUP_QUALIFIERS): Likewise.
4817         (SPLIT_QUALIFIERS): Likewise.
4818         (CONVERT_QUALIFIERS): Likewise.
4819         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4820         (FLOAT_NARROW_QUALIFIERS): Likewise.
4821         (RINT_QUALIFIERS): Likewise.
4822         (COPYSIGNF_QUALIFIERS): Likewise.
4823         (CREATE_QUALIFIERS): Likewise.
4824         (REINTERP_QUALIFIERS): Likewise.
4825         (BSWAP_QUALIFIERS): Likewise.
4826         (BINOP_QUALIFIERS): Likewise.
4827         (FIXCONV_QUALIFIERS): Likewise.
4828         (SCALARMUL_QUALIFIERS): Likewise.
4829         (SCALARMULL_QUALIFIERS): Likewise.
4830         (SCALARMULH_QUALIFIERS): Likewise.
4831         (TERNOP_QUALIFIERS): Likewise.
4832         (SELECT_QUALIFIERS): Likewise.
4833         (VTBX_QUALIFIERS): Likewise.
4834         (GETLANE_QUALIFIERS): Likewise.
4835         (SHIFTIMM_QUALIFIERS): Likewise.
4836         (LANEMAC_QUALIFIERS): Likewise.
4837         (SCALARMAC_QUALIFIERS): Likewise.
4838         (SETLANE_QUALIFIERS): Likewise.
4839         (SHIFTINSERT_QUALIFIERS): Likewise.
4840         (SHIFTACC_QUALIFIERS): Likewise.
4841         (LANEMUL_QUALIFIERS): Likewise.
4842         (LANEMULL_QUALIFIERS): Likewise.
4843         (LANEMULH_QUALIFIERS): Likewise.
4844         (COMBINE_QUALIFIERS): Likewise.
4845         (VTBL_QUALIFIERS): Likewise.
4846         (LOAD1_QUALIFIERS): Likewise.
4847         (LOADSTRUCT_QUALIFIERS): Likewise.
4848         (LOAD1LANE_QUALIFIERS): Likewise.
4849         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4850         (STORE1_QUALIFIERS): Likewise.
4851         (STORESTRUCT_QUALIFIERS): Likewise.
4852         (STORE1LANE_QUALIFIERS): Likewise.
4853         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4854         (neon_builtin_datum): Keep track of qualifiers.
4855         (VAR1): Likewise.
4856
4857 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4858
4859         * config/arm/arm-builtins.c (VAR1): Add a comma.
4860         (VAR2): Rewrite in terms of VAR1.
4861         (VAR3-10): Likewise.
4862         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
4863         * config/arm/arm_neon_builtins.def: Remove trailing commas.
4864
4865 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4866
4867         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
4868         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
4869         * config/arm/arm-builtins.c: New.
4870         * config/arm/t-arm (arm_builtins.o): New.
4871         * config/arm/arm-protos.h (arm_expand_builtin): New.
4872         (arm_builtin_decl): Likewise.
4873         (arm_init_builtins): Likewise.
4874         (arm_atomic_assign_expand_fenv): Likewise.
4875         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
4876         (arm_init_builtins): Likewise.
4877         (arm_init_iwmmxt_builtins): Likewise
4878         (safe_vector_operand): Likewise
4879         (arm_expand_binop_builtin): Likewise
4880         (arm_expand_unop_builtin): Likewise
4881         (arm_expand_builtin): Likewise
4882         (arm_builtin_decl): Likewise
4883         (insn_flags): Remove static.
4884         (tune_flags): Likewise.
4885         (enum arm_builtins): Move to config/arm/arm-builtins.c.
4886         (arm_init_neon_builtins): Likewise.
4887         (struct builtin_description): Likewise.
4888         (arm_init_iwmmxt_builtins): Likewise.
4889         (arm_init_fp16_builtins): Likewise.
4890         (arm_init_crc32_builtins): Likewise.
4891         (arm_init_builtins): Likewise.
4892         (arm_builtin_decl): Likewise.
4893         (safe_vector_operand): Likewise.
4894         (arm_expand_ternop_builtin): Likewise.
4895         (arm_expand_binop_builtin): Likewise.
4896         (arm_expand_unop_builtin): Likewise.
4897         (neon_dereference_pointer): Likewise.
4898         (arm_expand_neon_args): Likewise.
4899         (arm_expand_neon_builtin): Likewise.
4900         (neon_split_vcombine): Likewise.
4901         (arm_expand_builtin): Likewise.
4902         (arm_builtin_vectorized_function): Likewise.
4903         (arm_atomic_assign_expand_fenv): Likewise.
4904
4905 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4906
4907         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
4908         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
4909         (FL_ARCH3M): Likewise.
4910         (FL_MODE26): Likewise.
4911         (FL_MODE32): Likewise.
4912         (FL_ARCH4): Likewise.
4913         (FL_ARCH5): Likewise.
4914         (FL_THUMB): Likewise.
4915         (FL_LDSCHED): Likewise.
4916         (FL_STRONG): Likewise.
4917         (FL_ARCH5E): Likewise.
4918         (FL_XSCALE): Likewise.
4919         (FL_ARCH6): Likewise.
4920         (FL_VFPV2): Likewise.
4921         (FL_WBUF): Likewise.
4922         (FL_ARCH6K): Likewise.
4923         (FL_THUMB2): Likewise.
4924         (FL_NOTM): Likewise.
4925         (FL_THUMB_DIV): Likewise.
4926         (FL_VFPV3): Likewise.
4927         (FL_NEON): Likewise.
4928         (FL_ARCH7EM): Likewise.
4929         (FL_ARCH7): Likewise.
4930         (FL_ARM_DIV): Likewise.
4931         (FL_ARCH8): Likewise.
4932         (FL_CRC32): Likewise.
4933         (FL_SMALLMUL): Likewise.
4934         (FL_IWMMXT): Likewise.
4935         (FL_IWMMXT2): Likewise.
4936         (FL_TUNE): Likewise.
4937         (FL_FOR_ARCH2): Likewise.
4938         (FL_FOR_ARCH3): Likewise.
4939         (FL_FOR_ARCH3M): Likewise.
4940         (FL_FOR_ARCH4): Likewise.
4941         (FL_FOR_ARCH4T): Likewise.
4942         (FL_FOR_ARCH5): Likewise.
4943         (FL_FOR_ARCH5T): Likewise.
4944         (FL_FOR_ARCH5E): Likewise.
4945         (FL_FOR_ARCH5TE): Likewise.
4946         (FL_FOR_ARCH5TEJ): Likewise.
4947         (FL_FOR_ARCH6): Likewise.
4948         (FL_FOR_ARCH6J): Likewise.
4949         (FL_FOR_ARCH6K): Likewise.
4950         (FL_FOR_ARCH6Z): Likewise.
4951         (FL_FOR_ARCH6ZK): Likewise.
4952         (FL_FOR_ARCH6T2): Likewise.
4953         (FL_FOR_ARCH6M): Likewise.
4954         (FL_FOR_ARCH7): Likewise.
4955         (FL_FOR_ARCH7A): Likewise.
4956         (FL_FOR_ARCH7VE): Likewise.
4957         (FL_FOR_ARCH7R): Likewise.
4958         (FL_FOR_ARCH7M): Likewise.
4959         (FL_FOR_ARCH7EM): Likewise.
4960         (FL_FOR_ARCH8A): Likewise.
4961         * config/arm/arm-protos.h: Take definitions moved from arm.c.
4962
4963 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4964
4965         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
4966         parameter, rearrange switch statement accordingly.
4967         (arm_evpc_neon_vrev): Remove "Magic Word".
4968         * config/arm/unspecs.md (unspec): Split many UNSPECs to
4969         rounding, or signed/unsigned variants.
4970         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
4971         (vcondu<mode><mode>): Likewise.
4972         (neon_vadd): Remove "Magic Word" operand.
4973         (neon_vaddl): Remove "Magic Word" operand, convert to use
4974         signed/unsigned iterator.
4975         (neon_vaddw): Likewise.
4976         (neon_vhadd): Likewise, also iterate over "rounding" forms.
4977         (neon_vqadd): Remove "Magic Word" operand, convert to use
4978         signed/unsigned iterator.
4979         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
4980         over "rounding" forms.
4981         (neon_vmul): Remove "Magic Word" operand, iterate over
4982         polynomial/float instruction forms.
4983         (neon_vmla): Remove "Magic Word" operand.
4984         (neon_vfma): Likewise.
4985         (neon_vfms): Likewise.
4986         (neon_vmls): Likewise.
4987         (neon_vmlal): Remove "Magic Word" operand, iterate over
4988         signed/unsigned forms.
4989         (neon_vmlsl): Likewise.
4990         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
4991         forms.
4992         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
4993         signed/unsigned forms.
4994         (neon_vqdmlsl): Likewise.
4995         (neon_vmull): Likewise.
4996         (neon_vqdmull): Remove "Magic Word" operand.
4997         (neon_vsub): Remove "Magic Word" operand.
4998         (neon_vsubl): Remove "Magic Word" operand, convert to use
4999         signed/unsigned iterator.
5000         (neon_vsubw): Likewise.
5001         (neon_vhsub): Likewise.
5002         (neon_vqsub): Likewise.
5003         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
5004         over "rounding" forms.
5005         (neon_vceq): Remove "Magic Word" operand.
5006         (neon_vcge): Likewise.
5007         (neon_vcgeu): Likewise.
5008         (neon_vcgt): Likewise.
5009         (neon_vcgtu): Likewise.
5010         (neon_vcle): Likewise.
5011         (neon_vclt): Likewise.
5012         (neon_vcage): Likewise.
5013         (neon_vcagt): Likewise.
5014         (neon_vabd): Remove "Magic Word" operand, iterate over
5015         signed/unsigned forms, and split out...
5016         (neon_vabdf): ...this as new.
5017         (neon_vabdl): Remove "Magic Word" operand, iterate over
5018         signed/unsigned forms.
5019         (neon_vaba): Likewise.
5020         (neon_vmax): Remove "Magic Word" operand, iterate over
5021         signed/unsigned and max/min forms, and split out...
5022         (neon_v<maxmin>f): ...this as new.
5023         (neon_vmin): Delete.
5024         (neon_vpadd): Remove "Magic Word" operand.
5025         (neon_vpaddl): Remove "Magic Word" operand, iterate over
5026         signed/unsigned variants.
5027         (neon_vpadal): Likewise.
5028         (neon_vpmax): Remove "Magic Word" operand, iterate over
5029         signed/unsigned and max/min forms, and split out...
5030         (neon_vp<maxmin>f): ...this as new.
5031         (neon_vpmin): Delete.
5032         (neon_vrecps): Remove "Magic Word" operand.
5033         (neon_vrsqrts): Likewise.
5034         (neon_vabs): Likewise.
5035         (neon_vqabs): Likewise.
5036         (neon_vneg): Likewise.
5037         (neon_vqneg): Likewise.
5038         (neon_vcls): Likewise.
5039         (neon_vcnt): Likewise.
5040         (neon_vrecpe): Likewise.
5041         (neon_vrsqrte): Likewise.
5042         (neon_vmvn): Likewise.
5043         (neon_vget_lane): Likewise.
5044         (neon_vget_laneu): New.
5045         (neon_vget_lanedi): Remove "Magic Word" operand.
5046         (neon_vget_lanev2di): Likewise.
5047         (neon_vcvt): Remove "Magic Word" operand, iterate over
5048         signed/unsigned variants.
5049         (neon_vcvt_n): Likewise.
5050         (neon_vmovn): Remove "Magic Word" operand.
5051         (neon_vqmovn): Remove "Magic Word" operand, iterate over
5052         signed/unsigned variants.
5053         (neon_vmovun): Remove "Magic Word" operand.
5054         (neon_vmovl): Remove "Magic Word" operand, iterate over
5055         signed/unsigned variants.
5056         (neon_vmul_lane): Remove "Magic Word" operand.
5057         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
5058         signed/unsigned variants.
5059         (neon_vqdmull_lane): Remove "Magic Word" operand.
5060         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
5061         rounding variants.
5062         (neon_vmla_lane): Remove "Magic Word" operand.
5063         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
5064         signed/unsigned variants.
5065         (neon_vqdmlal_lane): Remove "Magic Word" operand.
5066         (neon_vmls_lane): Likewise.
5067         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
5068         signed/unsigned variants.
5069         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
5070         (neon_vmul_n): Remove "Magic Word" operand.
5071         (neon_vmull_n): Rename to...
5072         (neon_vmulls_n): ...this, remove "Magic Word" operand.
5073         (neon_vmullu_n): New.
5074         (neon_vqdmull_n): Remove "Magic Word" operand.
5075         (neon_vqdmulh_n): Likewise.
5076         (neon_vqrdmulh_n): New.
5077         (neon_vmla_n): Remove "Magic Word" operand.
5078         (neon_vmls_n): Likewise.
5079         (neon_vmlal_n): Rename to...
5080         (neon_vmlals_n): ...this, remove "Magic Word" operand.
5081         (neon_vmlalu_n): New.
5082         (neon_vqdmlal_n): Remove "Magic Word" operand.
5083         (neon_vmlsl_n): Rename to...
5084         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
5085         (neon_vmlslu_n): New.
5086         (neon_vqdmlsl_n): Remove "Magic Word" operand.
5087         (neon_vrev64): Remove "Magic Word" operand.
5088         (neon_vrev32): Likewise.
5089         (neon_vrev16): Likewise.
5090         (neon_vshl): Remove "Magic Word" operand, iterate over
5091         signed/unsigned and "rounding" forms.
5092         (neon_vqshl): Likewise.
5093         (neon_vshr_n): Likewise.
5094         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
5095         "rounding" forms.
5096         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
5097         signed/unsigned and "rounding" forms.
5098         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
5099         "rounding" forms.
5100         (neon_vshl_n): Remove "Magic Word" operand.
5101         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
5102         signed/unsigned variants.
5103         (neon_vqshlu_n): Remove "Magic Word" operand.
5104         (neon_vshll_n): Remove "Magic Word" operand, iterate over
5105         signed/unsigned variants.
5106         (neon_vsra_n): Remove "Magic Word" operand, iterate over
5107         signed/unsigned and "rounding" forms.
5108         * config/arm/iterators.md (VPF): New.
5109         (VADDL): Likewise.
5110         (VADDW): Likewise.
5111         (VHADD): Likewise.
5112         (VQADD): Likewise.
5113         (VADDHN): Likewise.
5114         (VMLAL): Likewise.
5115         (VMLAL_LANE): Likewise.
5116         (VLMSL): Likewise.
5117         (VMLSL_LANE): Likewise.
5118         (VQDMULH): Likewise,
5119         (VQDMULH_LANE): Likewise.
5120         (VMULL): Likewise.
5121         (VMULL_LANE): Likewise.
5122         (VSUBL): Likewise.
5123         (VSUBW): Likewise.
5124         (VHSUB): Likewise.
5125         (VQSUB): Likewise.
5126         (VSUBHN): Likewise.
5127         (VABD): Likewise.
5128         (VABDL): Likewise.
5129         (VMAXMIN): Likewise.
5130         (VMAXMINF): Likewise.
5131         (VPADDL): Likewise.
5132         (VPADAL): Likewise.
5133         (VPMAXMIN): Likewise.
5134         (VPMAXMINF): Likewise.
5135         (VCVT_US): Likewise.
5136         (VCVT_US_N): Likewise.
5137         (VQMOVN): Likewise.
5138         (VMOVL): Likewise.
5139         (VSHL): Likewise.
5140         (VQSHL): Likewise.
5141         (VSHR_N): Likewise.
5142         (VSHRN_N): Likewise.
5143         (VQSHRN_N): Likewise.
5144         (VQSHRUN_N): Likewise.
5145         (VQSHL_N): Likewise.
5146         (VSHLL_N): Likewise.
5147         (VSRA_N): Likewise.
5148         (pf): Likewise.
5149         (sup): Likewise.
5150         (r): Liekwise.
5151         (maxmin): Likewise.
5152         (shift_op): Likewise.
5153         * config/arm/arm_neon_builtins.def (vaddl): Split to...
5154         (vaddls): ...this and...
5155         (vaddlu): ...this.
5156         (vaddw): Split to...
5157         (vaddws): ...this and...
5158         (vaddwu): ...this.
5159         (vhadd): Split to...
5160         (vhadds): ...this and...
5161         (vhaddu): ...this and...
5162         (vrhadds): ...this and...
5163         (vrhaddu): ...this.
5164         (vqadd): Split to...
5165         (vqadds): ...this and...
5166         (vqaddu): ...this.
5167         (vaddhn): Split to itself and...
5168         (vraddhn): ...this.
5169         (vmul): Split to...
5170         (vmulf): ...this and...
5171         (vmulp): ...this.
5172         (vmlal): Split to...
5173         (vmlals): ...this and...
5174         (vmlalu): ...this.
5175         (vmlsl): Split to...
5176         (vmlsls): ...this and...
5177         (vmlslu): ...this.
5178         (vqdmulh): Split to itself and...
5179         (vqrdmulh): ...this.
5180         (vmull): Split to...
5181         (vmullp): ...this and...
5182         (vmulls): ...this and...
5183         (vmullu): ...this.
5184         (vmull_n): Split to...
5185         (vmulls_n): ...this and...
5186         (vmullu_n): ...this.
5187         (vmull_lane): Split to...
5188         (vmulls_lane): ...this and...
5189         (vmullu_lane): ...this.
5190         (vqdmulh_n): Split to itself and...
5191         (vqrdmulh_n): ...this.
5192         (vqdmulh_lane): Split to itself and...
5193         (vqrdmulh_lane): ...this.
5194         (vshl): Split to...
5195         (vshls): ...this and...
5196         (vshlu): ...this and...
5197         (vrshls): ...this and...
5198         (vrshlu): ...this.
5199         (vqshl): Split to...
5200         (vqshls): ...this and...
5201         (vqrshlu): ...this and...
5202         (vqrshls): ...this and...
5203         (vqrshlu): ...this.
5204         (vshr_n): Split to...
5205         (vshrs_n): ...this and...
5206         (vshru_n): ...this and...
5207         (vrshrs_n): ...this and...
5208         (vrshru_n): ...this.
5209         (vshrn_n): Split to itself and...
5210         (vrshrn_n): ...this.
5211         (vqshrn_n): Split to...
5212         (vqshrns_n): ...this and...
5213         (vqshrnu_n): ...this and...
5214         (vqrshrns_n): ...this and...
5215         (vqrshrnu_n): ...this.
5216         (vqshrun_n): Split to itself and...
5217         (vqrshrun_n): ...this.
5218         (vqshl_n): Split to...
5219         (vqshl_s_n): ...this and...
5220         (vqshl_u_n): ...this.
5221         (vshll_n): Split to...
5222         (vshlls_n): ...this and...
5223         (vshllu_n): ...this.
5224         (vsra_n): Split to...
5225         (vsras_n): ...this and...
5226         (vsrau_n): ...this and.
5227         (vrsras_n): ...this and...
5228         (vrsrau_n): ...this and.
5229         (vsubl): Split to...
5230         (vsubls): ...this and...
5231         (vsublu): ...this.
5232         (vsubw): Split to...
5233         (vsubws): ...this and...
5234         (vsubwu): ...this.
5235         (vqsub): Split to...
5236         (vqsubs): ...this and...
5237         (vqsubu): ...this.
5238         (vhsub): Split to...
5239         (vhsubs): ...this and...
5240         (vhsubu): ...this.
5241         (vsubhn): Split to itself and...
5242         (vrsubhn): ...this.
5243         (vabd): Split to...
5244         (vabds): ...this and...
5245         (vabdu): ...this and...
5246         (vabdf): ...this.
5247         (vabdl): Split to...
5248         (vabdls): ...this and...
5249         (vabdlu): ...this.
5250         (vaba): Split to...
5251         (vabas): ...this and...
5252         (vabau): ...this and...
5253         (vabal): Split to...
5254         (vabals): ...this and...
5255         (vabalu): ...this.
5256         (vmax): Split to...
5257         (vmaxs): ...this and...
5258         (vmaxu): ...this and...
5259         (vmaxf): ...this.
5260         (vmin): Split to...
5261         (vmins): ...this and...
5262         (vminu): ...this and...
5263         (vminf): ...this.
5264         (vpmax): Split to...
5265         (vpmaxs): ...this and...
5266         (vpmaxu): ...this and...
5267         (vpmaxf): ...this.
5268         (vpmin): Split to...
5269         (vpmins): ...this and...
5270         (vpminu): ...this and...
5271         (vpminf): ...this.
5272         (vpaddl): Split to...
5273         (vpaddls): ...this and...
5274         (vpaddlu): ...this.
5275         (vpadal): Split to...
5276         (vpadals): ...this and...
5277         (vpadalu): ...this.
5278         (vget_laneu): New.
5279         (vqmovn): Split to...
5280         (vqmovns): ...this and...
5281         (vqmovnu): ...this.
5282         (vmovl): Split to...
5283         (vmovls): ...this and...
5284         (vmovlu): ...this.
5285         (vmlal_lane): Split to...
5286         (vmlals_lane): ...this and...
5287         (vmlalu_lane): ...this.
5288         (vmlsl_lane): Split to...
5289         (vmlsls_lane): ...this and...
5290         (vmlslu_lane): ...this.
5291         (vmlal_n): Split to...
5292         (vmlals_n): ...this and...
5293         (vmlalu_n): ...this.
5294         (vmlsl_n): Split to...
5295         (vmlsls_n): ...this and...
5296         (vmlslu_n): ...this.
5297         (vext): Make type "SHIFTINSERT".
5298         (vcvt): Split to...
5299         (vcvts): ...this and...
5300         (vcvtu): ...this.
5301         (vcvt_n): Split to...
5302         (vcvts_n): ...this and...
5303         (vcvtu_n): ...this.
5304         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
5305         (vaddl_s16): Likewise.
5306         (vaddl_s32): Likewise.
5307         (vaddl_u8): Likewise.
5308         (vaddl_u16): Likewise.
5309         (vaddl_u32): Likewise.
5310         (vaddw_s8): Likewise.
5311         (vaddw_s16): Likewise.
5312         (vaddw_s32): Likewise.
5313         (vaddw_u8): Likewise.
5314         (vaddw_u16): Likewise.
5315         (vaddw_u32): Likewise.
5316         (vhadd_s8): Likewise.
5317         (vhadd_s16): Likewise.
5318         (vhadd_s32): Likewise.
5319         (vhadd_u8): Likewise.
5320         (vhadd_u16): Likewise.
5321         (vhadd_u32): Likewise.
5322         (vhaddq_s8): Likewise.
5323         (vhaddq_s16): Likewise.
5324         (vhaddq_s32): Likewise.
5325         (vhaddq_u8): Likewise.
5326         (vhaddq_u16): Likewise.
5327         (vrhadd_s8): Likewise.
5328         (vrhadd_s16): Likewise.
5329         (vrhadd_s32): Likewise.
5330         (vrhadd_u8): Likewise.
5331         (vrhadd_u16): Likewise.
5332         (vrhadd_u32): Likewise.
5333         (vrhaddq_s8): Likewise.
5334         (vrhaddq_s16): Likewise.
5335         (vrhaddq_s32): Likewise.
5336         (vrhaddq_u8): Likewise.
5337         (vrhaddq_u16): Likewise.
5338         (vrhaddq_u32): Likewise.
5339         (vqadd_s8): Likewise.
5340         (vqadd_s16): Likewise.
5341         (vqadd_s32): Likewise.
5342         (vqadd_s64): Likewise.
5343         (vqadd_u8): Likewise.
5344         (vqadd_u16): Likewise.
5345         (vqadd_u32): Likewise.
5346         (vqadd_u64): Likewise.
5347         (vqaddq_s8): Likewise.
5348         (vqaddq_s16): Likewise.
5349         (vqaddq_s32): Likewise.
5350         (vqaddq_s64): Likewise.
5351         (vqaddq_u8): Likewise.
5352         (vqaddq_u16): Likewise.
5353         (vqaddq_u32): Likewise.
5354         (vqaddq_u64): Likewise.
5355         (vaddhn_s16): Likewise.
5356         (vaddhn_s32): Likewise.
5357         (vaddhn_s64): Likewise.
5358         (vaddhn_u16): Likewise.
5359         (vaddhn_u32): Likewise.
5360         (vaddhn_u64): Likewise.
5361         (vraddhn_s16): Likewise.
5362         (vraddhn_s32): Likewise.
5363         (vraddhn_s64): Likewise.
5364         (vraddhn_u16): Likewise.
5365         (vraddhn_u32): Likewise.
5366         (vraddhn_u64): Likewise.
5367         (vmul_p8): Likewise.
5368         (vmulq_p8): Likewise.
5369         (vqdmulh_s16): Likewise.
5370         (vqdmulh_s32): Likewise.
5371         (vqdmulhq_s16): Likewise.
5372         (vqdmulhq_s32): Likewise.
5373         (vqrdmulh_s16): Likewise.
5374         (vqrdmulh_s32): Likewise.
5375         (vqrdmulhq_s16): Likewise.
5376         (vqrdmulhq_s32): Likewise.
5377         (vmull_s8): Likewise.
5378         (vmull_s16): Likewise.
5379         (vmull_s32): Likewise.
5380         (vmull_u8): Likewise.
5381         (vmull_u16): Likewise.
5382         (vmull_u32): Likewise.
5383         (vmull_p8): Likewise.
5384         (vqdmull_s16): Likewise.
5385         (vqdmull_s32): Likewise.
5386         (vmla_s8): Likewise.
5387         (vmla_s16): Likewise.
5388         (vmla_s32): Likewise.
5389         (vmla_f32): Likewise.
5390         (vmla_u8): Likewise.
5391         (vmla_u16): Likewise.
5392         (vmla_u32): Likewise.
5393         (vmlaq_s8): Likewise.
5394         (vmlaq_s16): Likewise.
5395         (vmlaq_s32): Likewise.
5396         (vmlaq_f32): Likewise.
5397         (vmlaq_u8): Likewise.
5398         (vmlaq_u16): Likewise.
5399         (vmlaq_u32): Likewise.
5400         (vmlal_s8): Likewise.
5401         (vmlal_s16): Likewise.
5402         (vmlal_s32): Likewise.
5403         (vmlal_u8): Likewise.
5404         (vmlal_u16): Likewise.
5405         (vmlal_u32): Likewise.
5406         (vqdmlal_s16): Likewise.
5407         (vqdmlal_s32): Likewise.
5408         (vmls_s8): Likewise.
5409         (vmls_s16): Likewise.
5410         (vmls_s32): Likewise.
5411         (vmls_f32): Likewise.
5412         (vmls_u8): Likewise.
5413         (vmls_u16): Likewise.
5414         (vmls_u32): Likewise.
5415         (vmlsq_s8): Likewise.
5416         (vmlsq_s16): Likewise.
5417         (vmlsq_s32): Likewise.
5418         (vmlsq_f32): Likewise.
5419         (vmlsq_u8): Likewise.
5420         (vmlsq_u16): Likewise.
5421         (vmlsq_u32): Likewise.
5422         (vmlsl_s8): Likewise.
5423         (vmlsl_s16): Likewise.
5424         (vmlsl_s32): Likewise.
5425         (vmlsl_u8): Likewise.
5426         (vmlsl_u16): Likewise.
5427         (vmlsl_u32): Likewise.
5428         (vqdmlsl_s16): Likewise.
5429         (vqdmlsl_s32): Likewise.
5430         (vfma_f32): Likewise.
5431         (vfmaq_f32): Likewise.
5432         (vfms_f32): Likewise.
5433         (vfmsq_f32): Likewise.
5434         (vsubl_s8): Likewise.
5435         (vsubl_s16): Likewise.
5436         (vsubl_s32): Likewise.
5437         (vsubl_u8): Likewise.
5438         (vsubl_u16): Likewise.
5439         (vsubl_u32): Likewise.
5440         (vsubw_s8): Likewise.
5441         (vsubw_s16): Likewise.
5442         (vsubw_s32): Likewise.
5443         (vsubw_u8): Likewise.
5444         (vsubw_u16): Likewise.
5445         (vsubw_u32): Likewise.
5446         (vhsub_s8): Likewise.
5447         (vhsub_s16): Likewise.
5448         (vhsub_s32): Likewise.
5449         (vhsub_u8): Likewise.
5450         (vhsub_u16): Likewise.
5451         (vhsub_u32): Likewise.
5452         (vhsubq_s8): Likewise.
5453         (vhsubq_s16): Likewise.
5454         (vhsubq_s32): Likewise.
5455         (vhsubq_u8): Likewise.
5456         (vhsubq_u16): Likewise.
5457         (vhsubq_u32): Likewise.
5458         (vqsub_s8): Likewise.
5459         (vqsub_s16): Likewise.
5460         (vqsub_s32): Likewise.
5461         (vqsub_s64): Likewise.
5462         (vqsub_u8): Likewise.
5463         (vqsub_u16): Likewise.
5464         (vqsub_u32): Likewise.
5465         (vqsub_u64): Likewise.
5466         (vqsubq_s8): Likewise.
5467         (vqsubq_s16): Likewise.
5468         (vqsubq_s32): Likewise.
5469         (vqsubq_s64): Likewise.
5470         (vqsubq_u8): Likewise.
5471         (vqsubq_u16): Likewise.
5472         (vqsubq_u32): Likewise.
5473         (vqsubq_u64): Likewise.
5474         (vsubhn_s16): Likewise.
5475         (vsubhn_s32): Likewise.
5476         (vsubhn_s64): Likewise.
5477         (vsubhn_u16): Likewise.
5478         (vsubhn_u32): Likewise.
5479         (vsubhn_u64): Likewise.
5480         (vrsubhn_s16): Likewise.
5481         (vrsubhn_s32): Likewise.
5482         (vrsubhn_s64): Likewise.
5483         (vrsubhn_u16): Likewise.
5484         (vrsubhn_u32): Likewise.
5485         (vrsubhn_u64): Likewise.
5486         (vceq_s8): Likewise.
5487         (vceq_s16): Likewise.
5488         (vceq_s32): Likewise.
5489         (vceq_f32): Likewise.
5490         (vceq_u8): Likewise.
5491         (vceq_u16): Likewise.
5492         (vceq_u32): Likewise.
5493         (vceq_p8): Likewise.
5494         (vceqq_s8): Likewise.
5495         (vceqq_s16): Likewise.
5496         (vceqq_s32): Likewise.
5497         (vceqq_f32): Likewise.
5498         (vceqq_u8): Likewise.
5499         (vceqq_u16): Likewise.
5500         (vceqq_u32): Likewise.
5501         (vceqq_p8): Likewise.
5502         (vcge_s8): Likewise.
5503         (vcge_s16): Likewise.
5504         (vcge_s32): Likewise.
5505         (vcge_f32): Likewise.
5506         (vcge_u8): Likewise.
5507         (vcge_u16): Likewise.
5508         (vcge_u32): Likewise.
5509         (vcgeq_s8): Likewise.
5510         (vcgeq_s16): Likewise.
5511         (vcgeq_s32): Likewise.
5512         (vcgeq_f32): Likewise.
5513         (vcgeq_u8): Likewise.
5514         (vcgeq_u16): Likewise.
5515         (vcgeq_u32): Likewise.
5516         (vcle_s8): Likewise.
5517         (vcle_s16): Likewise.
5518         (vcle_s32): Likewise.
5519         (vcle_f32): Likewise.
5520         (vcle_u8): Likewise.
5521         (vcle_u16): Likewise.
5522         (vcle_u32): Likewise.
5523         (vcleq_s8): Likewise.
5524         (vcleq_s16): Likewise.
5525         (vcleq_s32): Likewise.
5526         (vcleq_f32): Likewise.
5527         (vcleq_u8): Likewise.
5528         (vcleq_u16): Likewise.
5529         (vcleq_u32): Likewise.
5530         (vcgt_s8): Likewise.
5531         (vcgt_s16): Likewise.
5532         (vcgt_s32): Likewise.
5533         (vcgt_f32): Likewise.
5534         (vcgt_u8): Likewise.
5535         (vcgt_u16): Likewise.
5536         (vcgt_u32): Likewise.
5537         (vcgtq_s8): Likewise.
5538         (vcgtq_s16): Likewise.
5539         (vcgtq_s32): Likewise.
5540         (vcgtq_f32): Likewise.
5541         (vcgtq_u8): Likewise.
5542         (vcgtq_u16): Likewise.
5543         (vcgtq_u32): Likewise.
5544         (vclt_s8): Likewise.
5545         (vclt_s16): Likewise.
5546         (vclt_s32): Likewise.
5547         (vclt_f32): Likewise.
5548         (vclt_u8): Likewise.
5549         (vclt_u16): Likewise.
5550         (vclt_u32): Likewise.
5551         (vcltq_s8): Likewise.
5552         (vcltq_s16): Likewise.
5553         (vcltq_s32): Likewise.
5554         (vcltq_f32): Likewise.
5555         (vcltq_u8): Likewise.
5556         (vcltq_u16): Likewise.
5557         (vcltq_u32): Likewise.
5558         (vcage_f32): Likewise.
5559         (vcageq_f32): Likewise.
5560         (vcale_f32): Likewise.
5561         (vcaleq_f32): Likewise.
5562         (vcagt_f32): Likewise.
5563         (vcagtq_f32): Likewise.
5564         (vcalt_f32): Likewise.
5565         (vcaltq_f32): Likewise.
5566         (vtst_s8): Likewise.
5567         (vtst_s16): Likewise.
5568         (vtst_s32): Likewise.
5569         (vtst_u8): Likewise.
5570         (vtst_u16): Likewise.
5571         (vtst_u32): Likewise.
5572         (vtst_p8): Likewise.
5573         (vtstq_s8): Likewise.
5574         (vtstq_s16): Likewise.
5575         (vtstq_s32): Likewise.
5576         (vtstq_u8): Likewise.
5577         (vtstq_u16): Likewise.
5578         (vtstq_u32): Likewise.
5579         (vtstq_p8): Likewise.
5580         (vabd_s8): Likewise.
5581         (vabd_s16): Likewise.
5582         (vabd_s32): Likewise.
5583         (vabd_f32): Likewise.
5584         (vabd_u8): Likewise.
5585         (vabd_u16): Likewise.
5586         (vabd_u32): Likewise.
5587         (vabdq_s8): Likewise.
5588         (vabdq_s16): Likewise.
5589         (vabdq_s32): Likewise.
5590         (vabdq_f32): Likewise.
5591         (vabdq_u8): Likewise.
5592         (vabdq_u16): Likewise.
5593         (vabdq_u32): Likewise.
5594         (vabdl_s8): Likewise.
5595         (vabdl_s16): Likewise.
5596         (vabdl_s32): Likewise.
5597         (vabdl_u8): Likewise.
5598         (vabdl_u16): Likewise.
5599         (vabdl_u32): Likewise.
5600         (vaba_s8): Likewise.
5601         (vaba_s16): Likewise.
5602         (vaba_s32): Likewise.
5603         (vaba_u8): Likewise.
5604         (vaba_u16): Likewise.
5605         (vaba_u32): Likewise.
5606         (vabaq_s8): Likewise.
5607         (vabaq_s16): Likewise.
5608         (vabaq_s32): Likewise.
5609         (vabaq_u8): Likewise.
5610         (vabaq_u16): Likewise.
5611         (vabaq_u32): Likewise.
5612         (vabal_s8): Likewise.
5613         (vabal_s16): Likewise.
5614         (vabal_s32): Likewise.
5615         (vabal_u8): Likewise.
5616         (vabal_u16): Likewise.
5617         (vabal_u32): Likewise.
5618         (vmax_s8): Likewise.
5619         (vmax_s16): Likewise.
5620         (vmax_s32): Likewise.
5621         (vmax_f32): Likewise.
5622         (vmax_u8): Likewise.
5623         (vmax_u16): Likewise.
5624         (vmax_u32): Likewise.
5625         (vmaxq_s8): Likewise.
5626         (vmaxq_s16): Likewise.
5627         (vmaxq_s32): Likewise.
5628         (vmaxq_f32): Likewise.
5629         (vmaxq_u8): Likewise.
5630         (vmaxq_u16): Likewise.
5631         (vmaxq_u32): Likewise.
5632         (vmin_s8): Likewise.
5633         (vmin_s16): Likewise.
5634         (vmin_s32): Likewise.
5635         (vmin_f32): Likewise.
5636         (vmin_u8): Likewise.
5637         (vmin_u16): Likewise.
5638         (vmin_u32): Likewise.
5639         (vminq_s8): Likewise.
5640         (vminq_s16): Likewise.
5641         (vminq_s32): Likewise.
5642         (vminq_f32): Likewise.
5643         (vminq_u8): Likewise.
5644         (vminq_u16): Likewise.
5645         (vminq_u32): Likewise.
5646         (vpadd_s8): Likewise.
5647         (vpadd_s16): Likewise.
5648         (vpadd_s32): Likewise.
5649         (vpadd_f32): Likewise.
5650         (vpadd_u8): Likewise.
5651         (vpadd_u16): Likewise.
5652         (vpadd_u32): Likewise.
5653         (vpaddl_s8): Likewise.
5654         (vpaddl_s16): Likewise.
5655         (vpaddl_s32): Likewise.
5656         (vpaddl_u8): Likewise.
5657         (vpaddl_u16): Likewise.
5658         (vpaddl_u32): Likewise.
5659         (vpaddlq_s8): Likewise.
5660         (vpaddlq_s16): Likewise.
5661         (vpaddlq_s32): Likewise.
5662         (vpaddlq_u8): Likewise.
5663         (vpaddlq_u16): Likewise.
5664         (vpaddlq_u32): Likewise.
5665         (vpadal_s8): Likewise.
5666         (vpadal_s16): Likewise.
5667         (vpadal_s32): Likewise.
5668         (vpadal_u8): Likewise.
5669         (vpadal_u16): Likewise.
5670         (vpadal_u32): Likewise.
5671         (vpadalq_s8): Likewise.
5672         (vpadalq_s16): Likewise.
5673         (vpadalq_s32): Likewise.
5674         (vpadalq_u8): Likewise.
5675         (vpadalq_u16): Likewise.
5676         (vpadalq_u32): Likewise.
5677         (vpmax_s8): Likewise.
5678         (vpmax_s16): Likewise.
5679         (vpmax_s32): Likewise.
5680         (vpmax_f32): Likewise.
5681         (vpmax_u8): Likewise.
5682         (vpmax_u16): Likewise.
5683         (vpmax_u32): Likewise.
5684         (vpmin_s8): Likewise.
5685         (vpmin_s16): Likewise.
5686         (vpmin_s32): Likewise.
5687         (vpmin_f32): Likewise.
5688         (vpmin_u8): Likewise.
5689         (vpmin_u16): Likewise.
5690         (vpmin_u32): Likewise.
5691         (vrecps_f32): Likewise.
5692         (vrecpsq_f32): Likewise.
5693         (vrsqrts_f32): Likewise.
5694         (vrsqrtsq_f32): Likewise.
5695         (vshl_s8): Likewise.
5696         (vshl_s16): Likewise.
5697         (vshl_s32): Likewise.
5698         (vshl_s64): Likewise.
5699         (vshl_u8): Likewise.
5700         (vshl_u16): Likewise.
5701         (vshl_u32): Likewise.
5702         (vshl_u64): Likewise.
5703         (vshlq_s8): Likewise.
5704         (vshlq_s16): Likewise.
5705         (vshlq_s32): Likewise.
5706         (vshlq_s64): Likewise.
5707         (vshlq_u8): Likewise.
5708         (vshlq_u16): Likewise.
5709         (vshlq_u32): Likewise.
5710         (vshlq_u64): Likewise.
5711         (vrshl_s8): Likewise.
5712         (vrshl_s16): Likewise.
5713         (vrshl_s32): Likewise.
5714         (vrshl_s64): Likewise.
5715         (vrshl_u8): Likewise.
5716         (vrshl_u16): Likewise.
5717         (vrshl_u32): Likewise.
5718         (vrshl_u64): Likewise.
5719         (vrshlq_s8): Likewise.
5720         (vrshlq_s16): Likewise.
5721         (vrshlq_s32): Likewise.
5722         (vrshlq_s64): Likewise.
5723         (vrshlq_u8): Likewise.
5724         (vrshlq_u16): Likewise.
5725         (vrshlq_u32): Likewise.
5726         (vrshlq_u64): Likewise.
5727         (vqshl_s8): Likewise.
5728         (vqshl_s16): Likewise.
5729         (vqshl_s32): Likewise.
5730         (vqshl_s64): Likewise.
5731         (vqshl_u8): Likewise.
5732         (vqshl_u16): Likewise.
5733         (vqshl_u32): Likewise.
5734         (vqshl_u64): Likewise.
5735         (vqshlq_s8): Likewise.
5736         (vqshlq_s16): Likewise.
5737         (vqshlq_s32): Likewise.
5738         (vqshlq_s64): Likewise.
5739         (vqshlq_u8): Likewise.
5740         (vqshlq_u16): Likewise.
5741         (vqshlq_u32): Likewise.
5742         (vqshlq_u64): Likewise.
5743         (vqrshl_s8): Likewise.
5744         (vqrshl_s16): Likewise.
5745         (vqrshl_s32): Likewise.
5746         (vqrshl_s64): Likewise.
5747         (vqrshl_u8): Likewise.
5748         (vqrshl_u16): Likewise.
5749         (vqrshl_u32): Likewise.
5750         (vqrshl_u64): Likewise.
5751         (vqrshlq_s8): Likewise.
5752         (vqrshlq_s16): Likewise.
5753         (vqrshlq_s32): Likewise.
5754         (vqrshlq_s64): Likewise.
5755         (vqrshlq_u8): Likewise.
5756         (vqrshlq_u16): Likewise.
5757         (vqrshlq_u32): Likewise.
5758         (vqrshlq_u64): Likewise.
5759         (vshr_n_s8): Likewise.
5760         (vshr_n_s16): Likewise.
5761         (vshr_n_s32): Likewise.
5762         (vshr_n_s64): Likewise.
5763         (vshr_n_u8): Likewise.
5764         (vshr_n_u16): Likewise.
5765         (vshr_n_u32): Likewise.
5766         (vshr_n_u64): Likewise.
5767         (vshrq_n_s8): Likewise.
5768         (vshrq_n_s16): Likewise.
5769         (vshrq_n_s32): Likewise.
5770         (vshrq_n_s64): Likewise.
5771         (vshrq_n_u8): Likewise.
5772         (vshrq_n_u16): Likewise.
5773         (vshrq_n_u32): Likewise.
5774         (vshrq_n_u64): Likewise.
5775         (vrshr_n_s8): Likewise.
5776         (vrshr_n_s16): Likewise.
5777         (vrshr_n_s32): Likewise.
5778         (vrshr_n_s64): Likewise.
5779         (vrshr_n_u8): Likewise.
5780         (vrshr_n_u16): Likewise.
5781         (vrshr_n_u32): Likewise.
5782         (vrshr_n_u64): Likewise.
5783         (vrshrq_n_s8): Likewise.
5784         (vrshrq_n_s16): Likewise.
5785         (vrshrq_n_s32): Likewise.
5786         (vrshrq_n_s64): Likewise.
5787         (vrshrq_n_u8): Likewise.
5788         (vrshrq_n_u16): Likewise.
5789         (vrshrq_n_u32): Likewise.
5790         (vrshrq_n_u64): Likewise.
5791         (vshrn_n_s16): Likewise.
5792         (vshrn_n_s32): Likewise.
5793         (vshrn_n_s64): Likewise.
5794         (vshrn_n_u16): Likewise.
5795         (vshrn_n_u32): Likewise.
5796         (vshrn_n_u64): Likewise.
5797         (vrshrn_n_s16): Likewise.
5798         (vrshrn_n_s32): Likewise.
5799         (vrshrn_n_s64): Likewise.
5800         (vrshrn_n_u16): Likewise.
5801         (vrshrn_n_u32): Likewise.
5802         (vrshrn_n_u64): Likewise.
5803         (vqshrn_n_s16): Likewise.
5804         (vqshrn_n_s32): Likewise.
5805         (vqshrn_n_s64): Likewise.
5806         (vqshrn_n_u16): Likewise.
5807         (vqshrn_n_u32): Likewise.
5808         (vqshrn_n_u64): Likewise.
5809         (vqrshrn_n_s16): Likewise.
5810         (vqrshrn_n_s32): Likewise.
5811         (vqrshrn_n_s64): Likewise.
5812         (vqrshrn_n_u16): Likewise.
5813         (vqrshrn_n_u32): Likewise.
5814         (vqrshrn_n_u64): Likewise.
5815         (vqshrun_n_s16): Likewise.
5816         (vqshrun_n_s32): Likewise.
5817         (vqshrun_n_s64): Likewise.
5818         (vqrshrun_n_s16): Likewise.
5819         (vqrshrun_n_s32): Likewise.
5820         (vqrshrun_n_s64): Likewise.
5821         (vshl_n_s8): Likewise.
5822         (vshl_n_s16): Likewise.
5823         (vshl_n_s32): Likewise.
5824         (vshl_n_s64): Likewise.
5825         (vshl_n_u8): Likewise.
5826         (vshl_n_u16): Likewise.
5827         (vshl_n_u32): Likewise.
5828         (vshl_n_u64): Likewise.
5829         (vshlq_n_s8): Likewise.
5830         (vshlq_n_s16): Likewise.
5831         (vshlq_n_s32): Likewise.
5832         (vshlq_n_s64): Likewise.
5833         (vshlq_n_u8): Likewise.
5834         (vshlq_n_u16): Likewise.
5835         (vshlq_n_u32): Likewise.
5836         (vshlq_n_u64): Likewise.
5837         (vqshl_n_s8): Likewise.
5838         (vqshl_n_s16): Likewise.
5839         (vqshl_n_s32): Likewise.
5840         (vqshl_n_s64): Likewise.
5841         (vqshl_n_u8): Likewise.
5842         (vqshl_n_u16): Likewise.
5843         (vqshl_n_u32): Likewise.
5844         (vqshl_n_u64): Likewise.
5845         (vqshlq_n_s8): Likewise.
5846         (vqshlq_n_s16): Likewise.
5847         (vqshlq_n_s32): Likewise.
5848         (vqshlq_n_s64): Likewise.
5849         (vqshlq_n_u8): Likewise.
5850         (vqshlq_n_u16): Likewise.
5851         (vqshlq_n_u32): Likewise.
5852         (vqshlq_n_u64): Likewise.
5853         (vqshlu_n_s8): Likewise.
5854         (vqshlu_n_s16): Likewise.
5855         (vqshlu_n_s32): Likewise.
5856         (vqshlu_n_s64): Likewise.
5857         (vqshluq_n_s8): Likewise.
5858         (vqshluq_n_s16): Likewise.
5859         (vqshluq_n_s32): Likewise.
5860         (vqshluq_n_s64): Likewise.
5861         (vshll_n_s8): Likewise.
5862         (vshll_n_s16): Likewise.
5863         (vshll_n_s32): Likewise.
5864         (vshll_n_u8): Likewise.
5865         (vshll_n_u16): Likewise.
5866         (vshll_n_u32): Likewise.
5867         (vsra_n_s8): Likewise.
5868         (vsra_n_s16): Likewise.
5869         (vsra_n_s32): Likewise.
5870         (vsra_n_s64): Likewise.
5871         (vsra_n_u8): Likewise.
5872         (vsra_n_u16): Likewise.
5873         (vsra_n_u32): Likewise.
5874         (vsra_n_u64): Likewise.
5875         (vsraq_n_s8): Likewise.
5876         (vsraq_n_s16): Likewise.
5877         (vsraq_n_s32): Likewise.
5878         (vsraq_n_s64): Likewise.
5879         (vsraq_n_u8): Likewise.
5880         (vsraq_n_u16): Likewise.
5881         (vsraq_n_u32): Likewise.
5882         (vsraq_n_u64): Likewise.
5883         (vrsra_n_s8): Likewise.
5884         (vrsra_n_s16): Likewise.
5885         (vrsra_n_s32): Likewise.
5886         (vrsra_n_s64): Likewise.
5887         (vrsra_n_u8): Likewise.
5888         (vrsra_n_u16): Likewise.
5889         (vrsra_n_u32): Likewise.
5890         (vrsra_n_u64): Likewise.
5891         (vrsraq_n_s8): Likewise.
5892         (vrsraq_n_s16): Likewise.
5893         (vrsraq_n_s32): Likewise.
5894         (vrsraq_n_s64): Likewise.
5895         (vrsraq_n_u8): Likewise.
5896         (vrsraq_n_u16): Likewise.
5897         (vrsraq_n_u32): Likewise.
5898         (vrsraq_n_u64): Likewise.
5899         (vabs_s8): Likewise.
5900         (vabs_s16): Likewise.
5901         (vabs_s32): Likewise.
5902         (vabs_f32): Likewise.
5903         (vabsq_s8): Likewise.
5904         (vabsq_s16): Likewise.
5905         (vabsq_s32): Likewise.
5906         (vabsq_f32): Likewise.
5907         (vqabs_s8): Likewise.
5908         (vqabs_s16): Likewise.
5909         (vqabs_s32): Likewise.
5910         (vqabsq_s8): Likewise.
5911         (vqabsq_s16): Likewise.
5912         (vqabsq_s32): Likewise.
5913         (vneg_s8): Likewise.
5914         (vneg_s16): Likewise.
5915         (vneg_s32): Likewise.
5916         (vneg_f32): Likewise.
5917         (vnegq_s8): Likewise.
5918         (vnegq_s16): Likewise.
5919         (vnegq_s32): Likewise.
5920         (vnegq_f32): Likewise.
5921         (vqneg_s8): Likewise.
5922         (vqneg_s16): Likewise.
5923         (vqneg_s32): Likewise.
5924         (vqnegq_s8): Likewise.
5925         (vqnegq_s16): Likewise.
5926         (vqnegq_s32): Likewise.
5927         (vmvn_s8): Likewise.
5928         (vmvn_s16): Likewise.
5929         (vmvn_s32): Likewise.
5930         (vmvn_u8): Likewise.
5931         (vmvn_u16): Likewise.
5932         (vmvn_u32): Likewise.
5933         (vmvn_p8): Likewise.
5934         (vmvnq_s8): Likewise.
5935         (vmvnq_s16): Likewise.
5936         (vmvnq_s32): Likewise.
5937         (vmvnq_u8): Likewise.
5938         (vmvnq_u16): Likewise.
5939         (vmvnq_u32): Likewise.
5940         (vmvnq_p8): Likewise.
5941         (vcls_s8): Likewise.
5942         (vcls_s16): Likewise.
5943         (vcls_s32): Likewise.
5944         (vclsq_s8): Likewise.
5945         (vclsq_s16): Likewise.
5946         (vclsq_s32): Likewise.
5947         (vclz_s8): Likewise.
5948         (vclz_s16): Likewise.
5949         (vclz_s32): Likewise.
5950         (vclz_u8): Likewise.
5951         (vclz_u16): Likewise.
5952         (vclz_u32): Likewise.
5953         (vclzq_s8): Likewise.
5954         (vclzq_s16): Likewise.
5955         (vclzq_s32): Likewise.
5956         (vclzq_u8): Likewise.
5957         (vclzq_u16): Likewise.
5958         (vclzq_u32): Likewise.
5959         (vcnt_s8): Likewise.
5960         (vcnt_u8): Likewise.
5961         (vcnt_p8): Likewise.
5962         (vcntq_s8): Likewise.
5963         (vcntq_u8): Likewise.
5964         (vcntq_p8): Likewise.
5965         (vrecpe_f32): Likewise.
5966         (vrecpe_u32): Likewise.
5967         (vrecpeq_f32): Likewise.
5968         (vrecpeq_u32): Likewise.
5969         (vrsqrte_f32): Likewise.
5970         (vrsqrte_u32): Likewise.
5971         (vrsqrteq_f32): Likewise.
5972         (vrsqrteq_u32): Likewise.
5973         (vget_lane_s8): Likewise.
5974         (vget_lane_s16): Likewise.
5975         (vget_lane_s32): Likewise.
5976         (vget_lane_f32): Likewise.
5977         (vget_lane_u8): Likewise.
5978         (vget_lane_u16): Likewise.
5979         (vget_lane_u32): Likewise.
5980         (vget_lane_p8): Likewise.
5981         (vget_lane_p16): Likewise.
5982         (vget_lane_s64): Likewise.
5983         (vget_lane_u64): Likewise.
5984         (vgetq_lane_s8): Likewise.
5985         (vgetq_lane_s16): Likewise.
5986         (vgetq_lane_s32): Likewise.
5987         (vgetq_lane_f32): Likewise.
5988         (vgetq_lane_u8): Likewise.
5989         (vgetq_lane_u16): Likewise.
5990         (vgetq_lane_u32): Likewise.
5991         (vgetq_lane_p8): Likewise.
5992         (vgetq_lane_p16): Likewise.
5993         (vgetq_lane_s64): Likewise.
5994         (vgetq_lane_u64): Likewise.
5995         (vcvt_s32_f32): Likewise.
5996         (vcvt_f32_s32): Likewise.
5997         (vcvt_f32_u32): Likewise.
5998         (vcvt_u32_f32): Likewise.
5999         (vcvtq_s32_f32): Likewise.
6000         (vcvtq_f32_s32): Likewise.
6001         (vcvtq_f32_u32): Likewise.
6002         (vcvtq_u32_f32): Likewise.
6003         (vcvt_n_s32_f32): Likewise.
6004         (vcvt_n_f32_s32): Likewise.
6005         (vcvt_n_f32_u32): Likewise.
6006         (vcvt_n_u32_f32): Likewise.
6007         (vcvtq_n_s32_f32): Likewise.
6008         (vcvtq_n_f32_s32): Likewise.
6009         (vcvtq_n_f32_u32): Likewise.
6010         (vcvtq_n_u32_f32): Likewise.
6011         (vmovn_s16): Likewise.
6012         (vmovn_s32): Likewise.
6013         (vmovn_s64): Likewise.
6014         (vmovn_u16): Likewise.
6015         (vmovn_u32): Likewise.
6016         (vmovn_u64): Likewise.
6017         (vqmovn_s16): Likewise.
6018         (vqmovn_s32): Likewise.
6019         (vqmovn_s64): Likewise.
6020         (vqmovn_u16): Likewise.
6021         (vqmovn_u32): Likewise.
6022         (vqmovn_u64): Likewise.
6023         (vqmovun_s16): Likewise.
6024         (vqmovun_s32): Likewise.
6025         (vqmovun_s64): Likewise.
6026         (vmovl_s8): Likewise.
6027         (vmovl_s16): Likewise.
6028         (vmovl_s32): Likewise.
6029         (vmovl_u8): Likewise.
6030         (vmovl_u16): Likewise.
6031         (vmovl_u32): Likewise.
6032         (vmul_lane_s16): Likewise.
6033         (vmul_lane_s32): Likewise.
6034         (vmul_lane_f32): Likewise.
6035         (vmul_lane_u16): Likewise.
6036         (vmul_lane_u32): Likewise.
6037         (vmulq_lane_s16): Likewise.
6038         (vmulq_lane_s32): Likewise.
6039         (vmulq_lane_f32): Likewise.
6040         (vmulq_lane_u16): Likewise.
6041         (vmulq_lane_u32): Likewise.
6042         (vmla_lane_s16): Likewise.
6043         (vmla_lane_s32): Likewise.
6044         (vmla_lane_f32): Likewise.
6045         (vmla_lane_u16): Likewise.
6046         (vmla_lane_u32): Likewise.
6047         (vmlaq_lane_s16): Likewise.
6048         (vmlaq_lane_s32): Likewise.
6049         (vmlaq_lane_f32): Likewise.
6050         (vmlaq_lane_u16): Likewise.
6051         (vmlaq_lane_u32): Likewise.
6052         (vmlal_lane_s16): Likewise.
6053         (vmlal_lane_s32): Likewise.
6054         (vmlal_lane_u16): Likewise.
6055         (vmlal_lane_u32): Likewise.
6056         (vqdmlal_lane_s16): Likewise.
6057         (vqdmlal_lane_s32): Likewise.
6058         (vmls_lane_s16): Likewise.
6059         (vmls_lane_s32): Likewise.
6060         (vmls_lane_f32): Likewise.
6061         (vmls_lane_u16): Likewise.
6062         (vmls_lane_u32): Likewise.
6063         (vmlsq_lane_s16): Likewise.
6064         (vmlsq_lane_s32): Likewise.
6065         (vmlsq_lane_f32): Likewise.
6066         (vmlsq_lane_u16): Likewise.
6067         (vmlsq_lane_u32): Likewise.
6068         (vmlsl_lane_s16): Likewise.
6069         (vmlsl_lane_s32): Likewise.
6070         (vmlsl_lane_u16): Likewise.
6071         (vmlsl_lane_u32): Likewise.
6072         (vqdmlsl_lane_s16): Likewise.
6073         (vqdmlsl_lane_s32): Likewise.
6074         (vmull_lane_s16): Likewise.
6075         (vmull_lane_s32): Likewise.
6076         (vmull_lane_u16): Likewise.
6077         (vmull_lane_u32): Likewise.
6078         (vqdmull_lane_s16): Likewise.
6079         (vqdmull_lane_s32): Likewise.
6080         (vqdmulhq_lane_s16): Likewise.
6081         (vqdmulhq_lane_s32): Likewise.
6082         (vqdmulh_lane_s16): Likewise.
6083         (vqdmulh_lane_s32): Likewise.
6084         (vqrdmulhq_lane_s16): Likewise.
6085         (vqrdmulhq_lane_s32): Likewise.
6086         (vqrdmulh_lane_s16): Likewise.
6087         (vqrdmulh_lane_s32): Likewise.
6088         (vmul_n_s16): Likewise.
6089         (vmul_n_s32): Likewise.
6090         (vmul_n_f32): Likewise.
6091         (vmul_n_u16): Likewise.
6092         (vmul_n_u32): Likewise.
6093         (vmulq_n_s16): Likewise.
6094         (vmulq_n_s32): Likewise.
6095         (vmulq_n_f32): Likewise.
6096         (vmulq_n_u16): Likewise.
6097         (vmulq_n_u32): Likewise.
6098         (vmull_n_s16): Likewise.
6099         (vmull_n_s32): Likewise.
6100         (vmull_n_u16): Likewise.
6101         (vmull_n_u32): Likewise.
6102         (vqdmull_n_s16): Likewise.
6103         (vqdmull_n_s32): Likewise.
6104         (vqdmulhq_n_s16): Likewise.
6105         (vqdmulhq_n_s32): Likewise.
6106         (vqdmulh_n_s16): Likewise.
6107         (vqdmulh_n_s32): Likewise.
6108         (vqrdmulhq_n_s16): Likewise.
6109         (vqrdmulhq_n_s32): Likewise.
6110         (vqrdmulh_n_s16): Likewise.
6111         (vqrdmulh_n_s32): Likewise.
6112         (vmla_n_s16): Likewise.
6113         (vmla_n_s32): Likewise.
6114         (vmla_n_f32): Likewise.
6115         (vmla_n_u16): Likewise.
6116         (vmla_n_u32): Likewise.
6117         (vmlaq_n_s16): Likewise.
6118         (vmlaq_n_s32): Likewise.
6119         (vmlaq_n_f32): Likewise.
6120         (vmlaq_n_u16): Likewise.
6121         (vmlaq_n_u32): Likewise.
6122         (vmlal_n_s16): Likewise.
6123         (vmlal_n_s32): Likewise.
6124         (vmlal_n_u16): Likewise.
6125         (vmlal_n_u32): Likewise.
6126         (vqdmlal_n_s16): Likewise.
6127         (vqdmlal_n_s32): Likewise.
6128         (vmls_n_s16): Likewise.
6129         (vmls_n_s32): Likewise.
6130         (vmls_n_f32): Likewise.
6131         (vmls_n_u16): Likewise.
6132         (vmls_n_u32): Likewise.
6133         (vmlsq_n_s16): Likewise.
6134         (vmlsq_n_s32): Likewise.
6135         (vmlsq_n_f32): Likewise.
6136         (vmlsq_n_u16): Likewise.
6137         (vmlsq_n_u32): Likewise.
6138         (vmlsl_n_s16): Likewise.
6139         (vmlsl_n_s32): Likewise.
6140         (vmlsl_n_u16): Likewise.
6141         (vmlsl_n_u32): Likewise.
6142         (vqdmlsl_n_s16): Likewise.
6143         (vqdmlsl_n_s32): Likewise.
6144
6145 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6146
6147         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
6148         Add cost of alu.arith in simple SImode case.
6149
6150 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
6151
6152         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
6153         registers.
6154
6155 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
6156
6157         * opts.c (finish_options): Disable aggressive opts for sanitizer.  
6158         (common_handle_option): Move code to finish_options.  
6159
6160 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
6161
6162         PR sanitizer/63802
6163         * stor-layout.c (min_align_of_type): Respect user alignment
6164         more.
6165
6166 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
6167
6168         * passes.c (remove_cgraph_node_from_order): New.
6169         (do_per_function_toporder): Register cgraph removal
6170         hook.
6171
6172 2014-11-17  Terry Guo  <terry.guo@arm.com>
6173
6174         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
6175         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
6176         (generic_vfp): Likewise.
6177         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
6178
6179 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
6180
6181         PR rtl-optimization/63906
6182         * lra-remat.c (operand_to_remat): Check SP and
6183         frame_pointer_required.
6184
6185 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
6186
6187         * doc/invoke.texi (floop-unroll-and-jam): Document
6188         (loop-unroll-jam-size): Likewise.
6189         (loop-unroll-jam-depth): Likewise.
6190         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
6191         (getScheduleForBandList): Replaced unsafe union_map reuse.
6192
6193 2014-11-17  Andrew Pinski  <apinski@cavium.com>
6194
6195         * config/aarch64/thunderx.md: Remove copyright which should not
6196         have been there.
6197
6198 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
6199             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6200
6201         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
6202         Altivec style vector loads that ignore the bottom 3 bits of the
6203         address.
6204         (rs6000_debug_addr_mask): New function to print the addr_mask
6205         values if debugging.
6206         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
6207         out addr_mask.
6208         (rs6000_setup_reg_addr_masks): Add support for Altivec style
6209         vector loads that ignore the bottom 3 bits of the address.  Allow
6210         pre-increment and pre-decrement on floating point, even if the
6211         -mupper-regs-{sf,df} options were used.
6212         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
6213         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
6214         placement for direct move support.
6215         (rs6000_option_override_internal): Add checks for -mupper-regs-df
6216         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
6217         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
6218         depending on the underlying cpu.
6219         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
6220         (rs6000_secondary_reload_toc_costs): Helper function to identify
6221         costs of a TOC load for secondary reload support.
6222         (rs6000_secondary_reload_memory): Helper function for secondary
6223         reload, to determine if a particular memory operation is directly
6224         handled by the hardware, or if it needs support from secondary
6225         reload to create a valid address.
6226         (rs6000_secondary_reload): Rework code, to be clearer.  If the
6227         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
6228         reload scalar values, since the FPR registers have D-form
6229         addressing. Move most of the code handling memory to the function
6230         rs6000_secondary_reload_memory, and use the reg_addr structure to
6231         determine what type of address modes are supported.  Print more
6232         debug information if -mdebug=addr.
6233         (rs6000_secondary_reload_inner): Rework entire function to be more
6234         general.  Use the reg_addr bits to determine what type of
6235         addressing is supported.
6236         (rs6000_preferred_reload_class): Rework.  Move constant handling
6237         into a single place.  Prefer using FLOAT_REGS for scalar floating
6238         point.
6239         (rs6000_secondary_reload_class): Use a FPR register to move a
6240         value from an Altivec register to a GPR, and vice versa.  Move VSX
6241         handling above traditional floating point.
6242
6243         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
6244         Delete some spaces in the constraints.
6245         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
6246         allow using FPR registers to load/store an Altivec register for
6247         scalar floating point types.
6248         (SF->SF move peephole2): Likewise.
6249         (DFmode splitter): Add a define_split to move floating point
6250         constants to the constant pool before register allocation.
6251         Normally constants are put into the pool immediately, but
6252         -ffast-math delays putting them into the constant pool for the
6253         reciprocal approximation support.
6254         (SFmode splitter): Likewise.
6255
6256         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
6257         (-mupper-regs-sf): Likewise.
6258
6259         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6260         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
6261         -mupper-regs-sf.
6262         (-mupper-regs): New combination option that sets -mupper-regs-sf
6263         and -mupper-regs-df by default if the cpu supports the instructions.
6264
6265         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6266         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
6267
6268         * config/rs6000/predicates.md (memory_fp_constant): New predicate
6269         to return true if the operand is a floating point constant that
6270         must be put into the constant pool, before register allocation
6271         occurs.
6272
6273         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
6274         -mupper-regs-df by default.
6275         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
6276         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
6277         various -mcpu=... options.
6278         (power7 cpu): Enable -mupper-regs-df by default.
6279
6280         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6281         -mupper-regs.
6282
6283 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6284
6285         * ira-conflicts.c (build_conflict_bit_table): Add the current
6286         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
6287
6288 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6289
6290         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
6291         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
6292         (devirtualization_time_bonus): Use it.
6293         (ipcp_discover_new_direct_edges): Likewise.
6294         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
6295         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
6296
6297 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6298
6299         * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
6300         to optimization_default_node.
6301
6302 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6303
6304         * cgraphunit.c (analyze_functions): Use opt_for_fn.
6305         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
6306
6307 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6308
6309         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
6310         (cgraph_node::cannot_return_p): Likewise.
6311         (cgraph_edge::cannot_lead_to_return_p): Likewise.
6312         (cgraph_edge::maybe_hot_p): Likewise.
6313
6314 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6315
6316         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
6317         (optimize_function_for_size_p): Likewise.
6318         (probably_never_executed): Likewise; replace cfun by fun.
6319
6320 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6321
6322         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
6323         variant reading from memory and assembling to ld1.
6324
6325         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6326         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6327         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6328         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6329         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6330         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6331         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6332
6333 2014-11-17  Jason Merrill  <jason@redhat.com>
6334
6335         * tree-inline.c (copy_fn): New.
6336         * tree-inline.h: Declare it.
6337
6338 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6339
6340         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6341         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6342         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6343         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6344         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6345         * config/aarch64/iterators.md (VD1): Remove.
6346
6347 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6348
6349         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6350         AARCH64_FL_CRYPTO from feature flags.
6351         (cortex-a57): Likewise.
6352         (cortex-a57.cortex-a53): Likewise.
6353
6354 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6355
6356         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6357         DECL_FUNCTION_SPECIFIC_TARGET.
6358         * i386.c (ix86_set_current_function): Handle explicit default options.
6359
6360 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6361
6362         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6363         instead of BNDmode.
6364         (expand_builtin_mempcpy_with_bounds): Likewise.
6365         (expand_builtin_memset_with_bounds): Likewise.
6366
6367 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6368
6369         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6370         ipa-ref.h, plugin-api.h.
6371         (get_string_length): Handle calls with bounds.
6372         (adjust_last_stmt): Likewise.
6373         (handle_builtin_strchr): Likewise.
6374         (handle_builtin_strcpy): Likewise.
6375         (handle_builtin_memcpy): Likewise.
6376         (handle_builtin_strcat): Likewise.
6377
6378 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6379
6380         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6381         (chkp_get_nochk_fndecl): New.
6382         (chkp_optimize_string_function_calls): New.
6383         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6384         * tree-cfg.h (insert_cond_bb): New.
6385         * tree-cfg.c (insert_cond_bb): New.
6386
6387 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6388
6389         * tree-core.h (built_in_class): Add builtin codes to be used
6390         by Pointer Bounds Checker for instrumented builtin functions.
6391         * tree-streamer-in.c: Include ipa-chkp.h.
6392         (streamer_get_builtin_tree): Created instrumented decl if
6393         required.
6394         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6395         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6396         function decls.
6397         (chkp_maybe_clone_builtin_fndecl): New.
6398         (chkp_maybe_create_clone): Support builtin function decls.
6399         (chkp_versioning): Clone builtin functions.
6400         * tree-chkp.c (chkp_instrument_normal_builtin): New.
6401         (chkp_add_bounds_to_call_stmt): Support builtin functions.
6402         (chkp_replace_function_pointer): Likewise.
6403         * builtins.c (expand_builtin_memcpy_args): New.
6404         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6405         (expand_builtin_memcpy_with_bounds): New.
6406         (expand_builtin_mempcpy_with_bounds): New.
6407         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
6408         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
6409         (expand_builtin_memset_with_bounds): New.
6410         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
6411         (expand_builtin_with_bounds): New.
6412         * builtins.h (expand_builtin_with_bounds): New.
6413         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
6414
6415 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
6416
6417         * gimple.h (gimple_set_visited, gimple_visited_p)
6418         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
6419         comments to these accessors.
6420
6421 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
6422
6423         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
6424         Set avr_log_details to "all".
6425
6426 2014-11-17  Richard Biener  <rguenther@suse.de>
6427
6428         PR middle-end/63898
6429         * match.pd: Guard X / CST -> X * CST' transform against
6430         zero CST.
6431
6432 2014-11-17  Terry Guo  <terry.guo@arm.com>
6433
6434         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
6435         format.
6436
6437 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6438
6439         * ifcvt.c (HAVE_cbranchcc4): Define.
6440         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6441         Use HAVE_cbranchcc4.
6442
6443 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6444
6445         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
6446         aarch64_convert_mode, aarch64_gen_ccmp_first,
6447         aarch64_gen_ccmp_next): New functions.
6448         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
6449
6450 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6451
6452         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
6453         * aarch64.c (aarch64_nzcv_codes): New data.
6454         (aarch64_ccmp_mode_to_code): New.
6455         (aarch64_print_operand): Output nzcv.
6456         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
6457         New patterns.
6458         (cstore<mode>4): Handle ccmp_cc_register.
6459         * config/aarch64/predicates.md (const0_operand): New.
6460
6461 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6462
6463         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
6464         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
6465         extacted from aarch64_get_condition_code.
6466         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
6467         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
6468
6469 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6470
6471         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
6472         aarch64_ccmp_operand): New constraints.
6473
6474 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6475
6476         * Makefile.in: Add ccmp.o.
6477         * ccmp.c: New file.
6478         * ccmp.h: New file.
6479         * expr.c: include "ccmp.h"
6480         (expand_cond_expr_using_cmove): Handle VOIDmode.
6481         (expand_expr_real_1): Try to expand ccmp.
6482
6483 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6484
6485         * cfgexpand.c (expand_gimple_cond): Check ccmp.
6486         * expmed.c (emit_cstore): Make it global.
6487         * expmed.h: #include "insn-codes.h"
6488         (emit_cstore): New prototype.
6489         * expr.c (expand_operands): Make it global.
6490         * expr.h (expand_operands): New prototype.
6491         * optabs.c (get_rtx_code): Make it global.
6492         * optabs.h (get_rtx_code): New prototype.
6493
6494 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6495
6496         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
6497         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6498         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6499
6500 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
6501
6502         PR middle-end/63790
6503         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
6504         Always combine comparisons or conversions from booleans.
6505
6506 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6507
6508         * ipa-polymorphic-call.c
6509         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
6510         (ipa_polymorphic_call_context::meet_speculation_with): New function.
6511         (ipa_polymorphic_call_context::combine_with): Handle types in construction
6512         better.
6513         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
6514         speculation.
6515         (ipa_polymorphic_call_context::meet_with): New function.
6516         * cgraph.h (class ipa_polymorphic_call_context): Add
6517         meet_width, meet_speculation_with; constify speculation_consistent_p.
6518         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
6519         context.
6520         (propagate_context_accross_jump_function): Likewise; be more cureful.
6521         about set_contains_variable.
6522         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
6523         (find_more_scalar_values_for_callers_subset): Fix.
6524         (find_more_contexts_for_caller_subset): Perform meet operation.
6525
6526 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6527
6528         * passes.c (execute_one_pass): Do not apply all transforms prior
6529         every simple IPA pass.
6530         * cgraphunit.c: Do not include fibheap.h
6531         (expand_thunk): Use get_untransformed_body.
6532         (cgraph_node::expand): Likewise.
6533         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
6534         * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
6535         (cgraph_node::get_untransformed_body): Break out from ...
6536         (cgraph_node::get_body): ... here; add code to apply all transforms.
6537         * cgraph.h (cgraph_node): Add get_untransformed_body.
6538         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
6539         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6540         * tree-inline.c (expand_call_inline): LIkewise.
6541         * i386.c (ix86_reset_to_default_globals): Break out from ...
6542         (ix86_set_current_function): ... here;
6543         (ix86_reset_previous_fndecl): Use it.
6544         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
6545
6546 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
6547
6548         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
6549         * doc/tm.texi: Regenerate.
6550
6551 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
6552
6553         * config/sh/sh.c: Do not include algorithm.
6554         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
6555         to swap values.
6556         (sh_emit_compare_and_branch): Ditto.
6557         (sh_emit_compare_and_set): Ditto.
6558         * config/sh/sh.md (replacement peephole2): Ditto.
6559         (cstore4_media): Ditto.
6560         (*fmasf4): Ditto.
6561
6562 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6563
6564         * lra-remat.c (cand_transf_func): Process regno for
6565         rematerialization too.
6566         * lra.c (lra): Switch on rematerialization pass.
6567
6568 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6569
6570         * lra.c (lra): Switch off rematerialization pass.
6571
6572 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
6573
6574         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
6575         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
6576         instead of builtins.
6577         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
6578         typedefs.
6579         (_mm_sqrt_sd): Fix comment.
6580         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6581         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6582         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6583         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
6584         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
6585         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
6586         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
6587         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
6588         Use vector extensions instead of builtins.
6589         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
6590         _mm_mullo_epi32): Likewise.
6591         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
6592         New typedefs.
6593         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
6594         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
6595         Use vector extensions instead of builtins.
6596         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
6597         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
6598         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
6599         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
6600         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
6601         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
6602         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
6603         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
6604         New typedefs.
6605         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
6606         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
6607         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
6608         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
6609         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
6610         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
6611         _mm512_div_ps): Use vector extensions instead of builtins.
6612         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
6613         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
6614         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
6615         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
6616         Likewise.
6617
6618 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
6619
6620         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
6621         * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
6622         * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
6623         * opth-gen.awk: Add prototype of cl_optimization_hash.
6624         * tree-streamer-in.c (unpack_ts_optimization): Remove.
6625         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
6626         * tree-streamer-out.c (pack_ts_optimization): Remove.
6627         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
6628
6629 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
6630
6631         * common.opt (flag_loop_unroll_and_jam): New flag.
6632         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
6633         jam flag.
6634         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
6635         * graphite-poly.h (struct poly_bb:map_sepclass): New field
6636         * graphite-poly.c (new_poly_bb): Initialization for new field.
6637         (apply_poly_transforms): Support for unroll and jam flag.
6638         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
6639         separation class.
6640         (generate_luj_sepclass_opt): Build the separation class option.
6641         (generate_luj_options): Set unroll and jam options.
6642         (set_options): Support for unroll and jam options.
6643         (scop_to_isl_ast): Likewise
6644         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
6645         computing the separating class map.
6646         (optimize_isl): Support for the separating class map.
6647         (apply_schedule_map_to_scop): Likewise.
6648         (getScheduleMap): Likewise.
6649         (getScheduleForBand): Likewise.
6650         (getScheduleForBandList): Likewise.
6651         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
6652         * toplev.c (process_options) Likewise.
6653
6654 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6655
6656         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
6657         from...
6658         (replace_loop_annotate): ...here.  Call it on the header and on the
6659         latch block, if any.  Restore proper behavior of final cleanup.
6660
6661 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6662
6663         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
6664         for max-completely-peeled-insns limit.
6665
6666 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6667
6668         * ipa-prop.h (ipa_known_type_data): Remove.
6669         (ipa_binfo_from_known_type_jfunc): Remove.
6670
6671 2014-11-14  Andrew Pinski  <apinski@cavium.com>
6672
6673         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
6674         over to thunderx.
6675         * config/aarch64/aarch64.md: Include thunderx.md.
6676         (generic_sched): Set to no for thunderx.
6677         * config/aarch64/thunderx.md: New file.
6678
6679 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6680
6681         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
6682         tests for 0.0.
6683
6684         * config/rs6000/vector.md (VEC_R): Move secondary reload support
6685         insns to rs6000.md from vector.md.
6686         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
6687         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
6688         (vec_reload_and_plus_<mptrsize>): Likewise.
6689
6690         * config/rs6000/rs6000.md (Fa): New mode attribute to give
6691         constraint for the Altivec registers for a type.
6692         (RELOAD): New mode iterator for all of the types that have
6693         secondary reload address support to load up a base register.
6694         (extendsfdf2_fpr): Use correct constraint.
6695         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
6696         instruction.
6697         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
6698         Generate the non-VSX instruction if all registers were FPRs.  Do
6699         not use the patterns in vsx.md for scalar operations.
6700         (floatsi<mode>2_lfiwax_mem): Likewise.
6701         (floatunssi<mode>2_lfiwzx): Likewise.
6702         (floatunssi<mode>2_lfiwzx_mem): Likewise.
6703         (fix_trunc<mode>di2_fctidz): Likewise.
6704         (fixuns_trunc<mode>di2_fctiduz): Likewise.
6705         (fctiwz_<mode>): Likewise.
6706         (fctiwuz_<mode>): Likewise.
6707         (friz): Likewise.
6708         (floatdidf2_fpr): Likewise.
6709         (floatdidf2_mem): Likewise.
6710         (floatunsdidf2): Likewise.
6711         (floatunsdidf2_fcfidu): Likewise.
6712         (floatunsdidf2_mem): Likewise.
6713         (floatdisf2_fcfids): Likewise.
6714         (floatdisf2_mem): Likewise.
6715         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
6716         it more obvious that the code is for pre-ISA 2.06 machines.
6717         (floatdisf2_internal2): Likewise.
6718         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
6719         Generate the non-VSX instruction if all registers were FPRs.  Do
6720         not use the patterns in vsx.md for scalar operations.
6721         (floatunsdisf2_mem): Likewise.
6722         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
6723         handlers here from vector.md, and expand the types we generate
6724         reload handlers for.
6725         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
6726         (vec_reload_and_plus_<mptrsize>): Likewise.
6727
6728         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
6729         vector forms of the instructions.  Move VSX scalar forms to
6730         rs6000.md, and add support for -mupper-regs-sf.
6731         (vsx_floatuns<VSi><mode>2): Likewise.
6732         (vsx_fix_trunc<mode><VSi>2): Likewise.
6733         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
6734         (vsx_float_fix_<mode>2): Delete DF version, rename to
6735         vsx_float_fix_v2df2.
6736         (vsx_float_fix_v2df2): Likewise.
6737
6738 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6739
6740         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
6741         (ipa_pass_through_data): Removed field type_preserved.
6742         (ipa_ancestor_jf_data): removed fields type and type_preserved.
6743         (ipa_jump_func): Removed field known_type.
6744         (ipa_get_jf_known_type_offset): Removed.
6745         (ipa_get_jf_known_type_base_type): Likewise.
6746         (ipa_get_jf_known_type_component_type): Likewise.
6747         (ipa_get_jf_ancestor_type): Likewise.
6748         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
6749         (ipa_get_jf_pass_through_result): Likewise.
6750         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
6751         (values_equal_for_ipcp_p): Removed BINFO handling.
6752         (ipa_get_indirect_edge_target_1): Updated comment.
6753         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
6754         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
6755         (ipa_set_jf_known_type): Removed.
6756         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
6757         all callers.
6758         (ipa_set_jf_arith_pass_through): Likewise.
6759         (ipa_set_ancestor_jf): Likewise.
6760         (ipa_binfo_from_known_type_jfunc): Removed.
6761         (prop_type_change_info): Removed fields known_current_type and
6762         multiple_types_encountered.
6763         (extr_type_from_vtbl_ptr_store): Removed.
6764         (check_stmt_for_type_change): Do not attempt to identify changed type.
6765         (detect_type_change_from_memory_writes): Do not set the removed fields,
6766         always set jfunc to unknown.
6767         (compute_complex_assign_jump_func): Do not detect dynamic type change.
6768         (compute_complex_ancestor_jump_func): Likewise.
6769         (compute_known_type_jump_func): Removed.
6770         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
6771         change.  Do not comute known type jump functions.
6772         (combine_known_type_and_ancestor_jfs): Removed.
6773         (update_jump_functions_after_inlining): Removed handling of
6774         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
6775         (ipa_write_jump_function): Do not stream removed fields or known type
6776         jump functions.
6777         (ipa_read_jump_function): Likewise.
6778
6779 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
6780
6781         * lra-int.h (lra_create_live_ranges): Add parameter.
6782         * lra-lives.c (temp_bitmap): Move higher.
6783         (initiate_live_solver): Move temp_bitmap initialization into
6784         lra_live_ranges_init.
6785         (finish_live_solver): Move temp_bitmap clearing into
6786         live_ranges_finish.
6787         (process_bb_lives): Add parameter.  Use it to control live info
6788         update and dead insn elimination.  Pass it to mark_regno_live and
6789         mark_regno_dead.
6790         (lra_create_live_ranges): Add parameter.  Pass it to
6791         process_bb_lives.
6792         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
6793         initiate_live_solver and finish_live_solver.
6794         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
6795         Use temp_bitmap to update avail_cands.
6796         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
6797         check with lra_need_for_spill_p after live range pass.  Switch on
6798         rematerialization pass.
6799
6800 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6801
6802         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
6803         agg_preserved flag instead.
6804         (ipa_get_jf_ancestor_type_preserved): Likewise.
6805         (ipa_node_params): Rename known_vals to known_csts, update all users.
6806         New field known_contexts.
6807         (ipa_get_indirect_edge_target): Update prototype.
6808         (ipcp_poly_ctx_values_pool): Declare.
6809         (ipa_context_from_jfunc): Likewise.
6810         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
6811         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
6812         parameter newline of method dump.
6813         * ipa-cp.c (ctxlat): New field.
6814         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
6815         (ipcp_poly_ctx_values_pool):New variable.
6816         (ipa_get_poly_ctx_lat): New function.
6817         (print_ipcp_constant_value): New overloaded function for contexts.
6818         (print_all_lattices): Also print contexts.
6819         (ipa_topo_info): New field contexts;
6820         (set_all_contains_variable): Also set the flag in the context lattice.
6821         (initialize_node_lattices): Likewise for flag bottom.
6822         (ipa_get_jf_ancestor_result): Removed BINFO handling.
6823         (ipa_value_from_jfunc): Likewise.
6824         (ipa_context_from_jfunc): New function.
6825         (values_equal_for_ipcp_p): New overloaded function for contexts.
6826         (allocate_and_init_ipcp_value): Construct the value.
6827         (allocate_and_init_ipcp_value): New overloaded function for contexts.
6828         (propagate_scalar_accross_jump_function): Removed handling of
6829         KNOWN_TYPE jump functions.
6830         (propagate_context_accross_jump_function): New function.
6831         (propagate_constants_accross_call): Also propagate contexts.
6832         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
6833         (ipa_get_indirect_edge_target): Likewise.
6834         (devirtualization_time_bonus): Likewise.
6835         (gather_context_independent_values): Create and populate known_contexts
6836         vector rather than known_binfos.
6837         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
6838         (estimate_local_effects): Likewise.
6839         (add_all_node_vals_to_toposort): Also add contexts to teir topological
6840         sort.
6841         (ipcp_propagate_stage): Also propagate effects of contexts.
6842         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
6843         ipa_get_indirect_edge_target_1.
6844         (cgraph_edge_brings_value_p): New overloaded function for contexts.
6845         (create_specialized_node): Work on contexts rather than BINFOs.
6846         (find_more_contexts_for_caller_subset): New function.
6847         (known_contexts_useful_p): New function.
6848         (copy_useful_known_contexts): Likewise.
6849         (modify_known_vectors_with_val): Likewise.
6850         (ipcp_val_in_agg_replacements_p): Renamed to
6851         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
6852         non-aggregate.
6853         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
6854         (decide_about_value): Work on contexts rather than BINFOs.
6855         (decide_whether_version_node): Likewise.
6856         (ipcp_driver): Initialize the new alloc pool.
6857         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
6858         printing of edge contexts.
6859         (ipa_set_ancestor_jf): Replace assert with conditional setting of
6860         type_preserved to false.
6861         (update_jump_functions_after_inlining): Use access function instead of
6862         reading agg_preserved directly.  Store combined context in the ancestor
6863         case.
6864         (try_make_edge_direct_virtual_call): Work on contexts rather than
6865         BINFOs.
6866         (update_indirect_edges_after_inlining): Get context from
6867         ipa_context_from_jfunc.
6868         (ipa_free_node_params_substructures): Free also known_contexts.
6869         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
6870         (ipa_free_all_structures_after_iinln): Likewise.
6871         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
6872         contexts rather than BINFOs.
6873         (estimate_edge_devirt_benefit): Likewise.
6874         (estimate_edge_size_and_time): Likewise.
6875         (estimate_calls_size_and_time): Likewise.
6876         (estimate_node_size_and_time): Likewise.
6877         (estimate_ipcp_clone_size_and_time): Likewise.
6878         (do_estimate_edge_time): Likewise.
6879         (do_estimate_edge_size): Likewise.
6880         (do_estimate_edge_hints): Likewise.
6881         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
6882         parameter newline, ouput newline only when it is set.
6883         (ipa_polymorphic_call_context::equal_to): New method.
6884
6885 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6886
6887         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
6888         users converted to the same specialization as the using class/function
6889         or specialization on tree.
6890         (ipcp_value): Likewise.
6891         (ipcp_lattice): Likewise.
6892         (ipcp_agg_lattice): Now derived from tree specialization of
6893         ipcp_lattice.
6894         (values_topo): Moved to new class value_topo_info.
6895         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
6896         Updated all callers.
6897         (print_lattice): Turned into ipcp_lattice::print.  Updated all
6898         callers.
6899         (value_topo_info): New class template.
6900         (ipa_topo_info): New field constants.  New constructor.
6901         (build_toporder_info): Do not clear stack_top, only checkign assert
6902         it.
6903         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
6904         Updated all callers.
6905         (set_lattice_contains_variable): Turned into
6906         ipcp_lattice::set_contains_variable.  Updated all callers.
6907         (add_value_source): Turned into ipcp_value::add_source.  Updated all
6908         callers.
6909         (allocate_and_init_ipcp_value): New function.
6910         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
6911         parameter got default a value.  Updated all callers.
6912         (add_scalar_value_to_lattice): Removed, users converted to using
6913         ipcp_lattice::add_value with default value of the last parameter.
6914         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
6915         all callers.
6916         (propagate_effects): Made method of value_topo_info.
6917         (cgraph_edge_brings_value_p): Now a template function.
6918         (get_info_about_necessary_edges): Likewise.
6919         (gather_edges_for_value): Likewise.
6920         (perhaps_add_new_callers): Likewise.
6921         (decide_about_value): Likewise.
6922         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
6923
6924 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6925
6926         * doc/install.texi (--with-diagnostics-color=): Document.
6927
6928         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
6929         IFN_GOMP_SIMD_LANE without lhs as useless.
6930
6931         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
6932         (varying_state): Add true for can_free.
6933         (check_call): For builtin or internal !nonfreeing_call_p set
6934         local->can_free.
6935         (check_stmt): For asm volatile and asm with "memory" set
6936         local->can_free.
6937         (analyze_function): Clear local->can_free initially, continue
6938         calling check_stmt until all flags are computed, dump can_free
6939         flag.
6940         (pure_const_write_summary): Write can_free flag.
6941         (pure_const_read_summary): Read it back.
6942         (propagate_pure_const): Propagate also can_free flag, set
6943         w->nonfreeing_fn if it is false after propagation.
6944         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
6945         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
6946         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
6947         Also return true for IFN_ABNORMAL_DISPATCHER.
6948         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
6949         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
6950         (input_overwrite_node): Read it back.
6951
6952 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6953             Marek Polacek  <polacek@redhat.com>
6954
6955         * sanopt.c: Include tree-ssa-operands.h.
6956         (struct sanopt_info): Add has_freeing_call_p,
6957         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
6958         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
6959         being_visited_p fields.
6960         (struct sanopt_ctx): Add asan_check_map field.
6961         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
6962         maybe_optimize_asan_check_ifn): New functions.
6963         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
6964         internal calls.
6965         (pass_sanopt::execute): Call sanopt_optimize even for
6966         -fsanitize=address.
6967         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
6968         internal calls.
6969
6970 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6971
6972         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
6973         'if (extract_scalar_result)' to the only place that it is true.
6974
6975 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
6976
6977         * config.gcc (default_gnu_indirect_function): Set to yes
6978         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
6979         Android nor uclibc.
6980
6981 2014-11-14  Felix Yang  <felix.yang@huawei.com>
6982             Jiji Jiang  <jiangjiji@huawei.com>
6983
6984         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
6985         VALL mode iterator instead of VALLDI.
6986
6987 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6988
6989         * optc-save-gen.awk: Output cl_target_option_eq,
6990         cl_target_option_hash, cl_target_option_stream_out,
6991         cl_target_option_stream_in functions.
6992         * opth-gen.awk: Output prototypes for
6993         cl_target_option_eq and cl_target_option_hash.
6994         * lto-streamer.h (cl_target_option_stream_out,
6995         cl_target_option_stream_in): Declare.
6996         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
6997         (cl_option_hash_eq): Use cl_target_option_eq.
6998         * tree-streamer-in.c (unpack_value_fields): Stream in
6999         TREE_TARGET_OPTION.
7000         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
7001         DECL_FUNCTION_SPECIFIC_TARGET.
7002         (hash_tree): Hash TREE_TARGET_OPTION; visit
7003         DECL_FUNCTION_SPECIFIC_TARGET.
7004         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
7005         TS_TARGET_OPTION.
7006         (streamer_write_tree_body): Output TS_TARGET_OPTION.
7007
7008 2014-11-14  Richard Biener  <rguenther@suse.de>
7009
7010         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
7011         valueization hook defaulted to no_follow_ssa_edges.
7012         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
7013         2nd valueization hook to gimple_simplify.
7014         * tree-ssa-ccp.c (valueize_op_1): New function to be
7015         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7016         (ccp_fold): Adjust.
7017         * tree-vrp.c (vrp_valueize_1): New function to be
7018         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
7019         (vrp_visit_assignment_or_call): Adjust.
7020
7021 2014-11-14  Marek Polacek  <polacek@redhat.com>
7022
7023         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
7024         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
7025         folding with TYPE_OVERFLOW_SANITIZED.
7026
7027 2014-11-14  Marek Polacek  <polacek@redhat.com>
7028
7029         PR sanitizer/63839
7030         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
7031         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
7032         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
7033         Define.
7034         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
7035         instrument BUILT_IN_UNREACHABLE here.
7036         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
7037         const.
7038         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
7039         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
7040         SANITIZE_UNREACHABLE.
7041         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
7042         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
7043
7044 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7045
7046         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
7047         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
7048
7049 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
7050
7051         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
7052         BYTES_BIG_ENDIAN.
7053         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
7054         vect_create_epilog_for_reduction): Likewise.
7055         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
7056
7057 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7058
7059         PR target/63724
7060         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
7061         numerical immediate handling to...
7062         (aarch64_internal_mov_immediate): ...this. New.
7063         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
7064         (aarch64_mov_operand_p): Relax predicate.
7065         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
7066         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
7067         for 'n'.
7068         (*movdi_aarch64): Likewise.
7069
7070 2014-11-14  Richard Biener  <rguenther@suse.de>
7071
7072         * match.pd: Implement more binary patterns exercised by
7073         fold_stmt.
7074         * fold-const.c (sing_bit_p): Export.
7075         (exact_inverse): Likewise.
7076         (fold_binary_loc): Remove patterns here.
7077         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
7078         * fold-const.h (sing_bit_p): Declare.
7079         (exact_inverse): Likewise.
7080
7081 2014-11-14  Marek Polacek  <polacek@redhat.com>
7082
7083         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
7084
7085 2014-11-14  Richard Biener  <rguenther@suse.de>
7086
7087         * genmatch.c (add_operator): Allow CONSTRUCTOR.
7088         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
7089         (parser::parse_op): Allow to iterate over predicates.
7090
7091 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7092
7093         * configure.ac (--with-diagnostics-color): New configure
7094         option, default to --with-diagnostics-color=auto.
7095         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
7096         to determine -fdiagnostics-color= option default.
7097         * doc/invoke.texi (-fdiagnostics-color=): Document new
7098         default.
7099         * configure: Regenerated.
7100         * config.in: Regenerated.
7101
7102 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7103
7104         PR tree-optimization/63841
7105         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7106
7107 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
7108
7109         * timevar.def (TV_SCHED_FUSION): New time var.
7110         * passes.def (pass_sched_fusion): New pass.
7111         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
7112         (extract_base_offset_in_addr, fusion_load_store): New.
7113         (arm_sched_fusion_priority): New.
7114         (arm_option_override): Disable scheduling fusion by default
7115         on non-armv7 processors or ldrd/strd isn't preferred.
7116         * sched-int.h (struct _haifa_insn_data): New field.
7117         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
7118         * sched-rgn.c (rest_of_handle_sched_fusion): New.
7119         (pass_data_sched_fusion, pass_sched_fusion): New.
7120         (make_pass_sched_fusion): New.
7121         * haifa-sched.c (sched_fusion): New.
7122         (insn_cost): Handle sched_fusion.
7123         (priority): Handle sched_fusion by calling target hook.
7124         (enum rfs_decision): New enum value.
7125         (rfs_str): New element for RFS_FUSION.
7126         (rank_for_schedule): Support sched_fusion.
7127         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
7128         (schedule_block, fix_tick_ready): Handle sched_fusion.
7129         * common.opt (flag_schedule_fusion): New.
7130         * tree-pass.h (make_pass_sched_fusion): New.
7131         * target.def (fusion_priority): New.
7132         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
7133         * doc/tm.texi: Regenerated.
7134         * doc/invoke.texi (-fschedule-fusion): New.
7135
7136 2014-11-13  Rong Xu  <xur@google.com>
7137
7138         PR debug/63581
7139         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
7140         footer, instead of unconditionally overwritten.
7141
7142 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7143
7144         * cgraph.h (clear_outer_type): Make public.  Fix comment.
7145         * ipa-devirt.c (possible_polymorphic_call_targets): Use
7146         clear_outer_type when resetting the context.
7147
7148 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
7149
7150         PR bootstrap/63853
7151         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
7152         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
7153
7154 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7155
7156         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
7157         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7158         * tree-inline.c (estimate_operator_cost): Likewise.
7159         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
7160         Likewise.
7161
7162         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
7163         against VEC_RSHIFT_EXPR.
7164
7165         * optabs.h (expand_vec_shift_expr): Remove.
7166         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
7167         (expand_vec_shift_expr): Remove.
7168         * tree.def (VEC_RSHIFT_EXPR): Remove
7169
7170 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7171
7172         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
7173         (shift_amt_for_vec_perm_mask): New.
7174         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
7175         and mask appropriate.
7176
7177         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
7178         (have_whole_vector_shift): New.
7179         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
7180         looking for vec_shr_optab.
7181         (vect_create_epilog_for_reduction): Likewise; also rename local variable
7182         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
7183         instead of VEC_RSHIFT_EXPRs.
7184
7185         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
7186
7187 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7188
7189         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
7190         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
7191
7192         * tree_vec_data_refs.c (vect_permute_load_chain,
7193         vec_permute_store_chain, vec_shift_permute_load_chain): Replace
7194         vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
7195
7196         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
7197         Likewise.
7198         (vect_gen_perm_mask_checked): New.
7199         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
7200         (vect_gen_perm_mask_any): ...this.
7201         (perm_mask_for_reverse): Call can_vec_perm_p and
7202         vect_gen_perm_mask_checked.
7203
7204 2014-11-13  Felix Yang  <felix.yang@huawei.com>
7205
7206         * ipa-utils.h: Fix typo in comments.
7207         * ipa-profile.c: Likewise.
7208         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
7209
7210 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7211
7212         PR tree-optimization/63841
7213         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7214
7215 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7216
7217         PR tree-optimization/63841
7218         * tree.c (initializer_zerop): A clobber does not zero initialize.
7219
7220 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7221
7222         * optabs.c (prepare_operand): Gracefully fail if the mode of X
7223         does not match the operand mode expected by the insn pattern.
7224
7225 2014-11-13  Richard Biener  <rguenther@suse.de>
7226
7227         * match.pd: Add tcc_comparison, inverted_tcc_comparison
7228         and inverted_tcc_comparison_with_nans operator lists.
7229         Use tcc_comparison in the truth_valued_p predicate definition.
7230         Restrict logical_inverted_value with bit_xor to integral types.
7231         Build a boolean true for simplifying x |^ !x because of
7232         vector types.  Implement patterns from forward_propagate_comparison
7233         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
7234         (get_prop_dest_stmt): Likewise.
7235         (pass_forwprop::execute): Do not call it.
7236         * fold-const.c (fold_unary_loc): Remove the pattern here.
7237
7238 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7239             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7240
7241         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
7242         tmake_file.
7243         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
7244         accelerator compiler.
7245         * config/i386/intelmic-mkoffload.c: New file.
7246         * config/i386/t-intelmic: Ditto.
7247
7248 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7249             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7250             Ilya Verbin  <ilya.verbin@intel.com>
7251
7252         * common.opt (foffload, foffload-abi): New options.
7253         * config/i386/i386.c (ix86_offload_options): New static function.
7254         (TARGET_OFFLOAD_OPTIONS): Define.
7255         * coretypes.h (enum offload_abi): New enum.
7256         * doc/tm.texi: Regenerate.
7257         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
7258         * gcc.c (offload_targets): New static variable.
7259         (handle_foffload_option): New static function.
7260         (driver_handle_option): Handle OPT_foffload_.
7261         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
7262         according to offload_targets.
7263         * hooks.c (hook_charptr_void_null): New hook.
7264         * hooks.h (hook_charptr_void_null): Declare.
7265         * lto-opts.c: Include lto-section-names.h.
7266         (lto_write_options): Append options from target offload_options hook and
7267         store them to offload_lto section.  Do not store target-specific,
7268         driver and diagnostic options in offload_lto section.
7269         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
7270         OPT_foffload_abi_.
7271         (append_compiler_options, append_linker_options)
7272         (append_offload_options): New static functions.
7273         (compile_offload_image): Add new arguments with options.
7274         Call append_compiler_options and append_offload_options.
7275         (compile_images_for_offload_targets): Add new arguments with options.
7276         (find_and_merge_options): New static function.
7277         (run_gcc): Outline options handling into the new functions:
7278         find_and_merge_options, append_compiler_options, append_linker_options.
7279         * opts.c (common_handle_option): Don't handle OPT_foffload_.
7280         Forbid OPT_foffload_abi_ for non-offload compiler.
7281         * target.def (offload_options): New target hook.
7282
7283 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7284             Bernd Schmidt  <bernds@codesourcery.com>
7285             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7286             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7287
7288         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
7289         (process_command): Tweak path construction for the possibility
7290         of being configured as an offload compiler.
7291         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
7292         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
7293         (driver::set_up_specs): Tweak path construction for the possibility of
7294         being configured as an offload compiler.
7295         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
7296         (offload_names, offloadbegin, offloadend): New static variables.
7297         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
7298         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
7299         New static functions.
7300         (run_gcc): Determine whether offload sections are present.  If so, run
7301         compile_images_for_offload_targets and return the names of new generated
7302         objects to linker.  If there are offload sections, but no LTO sections,
7303         then return the copies of input objects without link-time recompilation.
7304
7305 2014-11-13  Richard Biener  <rguenther@suse.de>
7306
7307         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
7308
7309 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7310             Bernd Schmidt  <bernds@codesourcery.com>
7311             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7312             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7313
7314         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
7315         * cgraphunit.c: Include omp-low.h.
7316         * doc/tm.texi: Regenerate.
7317         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
7318         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
7319         * lto-cgraph.c (output_offload_tables): New function.
7320         (input_offload_tables): Likewise.
7321         * lto-section-in.c (lto_section_name): Add "offload_table".
7322         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
7323         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7324         * lto-streamer-out.c (lto_output): Call output_offload_tables.
7325         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7326         (output_offload_tables, input_offload_tables): Declare.
7327         * omp-low.c: Include common/common-target.h and lto-section-names.h.
7328         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7329         (expand_omp_target): Add child_fn into offload_funcs vector.
7330         (add_decls_addresses_to_decl_constructor): New function.
7331         (omp_finish_file): Likewise.
7332         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7333         * target.def (record_offload_symbol): New DEFHOOK.
7334         * toplev.c: Include omp-low.h.
7335         (compile_file): Call omp_finish_file.
7336         * varpool.c: Include omp-low.h.
7337         (varpool_node::get_create): Add decl into offload_vars vector.
7338
7339 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7340             Ilya Tocar  <ilya.tocar@intel.com>
7341             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7342             Bernd Schmidt  <bernds@codesourcery.com>
7343
7344         * cgraph.c: Include context.h.
7345         (cgraph_node::create): Set node->offloadable and g->have_offload if
7346         decl have "omp declare target" attribute.
7347         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7348         * cgraphunit.c: Include lto-section-names.h.
7349         (ipa_passes): Call ipa_write_summaries if there is something to write to
7350         OFFLOAD_SECTION_NAME_PREFIX sections.
7351         (symbol_table::compile): Set flag_generate_lto if there is something to
7352         offload.
7353         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7354         * context.c (gcc::context::context): Initialize have_offload with false.
7355         * context.h (class context): Add have_offload flag.
7356         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7357         flag_generate_lto.
7358         (inline_free_summary): Always remove hooks.
7359         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7360         from non-offloadable nodes while streaming a node into offload section.
7361         (reachable_from_other_partition_p): Likewise.
7362         (select_what_to_stream): New function.
7363         (compute_ltrans_boundary): Do not call
7364         lto_set_symtab_encoder_in_partition if the node should not be streamed.
7365         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7366         (section_name_prefix): Declare.
7367         * lto-streamer.c (section_name_prefix): New variable.
7368         (lto_get_section_name): Use section_name_prefix instead of
7369         LTO_SECTION_NAME_PREFIX.
7370         * lto-streamer.h (select_what_to_stream): Declare.
7371         * omp-low.c: Include context.h.
7372         (is_targetreg_ctx): New function.
7373         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7374         (create_omp_child_function, check_omp_nesting_restrictions): Use new
7375         is_targetreg_ctx function.  Replace usage of "omp declare target"
7376         attribute with a cgraph_node flag offloadable.
7377         (expand_omp_target): Set mark_force_output for offloadable functions.
7378         (lower_omp_critical): Set offloadable flag for omp critical symbol.
7379         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
7380         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
7381         if the node should not be streamed out.
7382         * tree-pass.h (ipa_write_summaries): New bool argument.
7383         * varpool.c: Include context.h.
7384         (varpool_node::get_create): Set node->offloadable and g->have_offload if
7385         decl have "omp declare target" attribute.
7386
7387 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7388             Thomas Schwinge  <thomas@codesourcery.com>
7389             Ilya Verbin  <ilya.verbin@intel.com>
7390             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7391
7392         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7393         (enable_as_accelerator): New variables substituted by configure.
7394         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7395         being configured as an offload compiler.
7396         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7397         ACCEL_DIR_SUFFIX.
7398         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7399         install for the offload compiler.
7400         * config.in: Regenerate.
7401         * configure: Regenerate.
7402         * configure.ac (real_target_noncanonical, accel_dir_suffix)
7403         (enable_as_accelerator): Compute new variables.
7404         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
7405         (OFFLOAD_TARGETS): List of target names suitable for offloading.
7406         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
7407         * doc/install.texi (Options specification): Document
7408         --enable-as-accelerator-for and --enable-offload-targets.
7409
7410 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
7411
7412         PR tree-optimization/63828
7413         * ipa-polymorphic-call.c (possible_placement_new): Check
7414         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
7415
7416 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7417
7418         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
7419         (REVERSIBLE_CC_MODE): Fix example.
7420         (REVERSE_CONDITION): Fix typo.
7421         * doc/tm.texi: Regenerate.
7422
7423 2014-11-13  Tom de Vries  <tom@codesourcery.com>
7424
7425         * omp-low.c (pass_data_expand_omp): Set properties_provided to
7426         PROP_gimple_eomp.
7427         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
7428         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
7429         exit if gate is false.
7430         (pass_data pass_data_expand_omp_ssa): New pass_data.
7431         (class pass_expand_omp_ssa): New pass.
7432         (make_pass_expand_omp_ssa): New function.
7433         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
7434         instead of NEXT_PASS.
7435         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
7436         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
7437         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
7438         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
7439         cfun->omp_expand_needed.
7440         * tree-pass.h: Add define PROP_gimple_eomp.
7441         (make_pass_expand_omp_ssa): Declare.
7442
7443 2014-11-13  Marek Polacek  <polacek@redhat.com>
7444
7445         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
7446         * fold-const.c (fold_binary_loc): Use it.
7447         * match.pd: Likewise.
7448
7449 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
7450
7451         * lra-lives.c (struct bb_data): Rename to ...
7452         (struct bb_data_pseudos): ... this.
7453         (initiate_live_solver): Update struct name.
7454
7455 2014-11-13  Richard Biener  <rguenther@suse.de>
7456
7457         * match.pd: Implement conditional expression patterns.
7458         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
7459         them here.
7460         (combine_cond_exprs): Remove.
7461         (pass_forwprop::execute): Do not call combine_cond_exprs.
7462         * fold-const.c (fold_ternary_loc): Remove patterns here.
7463         (pedantic_omit_one_operand_loc): Remove.
7464
7465 2014-12-13  Richard Biener  <rguenther@suse.de>
7466
7467         PR middle-end/61559
7468         * match.pd: Implement bswap patterns for transforms checked by
7469         gcc.dg/builtin-bswap-8.c.
7470
7471 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
7472
7473         * lra.c (lra): Switch off rematerialization pass.
7474
7475 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
7476
7477         * common.opt (flra-remat): New.
7478         * opts.c (default_options_table): Add entry for flra_remat.
7479         * timevar_def (TV_LRA_REMAT): New.
7480         * doc/invoke.texi (-flra-remat): Add description of the new
7481         option.
7482         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
7483         lra-saves.c.  Add lra-remat.c.
7484         * Makefile.in (OBJS): Add lra-remat.o.
7485         * lra-remat.c: New file.
7486         * lra.c: Add info about the rematerialization pass in the top
7487         comment.
7488         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
7489         Process unallocatable regs too.
7490         (lra_constraint_new_insn_uid_start): Remove.
7491         (lra): Add code for calling rematerialization sub-pass.
7492         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
7493         (lra_constrain_insn, lra_remat): New prototypes.
7494         (lra_eliminate_regs_1): Add parameter.
7495         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
7496         Process unallocatable hard regs too.
7497         (process_bb_lives): Ditto.
7498         * lra-spills.c (remove_pseudos): Add argument to
7499         lra_eliminate_regs_1 call.
7500         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
7501         for sp offset calculation.
7502         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
7503         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
7504         calculation.
7505         (process_insn_for_elimination): Add argument for
7506         eliminate_regs_in_insn call.
7507         * lra-constraints.c (get_equiv_with_elimination):  Add argument
7508         for lra_eliminate_regs_1 call.
7509         (process_addr_reg): Add parameter.  Use it.
7510         (process_address_1): Ditto.  Add argument for process_addr_reg
7511         call.
7512         (process_address): Ditto.
7513         (curr_insn_transform): Add parameter.  Use it.  Add argument for
7514         process_address calls.
7515         (lra_constrain_insn): New function.
7516         (lra_constraints): Add argument for curr_insn_transform call.
7517
7518 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7519
7520         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
7521         (print_ignored_options): Fix quoting.
7522         * opts.c (common_handle_option): Likewise.
7523         (set_debug_level): Likewise.
7524         * toplev.c (process_options): Likewise.
7525
7526 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7527
7528         PR ipa/63838
7529         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
7530         chain instead of node->indirect_calls.  Put !can_throw into
7531         conditions of all the loops.
7532
7533 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7534
7535         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
7536         set pic_offset_table_rtx.
7537
7538 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
7539
7540         * common/config/mips/mips-common.c (mips_handle_option): Ensure
7541         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
7542         * config.gcc (--with-fp-32): New option.
7543         (--with-odd-spreg-32): Likewise.
7544         * config.in (HAVE_AS_DOT_MODULE): New config define.
7545         * config/mips/mips-protos.h
7546         (mips_secondary_memory_needed): New prototype.
7547         (mips_hard_regno_caller_save_mode): Likewise.
7548         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
7549         (mips_get_arg_info): Assert that V2SFmode is only handled specially
7550         with TARGET_PAIRED_SINGLE_FLOAT.
7551         (mips_return_mode_in_fpr_p): Likewise.
7552         (mips16_call_stub_mode_suffix): Likewise.
7553         (mips_get_reg_raw_mode): New static function.
7554         (mips_return_fpr_pair): O32 return values span two registers.
7555         (mips16_build_call_stub): Likewise.
7556         (mips_function_value_regno_p): Support both FP return registers.
7557         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
7558         specific cases for TARGET_FPXX to move via memory.
7559         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
7560         than UNITS_PER_FPREG 'span' one register.
7561         (mips_dwarf_frame_reg_mode): New static function.
7562         (mips_file_start): Switch to using .module instead of .gnu_attribute.
7563         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
7564         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
7565         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
7566         slots with two CFI directives even for O32 FP64.
7567         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
7568         saving/restoring callee-saved registers.
7569         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
7570         (mips_secondary_memory_needed): New function.
7571         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
7572         odd-numbered single-precision registers when using TARGET_FLOATXX.
7573         Implement -modd-spreg and defaults.
7574         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
7575         callee-saved behaviour.
7576         (mips_hard_regno_caller_save_mode): Implement.
7577         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
7578         (TARGET_GET_RAW_ARG_MODE): Define target hook.
7579         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
7580         * config/mips/mips.h (TARGET_FLOAT32): New macro.
7581         (TARGET_O32_FP64A_ABI): Likewise.
7582         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
7583         _MIPS_SPFPSET builtin define.
7584         (MIPS_FPXX_OPTION_SPEC): New macro.
7585         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
7586         --with-odd-spreg-32=* to -m[no-]odd-spreg.
7587         (ISA_HAS_ODD_SPREG): New macro.
7588         (ISA_HAS_MXHC1): True for anything other than -mfp32.
7589         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
7590         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
7591         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
7592         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7593         (SECONDARY_MEMORY_NEEDED): Likewise.
7594         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
7595         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
7596         FP64A ABI extensions.
7597         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
7598         TARGET_FLOAT64.
7599         * config/mips/mips.opt (mfpxx): New target option.
7600         (modd-spreg): Likewise.
7601         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
7602         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
7603         fp64 sysroot.
7604         * config/mips/t-mti-elf: Remove fp64 multilib.
7605         * config/mips/t-mti-linux: Likewise.
7606         * configure.ac: Detect .module support.
7607         * configure: Regenerate.
7608         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
7609         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
7610         options.
7611
7612 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7613
7614         PR target/63815
7615         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
7616         from ...
7617         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
7618         (x86_output_mi_thunk): Set PIC register to %r11.  Call
7619         ix86_init_large_pic_reg to initialize PIC register.
7620
7621 2014-11-12  Kai Tietz  <ktietz@redhat.com>
7622
7623         * sdbout.c (sdbout_symbol): Eliminate register only
7624         if decl isn't a global variable.
7625
7626 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
7627
7628         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
7629
7630         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
7631         qualifier_lane_index.
7632         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
7633         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
7634         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
7635
7636         (aarch64_types_getlane_qualifiers): Rename to...
7637         (aarch64_types_binop_imm_qualifiers): ...this.
7638         (TYPES_SHIFTIMM): Follow renaming.
7639         (TYPES_GETLANE): Rename to...
7640         (TYPE_GETREG): ...this.
7641
7642         (aarch64_types_setlane_qualifiers): Rename to...
7643         (aarch64_type_ternop_imm_qualifiers): ...this.
7644         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
7645         (TYPES_SETLANE): Follow renaming above, and rename self to...
7646         (TYPE_SETREG): ...this.
7647
7648         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
7649         (aarch64_simd_expand_args): Add range check and endianness-flip.
7650
7651         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
7652
7653         * config/aarch64/aarch64-simd.md
7654         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
7655         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
7656         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
7657
7658         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
7659         (aarch64_sq<r>dmulh_lane<mode>): ...this.
7660
7661         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
7662         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
7663
7664         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
7665         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
7666
7667         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
7668         (aarch64_sqdmull_lane<mode>): ...this.
7669
7670         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
7671         (aarch64_sqdmull_laneq<mode>): ...this.
7672
7673         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
7674         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
7675         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
7676         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
7677
7678         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
7679         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
7680         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
7681         bounds check and lane flip.
7682
7683         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
7684         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
7685         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
7686
7687         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
7688         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
7689         renaming of TERNOP_LANE to QUADOP_LANE.
7690
7691         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
7692         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
7693         qualifiers to TERNOP_LANE.
7694
7695 2014-11-12  Tobias Burnus  <burnus@net-b.de>
7696
7697         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
7698         * configure.ac: Ditto.
7699         * graphite-interchange.c: Remove HAVE_CLOOG block.
7700         * config.in: Regenerate.
7701         * configure: Regenerate.
7702
7703 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
7704
7705         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
7706         caller-save.
7707         (EPILOGUE_USES): Guard the check by epilogue_completed.
7708         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
7709         LR.
7710         (aarch64_can_eliminate): Check LR_REGNUM liveness.
7711
7712 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7713
7714         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
7715
7716 2014-11-12  Marek Polacek  <polacek@redhat.com>
7717
7718         * fold-const.c (fold_binary_loc): Don't fold if the result
7719         is undefined.
7720         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
7721         -(-A) -> A): Likewise.
7722
7723 2014-11-12  Richard Biener  <rguenther@suse.de>
7724
7725         Merge from match-and-simplify branch
7726         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7727
7728         * genmatch.c (user_id): Add new member is_oper_list.
7729         (user_id::user_id): Add new default argument.
7730         (parser::parse_operator_list): New function.
7731         (parser::parse_for): Allow operator-list.
7732         (parser::parse_pattern): Call parser::parse_operator_list.
7733         (parser::parse_operation): Reject operator-list.
7734         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
7735
7736         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7737
7738         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
7739
7740         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7741
7742         * genmatch.c (parser::parse_op): Check if predicate is used in
7743         result operand.
7744
7745         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7746
7747         * genmatch.c (parser::parse_for): Make sure to have a valid
7748         token to report errors at.
7749
7750         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7751
7752         * genmatch.c (parser): Add new member parsing_match_operand.
7753         (parser::parse_operation): Check for conditional convert in result
7754         operand.
7755         (parser::parse_expr): Check for commutative operator in result operand.
7756         Check for :type in match operand.
7757         (parser::parse_simplify): Set/unset parsing_match_operand.
7758         (parser::parser): Initialize parsing_match_operand.
7759
7760         2014-10-28  Richard Biener  <rguenther@suse.de>
7761
7762         * genmatch.c (parser::parse_for): Properly check for already
7763         defined operators.
7764
7765         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7766
7767         * genmatch.c (error_cb): Adjust for printing warnings.
7768         (warning_at): New function.
7769         (user_id): Add new member used.
7770         (get_operator): Mark user_id as used.
7771         (parse_for): Warn for unused operators.
7772
7773 2014-11-12  Richard Biener  <rguenther@suse.de>
7774
7775         * match.pd: Implement simple complex operations cancelling.
7776         * fold-const.c (fold_unary_loc): Remove them here.
7777
7778 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
7779
7780         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
7781         Define __NO_MATH_ERRNO__ if -fno-math-errno.
7782         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
7783
7784 2014-11-12  Richard Biener  <rguenther@suse.de>
7785
7786         * genmatch.c (::gen_transform): Add capture_info and
7787         expand_compares arguments.
7788         (struct expr): Add is_generic flag.
7789         (lower_cond): New functions lowering [VEC_]COND_EXPR
7790         conditions to a GENERIC and a GIMPLE variant.
7791         (lower): Call lower_cond.
7792         (cmp_operand): Also compare the is_generic flag.
7793         (capture_info::cinfo): Add cond_expr_cond_p flag.
7794         (capture_info::capture_info): Pass down whether the
7795         expression argument is a COND_EXPR condition.
7796         (capture_info::walk_match): Likewise, mark captures
7797         capturing COND_EXPR conditions with cond_expr_cond_p.
7798         (expr::gen_transform): Pass down whether we need to
7799         expand compares from COND_EXPR conditions.
7800         (capture::gen_transform): Expand compares substituted
7801         from COND_EXPR conditions into non-COND_EXPR conditions.
7802         (dt_operand::gen_gimple_expr): Handle explicitely marked
7803         GENERIC expressions as generic.
7804         (dt_simplify::gen): Pass whether we need to expand
7805         conditions to gen_transform.  Handle capture results
7806         which are from COND_EXPR conditions.
7807         (main): Pass gimple flag down to lower.
7808
7809 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7810
7811         PR c/59708
7812         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
7813         * builtins.c (fold_builtin_arith_overflow): New function.
7814         (fold_builtin_3): Use it.
7815         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
7816         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
7817         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
7818         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
7819         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
7820         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
7821         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
7822         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
7823         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
7824         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
7825         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
7826         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
7827         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
7828         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
7829         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
7830         * expr.c (write_complex_part): Remove prototype, no longer static.
7831         * expr.h (write_complex_part): New prototype.
7832         * function.c (aggregate_value_p): For internal functions return 0.
7833         * gimple-fold.c (arith_overflowed_p): New functions.
7834         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
7835         * gimple-fold.h (arith_overflowed_p): New prototype.
7836         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
7837         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
7838         functions.
7839         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
7840         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
7841         never used.
7842         * gimplify.c (gimplify_call_expr): Handle gimplification of
7843         internal calls with lhs.
7844         * internal-fn.c (get_range_pos_neg, get_min_precision,
7845         expand_arith_overflow_result_store): New functions.
7846         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
7847         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7848         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7849         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
7850         (ubsan_expand_si_overflow_neg_check): Renamed to ...
7851         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
7852         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
7853         0 as first argument expansion.
7854         (ubsan_expand_si_overflow_mul_check): Renamed to ...
7855         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7856         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7857         Handle MUL_OVERFLOW expansion.
7858         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
7859         arguments for it.
7860         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
7861         expand_neg_overflow, prepare arguments for it.
7862         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
7863         for it.
7864         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
7865         expand_MUL_OVERFLOW): New functions.
7866         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
7867         internal functions.
7868         * tree-vrp.c (check_for_binary_op_overflow): New function.
7869         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
7870         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
7871         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
7872         internal functions.
7873         * optabs.def (umulv4_optab): New optab.
7874         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
7875         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
7876         * doc/extend.texi (Integer Overflow Builtins): Document
7877         __builtin_*_overflow.
7878
7879 2014-11-12  Richard Biener  <rguenther@suse.de>
7880
7881         * genmatch.c (capture_info::capture_info): Add missing
7882         COND_EXPR handling.
7883         (capture_info::walk_match): Fix COND_EXPR handling.
7884         (capture_info::walk_result): Likewise.
7885
7886 2014-11-12  Richard Biener  <rguenther@suse.de>
7887
7888         PR middle-end/63821
7889         * match.pd: Add missing conversion to the -(T)-X pattern.
7890
7891 2014-11-12  Richard Biener  <rguenther@suse.de>
7892
7893         PR bootstrap/63819
7894         * hash-table.h: Include ggc.h also for generator programs.
7895         * genmatch.c (ggc_internal_cleared_alloc): Properly define
7896         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
7897
7898 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7899
7900         PR tree-optimization/63761
7901         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
7902         rather than taking it as a parameter. Add some comments to explain the
7903         gsi_move_before in case of load and why canonicalization of bswap into
7904         a rotation is only done for 16bit values.
7905         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
7906         refer to the statement just before cur_stmt. Ignore 16bit bswap that
7907         are already in canonical form. Adapt bswap_replace to removal of its
7908         gsi parameter.
7909
7910 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
7911
7912         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
7913         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
7914         (for_each_rtx_in_insn): Delete.
7915         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
7916         * df-core.c: Remove reference to for_each_rtx in comment.
7917
7918 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
7919
7920         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
7921         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
7922         * doc/aarch64-acle-intrinsics.texi: Remove.
7923         * doc/arm-acle-intrinsics.texi: Remove.
7924         * doc/arm-neon-intrinsics.texi: Remove.
7925         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
7926         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
7927         Extension section. Add references to public ACLE specification.
7928
7929 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
7930
7931         * tree-vrp.c (register_edge_assert_for_2): Change return type to
7932         void and adjust accordingly.
7933         (register_edge_assert_for_1): Likewise.
7934         (register_edge_assert_for): Likewise.
7935         (find_conditional_asserts): Likewise.
7936         (find_switch_asserts): Likewise.
7937         (find_assert_locations_1): Likewise.
7938         (find_assert_locations): Likewise.
7939         (insert_range_insertions): Inspect the need_assert_for bitmap.
7940
7941 2014-11-11  Andrew Pinski  <apinski@cavium.com>
7942
7943         Bug target/61997
7944         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
7945         aarch64-builtins.c.
7946         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
7947         at the end of the file.
7948
7949 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
7950             Manuel López-Ibáñez  <manu@gcc.gnu.org>
7951
7952         PR driver/36312
7953         * diagnostic-core.h: Add prototype for fatal_error.
7954         * diagnostic.c (fatal_error): New function fatal_error.
7955         * gcc.c (store_arg): Remove have_o_argbuf_index.
7956         (process_command): Check if input and output files are the same.
7957         * toplev.c (init_asm_output): Check if input and output files are
7958         the same.
7959
7960 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7961
7962         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
7963
7964 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7965
7966         PR target/61535
7967         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
7968         smaller than 8 bytes.
7969         (sparc_function_arg_1): Tweak.
7970         (sparc_function_value_1): Tweak.
7971
7972 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
7973
7974         * ChangeLog.jit: New.
7975         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
7976         sphinx is installed, falling back to "texinfo" otherwise.
7977         (FULL_DRIVER_NAME): New variable, adapted from the
7978         install-driver target.  New target, a symlink within the builddir,
7979         linked to "xgcc", for use when running the JIT library from the
7980         builddir.
7981         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
7982         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
7983         out.
7984         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
7985         sphinx is installed, falling back to "texinfo" otherwise.
7986         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
7987         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
7988         * configure: Regenerate.
7989         * doc/install.texi (--enable-host-shared): Specify that this is
7990         required when building libgccjit.
7991         (Tools/packages necessary for modifying GCC): Add Sphinx.
7992         * timevar.def (TV_JIT_REPLAY): New.
7993         (TV_ASSEMBLE): New.
7994         (TV_LINK): New.
7995         (TV_LOAD): New.
7996
7997 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7998
7999         PR target/63610
8000         * configure: Regenerate.
8001
8002 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
8003
8004         * config/aarch64/aarch64-simd.md
8005         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
8006         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
8007         are punning between float vectors and integer vectors.
8008
8009 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8010
8011         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
8012         open-coded swap with std::swap to swap values.
8013         (alpha_emit_setcc): Ditto.
8014         (alpha_emit_conditional_move): Ditto.
8015         (alpha_split_tmode_pair): Ditto.
8016
8017 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
8018
8019         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
8020         permutations on power of 2 cases.
8021
8022 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8023
8024         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
8025         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
8026
8027 2014-11-11  Richard Biener  <rguenther@suse.de>
8028
8029         * tree-core.h (pedantic_lvalues): Remove.
8030         * fold-const.c (pedantic_lvalues): Likewise.
8031         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
8032
8033 2014-11-11  Martin Liska  <mliska@suse.cz>
8034
8035         PR ipa/63622
8036         PR ipa/63795
8037         * ipa-icf.c (sem_function::merge): Add new target symbol alias
8038         support guard.
8039         (sem_variable::merge): Likewise.
8040         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
8041
8042 2014-11-11  Richard Biener  <rguenther@suse.de>
8043
8044         * match.pd: Implement patterns from associate_plusminus
8045         and factor in differences from the fold-const.c implementation.
8046         * fold-const.c (fold_binary_loc): Remove patterns here.
8047         * tree-ssa-forwprop.c (associate_plusminus): Remove.
8048         (pass_forwprop::execute): Don't call it.
8049         * tree.c (tree_nop_conversion_p): New function, factored
8050         from tree_nop_conversion.
8051         * tree.h (tree_nop_conversion_p): Declare.
8052
8053 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8054
8055         * system.h: Include algorithm and utility.
8056         * rtl.h: Do not include utility here.
8057         * wide-int.h: Ditto.
8058         * tree-vect-data-refs.c (swap): Remove template.
8059         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
8060
8061 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8062
8063         PR bootstrap/63699
8064         PR bootstrap/63750
8065         * system.h: Include <string> before "safe-ctype.h"
8066         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
8067         calls to min/max with wi namespace.
8068         * ipa-chkp.c: Don't include <string>.
8069
8070 2014-11-11  Terry Guo  <terry.guo@arm.com>
8071
8072         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
8073         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
8074         registers.
8075         (*thumb1_movhf): Likewise.
8076
8077 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8078
8079         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
8080         instead of INT64_MAX.
8081
8082 2014-11-11  Tobias Burnus  <burnus@net-b.de>
8083
8084         * doc/install.texi (Prerequisites): Remove CLooG.
8085
8086 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
8087
8088         * ipa-inline.c (edge_badness): Adjust.
8089         (inline_small_functions): Likewise.
8090         * predict.c (propagate_freq): Likewise.
8091         (estimate_bb_frequencies): Likewise.
8092         * sreal.c (sreal::dump): Rename from dump_sreal.
8093         (debug): Adjust.
8094         (copy): Remove function.
8095         (sreal::shift_right): Rename from sreal_sift_right.
8096         (sreal::normalize): Rename from normalize.
8097         (sreal_init): Remove function.
8098         (sreal::to_int): Rename from sreal_to_int.
8099         (sreal_compare): Remove function.
8100         (sreal::operator+): Rename from sreal_add.
8101         (sreal::operator-): Rename from sreal_sub.
8102         (sreal::operator*): Rename from sreal_mul.
8103         (sreal::operator/): Rename from sreal_div.
8104         * sreal.h (class sreal): Adjust.
8105         (inline sreal &operator+=): New operator.
8106         (inline sreal &operator-=): Likewise.
8107         (inline sreal &operator/=): Likewise.
8108         (inline sreal &operator*=): Likewise.
8109         (inline bool operator!=): Likewise.
8110         (inline bool operator>): Likewise.
8111         (inline bool operator<=): Likewise.
8112         (inline bool operator>=): Likewise.
8113
8114 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
8115
8116         * sched-deps.c (sched_analyze_1): Check pending list if it is not
8117         less than MAX_PENDING_LIST_LENGTH.
8118         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
8119
8120 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8121
8122         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
8123         swap with std::swap to swap values.
8124         (ix86_fixup_binary_operands): Ditto.
8125         (ix86_binary_operator_ok): Ditto.
8126         (ix86_prepare_fp_compare_args): Ditto.
8127         (ix86_expand_branch): Ditto.
8128         (ix86_expand_carry_flag_compare): Ditto.
8129         (ix86_expand_int_movcc): Ditto.
8130         (ix86_prepare_sse_fp_compare_args): Ditto.
8131         (ix86_expand_sse_fp_minmax): Ditto.
8132         (ix86_expand_int_vcond): Ditto.
8133         (ix86_split_long_move): Ditto.
8134         (ix86_expand_sse_comi): Ditto.
8135         (ix86_expand_sse_compare_and_jump): Ditto.
8136         (ix86_expand_sse_compare_mask): Ditto.
8137         * config/i386/i386.md (*add<mode>_1): Ditto.
8138         (addsi_1_zext): Ditto.
8139         (*addhi_1): Ditto.
8140         (*addqi_1): Ditto.
8141         (*add<mode>_2): Ditto.
8142         (*addsi_2_zext): Ditto.
8143         (*add<mode>_3): Ditto.
8144         (*addsi_3_zext): Ditto.
8145         (*add<mode>_5): Ditto.
8146         (absneg splitter): Ditto.
8147
8148 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8149
8150         Revert:
8151         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
8152
8153         PR target/63620
8154         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
8155         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
8156         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
8157         be reloaded through memory.
8158         (*pushxf): Ditto.
8159         (*pushdf): Ditto.
8160
8161 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
8162             Martin Liska  <mliska@suse.cz>
8163
8164         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
8165         (func_checker::compare_gimple_call): Compare gimple_call_fn,
8166         gimple_call_chain, gimple_call_fntype and call flags.
8167
8168 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
8169
8170         PR rtl-optimization/63620
8171         PR rtl-optimization/63799
8172         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
8173         and setting PIC pseudo insns.
8174         (lra_create_live_ranges): Fix the typo.
8175
8176 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
8177
8178         PR middle-end/63748
8179         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
8180         SSA copies whose source and destination names both occur in
8181         abnormal PHIs.
8182
8183 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
8184
8185         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
8186         * common.opt: Remove using of fgraphite-code-generator flag.
8187         * flag-types.h: Likewise.
8188         * graphite.c: Remove using of CLooG.
8189         * graphite-blocking.c: Likewise.
8190         * graphite-dependences.c: Likewise.
8191         * graphite-poly.c: Likewise.
8192         * graphite-poly.h: Likewise.
8193         * graphite-scop-detection.c: Likewise.
8194         * graphite-sese-to-poly.c: Likewise.
8195         * graphite-clast-to-gimple.c: Removed.
8196         * graphite-clast-to-gimple.h: Likewise.
8197         * graphite-htab.h: Likewise.
8198
8199 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
8200
8201         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
8202         Add.
8203
8204 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8205
8206         * config/frv/frv.c (frv_io_handle_use_1): Delete.
8207         (frv_io_handle_use): Use find_all_hard_regs.
8208
8209 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8210
8211         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
8212         than an rtx *.  Take the regstate_t directly rather than via a void *.
8213         Return a bool rather than an int.  Iterate over all subrtxes here.
8214         (frv_registers_conflict_p): Update accordingly.
8215
8216 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8217
8218         * config/frv/frv.c: Include rtl-iter.h.
8219         (frv_acc_group_1): Delete.
8220         (frv_acc_group): Use FOR_EACH_SUBRTX.
8221
8222 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8223
8224         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
8225         (frv_clear_registers_used): Delete.
8226         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
8227
8228 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
8229
8230         PR bootstrap/63573
8231         * calls.c (initialize_argument_information): When emitting thunk call
8232         use original memory placement of the argument.
8233
8234 2014-11-10  Renlin Li  <renlin.li@arm.com>
8235
8236         PR middle-end/61529
8237         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
8238
8239 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8240
8241         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
8242         bswaphi if available.
8243
8244 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
8245
8246         * config/nvptx/nvptx.c: New file.
8247         * config/nvptx/nvptx.h: New file.
8248         * config/nvptx/nvptx-protos.h: New file.
8249         * config/nvptx/nvptx.md: New file.
8250         * config/nvptx/t-nvptx: New file.
8251         * config/nvptx/nvptx.opt: New file.
8252         * common/config/nvptx/nvptx-common.c: New file.
8253         * config.gcc: Handle nvptx-*-*.
8254
8255 2014-11-10  Richard Biener  <rguenther@suse.de>
8256
8257         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
8258         released operands on the free list.
8259
8260 2014-11-10  Richard Biener  <rguenther@suse.de>
8261
8262         * match.pd: Implement pattern from simplify_mult.
8263         * tree-ssa-forwprop.c (simplify_mult): Remove.
8264         (pass_forwprop::execute): Do not call simplify_mult.
8265
8266 2014-11-10  Richard Biener  <rguenther@suse.de>
8267
8268         PR tree-optimization/63800
8269         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
8270         we can restore the previous availability in after_dom_children.
8271         (eliminate_dom_walker::after_dom_children): Restore
8272         previous availability.
8273
8274 2014-11-10  Richard Biener  <rguenther@suse.de>
8275
8276         PR middle-end/63798
8277         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
8278         properly treat the embedded multiplication as commutative
8279         when looking for feeding negates.
8280
8281 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
8282
8283         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
8284
8285 2014-11-10  Martin Liska  <mliska@suse.cz>
8286
8287         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
8288         for the test because of default char signedness
8289         on powerpc64 target.
8290
8291 2014-11-10  Richard Biener  <rguenther@suse.de>
8292
8293         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
8294         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
8295         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
8296
8297 2014-11-10  Richard Biener  <rguenther@suse.de>
8298
8299         * match.pd: Move rest of the conversion combining patterns
8300         from tree-ssa-forwprop.c.
8301         * tree-ssa-forwprop.c (combine_conversions): Remove.
8302         (pass_forwprop::execute): Do not call it.
8303
8304 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
8305
8306         * gimple-low.c (lower_function_body): Clear the location of the first
8307         inserted representative return if it also fills in for the fallthru.
8308
8309 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8310
8311         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
8312         that bb is always executed to early exit. Use predicate of
8313         cd-equivalent block for join blocks if it exists.
8314         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
8315         (tree_if_conversion): Free post-dominance information.
8316
8317 2014-11-09  Jason Merrill  <jason@redhat.com>
8318
8319         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
8320         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
8321         (_mm_mask_cvtusepi32_storeu_epi16)
8322         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
8323
8324 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8325
8326         * config/avr/predicates.md (low_io_address_operand): Fix typo.
8327
8328 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
8329
8330         PR rtl-optimization/63620
8331         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8332         name.  Move to lra.c.  Make it external.
8333         (substitute_pseudo_within_insn): Ditto.
8334         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8335         the new names.
8336         (undo_optional_reloads): Ditto.
8337         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8338         New prototypes.
8339         (lra_substitute_pseudo_within_insn): Ditto.
8340         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8341         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
8342         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
8343         bb_killed_pseudos.
8344         (struct bb_data, bb_data_t, bb_data): New.
8345         (get_bb_data, get_bb_data_by_index): Ditto.
8346         (all_hard_regs_bitmap): New.
8347         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8348         (initiate_live_solver, finish_live_solver): New.
8349         (process_bb_lives): Change return type.  Add code updating local
8350         live data and removing dead insns.  Pass new argument to
8351         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
8352         life info.  Return the result.
8353         (lra_create_live_ranges): Add code to do global pseudo live
8354         analysis.
8355         (lra_live_ranges_init): Call initiate_live_solver.
8356         (lra_live_ranges_finish): Call finish_live_solver.
8357         * lra.c (lra_dump_bitmap_with_title): New.
8358         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8359         from lra-constraints.c.
8360
8361 2014-11-09  Richard Biener  <rguenther@suse.de>
8362
8363         * match.pd: Add patterns convering two conversions in a row
8364         from fold-const.c.
8365         * fold-const.c (fold_unary_loc): Remove them here.
8366         * tree-ssa-forwprop.c (combine_conversions): Likewise.
8367         * genmatch.c (dt_node::gen_kids): Check whether we may
8368         follow SSA use-def chains.
8369
8370 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8371
8372         * config/aarch64/aarch64.c: Include rtl-iter.h.
8373         (aarch64_tls_operand_p_1): Delete.
8374         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8375
8376 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8377
8378         * config/arm/arm.c (arm_note_pic_base): Delete.
8379         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8380
8381 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8382
8383         * config/arm/arm.c: Include rtl-iter.h.
8384         (arm_tls_referenced_p_1): Delete.
8385         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8386
8387 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8388
8389         * config/arm/aarch-common.c: Include rtl-iter.h.
8390         (search_term, arm_find_sub_rtx_with_search_term): Delete.
8391         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8392         (arm_get_set_operands): Pass the insn pattern rather than the
8393         insn itself.
8394         (arm_no_early_store_addr_dep): Likewise.
8395
8396 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
8397
8398         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8399         related, if any.
8400         (thumb_set_return_address): Likewise.
8401
8402 2014-11-07  Jeff Law  <law@redhat.com>
8403
8404         PR tree-optimization/61515
8405         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
8406         stack rather than looking at every SSA_NAME's value.
8407
8408 2014-11-07  Richard Biener  <rguenther@suse.de>
8409
8410         PR tree-optimization/63605
8411         * fold-const.c (fold_binary_loc): Properly use element_precision
8412         for types that may not be scalar.
8413
8414 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
8415
8416         PR target/63534
8417         * config/i386/i386.md (builtin_setjmp_receiver): Use
8418         pic_offset_table_rtx for PIC register.
8419         (nonlocal_goto_receiver): Delete.
8420
8421 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
8422
8423         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
8424         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
8425
8426 2014-11-07  Martin Liska  <mliska@suse.cz>
8427
8428         PR ipa/63580
8429         * cgraphunit.c (cgraph_node::create_wrapper):
8430         TREE_ADDRESSABLE is set to false for a newly created thunk.
8431
8432 2014-11-07  Martin Liska  <mliska@suse.cz>
8433
8434         PR ipa/63747
8435         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
8436         Missing checking for CASE_LOW and CASE_HIGH added.
8437
8438 2014-11-07  Martin Liska  <mliska@suse.cz>
8439
8440         PR ipa/63595
8441         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
8442         is correctly handled for thunks created by IPA ICF.
8443
8444 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
8445 2014-11-07  Richard Biener  <rguenther@suse.de>
8446
8447         PR tree-optimization/63676
8448         * gimple-fold.c (fold_gimple_assign): Do not fold node when
8449         TREE_CLOBBER_P be true.
8450
8451 2014-11-07  Richard Biener  <rguenther@suse.de>
8452
8453         PR middle-end/63770
8454         * match.pd: Guard conflicting GENERIC pattern properly.
8455
8456 2014-11-07  Richard Biener  <rguenther@suse.de>
8457
8458         * match.pd: Add patterns for POINTER_PLUS_EXPR association
8459         and special patterns from tree-ssa-forwprop.c
8460         * fold-const.c (fold_binary_loc): Remove them here.
8461         * tree-ssa-forwprop.c (to_purge): New global bitmap.
8462         (fwprop_set_lattice_val): New function.
8463         (fwprop_invalidate_lattice): Likewise.
8464         (remove_prop_source_from_use): Instead of purging dead EH
8465         edges record blocks to do that in to_purge.
8466         (tidy_after_forward_propagate_addr): Likewise.
8467         (forward_propagate_addr_expr): Invalidate the lattice for
8468         SSA names we release.
8469         (simplify_conversion_from_bitmask): Likewise.
8470         (simplify_builtin_call): Likewise.
8471         (associate_pointerplus_align): Remove.
8472         (associate_pointerplus_diff): Likewise.
8473         (associate_pointerplus): Likewise.
8474         (fold_all_stmts): Merge with ...
8475         (pass_forwprop::execute): ... the original loop over all
8476         basic-blocks.  Delay purging dead EH edges and invalidate
8477         the lattice for SSA names we release.
8478
8479 2014-11-07  Terry Guo  <terry.guo@arm.com>
8480
8481         * config/arm/arm.opt (masm-syntax-unified): New option.
8482         * doc/invoke.texi (-masm-syntax-unified): Document new option.
8483         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
8484         (ASM_APP_ON): Redefined.
8485         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
8486         code always use UAL syntax.
8487         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
8488         * config/arm/thumb1.md: Likewise.
8489
8490 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
8491
8492         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
8493         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
8494         or in_call_delay.
8495         
8496 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
8497
8498         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
8499         Set default_mips_arch and default_mips_abi instead of tm_defines.
8500         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
8501         of tm_defines.
8502         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
8503         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
8504         based on MIPS_ABI_DEFAULT.
8505         (STANDARD_STARTFILE_PREFIX_2): Ditto.
8506
8507 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
8508
8509         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
8510         cases of extended identifiers.
8511
8512 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
8513
8514         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
8515
8516 2014-11-06  DJ Delorie  <dj@redhat.com>
8517
8518         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
8519         conditional.
8520         (movhicc_<code>_<mode>): Likewise.
8521         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
8522         subregs.
8523         (m32c_eh_return_data_regno): Change to using memregs to avoid
8524         tying up all the compute regs.
8525         (m32c_legitimate_address_p) Subregs are not valid addresses.
8526
8527 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
8528
8529         * function.c (thread_prologue_and_epilogue_insns): No longer static.
8530         * function.h (thread_prologue_and_epilogue_insns): Declare.
8531
8532         * target.def (assemble_undefined_decl): New hooks.
8533         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
8534         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
8535         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
8536         * doc/tm.texi: Regenerate.
8537         * output.h (assemble_undefined_decl): Declare.
8538         (get_fnname_from_decl): Declare.
8539         * varasm.c (assemble_undefined_decl): New function.
8540         (get_fnname_from_decl): New function.
8541         * final.c (rest_of_handle_final): Use it.
8542         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
8543         for nodes without a definition.
8544
8545         * target.def (call_args, end_call_args): New hooks.
8546         * hooks.c (hook_void_rtx_tree): New empty function.
8547         * hooks.h (hook_void_rtx_tree): Declare.
8548         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
8549         * doc/tm.texi: Regenerate.
8550         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
8551         hooks.
8552         (expand_library_call_value_1): Use the two new hooks.
8553
8554         * expr.c (use_reg_mode): Just return for pseudo registers.
8555
8556         * combine.c (try_combine): Don't allow a call as one of the source
8557         insns.
8558
8559         * target.def (decl_end): New hook.
8560         * varasm.c (assemble_variable_contents, assemble_constant_contents):
8561         Use it.
8562         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
8563         * doc/tm.texi: Regenerate.
8564
8565 2014-11-06  Renlin Li  <renlin.li@arm.com>
8566
8567         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
8568         (processor): New architecture_version field.
8569         (aarch64_override_options): Initialize aarch64_architecture_version.
8570         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
8571         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
8572
8573 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
8574
8575         * params.def (sra-max-scalarization-size-Ospeed): New.
8576         (sra-max-scalarization-size-Osize): Likewise.
8577         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
8578         (sra-max-scalarization-size-Osize): Likewise.
8579         * toplev.c (process_options): Set default values for new
8580         parameters.
8581         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
8582         * targhooks.c (get_move_ratio): Remove static designator.
8583         * target.h (get_move_ratio): Declare.
8584
8585 2014-11-06  Marek Polacek  <polacek@redhat.com>
8586
8587         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
8588         Remove vector limit.
8589
8590 2014-11-06  Richard Biener  <rguenther@suse.de>
8591
8592         * match.pd: Implement bitwise binary and unary simplifications
8593         from tree-ssa-forwprop.c.
8594         * fold-const.c (fold_unary_loc): Remove them here.
8595         (fold_binary_loc): Likewise.
8596         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
8597         (truth_valued_ssa_name): Likewise.
8598         (lookup_logical_inverted_value): Likewise.
8599         (simplify_bitwise_binary_1): Likewise.
8600         (hoist_conversion_for_bitop_p): Likewise.
8601         (simplify_bitwise_binary_boolean): Likewise.
8602         (simplify_bitwise_binary): Likewise.
8603         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
8604         and simplify_bitwise_binary.
8605         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
8606         (decision_tree::insert): Also insert non-expressions.
8607
8608 2014-11-06  Hale Wang  <hale.wang@arm.com>
8609
8610         * config/arm/arm-cores.def: Add support for
8611         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8612         cortex-m1.small-multiply.
8613         * config/arm/arm-tables.opt: Regenerate.
8614         * config/arm/arm-tune.md: Regenerate.
8615         * config/arm/arm.c: Update the rtx-costs for MUL.
8616         * config/arm/bpabi.h: Handle
8617         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8618         cortex-m1.small-multiply.
8619         * doc/invoke.texi: Document
8620         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8621         cortex-m1.small-multiply.
8622
8623 2014-11-06  Hale Wang  <hale.wang@arm.com>
8624
8625         * config/arm/arm.c: Add cortex-m7 tune.
8626         * config/arm/arm-cores.def: Use cortex-m7 tune.
8627
8628 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
8629
8630         PR target/63538
8631         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
8632         (ix86_encode_section_info): Do not check for non-automatic varibles
8633         when setting SYMBOL_FLAG_FAR_ADDR flag.
8634         (x86_64_elf_select_section): Do not check ix86_cmodel here.
8635         (x86_64_elf_unique_section): Ditto.
8636         (x86_elf_aligned_common): Emit tab before .largecomm.
8637
8638 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
8639
8640         PR preprocessor/9449
8641         * doc/cpp.texi (Character sets, Tokenization)
8642         (Implementation-defined behavior): Don't refer to UCNs in
8643         identifiers requiring -fextended-identifiers.
8644         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
8645         by default for C99 and later and C++.
8646         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
8647         identifiers needing -fextended-identifiers.
8648
8649 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
8650
8651         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
8652         for 512-bit wide modes.
8653         (expand_vec_perm_1): Use correct versions of patterns.
8654         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
8655         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
8656
8657 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
8658
8659         * ipa-chkp.c: New.
8660         * ipa-chkp.h: New.
8661         * tree-chkp.c: New.
8662         * tree-chkp.h: New.
8663         * tree-chkp-opt.c: New.
8664         * rtl-chkp.c: New.
8665         * rtl-chkp.h: New.
8666         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
8667         tree-chkp-opt.o.
8668         (GTFILES): Add tree-chkp.c.
8669         * mode-classes.def (MODE_POINTER_BOUNDS): New.
8670         * tree.def (POINTER_BOUNDS_TYPE): New.
8671         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
8672         (POINTER_BOUNDS_MODE): New.
8673         (make_pointer_bounds_mode): New.
8674         * machmode.h (POINTER_BOUNDS_MODE_P): New.
8675         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
8676         (layout_type): Support POINTER_BOUNDS_TYPE.
8677         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
8678         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
8679         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
8680         (type_contains_placeholder_1): Likewise.
8681         (build_common_tree_nodes): Initialize
8682         pointer_bounds_type_node.
8683         * tree.h (POINTER_BOUNDS_TYPE_P): New.
8684         (pointer_bounds_type_node): New.
8685         (POINTER_BOUNDS_P): New.
8686         (BOUNDED_TYPE_P): New.
8687         (BOUNDED_P): New.
8688         (CALL_WITH_BOUNDS_P): New.
8689         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
8690         (gimple_call_with_bounds_p): New.
8691         (gimple_call_set_with_bounds): New.
8692         (gimple_return_retbnd): New.
8693         (gimple_return_set_retbnd): New
8694         * gimple.c (gimple_build_return): Increase number of ops
8695         for return statement.
8696         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
8697         flag.
8698         * gimple-pretty-print.c (dump_gimple_return): Print second op.
8699         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
8700         * gimplify.c (gimplify_init_constructor): Avoid infinite
8701         loop during gimplification of bounds initializer.
8702         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
8703         (special_function_p): Use original decl name when analyzing
8704         instrumentation clone.
8705         (arg_data): Add fields special_slot, pointer_arg and
8706         pointer_offset.
8707         (store_bounds): New.
8708         (emit_call_1): Propagate instrumentation flag for CALL.
8709         (initialize_argument_information): Compute pointer_arg,
8710         pointer_offset and special_slot for pointer bounds arguments.
8711         (finalize_must_preallocate): Preallocate when storing bounds
8712         in bounds table.
8713         (compute_argument_addresses): Skip pointer bounds.
8714         (expand_call): Store bounds into tables separately.  Return
8715         result joined with resulting bounds.
8716         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
8717         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
8718         (expand_return): Add returned bounds arg.  Handle returned bounds.
8719         (expand_gimple_stmt_1): Adjust to new expand_return signature.
8720         (gimple_expand_cfg): Reset rtx bounds map.
8721         * expr.c: Include tree-chkp.h, rtl-chkp.h.
8722         (expand_assignment): Handle returned bounds.
8723         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
8724         target argument.  Handle bounds returned by calls.
8725         (store_expr): Now wraps store_expr_with_bounds.
8726         * expr.h (store_expr_with_bounds): New.
8727         * function.c: Include tree-chkp.h, rtl-chkp.h.
8728         (bounds_parm_data): New.
8729         (use_register_for_decl): Do not registerize decls used for bounds
8730         stores and loads.
8731         (assign_parms_augmented_arg_list): Add bounds of the result
8732         structure pointer as the second argument.
8733         (assign_parm_find_entry_rtl): Mark bounds are never passed on
8734         the stack.
8735         (assign_parm_is_stack_parm): Likewise.
8736         (assign_parm_load_bounds): New.
8737         (assign_bounds): New.
8738         (assign_parms): Load bounds and determine a location for
8739         returned bounds.
8740         (diddle_return_value_1): New.
8741         (diddle_return_value): Handle returned bounds.
8742         * function.h (rtl_data): Add field for returned bounds.
8743         * varasm.c: Include tree-chkp.h.
8744         (output_constant): Support POINTER_BOUNDS_TYPE.
8745         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
8746         (ultimate_transparent_alias_target): Move up.
8747         (make_decl_rtl): For instrumented function use
8748         name of the original decl.
8749         (assemble_start_function): Mark function as global
8750         in case it is instrumentation clone of the global
8751         function.
8752         (do_assemble_alias): Follow transparent alias chain
8753         for identifier.  Check if original alias is public.
8754         (maybe_assemble_visibility): Use visibility of the
8755         original function for instrumented version.
8756         (default_unique_section): Likewise.
8757         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
8758         (init_emit_once): Build pointer bounds zero constants.
8759         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
8760         * target.def (builtin_chkp_function): New.
8761         (chkp_bound_type): New.
8762         (chkp_bound_mode): New.
8763         (chkp_make_bounds_constant): New.
8764         (chkp_initialize_bounds): New.
8765         (load_bounds_for_arg): New.
8766         (store_bounds_for_arg): New.
8767         (load_returned_bounds): New.
8768         (store_returned_bounds): New.
8769         (chkp_function_value_bounds): New.
8770         (setup_incoming_vararg_bounds): New.
8771         (function_arg): Update hook description with new possible return
8772         value CONST_INT.
8773         * targhooks.h (default_load_bounds_for_arg): New.
8774         (default_store_bounds_for_arg): New.
8775         (default_load_returned_bounds): New.
8776         (default_store_returned_bounds): New.
8777         (default_chkp_bound_type): New.
8778         (default_chkp_bound_mode): New.
8779         (default_builtin_chkp_function): New.
8780         (default_chkp_function_value_bounds): New.
8781         (default_chkp_make_bounds_constant): New.
8782         (default_chkp_initialize_bounds): New.
8783         (default_setup_incoming_vararg_bounds): New.
8784         * targhooks.c (default_load_bounds_for_arg): New.
8785         (default_store_bounds_for_arg): New.
8786         (default_load_returned_bounds): New.
8787         (default_store_returned_bounds): New.
8788         (default_chkp_bound_type): New.
8789         (default_chkp_bound_mode); New.
8790         (default_builtin_chkp_function): New.
8791         (default_chkp_function_value_bounds): New.
8792         (default_chkp_make_bounds_constant): New.
8793         (default_chkp_initialize_bounds): New.
8794         (default_setup_incoming_vararg_bounds): New.
8795         * builtin-types.def (BT_BND): New.
8796         (BT_FN_PTR_CONST_PTR): New.
8797         (BT_FN_CONST_PTR_CONST_PTR): New.
8798         (BT_FN_BND_CONST_PTR): New.
8799         (BT_FN_CONST_PTR_BND): New.
8800         (BT_FN_PTR_CONST_PTR_SIZE): New.
8801         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
8802         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
8803         (BT_FN_VOID_CONST_PTR_SIZE): New.
8804         (BT_FN_VOID_PTR_BND): New.
8805         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
8806         (BT_FN_BND_CONST_PTR_SIZE): New.
8807         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
8808         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
8809         * chkp-builtins.def: New.
8810         * builtins.def: include chkp-builtins.def.
8811         (DEF_CHKP_BUILTIN): New.
8812         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
8813         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
8814         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
8815         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
8816         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
8817         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
8818         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
8819         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
8820         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
8821         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
8822         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
8823         (std_expand_builtin_va_start): Init bounds for va_list.
8824         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
8825         __CHKP__ macro when Pointer Bounds Checker is on.
8826         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
8827         * passes.def (pass_ipa_chkp_versioning): New.
8828         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
8829         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
8830         (pass_chkp_instrumentation_passes): New.
8831         (pass_ipa_chkp_produce_thunks): New.
8832         (pass_local_optimization_passes): New.
8833         (pass_chkp_opt): New.
8834         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
8835         (make_pass_ipa_chkp_produce_thunks): New.
8836         (make_pass_chkp): New.
8837         (make_pass_chkp_opt): New.
8838         (make_pass_early_local_passes): Renamed to ...
8839         (make_pass_build_ssa_passes): This.
8840         (make_pass_chkp_instrumentation_passes): New.
8841         (make_pass_local_optimization_passes): New.
8842         * passes.c (pass_manager::execute_early_local_passes): Execute
8843         early passes in three steps.
8844         (execute_all_early_local_passes): Renamed to ...
8845         (execute_build_ssa_passes): This.
8846         (pass_data_early_local_passes): Renamed to ...
8847         (pass_data_build_ssa_passes): This.
8848         (pass_early_local_passes): Renamed to ...
8849         (pass_build_ssa_passes): This.
8850         (pass_data_chkp_instrumentation_passes): New.
8851         (pass_chkp_instrumentation_passes): New.
8852         (pass_data_local_optimization_passes): New.
8853         (pass_local_optimization_passes): New.
8854         (make_pass_early_local_passes): Renamed to ...
8855         (make_pass_build_ssa_passes): This.
8856         (make_pass_chkp_instrumentation_passes): New.
8857         (make_pass_local_optimization_passes): New.
8858         * c-family/c.opt (fcheck-pointer-bounds): New.
8859         (fchkp-check-incomplete-type): New.
8860         (fchkp-zero-input-bounds-for-main): New.
8861         (fchkp-first-field-has-own-bounds): New.
8862         (fchkp-narrow-bounds): New.
8863         (fchkp-narrow-to-innermost-array): New.
8864         (fchkp-optimize): New.
8865         (fchkp-use-fast-string-functions): New.
8866         (fchkp-use-nochk-string-functions): New.
8867         (fchkp-use-static-bounds): New.
8868         (fchkp-use-static-const-bounds): New.
8869         (fchkp-treat-zero-dynamic-size-as-infinite): New.
8870         (fchkp-check-read): New.
8871         (fchkp-check-write): New.
8872         (fchkp-store-bounds): New.
8873         (fchkp-instrument-calls): New.
8874         (fchkp-instrument-marked-only): New.
8875         (Wchkp): New.
8876         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
8877         (handle_bnd_legacy): New.
8878         (handle_bnd_instrument): New.
8879         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
8880         and bnd_instrument.  Fix documentation.
8881         (c_common_format_attribute_table): Likewsie.
8882         * toplev.c: include tree-chkp.h.
8883         (process_options): Check Pointer Bounds Checker is supported.
8884         (compile_file): Add chkp_finish_file call.
8885         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
8886         to handle instrumentation clones properly.
8887         (propagate_constants_accross_call): Do not propagate
8888         through instrumentation thunks.
8889         * ipa-pure-const.c (propagate_pure_const): Support
8890         IPA_REF_CHKP.
8891         * ipa-inline.c (early_inliner): Check edge has summary allocated.
8892         * ipa-split.c: Include tree-chkp.h.
8893         (find_retbnd): New.
8894         (split_part_set_ssa_name_p): New.
8895         (consider_split): Do not split retbnd and retval
8896         producers.
8897         (insert_bndret_call_after): new.
8898         (split_function): Propagate Pointer Bounds Checker
8899         instrumentation marks and handle returned bounds.
8900         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
8901         into bit field and add with_bounds field.
8902         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
8903         with_bounds field for instrumented calls.
8904         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
8905         CALL_WITH_BOUNDS_P flag for calls.
8906         * tree-ssa-ccp.c: Include tree-chkp.h.
8907         (insert_clobber_before_stack_restore): Handle
8908         BUILT_IN_CHKP_BNDRET calls.
8909         * tree-ssa-dce.c: Include tree-chkp.h.
8910         (propagate_necessity): For free call fed by alloc check
8911         bounds are also provided by the same alloc.
8912         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
8913         used by free calls.
8914         * tree-inline.c: Include tree-chkp.h.
8915         (declare_return_variable): Add arg holding
8916         returned bounds slot.  Create and initialize returned bounds var.
8917         (remap_gimple_stmt): Handle returned bounds.
8918         Return sequence of statements instead of a single statement.
8919         (insert_init_stmt): Add declaration.
8920         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
8921         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
8922         Properly handle bounds in va_arg_pack and va_arg_pack_len.
8923         (expand_call_inline): Handle returned bounds.  Add bounds copy
8924         for generated mem to mem assignments.
8925         * tree-inline.h (copy_body_data): Add fields retbnd and
8926         assign_stmts.
8927         * value-prof.c: Include tree-chkp.h.
8928         (gimple_ic): Support returned bounds.
8929         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
8930         with "chkp ctor" and "bnd_legacy" attributes.
8931         (symtab_remove_unreachable_nodes): Keep initial values for
8932         pointer bounds to be used for checks eliminations.
8933         (process_references): Handle IPA_REF_CHKP.
8934         (walk_polymorphic_call_targets): Likewise.
8935         * ipa-visibility.c (cgraph_externally_visible_p): Mark
8936         instrumented 'main' as externally visible.
8937         (function_and_variable_visibility): Filter instrumentation
8938         thunks.
8939         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
8940         field.
8941         (cgraph_node): Add instrumented_version, orig_decl and
8942         instrumentation_clone fields.
8943         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
8944         (varpool_node): Add need_bounds_init field.
8945         (cgraph_local_p): New.
8946         * cgraph.c: Include tree-chkp.h.
8947         (cgraph_node::remove): Fix instrumented_version
8948         of the referenced node if any.
8949         (cgraph_node::dump): Dump instrumentation_clone and
8950         instrumented_version fields.
8951         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
8952         references and instrumentation thunks.
8953         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
8954         all not instrumented instrumentation clones alive.
8955         (cgraph_redirect_edge_call_stmt_to_callee): Support
8956         returned bounds.
8957         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
8958         reference.
8959         (cgraph_rebuild_references): Likewise.
8960         * cgraphunit.c: Include tree-chkp.h.
8961         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
8962         function version.
8963         (varpool_finalize_decl): Register statically initialized decls
8964         in Pointer Bounds Checker.
8965         (walk_polymorphic_call_targets): Do not mark generated call to
8966         __builtin_unreachable as with_bounds.
8967         (output_weakrefs): If there are both instrumented and original
8968         versions, output only one of them.
8969         (cgraph_node::expand_thunk): Set with_bounds flag
8970         for created call statement.
8971         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
8972         (ipa_ref): increase size of use field.
8973         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
8974         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
8975         (ctor_for_folding): Do not fold constant bounds vars.
8976         * lto-streamer.h (LTO_minor_version): Change minor version from
8977         0 to 1.
8978         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
8979         pointer bounds.
8980         (lto_output_node): Output instrumentation_clone,
8981         thunk.add_pointer_bounds_args and orig_decl field.
8982         (lto_output_ref): Adjust to new ipa_ref::use field size.
8983         (input_overwrite_node): Read instrumentation_clone field.
8984         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
8985         fields.
8986         (input_ref): Adjust to new ipa_ref::use field size.
8987         (input_cgraph_1): Compute instrumented_version fields and restore
8988         IDENTIFIER_TRANSPARENT_ALIAS chains.
8989         (lto_output_varpool_node): Output
8990         need_bounds_init value.
8991         (input_varpool_node): Read need_bounds_init value.
8992         * lto-partition.c (add_symbol_to_partition_1): Keep original
8993         and instrumented versions together.
8994         (privatize_symbol_name): Restore transparent alias chain if required.
8995         (add_references_to_partition): Add references to pointer bounds vars.
8996         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
8997         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
8998         (gen_type_die_with_usage): Skip pointer bounds.
8999         (dwarf2out_global_decl): Likewise.
9000         (is_base_type): Support POINTER_BOUNDS_TYPE.
9001         (gen_formal_types_die): Skip pointer bounds.
9002         (gen_decl_die): Likewise.
9003         * var-tracking.c (vt_add_function_parameters): Skip
9004         bounds parameters.
9005         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
9006         thunk still exists.
9007         (sem_variable::merge): Reset need_bounds_init flag.
9008         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
9009         and attributes.
9010         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9011         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9012         (TARGET_LOAD_RETURNED_BOUNDS): New.
9013         (TARGET_STORE_RETURNED_BOUNDS): New.
9014         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9015         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9016         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9017         (TARGET_CHKP_BOUND_TYPE): New.
9018         (TARGET_CHKP_BOUND_MODE): New.
9019         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9020         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9021         * doc/tm.texi: Regenerated.
9022         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
9023         (BND32mode): New.
9024         (BND64mode): New.
9025         * doc/invoke.texi (-mmpx): New.
9026         (-mno-mpx): New.
9027         (chkp-max-ctor-size): New.
9028         * config/i386/constraints.md (w): New.
9029         (Ti): New.
9030         (Tb): New.
9031         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
9032         * config/i386/i386-modes.def (BND32): New.
9033         (BND64): New.
9034         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
9035         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
9036         (regclass_map): Add bound registers.
9037         (dbx_register_map): Likewise.
9038         (dbx64_register_map): Likewise.
9039         (svr4_dbx_register_map): Likewise.
9040         (isa_opts): Add -mmpx.
9041         (PTA_MPX): New.
9042         (ix86_option_override_internal): Support MPX ISA.
9043         (ix86_conditional_register_usage): Support bound registers.
9044         (ix86_code_end): Add MPX bnd prefix.
9045         (output_set_got): Likewise.
9046         (print_reg): Avoid prefixes for bound registers.
9047         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
9048         (ix86_print_operand_punct_valid_p): Likewise.
9049         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
9050         UNSPEC_BNDLDX_ADDR.
9051         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
9052         (ix86_class_likely_spilled_p): Add bound regs support.
9053         (ix86_hard_regno_mode_ok): Likewise.
9054         (x86_order_regs_for_local_alloc): Likewise.
9055         (ix86_bnd_prefixed_insn_p): New.
9056         (ix86_builtins): Add
9057         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
9058         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
9059         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
9060         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
9061         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
9062         IX86_BUILTIN_BNDUPPER.
9063         (builtin_isa): Add leaf_p and nothrow_p fields.
9064         (def_builtin): Initialize leaf_p and nothrow_p.
9065         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
9066         flags.
9067         (bdesc_mpx): New.
9068         (bdesc_mpx_const): New.
9069         (ix86_init_mpx_builtins): New.
9070         (ix86_init_builtins): Call ix86_init_mpx_builtins.
9071         (ix86_emit_cmove): New.
9072         (ix86_emit_move_max): New.
9073         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
9074         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
9075         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
9076         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
9077         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
9078         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
9079         (ix86_function_value_bounds): New.
9080         (ix86_builtin_mpx_function): New.
9081         (ix86_get_arg_address_for_bt): New.
9082         (ix86_load_bounds): New.
9083         (ix86_store_bounds): New.
9084         (ix86_load_returned_bounds): New.
9085         (ix86_store_returned_bounds): New.
9086         (ix86_mpx_bound_mode): New.
9087         (ix86_make_bounds_constant): New.
9088         (ix86_initialize_bounds):
9089         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9090         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9091         (TARGET_LOAD_RETURNED_BOUNDS): New.
9092         (TARGET_STORE_RETURNED_BOUNDS): New.
9093         (TARGET_CHKP_BOUND_MODE): New.
9094         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9095         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9096         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9097         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9098         (ix86_option_override_internal): Do not
9099         support x32 with MPX.
9100         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
9101         and force_bnd_pass.
9102         (function_arg_advance_32): Return number of used integer
9103         registers.
9104         (function_arg_advance_64): Likewise.
9105         (function_arg_advance_ms_64): Likewise.
9106         (ix86_function_arg_advance): Handle pointer bounds.
9107         (ix86_function_arg): Likewise.
9108         (ix86_function_value_regno_p): Mark fisrt bounds registers as
9109         possible function value.
9110         (ix86_function_value_1): Handle pointer bounds type/mode
9111         (ix86_return_in_memory): Likewise.
9112         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
9113         (ix86_expand_call): Generate returned bounds.
9114         (ix86_setup_incoming_vararg_bounds): New.
9115         (ix86_va_start): Initialize bounds for pointers in va_list.
9116         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9117         * config/i386/i386.h (TARGET_MPX): New.
9118         (TARGET_MPX_P): New.
9119         (FIRST_PSEUDO_REGISTER): Fix to new value.
9120         (FIXED_REGISTERS): Add bound registers.
9121         (CALL_USED_REGISTERS): Likewise.
9122         (REG_ALLOC_ORDER): Likewise.
9123         (HARD_REGNO_NREGS): Likewise.
9124         (VALID_BND_REG_MODE): New.
9125         (FIRST_BND_REG): New.
9126         (LAST_BND_REG): New.
9127         (reg_class): Add BND_REGS.
9128         (REG_CLASS_NAMES): Likewise.
9129         (REG_CLASS_CONTENTS): Likewise.
9130         (BND_REGNO_P): New.
9131         (ANY_BND_REG_P): New.
9132         (BNDmode): New.
9133         (HI_REGISTER_NAMES): Add bound registers.
9134         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
9135         stdarg fields.
9136         * config/i386/i386.md (UNSPEC_BNDMK): New.
9137         (UNSPEC_BNDMK_ADDR): New.
9138         (UNSPEC_BNDSTX): New.
9139         (UNSPEC_BNDLDX): New.
9140         (UNSPEC_BNDLDX_ADDR): New.
9141         (UNSPEC_BNDCL): New.
9142         (UNSPEC_BNDCU): New.
9143         (UNSPEC_BNDCN): New.
9144         (UNSPEC_MPX_FENCE): New.
9145         (UNSPEC_SIZEOF): New.
9146         (BND0_REG): New.
9147         (BND1_REG): New.
9148         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9149         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9150         (prefix_rep): Check for bnd prefix.
9151         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9152         (length_nobnd): New.
9153         (length): Use length_nobnd when specified.
9154         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9155         (BND): New.
9156         (bnd_ptr): New.
9157         (BNDCHECK): New.
9158         (bndcheck): New.
9159         (*jcc_1): Add MPX bnd prefix.
9160         (*jcc_2): Likewise.
9161         (jump): Likewise.
9162         (*indirect_jump): Likewise.
9163         (*tablejump_1): Likewise.
9164         (simple_return_internal): Likewise.
9165         (simple_return_internal_long): Likewise.
9166         (simple_return_pop_internal): Likewise.
9167         (simple_return_indirect_internal): Likewise.
9168         (<mode>_mk): New.
9169         (*<mode>_mk): New.
9170         (mov<mode>): New.
9171         (*mov<mode>_internal_mpx): New.
9172         (<mode>_<bndcheck>): New.
9173         (*<mode>_<bndcheck>): New.
9174         (<mode>_ldx): New.
9175         (*<mode>_ldx): New.
9176         (<mode>_stx): New.
9177         (*<mode>_stx): New.
9178         move_size_reloc_<mode>): New.
9179         * config/i386/predicates.md (address_mpx_no_base_operand): New.
9180         (address_mpx_no_index_operand): New.
9181         (bnd_mem_operator): New.
9182         (symbol_operand): New.
9183         (x86_64_immediate_size_operand): New.
9184         * config/i386/i386.opt (mmpx): New.
9185         * config/i386/i386-builtin-types.def (BND): New.
9186         (ULONG): New.
9187         (BND_FTYPE_PCVOID_ULONG): New.
9188         (VOID_FTYPE_BND_PCVOID): New.
9189         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
9190         (BND_FTYPE_PCVOID_PCVOID): New.
9191         (BND_FTYPE_PCVOID): New.
9192         (BND_FTYPE_BND_BND): New.
9193         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
9194         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
9195         (ULONG_FTYPE_VOID): New.
9196         (PVOID_FTYPE_BND): New.
9197
9198 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
9199
9200         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
9201         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
9202         pass_cleanup_barriers, pass_delay_slots,
9203         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
9204         pass_shorten_branches, pass_est_nothrow_function_flags,
9205         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
9206         into pass_late_compilation.
9207         (pass_late_compilation): Add.
9208         * passes.c (pass_data_late_compilation, pass_late_compilation,
9209         make_pass_late_compilation): New.
9210         * timevar.def (TV_LATE_COMPILATION): New.
9211
9212         * target.def (omit_struct_return_reg): New data hook.
9213         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
9214         * doc/tm.texi: Regenerate.
9215         * function.c (expand_function_end): Use it.
9216
9217         * target.def (no_register_allocation): New data hook.
9218         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
9219         * doc/tm.texi: Regenerate.
9220         * ira.c (gate_ira): New function.
9221         (pass_data_ira): Set has_gate.
9222         (pass_ira): Add a gate function.
9223         (pass_data_reload): Likewise.
9224         (pass_reload): Add a gate function.
9225         (pass_ira): Use it.
9226         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
9227         no register allocation happens on the target and return.
9228         * final.c (alter_subreg): Ensure register is not a pseudo before
9229         calling simplify_subreg.
9230         (output_operand): Assert that x isn't a pseudo only if doing
9231         register allocation.
9232
9233         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
9234         global vars.
9235
9236         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
9237         sorry if necessary.
9238
9239 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
9240
9241         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
9242         * rtl.h (SUBREG_P): New macro added.
9243
9244 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
9245
9246         * config/aarch64/aarch64-builtins.c
9247         (aarch64_build_scalar_type): Remove.
9248         (aarch64_scalar_builtin_types, aarch64_simd_type,
9249         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
9250         aarch64_mangle_builtin_vector_type,
9251         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
9252         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
9253         aarch64_init_simd_builtin_types,
9254         aarch64_init_simd_builtin_scalar_types): New.
9255         (aarch64_init_simd_builtins): Refactor.
9256         (aarch64_init_crc32_builtins): Fixup with qualifier.
9257         * config/aarch64/aarch64-protos.h
9258         (aarch64_mangle_builtin_type): Export.
9259         * config/aarch64/aarch64-simd-builtin-types.def: New.
9260         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
9261         (aarch64_mangle_type): Refactor.
9262         * config/aarch64/arm_neon.h: Declare vector types based on
9263         internal types.
9264         * config/aarch64/t-aarch64: Update dependency.
9265
9266 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
9267
9268         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
9269         atomic_update_decl): Guard declaration with #ifdef.
9270
9271 2014-11-04  Marek Polacek  <polacek@redhat.com>
9272
9273         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
9274
9275 2014-11-04  Marek Polacek  <polacek@redhat.com>
9276
9277         * Makefile.in (OBJS): Add sanopt.o.
9278         (GTFILES): Add sanopt.c.
9279         * asan.h (asan_expand_check_ifn): Declare.
9280         * asan.c (asan_expand_check_ifn): No longer static.
9281         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
9282         * sanopt.c: ...here.  New file.
9283
9284 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
9285 2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
9286
9287         PR target/63293
9288         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
9289         stack adjustment.
9290
9291 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
9292
9293         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
9294         also verify that mode is equal to the mode of op0.
9295
9296         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
9297         emit into a sequence instead.
9298
9299 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9300
9301         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
9302
9303 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9304
9305         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
9306         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
9307         (reduc_smax_<mode> *2): Rename to...
9308         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
9309         (reduc_umin_<mode> *2): Rename to...
9310         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
9311         (reduc_umax_<mode> *2): Rename to...
9312         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
9313
9314 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9315
9316         config/arm/neon.md (reduc_plus_*): Rename to...
9317         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
9318
9319 2014-11-04  Michael Collison <michael.collison@linaro.org>
9320
9321         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
9322         to support constraints for CONST_INT in atomic operations.
9323         * config/aarch64/atomics.md
9324         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9325         (atomic_nand<mode>): Likewise.
9326         (atomic_fetch_<atomic_optab><mode>): Likewise.
9327         (atomic_fetch_nand<mode>): Likewise.
9328         (atomic_<atomic_optab>_fetch<mode>): Likewise.
9329         (atomic_nand_fetch<mode>): Likewise.
9330
9331 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9332
9333         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9334         of __ARM_FEATURE_IDIV.
9335
9336 2014-11-04  Marek Polacek  <polacek@redhat.com>
9337
9338         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9339
9340 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9341
9342         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9343
9344 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9345
9346         Revert:
9347         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9348         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9349         Allow CC mode if HAVE_cbranchcc4.
9350
9351 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9352
9353         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9354         with -fdump-go-spec.  Anonymous substructures are now flattened and
9355         replaced by their fields (record) or the first named, non-bitfield
9356         field (union).
9357
9358 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9359
9360         * input.c (expand_location_to_spelling_point): Fix typo.
9361         (expansion_point_location_if_in_system_header): Fix comment.
9362
9363 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9364
9365         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9366
9367 2014-11-03  Richard Biener  <rguenther@suse.de>
9368
9369         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9370         like ordinary operations.
9371         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9372         as NOP_EXPR.
9373
9374 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
9375
9376         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9377         macros.
9378         * configure, config.h.in: Regenerate.
9379         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9380         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9381         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9382         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9383         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9384         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9385         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9386         (atomic_update_decl): New static variables.
9387         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9388         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9389         and __atomic_feupdateenv for soft-float and no-FPRs.
9390
9391 2014-11-03  Richard Biener  <rguenther@suse.de>
9392
9393         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
9394         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9395         * fold-const.c (fold_unary_loc): Remove them here.
9396         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9397         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9398         GIMPLE_UNARY_RHS case.
9399         (gimple_fold_stmt_to_constant_1): Likewise.
9400         (replace_stmt_with_simplification): Fix inverted comparison.
9401
9402 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9403
9404         PR tree-optimization/60770
9405         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
9406         statement should be removed.
9407         (maybe_register_def): Likewise. Replace clobbers with default
9408         definitions.
9409         (rewrite_dom_walker::before_dom_children): Remove statement if
9410         rewrite_update_stmt says so.
9411         * tree-ssa-live.c: Include tree-ssa.h.
9412         (set_var_live_on_entry): Do not mark undefined variables as live.
9413         (verify_live_on_entry): Do not check undefined variables.
9414         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
9415         of partially undefined variables.
9416         * tree-ssa.c (ssa_undefined_value_p): Likewise.
9417         (execute_update_addresses_taken): Do not drop clobbers.
9418
9419 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9420
9421         PR tree-optimization/63666
9422         * fold-const.c: Include "optabs.h".
9423         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
9424         can_vec_perm_p permutation to one that is not.
9425
9426 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9427
9428         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
9429
9430 2014-11-03  Andrew Pinski  <apinski@cavium.com>
9431
9432         * config/mips/mips-cpus.def (octeon3): New cpu.
9433         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
9434         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
9435         of the comparison no longer matches mode of the operands.
9436         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
9437         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
9438         (TARGET_OCTEON2): Likewise.
9439         (TUNE_OCTEON): Add Octeon3.
9440         * config/mips/mips.md (processor): Add octeon3.
9441         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
9442         (octeon_arith): Add octeon3.
9443         (octeon_condmove): Remove.
9444         (octeon_condmove_o1): New reservation.
9445         (octeon_condmove_o2): New reservation.
9446         (octeon_condmove_o3_int_on_cc): New reservation.
9447         (octeon_load_o2): Add octeon3.
9448         (octeon_cop_o2): Likewise.
9449         (octeon_store): Likewise.
9450         (octeon_brj_o2): Likewise.
9451         (octeon_imul3_o2): Likewise.
9452         (octeon_imul_o2): Likewise.
9453         (octeon_mfhilo_o2): Likewise.
9454         (octeon_imadd_o2): Likewise.
9455         (octeon_idiv_o2_si): Likewise.
9456         (octeon_idiv_o2_di): Likewise.
9457         (octeon_fpu): Add to the automaton.
9458         (octeon_fpu): New cpu unit.
9459         (octeon_condmove_o2): Check for non floating point modes.
9460         (octeon_load_o2): Add prefetchx.
9461         (octeon_cop_o2): Don't check for octeon3.
9462         (octeon3_faddsubcvt): New reservation.
9463         (octeon3_fmul): Likewise.
9464         (octeon3_fmadd): Likewise.
9465         (octeon3_div_sf): Likewise.
9466         (octeon3_div_df): Likewise.
9467         (octeon3_sqrt_sf): Likewise.
9468         (octeon3_sqrt_df): Likewise.
9469         (octeon3_rsqrt_sf): Likewise.
9470         (octeon3_rsqrt_df): Likewise.
9471         (octeon3_fabsnegmov): Likewise.
9472         (octeon_fcond): Likewise.
9473         (octeon_fcondmov): Likewise.
9474         (octeon_fpmtc1): Likewise.
9475         (octeon_fpmfc1): Likewise.
9476         (octeon_fpload): Likewise.
9477         (octeon_fpstore): Likewise.
9478         * config/mips/mips-tables.opt: Regenerate.
9479         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
9480
9481 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9482
9483         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9484         Allow CC mode if HAVE_cbranchcc4.
9485
9486 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9487
9488         * config/arc/arc.c (write_ext_corereg_1): Delete.
9489         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
9490
9491 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9492
9493         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
9494         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
9495
9496 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9497
9498         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
9499         (small_data_pattern_1): Delete.
9500         (small_data_pattern): Use FOR_EACH_SUBRTX.
9501
9502 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9503
9504         * config/arc/arc.c: Include rtl-iter.h.
9505         (arc_rewrite_small_data_1): Delete.
9506         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
9507
9508 2014-11-02  Michael Collison  <michael.collison@linaro.org>
9509
9510         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
9511         to support vector modes.
9512         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9513
9514 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
9515
9516         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
9517         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
9518         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
9519         * optabs.c: (gen_move_insn): Move to expr.c.
9520         * expr.h: Move protypes and enums to optabs.h.
9521         * expr.c: (gen_move_insn): Relocate from optabs.c.
9522         * genemit.c (main): Include insn-codes.h.
9523         * gengtype.c (open_base_files): Include insn-codes.h.
9524         * asan.c: Include insn-codes.h.
9525         * bb-reorder.c: Ditto.
9526         * builtins.c: Ditto.
9527         * calls.c: Ditto.
9528         * cfgexpand.c: Ditto.
9529         * cilk-common.c: Ditto.
9530         * combine.c: Ditto.
9531         * dojump.c: Ditto.
9532         * dse.c: Ditto.
9533         * except.c: Ditto.
9534         * explow.c: Ditto.
9535         * expmed.c: Ditto.
9536         * function.c: Ditto.
9537         * ifcvt.c: Ditto.
9538         * internal-fn.c: Ditto.
9539         * loop-unroll.c: Ditto.
9540         * lra.c: Ditto.
9541         * modulo-sched.c: Ditto.
9542         * omp-low.c: Ditto.
9543         * postreload.c: Ditto.
9544         * ree.c: Ditto.
9545         * reload.c: Ditto.
9546         * reload1.c: Ditto.
9547         * shrink-wrap.c: Ditto.
9548         * simplify-rtx.c: Ditto.
9549         * stmt.c: Ditto.
9550         * target-globals.c: Ditto.
9551         * targhooks.c: Ditto.
9552         * toplev.c: Ditto.
9553         * tree-if-conv.c: Ditto.
9554         * tree-ssa-forwprop.c: Ditto.
9555         * tree-ssa-loop-prefetch.c: Ditto.
9556         * tree-ssa-math-opts.c: Ditto.
9557         * tree-ssa-phiopt.c: Ditto.
9558         * tree-ssa-reassoc.c: Ditto.
9559         * tree-switch-conversion.c: Ditto.
9560         * tree-vect-data-refs.c: Ditto.
9561         * tree-vect-generic.c: Ditto.
9562         * tree-vect-loop.c: Ditto.
9563         * tree-vect-patterns.c: Ditto.
9564         * tree-vect-slp.c: Ditto.
9565         * tree-vect-stmts.c: Ditto.
9566         * tree-vrp.c: Ditto.
9567         * value-prof.c: Ditto.
9568         * config/aarch64/aarch64-builtins.c: Ditto.
9569         * config/alpha/alpha.c: Ditto.
9570         * config/arm/arm.c: Ditto.
9571         * config/cris/cris.c: Ditto.
9572         * config/epiphany/epiphany.c: Ditto.
9573         * config/frv/frv.c: Ditto.
9574         * config/h8300/h8300.c: Ditto.
9575         * config/ia64/ia64.c: Ditto.
9576         * config/iq2000/iq2000.c: Ditto.
9577         * config/m32c/m32c.c: Ditto.
9578         * config/mep/mep.c: Ditto.
9579         * config/microblaze/microblaze.c: Ditto.
9580         * config/mips/mips.c: Ditto.
9581         * config/mn10300/mn10300.c: Ditto.
9582         * config/moxie/moxie.c: Ditto.
9583         * config/msp430/msp430.c: Ditto.
9584         * config/nios2/nios2.c: Ditto.
9585         * config/pa/pa.c: Ditto.
9586         * config/rl78/rl78.c: Ditto.
9587         * config/rs6000/rs6000.c: Ditto.
9588         * config/rx/rx.c: Ditto.
9589         * config/s390/s390.c: Ditto.
9590         * config/sh/sh.c: Ditto.
9591         * config/sh/sh_treg_combine.cc: Ditto.
9592         * config/spu/spu.c: Ditto.
9593         * config/stormy16/stormy16.c: Ditto.
9594         * config/tilegx/mul-tables.c: Ditto.
9595         * config/tilegx/tilegx.c: Ditto.
9596         * config/tilepro/mul-tables.c: Ditto.
9597         * config/tilepro/tilepro.c: Ditto.
9598         * config/vax/vax.c: Ditto.
9599
9600 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9601
9602         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
9603         (CLEAR_BY_PIECES_P): Likewise.
9604         (SET_BY_PIECES_P): Likewise.
9605         (STORE_BY_PIECES_P): Likewise.
9606         * doc/tm.texi: Regenerate.
9607         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
9608         SET_BY_PIECES_P, STORE_BY_PIECES_P.
9609         * expr.c (MOVE_BY_PIECES_P): Remove.
9610         (CLEAR_BY_PIECES_P): Likewise.
9611         (SET_BY_PIECES_P): Likewise.
9612         (STORE_BY_PIECES_P): Likewise.
9613         (can_move_by_pieces): Rewrite in terms of
9614         targetm.use_by_pieces_infrastructure_p.
9615         (emit_block_move_hints): Likewise.
9616         (can_store_by_pieces): Likewise.
9617         (store_by_pieces): Likewise.
9618         (clear_storage_hints): Likewise.
9619         (emit_push_insn): Likewise.
9620         (expand_constructor): Likewise.
9621
9622 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9623
9624         * config/aarch64/aarch64.c
9625         (aarch64_use_by_pieces_infrastructre_p): New.
9626         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
9627         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
9628
9629 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9630
9631         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
9632         (STORE_BY_PIECES_P): Likewise.
9633         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9634         (mips_move_by_pieces_p): Rename to...
9635         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
9636         parameters, use the default hook implementation as a
9637         fall-back.
9638
9639 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9640
9641         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9642         (sh_use_by_pieces_infrastructure_p): Likewise.
9643         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
9644         (STORE_BY_PIECES_P): Likewise.
9645         (SET_BY_PIECES_P): Likewise.
9646
9647 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9648
9649         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9650         (arc_use_by_pieces_infrastructure_p): Likewise.
9651         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
9652         (CAN_MOVE_BY_PIECES): Likewise.
9653
9654 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9655
9656         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
9657         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
9658         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
9659         (CLEAR_BY_PIECES): Likewise.
9660         (SET_BY_PIECES): Likewise.
9661         (STORE_BY_PIECES): Likewise.
9662
9663 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9664
9665         * target.def (use_by_pieces_infrastructure_p): New.
9666         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
9667         is deprecated.
9668         (STORE_BY_PIECES_P): Likewise.
9669         (CLEAR_BY_PIECES_P): Likewise.
9670         (SET_BY_PIECES_P): Likewise.
9671         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
9672         * doc/tm.texi: Regenerate.
9673         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
9674         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
9675         (STORE_BY_PIECES_P): Likewise.
9676         (CLEAR_BY_PIECES_P): Likewise.
9677         (SET_BY_PIECES_P): Likewise.
9678         (STORE_MAX_PIECES): Move to...
9679         * defaults.h (STORE_MAX_PIECES): ...here.
9680         * targhooks.c (get_move_ratio): New.
9681         (default_use_by_pieces_infrastructure_p): Likewise.
9682         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
9683         * target.h (by_pieces_operation): New.
9684
9685 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9686
9687         PR target/63702
9688         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
9689         assignment to 'nargs' variable.
9690
9691 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9692
9693         PR target/63620
9694         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
9695         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
9696         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
9697         be reloaded through memory.
9698         (*pushxf): Ditto.
9699         (*pushdf): Ditto.
9700
9701 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9702
9703         PR rtl-optimization/63659
9704         * ree.c (update_reg_equal_equiv_notes): New function.
9705         (combine_set_extension, transform_ifelse): Use it.
9706
9707 2014-10-31  Jeff Law  <law@redhat.com>
9708
9709         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
9710         and Jonny Grant (collect2).
9711
9712 2014-10-31  Richard Biener  <rguenther@suse.de>
9713
9714         * builtins.c (fold_builtin_atomic_always_lock_free): Use
9715         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
9716         approprate.
9717         (fold_builtin_expect): Likewise.
9718         (integer_valued_real_p): Likewise.
9719         * cfgexpand.c (expand_debug_expr): Likewise.
9720         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
9721         (find_foldable_builtin_expect): Likewise.
9722         * trans-mem.c (thread_private_new_memory): Likewise.
9723         * tree-affine.c (aff_combination_expand): Likewise.
9724         * tree-data-ref.c (initialize_matrix_A): Likewise.
9725         * tree-inline.c (copy_bb): Likewise.
9726         * tree-pretty-print.c (dump_function_name): Likewise.
9727         (print_call_name): Likewise.
9728         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
9729         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
9730         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
9731         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
9732         (vect_recog_widen_mult_pattern): Likewise.
9733         (vect_operation_fits_smaller_type): Likewise.
9734         * tree-vrp.c (find_assert_locations_1): Likewise.
9735         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9736         converts to NOP_EXPR.
9737
9738 2014-10-31  Richard Biener  <rguenther@suse.de>
9739
9740         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
9741         CONVERT_EXPRs in generated code.
9742         (dt_simplify::gen): Likewise.
9743
9744 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
9745
9746         PR target/63534
9747         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
9748         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
9749         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
9750         using mcount in 32bit PIC mode.
9751         (ix86_elim_entry_set_got): New.
9752         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
9753         in PROLOGUE, delete initial if possible.
9754
9755 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9756
9757         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
9758         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
9759
9760 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9761
9762         PR tree-optimization/63259
9763         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
9764         rotation left if it is a 16 bit byte swap.
9765         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
9766         and RROTATE_EXPR statements if it is a byte rotation.
9767
9768 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9769
9770         PR sanitizer/63697
9771         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
9772         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
9773         instead of vr0.min - vr1.min and vr0.max - vr1.max.
9774
9775 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
9776
9777         PR ipa/63696
9778         * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
9779         alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
9780
9781 2014-10-30  Felix Yang  <felix.yang@huawei.com>
9782
9783         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
9784         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
9785         (xtensa_reorg, xtensa_reorg_loops): New.
9786         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
9787         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
9788         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
9789         (xtensa_doloop_hooks): Define.
9790         * config/xtensa/xtensa.md (doloop_end, loop_end): New
9791         (zero_cost_loop_start): Rewritten.
9792         (zero_cost_loop_end): Likewise.
9793
9794 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
9795
9796         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
9797
9798 2014-10-30  Richard Biener  <rguenther@suse.de>
9799
9800         * genmatch.c: Remove <map>, <utility> and <string> includes.
9801         Include ggc.h and hash-map.h.
9802         (ggc_internal_cleared_alloc): Provide stub definition.
9803         (ggc_free): Likewise.
9804         (struct capture_id_map_hasher): New traits for hash_map.
9805         (cid_map_t): New typedef.
9806         (everywhere else): Replace std::map use with cid_map_t.
9807         * hash-map.h (hash_map::elements): New member function.
9808         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
9809         hash-map.h and $(GGC_H) as dependency.
9810
9811 2014-10-30  Richard Biener  <rguenther@suse.de>
9812
9813         * genmatch.c (capture_info::walk_c_expr): Ignore capture
9814         uses inside TREE_TYPE ().
9815         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
9816         (find_candidates_dom_walker::before_dom_children): Likewise.
9817         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
9818         (replace_profitable_candidates): Likewise.
9819         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9820         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
9821         * convert.c (convert_to_integer): Use CASE_CONVERT.
9822
9823 2014-10-30  Richard Biener  <rguenther@suse.de>
9824
9825         * match.pd: Implement more patterns that simplify to a single value.
9826         * fold-const.c (fold_binary_loc): Remove them here.
9827         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
9828         (fwprop_ssa_val): Remove restriction on single uses.
9829
9830 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9831
9832         * config/avr/driver-avr.c (avr_set_current_device): Remove.
9833
9834 2014-10-30  Martin Liska  <mliska@suse.cz>
9835
9836         PR ipa/63574
9837         PR ipa/63664
9838         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
9839         (func_checker::compare_gimple_label): Simlified comparison introduced.
9840         * ipa-icf-gimple.h: Missing comment added.
9841
9842 2014-10-30  Jeff Law  <law@redhat.com>
9843
9844         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
9845         argument from rtx to rtx_insn *.
9846         (compute_movmem_length, compute_clrmem_length): Likewise.
9847         (copy_fp_args, length_fp_args): Likewise.
9848         * config/pa/pa.c (legitimize_pic_address): Promote local variable
9849         "insn" from rtx to rtx_insn *.
9850         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
9851         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
9852         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
9853         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
9854         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
9855         (compute_movmem_length, compute_clrmem_length): Likewise.
9856         (copy_fp-args, length_fp_args): Likewise.
9857
9858 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9859
9860         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
9861         scalar typedef.
9862         (CUMULATIVE_ARGS): Guard against target includes.
9863         (machine_function): Likewise.
9864
9865 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9866
9867         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
9868         recog state after aarch64_prev_real_insn call.
9869
9870 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9871
9872         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
9873
9874 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9875
9876         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
9877         (struct machine_function): Gate definition on
9878         !defined(USED_FOR_TARGET).
9879
9880 2014-10-29  DJ Delorie  <dj@redhat.com>
9881
9882         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
9883
9884 2014-10-29  Martin Liska  <mliska@suse.cz>
9885
9886         PR ipa/63587
9887         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
9888         to local declarations.
9889         * function.c (add_local_decl): Implementation moved from header
9890         file, assert introduced for tree type.
9891         * function.h: Likewise.
9892
9893 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9894
9895         * godump.c (go_format_type): Represent "float _Complex" and
9896         "double _Complex" as complex64 or complex128 in Go, as appropriate.
9897
9898 2014-10-29  Richard Biener  <rguenther@suse.de>
9899
9900         * match.pd: Implement a first set of conversion patterns.
9901         * fold-const.c (fold_unary_loc): Remove them here.
9902         * tree-ssa-forwprop.c (simplify_vce): Remove.
9903         (pass_forwprop::execute): Do not call simplify_vce.
9904
9905 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9906
9907         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
9908         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
9909         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
9910         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
9911         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
9912         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
9913         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
9914         config/arc/arc.h, config/arc/predicates.md,
9915         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
9916         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9917         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
9918         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
9919         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
9920         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
9921         config/cr16/cr16-protos.h, config/cr16/cr16.c,
9922         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
9923         config/darwin-protos.h, config/darwin.c,
9924         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
9925         config/epiphany/epiphany.md, config/fr30/fr30.c,
9926         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
9927         config/h8300/h8300-protos.h, config/h8300/h8300.c,
9928         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
9929         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
9930         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
9931         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
9932         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
9933         config/lm32/lm32-protos.h, config/lm32/lm32.c,
9934         config/m32c/m32c-protos.h, config/m32c/m32c.c,
9935         config/m32r/m32r-protos.h, config/m32r/m32r.c,
9936         config/m68k/m68k-protos.h, config/m68k/m68k.c,
9937         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9938         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
9939         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
9940         config/mips/mips-protos.h, config/mips/mips.c,
9941         config/mmix/mmix-protos.h, config/mmix/mmix.c,
9942         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
9943         config/moxie/moxie.c, config/msp430/msp430-protos.h,
9944         config/msp430/msp430.c, config/nds32/nds32-cost.c,
9945         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
9946         config/nds32/nds32-protos.h, config/nds32/nds32.c,
9947         config/nios2/nios2-protos.h, config/nios2/nios2.c,
9948         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
9949         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
9950         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
9951         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9952         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
9953         config/s390/predicates.md, config/s390/s390-protos.h,
9954         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9955         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
9956         config/sh/sh.md, config/sparc/predicates.md,
9957         config/sparc/sparc-protos.h, config/sparc/sparc.c,
9958         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
9959         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9960         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
9961         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
9962         config/tilepro/tilepro.c, config/v850/v850-protos.h,
9963         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
9964         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
9965         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
9966         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
9967         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
9968         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
9969         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
9970         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
9971         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
9972         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
9973         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
9974         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
9975         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
9976         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
9977         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
9978         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
9979         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
9980         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
9981         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
9982         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
9983         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
9984         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
9985         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
9986         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
9987         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
9988         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
9989         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
9990         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
9991         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
9992         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
9993         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
9994         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
9995         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
9996         var-tracking.c, varasm.c: Remove redundant enum from
9997         machine_mode.
9998         * gengtype.c (main): Treat machine_mode as a scalar typedef.
9999         * genmodes.c (emit_insn_modes_h): Hide inline functions if
10000         USED_FOR_TARGET.
10001
10002 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10003
10004         PR rtl-optimization/63340 (part 2)
10005         * rtl.h (invalid_mode_change_p): Delete.
10006         (valid_mode_changes_for_regno): New function.
10007         * reginfo.c (invalid_mode_change_p): Delete.
10008         (valid_mode_changes_for_regno): New function.
10009         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
10010         classes to registers that are allowed by valid_mode_changes_for_regno.
10011         (setup_regno_cost_classes_by_mode): Likewise.
10012         (print_allocno_costs): Remove invalid_mode_change_p test.
10013         (print_pseudo_costs, find_costs_and_classes): Likewise.
10014
10015 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
10016
10017         PR rtl-optimization/63340 (part 1)
10018         * ira-costs.c (all_cost_classes): New variable.
10019         (complete_cost_classes): New function, split out from...
10020         (setup_cost_classes): ...here.
10021         (initiate_regno_cost_classes): Set up all_cost_classes.
10022         (restrict_cost_classes): New function.
10023         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
10024         registers that are valid for the register's mode.
10025         (setup_regno_cost_classes_by_mode): Model the mode cache as a
10026         restriction of all_cost_classes to a particular mode.
10027         (print_allocno_costs): Remove contains_reg_of_mode check.
10028         (print_pseudo_costs, find_costs_and_classes): Likewise.
10029
10030 2014-10-29  Richard Biener  <rguenther@suse.de>
10031
10032         PR tree-optimization/63666
10033         * tree-vect-slp.c (vect_get_mask_element): Properly handle
10034         accessing out-of-bound elements.
10035
10036 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10037             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10038             Anna Tikhonova  <anna.tikhonova@intel.com>
10039             Ilya Tocar  <ilya.tocar@intel.com>
10040             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10041             Ilya Verbin  <ilya.verbin@intel.com>
10042             Kirill Yukhin  <kirill.yukhin@intel.com>
10043             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10044
10045         * config/i386/i386.md
10046         (movhi_internal): Always detect maskmov.
10047         (movqi_internal): Fix target check.
10048
10049 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10050             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10051             Anna Tikhonova  <anna.tikhonova@intel.com>
10052             Ilya Tocar  <ilya.tocar@intel.com>
10053             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10054             Ilya Verbin  <ilya.verbin@intel.com>
10055             Kirill Yukhin  <kirill.yukhin@intel.com>
10056             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10057
10058         * config/i386/avx512bwintrin.h: Add new intrinsics.
10059         * config/i386/avx512vlbwintrin.h: Ditto.
10060         * config/i386/avx512vlintrin.h: Ditto.
10061
10062 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10063
10064         * godump.c (precision_to_units): New helper function.
10065         (go_append_artificial_name): Ditto.
10066         (go_append_decl_name): Ditto.
10067         (go_append_bitfield): Ditto.
10068         (go_get_uinttype_for_precision): Ditto.
10069         (go_append_padding): Ditto.
10070         (go_force_record_alignment): Ditto.
10071         (go_format_type): Represent unions with an array of uints of the size
10072         of the alignment in go.  This fixes the 'random' size of the union's
10073         representation using just the first field.
10074         (go_format_type): Add argument that indicates whether a record is
10075         nested (used for generation of artificial go names).
10076         (go_output_fndecl): Adapt to new go_format_type signature.
10077         (go_output_typedef): Ditto.
10078         (go_output_var): Ditto.
10079         (go_output_var): Prefer to output type as alias (typedef).
10080         (go_format_type): Bitfields in records are simulated as arrays of bytes
10081         in go.
10082
10083         * godump.c (go_format_type): Fix handling of arrays with zero elements.
10084
10085 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
10086
10087         * cgraph.h: Flatten.  Remove all include files.
10088         (symbol_table::initialize): Move to cgraph.c.
10089         * cgraph.c: Adjust include files.
10090         (symbol_table::initialize): Relocate from cgraph.h.
10091         * gengtype.c (open_base_files): Adjust include files.
10092         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
10093         included files.
10094         * ipa-inline.h: Remove all include files.
10095         * ipa-prop.h: Ditto.
10096         * ipa-reference.h: Ditto.
10097         * ipa-utils.h: Ditto:
10098         * lto-streamer.h: Remove cgraph.h from include list.
10099         * asan.c: Adjust include files.
10100         * auto-profile.c: Ditto.
10101         * bb-reorder.c: Ditto.
10102         * calls.c: Ditto.
10103         * cfgexpand.c: Ditto.
10104         * cgraphbuild.c: Ditto.
10105         * cgraphclones.c: Ditto.
10106         * cgraphunit.c: Ditto.
10107         * combine.c: Ditto.
10108         * coverage.c: Ditto.
10109         * data-streamer.c: Ditto.
10110         * data-streamer-in.c: Ditto.
10111         * data-streamer-out.c: Ditto.
10112         * dbxout.c: Ditto.
10113         * dwarf2out.c: Ditto.
10114         * except.c: Ditto.
10115         * expr.c: Ditto.
10116         * final.c: Ditto.
10117         * fold-const.c: Ditto.
10118         * ggc-page.c: Ditto.
10119         * gimple-fold.c: Ditto.
10120         * gimple-iterator.c: Ditto.
10121         * gimple-pretty-print.c: Ditto.
10122         * gimple-streamer-in.c: Ditto.
10123         * gimple-streamer-out.c: Ditto.
10124         * gimplify.c: Ditto.
10125         * ipa.c: Ditto.
10126         * ipa-comdats.c: Ditto.
10127         * ipa-cp.c: Ditto.
10128         * ipa-devirt.c: Ditto.
10129         * ipa-icf.c: Ditto.
10130         * ipa-icf-gimple.c: Ditto.
10131         * ipa-inline-analysis.c: Ditto.
10132         * ipa-inline.c: Ditto.
10133         * ipa-inline-transform.c: Ditto.
10134         * ipa-polymorphic-call.c: Ditto.
10135         * ipa-profile.c: Ditto.
10136         * ipa-prop.c: Ditto.
10137         * ipa-pure-const.c: Ditto.
10138         * ipa-ref.c: Ditto.
10139         * ipa-reference.c: Ditto.
10140         * ipa-split.c: Ditto.
10141         * ipa-utils.c: Ditto.
10142         * ipa-visibility.c: Ditto.
10143         * langhooks.c: Ditto.
10144         * lto-cgraph.c: Ditto.
10145         * lto-compress.c: Ditto.
10146         * lto-opts.c: Ditto.
10147         * lto-section-in.c: Ditto.
10148         * lto-section-out.c: Ditto.
10149         * lto-streamer.c: Ditto.
10150         * lto-streamer-in.c: Ditto.
10151         * lto-streamer-out.c: Ditto.
10152         * omp-low.c: Ditto.
10153         * opts-global.c: Ditto.
10154         * passes.c: Ditto.
10155         * predict.c: Ditto.
10156         * print-tree.c: Ditto.
10157         * profile.c: Ditto.
10158         * ree.c: Ditto.
10159         * stor-layout.c: Ditto.
10160         * symtab.c: Ditto.
10161         * toplev.c: Ditto.
10162         * trans-mem.c: Ditto.
10163         * tree.c: Ditto.
10164         * tree-cfg.c: Ditto.
10165         * tree-eh.c: Ditto.
10166         * tree-emutls.c: Ditto.
10167         * tree-inline.c: Ditto.
10168         * tree-nested.c: Ditto.
10169         * tree-pretty-print.c: Ditto.
10170         * tree-profile.c: Ditto.
10171         * tree-sra.c: Ditto.
10172         * tree-ssa-alias.c: Ditto.
10173         * tree-ssa-loop-ivcanon.c: Ditto.
10174         * tree-ssa-loop-ivopts.c: Ditto.
10175         * tree-ssa-pre.c: Ditto.
10176         * tree-ssa-structalias.c: Ditto.
10177         * tree-streamer.c: Ditto.
10178         * tree-streamer-in.c: Ditto.
10179         * tree-streamer-out.c: Ditto.
10180         * tree-switch-conversion.c: Ditto.
10181         * tree-tailcall.c: Ditto.
10182         * tree-vect-data-refs.c: Ditto.
10183         * tree-vectorizer.c: Ditto.
10184         * tree-vect-stmts.c: Ditto.
10185         * tsan.c: Ditto.
10186         * ubsan.c: Ditto.
10187         * value-prof.c: Ditto.
10188         * varasm.c: Ditto.
10189         * varpool.c: Ditto.
10190         * config/arm/arm.c: Ditto.
10191         * config/bfin/bfin.c: Ditto.
10192         * config/c6x/c6x.c: Ditto.
10193         * config/cris/cris.c: Ditto.
10194         * config/darwin.c: Ditto.
10195         * config/darwin-c.c: Ditto.
10196         * config/i386/i386.c: Ditto.
10197         * config/i386/winnt.c: Ditto.
10198         * config/microblaze/microblaze.c: Ditto.
10199         * config/mips/mips.c: Ditto.
10200         * config/rs6000/rs6000.c: Ditto.
10201         * config/rx/rx.c: Ditto.
10202
10203 2014-10-28  Richard Biener  <rguenther@suse.de>
10204
10205         * gimple-fold.h (follow_single_use_edges): Declare.
10206         * gimple-fold.c (follow_single_use_edges): New function.
10207         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
10208         * tree-ssa-propagate.c
10209         (substitute_and_fold_dom_walker::before_dom_children): Allow
10210         following single-use edges when folding stmts we propagated into.
10211
10212 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10213             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10214             Anna Tikhonova  <anna.tikhonova@intel.com>
10215             Ilya Tocar  <ilya.tocar@intel.com>
10216             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10217             Ilya Verbin  <ilya.verbin@intel.com>
10218             Kirill Yukhin  <kirill.yukhin@intel.com>
10219             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10220
10221         * config/i386/avx512bwintrin.h: New.
10222         * config/i386/avx512dqintrin.h: Ditto.
10223         * config/i386/avx512vlbwintrin.h: Ditto.
10224         * config/i386/avx512vldqintrin.h: Ditto.
10225         * config/i386/avx512vlintrin.h: Ditto.
10226         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
10227         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
10228
10229 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10230             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10231             Anna Tikhonova  <anna.tikhonova@intel.com>
10232             Ilya Tocar  <ilya.tocar@intel.com>
10233             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10234             Ilya Verbin  <ilya.verbin@intel.com>
10235             Kirill Yukhin  <kirill.yukhin@intel.com>
10236             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10237
10238         * config/i386/i386.c
10239         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
10240         avx_shufpd256_mask, avx_vpermilv2df_mask.
10241
10242 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10243             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10244             Anna Tikhonova  <anna.tikhonova@intel.com>
10245             Ilya Tocar  <ilya.tocar@intel.com>
10246             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10247             Ilya Verbin  <ilya.verbin@intel.com>
10248             Kirill Yukhin  <kirill.yukhin@intel.com>
10249             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10250
10251         * config/i386/i386.c
10252         (ix86_init_mmx_sse_builtins):
10253         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
10254         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
10255         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
10256         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
10257         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
10258         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
10259         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
10260         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
10261         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
10262         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
10263         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
10264         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
10265         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
10266         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
10267         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
10268         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
10269         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
10270         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
10271
10272 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10273             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10274             Anna Tikhonova  <anna.tikhonova@intel.com>
10275             Ilya Tocar  <ilya.tocar@intel.com>
10276             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10277             Ilya Verbin  <ilya.verbin@intel.com>
10278             Kirill Yukhin  <kirill.yukhin@intel.com>
10279             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10280
10281         * config/i386/i386.c
10282         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
10283         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
10284         IX86_BUILTIN_GATHER3ALTDIV8SI.
10285         (ix86_expand_builtin):
10286         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
10287         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
10288         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
10289         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
10290         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10291         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
10292         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
10293         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
10294         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10295         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
10296         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
10297         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
10298         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
10299         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
10300         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
10301         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10302         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
10303         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
10304         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
10305         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
10306
10307 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10308             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10309             Anna Tikhonova  <anna.tikhonova@intel.com>
10310             Ilya Tocar  <ilya.tocar@intel.com>
10311             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10312             Ilya Verbin  <ilya.verbin@intel.com>
10313             Kirill Yukhin  <kirill.yukhin@intel.com>
10314             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10315
10316         * config/i386/i386-builtin-types.def
10317         (SHORT): New.
10318         (V32HI): Ditto.
10319         (V12QI): Ditto.
10320         (V14QI): Ditto.
10321         (V32SI): Ditto.
10322         (V8UDI): Ditto.
10323         (V16USI): Ditto.
10324         (V32UHI): Ditto.
10325         (PSHORT): Ditto.
10326         (PV32QI): Ditto.
10327         (PV32HI): Ditto.
10328         (PV64QI): Ditto.
10329         (PCV8HI): Ditto.
10330         (PCV16QI): Ditto.
10331         (PCV16HI): Ditto.
10332         (PCV32QI): Ditto.
10333         (PCV32HI): Ditto.
10334         (PCV64QI): Ditto.
10335         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10336         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10337         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10338         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10339         (V16SF_FTYPE_V16HI): Ditto.
10340         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10341         (V16SF_FTYPE_V16SI): Ditto.
10342         (V4DI_FTYPE_V4DI): Ditto.
10343         (V16SI_FTYPE_V16SF): Ditto.
10344         (V8DI_FTYPE_PV2DI): Ditto.
10345         (V8DF_FTYPE_PV2DF): Ditto.
10346         (V4DI_FTYPE_PV2DI): Ditto.
10347         (V4DF_FTYPE_PV2DF): Ditto.
10348         (V16SI_FTYPE_PV2SI): Ditto.
10349         (V16SF_FTYPE_PV2SF): Ditto.
10350         (V8SF_FTYPE_FLOAT): Ditto.
10351         (V4SF_FTYPE_FLOAT): Ditto.
10352         (V4DF_FTYPE_DOUBLE): Ditto.
10353         (V8SF_FTYPE_PV4SF): Ditto.
10354         (V8SI_FTYPE_PV4SI): Ditto.
10355         (V4SI_FTYPE_PV2SI): Ditto.
10356         (V8SF_FTYPE_PV2SF): Ditto.
10357         (V8SI_FTYPE_PV2SI): Ditto.
10358         (V16SF_FTYPE_PV8SF): Ditto.
10359         (V16SI_FTYPE_PV8SI): Ditto.
10360         (V8DI_FTYPE_V8SF): Ditto.
10361         (V4DI_FTYPE_V4SF): Ditto.
10362         (V2DI_FTYPE_V4SF): Ditto.
10363         (V64QI_FTYPE_QI): Ditto.
10364         (V32HI_FTYPE_HI): Ditto.
10365         (V16UHI_FTYPE_V16UHI): Ditto.
10366         (V32UHI_FTYPE_V32UHI): Ditto.
10367         (V2UDI_FTYPE_V2UDI): Ditto.
10368         (V4UDI_FTYPE_V4UDI): Ditto.
10369         (V8UDI_FTYPE_V8UDI): Ditto.
10370         (V4USI_FTYPE_V4USI): Ditto.
10371         (V16USI_FTYPE_V16USI): Ditto.
10372         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10373         (V2DF_FTYPE_V8DF_INT): Ditto.
10374         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10375         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10376         (V8DF_FTYPE_V8DF_INT): Ditto.
10377         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10378         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10379         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10380         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10381         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10382         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10383         (V8DI_FTYPE_V8DI_INT): Ditto.
10384         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10385         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10386         (V8SF_FTYPE_V16SF_INT): Ditto.
10387         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10388         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10389         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10390         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10391         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10392         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10393         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10394         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10395         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10396         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10397         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10398         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10399         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10400         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10401         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10402         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10403         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10404         (V32HI_FTYPE_V32HI_V32HI): Ditto.
10405         (V32HI_FTYPE_V32HI_INT): Ditto.
10406         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10407         (V16SI_FTYPE_V32HI_V32HI): Ditto.
10408         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10409         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10410         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10411         (V8SI_FTYPE_V16SI_INT): Ditto.
10412         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10413         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10414         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10415         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10416         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
10417         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
10418         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10419         (V8DI_FTYPE_V16SI_V16SI): Ditto.
10420         (V8DI_FTYPE_V64QI_V64QI): Ditto.
10421         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10422         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10423         (V2DI_FTYPE_V8DI_INT): Ditto.
10424         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10425         (QI_FTYPE_QI): Ditto.
10426         (SI_FTYPE_SI): Ditto.
10427         (DI_FTYPE_DI): Ditto.
10428         (HI_FTYPE_V16QI): Ditto.
10429         (SI_FTYPE_V32QI): Ditto.
10430         (DI_FTYPE_V64QI): Ditto.
10431         (QI_FTYPE_V8HI): Ditto.
10432         (HI_FTYPE_V16HI): Ditto.
10433         (SI_FTYPE_V32HI): Ditto.
10434         (QI_FTYPE_V4SI): Ditto.
10435         (QI_FTYPE_V8SI): Ditto.
10436         (HI_FTYPE_V16SI): Ditto.
10437         (QI_FTYPE_V2DI): Ditto.
10438         (QI_FTYPE_V4DI): Ditto.
10439         (QI_FTYPE_V8DI): Ditto.
10440         (V16QI_FTYPE_HI): Ditto.
10441         (V32QI_FTYPE_SI): Ditto.
10442         (V64QI_FTYPE_DI): Ditto.
10443         (V8HI_FTYPE_QI): Ditto.
10444         (V16HI_FTYPE_HI): Ditto.
10445         (V32HI_FTYPE_SI): Ditto.
10446         (V4SI_FTYPE_QI): Ditto.
10447         (V4SI_FTYPE_HI): Ditto.
10448         (V8SI_FTYPE_QI): Ditto.
10449         (V8SI_FTYPE_HI): Ditto.
10450         (V2DI_FTYPE_QI): Ditto.
10451         (V4DI_FTYPE_QI): Ditto.
10452         (QI_FTYPE_QI_QI): Ditto.
10453         (SI_FTYPE_SI_SI): Ditto.
10454         (DI_FTYPE_DI_DI): Ditto.
10455         (QI_FTYPE_QI_INT): Ditto.
10456         (SI_FTYPE_SI_INT): Ditto.
10457         (DI_FTYPE_DI_INT): Ditto.
10458         (HI_FTYPE_V16QI_V16QI): Ditto.
10459         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10460         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10461         (SI_FTYPE_V32QI_V32QI): Ditto.
10462         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10463         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10464         (DI_FTYPE_V64QI_V64QI): Ditto.
10465         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10466         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10467         (QI_FTYPE_V8HI_V8HI): Ditto.
10468         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10469         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10470         (HI_FTYPE_V16HI_V16HI): Ditto.
10471         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10472         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10473         (SI_FTYPE_V32HI_V32HI): Ditto.
10474         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10475         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10476         (QI_FTYPE_V4SI_V4SI): Ditto.
10477         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10478         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10479         (QI_FTYPE_V8SI_V8SI): Ditto.
10480         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10481         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10482         (QI_FTYPE_V2DI_V2DI): Ditto.
10483         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10484         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10485         (QI_FTYPE_V4DI_V4DI): Ditto.
10486         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10487         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10488         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10489         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
10490         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10491         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10492         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10493         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10494         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10495         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10496         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10497         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10498         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10499         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10500         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10501         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10502         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10503         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10504         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10505         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10506         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10507         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10508         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10509         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10510         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10511         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10512         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10513         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10514         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10515         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10516         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10517         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10518         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10519         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10520         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10521         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10522         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10523         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10524         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10525         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10526         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10527         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10528         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10529         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10530         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10531         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10532         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10533         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10534         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10535         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10536         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10537         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10538         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10539         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10540         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10541         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10542         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10543         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10544         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10545         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10546         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10547         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10548         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10549         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10550         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10551         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10552         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10553         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10554         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10555         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10556         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10557         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10558         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10559         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10560         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10561         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
10562         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10563         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10564         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
10565         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10566         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10567         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
10568         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10569         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10570         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10571         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10572         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10573         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10574         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10575         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10576         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10577         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10578         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10579         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10580         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10581         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10582         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10583         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10584         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10585         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10586         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10587         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10588         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10589         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10590         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10591         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10592         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10593         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10594         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10595         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10596         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10597         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10598         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10599         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10600         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10601         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10602         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10603         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10604         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10605         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10606         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10607         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10608         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10609         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10610         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10611         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10612         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10613         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10614         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10615         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10616         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10617         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10618         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10619         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10620         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10621         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10622         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10623         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10624         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10625         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10626         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10627         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10628         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10629         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10630         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10631         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10632         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10633         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10634         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10635         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10636         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10637         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10638         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10639         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10640         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10641         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10642         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10643         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10644         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10645         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10646         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10647         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10648         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10649         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10650         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10651         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10652         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10653         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10654         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10655         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10656         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10657         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10658         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10659         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10660         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10661         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10662         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10663         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10664         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10665         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10666         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10667         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10668         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10669         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10670         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10671         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10672         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10673         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10674         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10675         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10676         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10677         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10678         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10679         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10680         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10681         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10682         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10683         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10684         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10685         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10686         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10687         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10688         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10689         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10690         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10691         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10692         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10693         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10694         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10695         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10696         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10697         (QI_FTYPE_V8DF_INT): Ditto.
10698         (QI_FTYPE_V4DF_INT): Ditto.
10699         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10700         (QI_FTYPE_V2DF_INT): Ditto.
10701         (HI_FTYPE_V16SF_INT): Ditto.
10702         (QI_FTYPE_V8SF_INT): Ditto.
10703         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10704         (QI_FTYPE_V4SF_INT): Ditto.
10705         (QI_FTYPE_V8DF_INT_QI): Ditto.
10706         (QI_FTYPE_V4DF_INT_QI): Ditto.
10707         (QI_FTYPE_V2DF_INT_QI): Ditto.
10708         (HI_FTYPE_V16SF_INT_HI): Ditto.
10709         (QI_FTYPE_V8SF_INT_QI): Ditto.
10710         (QI_FTYPE_V4SF_INT_QI): Ditto.
10711         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
10712         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
10713         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
10714         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
10715         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10716         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10717         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
10718         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
10719         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
10720         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
10721         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
10722         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
10723         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
10724         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
10725         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
10726         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
10727         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
10728         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
10729         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
10730         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
10731         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
10732         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
10733         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
10734         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
10735         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
10736         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
10737         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
10738         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
10739         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
10740         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
10741         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
10742         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
10743         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
10744         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
10745         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
10746         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
10747         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
10748         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
10749         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
10750         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
10751         (V8DI_FTYPE_V8DI_INT): Ditto.
10752         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10753         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10754         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10755         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10756         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
10757         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
10758         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
10759         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
10760         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
10761         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
10762         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
10763         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
10764         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
10765         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
10766         * config/i386/i386.c (ix86_builtins):
10767         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
10768         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
10769         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
10770         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
10771         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
10772         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
10773         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
10774         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
10775         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
10776         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
10777         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
10778         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
10779         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
10780         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
10781         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
10782         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
10783         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
10784         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
10785         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
10786         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
10787         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
10788         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
10789         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
10790         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
10791         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
10792         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
10793         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
10794         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
10795         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
10796         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
10797         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
10798         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
10799         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
10800         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
10801         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
10802         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
10803         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
10804         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
10805         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
10806         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
10807         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
10808         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
10809         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
10810         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
10811         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
10812         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
10813         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
10814         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
10815         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
10816         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
10817         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
10818         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
10819         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
10820         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
10821         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
10822         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
10823         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
10824         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
10825         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
10826         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
10827         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
10828         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
10829         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
10830         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
10831         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
10832         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
10833         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
10834         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
10835         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
10836         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
10837         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
10838         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
10839         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
10840         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
10841         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
10842         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
10843         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
10844         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
10845         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
10846         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
10847         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
10848         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
10849         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
10850         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
10851         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
10852         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
10853         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
10854         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
10855         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
10856         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
10857         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
10858         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
10859         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
10860         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
10861         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
10862         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
10863         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
10864         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
10865         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
10866         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
10867         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
10868         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
10869         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
10870         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
10871         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
10872         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
10873         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
10874         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
10875         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
10876         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
10877         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
10878         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
10879         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
10880         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
10881         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
10882         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
10883         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
10884         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
10885         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
10886         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
10887         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
10888         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
10889         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
10890         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
10891         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
10892         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
10893         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
10894         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
10895         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
10896         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
10897         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
10898         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
10899         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
10900         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
10901         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
10902         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
10903         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
10904         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
10905         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
10906         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
10907         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
10908         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
10909         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
10910         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
10911         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
10912         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
10913         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
10914         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
10915         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
10916         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
10917         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
10918         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
10919         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
10920         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
10921         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
10922         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
10923         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
10924         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
10925         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
10926         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
10927         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
10928         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
10929         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
10930         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
10931         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
10932         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
10933         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
10934         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
10935         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
10936         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
10937         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
10938         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
10939         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
10940         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
10941         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
10942         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
10943         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
10944         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
10945         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
10946         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
10947         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
10948         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
10949         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
10950         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
10951         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
10952         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
10953         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
10954         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
10955         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
10956         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
10957         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
10958         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
10959         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
10960         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
10961         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
10962         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
10963         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
10964         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
10965         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
10966         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
10967         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
10968         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
10969         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
10970         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
10971         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
10972         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
10973         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
10974         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
10975         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
10976         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
10977         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
10978         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
10979         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
10980         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
10981         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
10982         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
10983         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
10984         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
10985         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
10986         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
10987         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
10988         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
10989         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
10990         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
10991         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
10992         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
10993         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
10994         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
10995         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
10996         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
10997         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
10998         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
10999         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
11000         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
11001         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
11002         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
11003         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
11004         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
11005         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
11006         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
11007         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
11008         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
11009         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
11010         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
11011         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
11012         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
11013         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
11014         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
11015         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
11016         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
11017         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
11018         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
11019         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
11020         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
11021         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
11022         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
11023         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
11024         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
11025         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
11026         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
11027         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
11028         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
11029         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
11030         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
11031         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
11032         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
11033         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
11034         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
11035         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
11036         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
11037         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
11038         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
11039         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
11040         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
11041         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
11042         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
11043         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
11044         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
11045         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
11046         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
11047         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
11048         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
11049         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
11050         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
11051         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
11052         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
11053         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
11054         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
11055         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
11056         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
11057         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
11058         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
11059         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
11060         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
11061         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
11062         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
11063         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
11064         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
11065         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
11066         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
11067         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
11068         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
11069         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
11070         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
11071         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
11072         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
11073         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
11074         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
11075         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
11076         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
11077         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
11078         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
11079         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
11080         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
11081         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
11082         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
11083         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
11084         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
11085         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
11086         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
11087         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
11088         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
11089         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
11090         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
11091         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
11092         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
11093         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
11094         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
11095         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
11096         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
11097         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
11098         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
11099         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
11100         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
11101         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
11102         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
11103         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
11104         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
11105         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
11106         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
11107         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
11108         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
11109         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
11110         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
11111         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
11112         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
11113         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
11114         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
11115         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
11116         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
11117         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
11118         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
11119         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
11120         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
11121         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
11122         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
11123         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
11124         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
11125         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
11126         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
11127         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
11128         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
11129         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
11130         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
11131         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
11132         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
11133         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
11134         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
11135         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
11136         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
11137         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
11138         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
11139         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
11140         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
11141         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
11142         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
11143         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
11144         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
11145         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
11146         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
11147         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
11148         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
11149         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
11150         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
11151         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
11152         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
11153         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
11154         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
11155         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
11156         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
11157         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
11158         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
11159         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
11160         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
11161         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
11162         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
11163         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
11164         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
11165         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
11166         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
11167         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
11168         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
11169         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
11170         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
11171         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
11172         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
11173         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
11174         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
11175         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
11176         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
11177         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
11178         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
11179         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
11180         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
11181         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
11182         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
11183         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
11184         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
11185         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
11186         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
11187         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
11188         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
11189         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
11190         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
11191         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
11192         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
11193         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
11194         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
11195         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
11196         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
11197         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
11198         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
11199         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
11200         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
11201         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
11202         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
11203         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
11204         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
11205         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
11206         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
11207         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
11208         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
11209         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
11210         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
11211         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
11212         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
11213         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
11214         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
11215         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
11216         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
11217         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
11218         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
11219         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
11220         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
11221         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
11222         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
11223         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
11224         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
11225         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
11226         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
11227         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
11228         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
11229         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
11230         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
11231         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
11232         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
11233         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
11234         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
11235         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
11236         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
11237         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
11238         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
11239         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
11240         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
11241         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
11242         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
11243         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
11244         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
11245         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
11246         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
11247         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
11248         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
11249         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
11250         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
11251         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
11252         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
11253         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
11254         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
11255         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
11256         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
11257         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
11258         (bdesc_special_args):
11259         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
11260         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
11261         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
11262         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
11263         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
11264         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
11265         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
11266         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
11267         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
11268         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
11269         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
11270         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
11271         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
11272         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
11273         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
11274         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
11275         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
11276         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
11277         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
11278         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
11279         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
11280         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
11281         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
11282         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
11283         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
11284         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
11285         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
11286         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
11287         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
11288         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
11289         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
11290         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
11291         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
11292         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
11293         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
11294         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
11295         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
11296         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
11297         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
11298         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
11299         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
11300         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
11301         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
11302         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
11303         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
11304         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
11305         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
11306         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
11307         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
11308         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
11309         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
11310         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
11311         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
11312         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
11313         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
11314         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
11315         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
11316         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
11317         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
11318         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
11319         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
11320         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
11321         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
11322         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
11323         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11324         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11325         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11326         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11327         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11328         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11329         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11330         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11331         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11332         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11333         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11334         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11335         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11336         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11337         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11338         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11339         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11340         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11341         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11342         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11343         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11344         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11345         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11346         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11347         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11348         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11349         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11350         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11351         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11352         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11353         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11354         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11355         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11356         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11357         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11358         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11359         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11360         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11361         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11362         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11363         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11364         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11365         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11366         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11367         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11368         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11369         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11370         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11371         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11372         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11373         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11374         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11375         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11376         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11377         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11378         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11379         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11380         __builtin_ia32_reducesd, __builtin_ia32_reducess,
11381         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11382         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11383         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11384         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11385         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11386         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11387         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11388         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11389         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11390         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11391         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11392         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11393         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11394         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11395         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11396         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11397         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11398         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11399         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11400         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11401         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11402         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
11403         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
11404         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
11405         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
11406         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
11407         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
11408         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
11409         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
11410         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
11411         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
11412         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
11413         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
11414         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
11415         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
11416         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
11417         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
11418         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
11419         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
11420         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
11421         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
11422         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
11423         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
11424         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
11425         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
11426         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
11427         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
11428         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
11429         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
11430         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
11431         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
11432         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
11433         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
11434         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
11435         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
11436         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
11437         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
11438         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
11439         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
11440         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
11441         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
11442         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
11443         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
11444         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
11445         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
11446         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
11447         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
11448         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
11449         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
11450         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
11451         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
11452         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
11453         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
11454         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
11455         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
11456         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
11457         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
11458         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
11459         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
11460         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
11461         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
11462         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
11463         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
11464         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
11465         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
11466         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
11467         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
11468         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
11469         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
11470         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
11471         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
11472         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
11473         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
11474         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
11475         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
11476         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
11477         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
11478         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
11479         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
11480         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
11481         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
11482         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
11483         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
11484         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
11485         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
11486         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
11487         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
11488         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
11489         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
11490         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
11491         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
11492         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
11493         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
11494         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
11495         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
11496         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
11497         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
11498         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
11499         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
11500         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
11501         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
11502         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
11503         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
11504         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
11505         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
11506         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
11507         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
11508         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
11509         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
11510         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
11511         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
11512         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
11513         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
11514         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
11515         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
11516         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
11517         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
11518         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
11519         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
11520         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
11521         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
11522         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
11523         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
11524         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
11525         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
11526         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
11527         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
11528         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
11529         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
11530         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
11531         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
11532         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
11533         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
11534         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
11535         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
11536         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
11537         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
11538         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
11539         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
11540         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
11541         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
11542         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
11543         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
11544         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
11545         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
11546         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
11547         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
11548         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
11549         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
11550         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
11551         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
11552         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
11553         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
11554         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
11555         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
11556         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
11557         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
11558         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
11559         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
11560         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
11561         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
11562         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
11563         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
11564         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
11565         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
11566         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
11567         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
11568         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
11569         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
11570         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
11571         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
11572         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
11573         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
11574         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
11575         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
11576         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
11577         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
11578         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
11579         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
11580         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
11581         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
11582         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
11583         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
11584         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
11585         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
11586         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
11587         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
11588         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
11589         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
11590         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
11591         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
11592         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
11593         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
11594         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
11595         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
11596         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
11597         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
11598         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
11599         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
11600         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
11601         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
11602         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
11603         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
11604         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
11605         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
11606         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
11607         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
11608         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
11609         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
11610         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
11611         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
11612         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
11613         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
11614         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
11615         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
11616         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
11617         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
11618         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
11619         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
11620         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
11621         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
11622         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
11623         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
11624         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
11625         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
11626         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
11627         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
11628         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
11629         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
11630         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
11631         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
11632         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
11633         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
11634         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
11635         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
11636         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
11637         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
11638         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
11639         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
11640         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
11641         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
11642         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
11643         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
11644         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
11645         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
11646         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
11647         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
11648         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
11649         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
11650         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
11651         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
11652         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
11653         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
11654         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
11655         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
11656         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
11657         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
11658         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
11659         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
11660         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
11661         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
11662         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
11663         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
11664         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
11665         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
11666         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
11667         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
11668         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
11669         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
11670         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
11671         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
11672         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
11673         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
11674         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
11675         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
11676         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
11677         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
11678         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
11679         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
11680         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
11681         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
11682         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
11683         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
11684         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
11685         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
11686         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
11687         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
11688         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
11689         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
11690         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
11691         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
11692         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
11693         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
11694         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
11695         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
11696         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
11697         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
11698         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
11699         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
11700         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
11701         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
11702         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
11703         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
11704         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
11705         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
11706         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
11707         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
11708         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
11709         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
11710         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
11711         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
11712         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
11713         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
11714         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
11715         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
11716         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11717         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
11718         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
11719         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
11720         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
11721         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
11722         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
11723         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
11724         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
11725         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
11726         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
11727         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
11728         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
11729         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
11730         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
11731         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
11732         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
11733         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
11734         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
11735         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
11736         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
11737         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
11738         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
11739         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
11740         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
11741         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
11742         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
11743         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
11744         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
11745         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
11746         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
11747         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
11748         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
11749         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
11750         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
11751         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
11752         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
11753         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
11754         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
11755         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
11756         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
11757         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
11758         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
11759         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
11760         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
11761         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
11762         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
11763         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
11764         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
11765         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
11766         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
11767         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
11768         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
11769         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
11770         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
11771         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
11772         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
11773         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
11774         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
11775         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
11776         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
11777         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
11778         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
11779         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
11780         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
11781         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
11782         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
11783         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
11784         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
11785         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
11786         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
11787         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
11788         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
11789         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
11790         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
11791         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
11792         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
11793         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
11794         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
11795         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
11796         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
11797         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
11798         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
11799         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
11800         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
11801         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
11802         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
11803         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
11804         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
11805         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
11806         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
11807         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
11808         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
11809         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
11810         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
11811         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
11812         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
11813         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
11814         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
11815         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
11816         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
11817         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
11818         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
11819         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
11820         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
11821         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
11822         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
11823         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
11824         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
11825         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
11826         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
11827         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
11828         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
11829         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
11830         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
11831         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
11832         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
11833         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
11834         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
11835         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
11836         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
11837         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
11838         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
11839         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
11840         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
11841         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
11842         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
11843         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
11844         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
11845         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
11846         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
11847         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
11848         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
11849         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
11850         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
11851         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
11852         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
11853         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
11854         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
11855         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
11856         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
11857         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
11858         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
11859         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
11860         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
11861         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
11862         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
11863         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
11864         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
11865         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
11866         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
11867         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
11868
11869 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
11870
11871         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
11872         type for the left shift in CASE_CONVERT case.
11873
11874 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
11875
11876         * asan.h (asan_intercepted_p): New function.
11877         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
11878         hash value construction.  Call iterative_hash_expr instead of explicit
11879         hash building.
11880         (asan_mem_ref_hasher::equal): Change condition.
11881         (has_mem_ref_been_instrumented): Likewise.
11882         (update_mem_ref_hash_table): Likewise.
11883         (maybe_update_mem_ref_hash_table): New function.
11884         (instrument_strlen_call): Removed.
11885         (get_mem_refs_of_builtin_call): Handle new parameter.
11886         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
11887         of instrument_mem_region_access if intercepted_p is true.
11888         (instrument_mem_region_access): Instrument only base with len instead of
11889         base and end with 1.
11890         (build_check_stmt): Remove start_instrumented and end_instrumented
11891         parameters.
11892         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
11893         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
11894         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
11895         * builtins.c (expand_builtin): Include asan.h.  Don't expand string/memory
11896         builtin functions that have interceptors if ASan is enabled.
11897
11898 2014-10-28  Richard Biener  <rguenther@suse.de>
11899
11900         PR middle-end/63665
11901         * fold-const.c (fold_comparison): Properly guard simplifying
11902         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
11903
11904 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
11905
11906         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
11907         * fold-const.c (const_binop): Likewise.
11908         * cfgexpand.c (expand_debug_expr): Likewise.
11909         * tree-inline.c (estimate_operator_cost): Likewise.
11910         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
11911         * optabs.c (optab_for_tree_code): Likewise.
11912         (expand_vec_shift_expr): Likewise, update comment.
11913         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
11914         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
11915         * optabs.def: Remove vec_shl_optab.
11916         * doc/md.texi: Remove references to vec_shr_m.
11917
11918 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11919
11920         * asan.c (report_error_func): Add noabort path.
11921         (check_func): Ditto.  Formatting.
11922         (asan_expand_check_ifn): Handle noabort path.
11923         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
11924         to default value.
11925         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
11926         * opts.c (finish_options): Reword comment.
11927         * sanitizer.def: Add noabort ASan builtins.
11928
11929 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11930
11931         * asan.c (set_asan_shadow_offset): New function.
11932         (asan_shadow_offset): Likewise.
11933         (asan_emit_stack_protection): Call asan_shadow_offset.
11934         (build_shadow_mem_access): Likewise.
11935         * asan.h (set_asan_shadow_offset): Declare.
11936         * common.opt (fasan-shadow-offset): New option.
11937         (frandom-seed): Fixed parameter name.
11938         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
11939         (frandom-seed): Fixed parameter name.
11940         * opts-global.c (handle_common_deferred_options): Handle
11941         -fasan-shadow-offset.
11942         * opts.c (common_handle_option): Likewise.
11943
11944 2014-10-27  Jiong Wang <jiong.wang@arm.com>
11945
11946         PR target/63442
11947         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
11948
11949 2014-10-27  DJ Delorie  <dj@redhat.com>
11950
11951         * tree.c (build_common_tree_nodes): Don't even store the
11952         __int128 types if they're not supported.
11953
11954 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11955
11956         * config/i386/i386.c (ix86_loop_memcount): Delete.
11957         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
11958
11959 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11960
11961         * config/i386/i386.c (find_constant_1): Delete.
11962         (find_constant): Use FOR_EACH_SUBRTX.
11963
11964 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11965
11966         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
11967         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
11968
11969 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11970
11971         * config/i386/i386.c: Include rtl-iter.h
11972         (ix86_check_avx256_register): Take a const_rtx and return a bool.
11973         (ix86_check_avx256_stores): Update call accordingly.
11974         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
11975         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
11976
11977 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11978
11979         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
11980         Take an rtx and return a bool.
11981         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
11982         Use FOR_EACH_SUBRTX_VAR.
11983         * config/alpha/predicates.md (some_small_symbolic_operand): Update
11984         accordingly.
11985
11986 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11987
11988         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
11989         a bool.
11990         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
11991         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
11992
11993 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11994
11995         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
11996         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
11997
11998 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11999
12000         * config/alpha/alpha.c: Include rtl-iter.h.
12001         (split_small_symbolic_operand_1): Delete.
12002         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
12003
12004 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12005
12006         * config/s390/s390.c: Include rtl-iter.h.
12007         (check_dpu): Delete.
12008         (s390_loop_unroll_adjust): Only iterate over patterns.
12009         Use FOR_EACH_SUBRTX.
12010
12011 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12012
12013         * config/spu/spu.c: Include rtl-iter.h
12014         (ea_symbol_ref): Replace with...
12015         (ea_symbol_ref_p): ...this new function.
12016         (spu_legitimate_address_p): Update call accordingly.
12017         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
12018
12019 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
12020             Tom Tromey  <tromey@redhat.com>
12021
12022         * aclocal.m4, configure: Rebuild.
12023         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
12024         * configure.ac: Use GCC_ENABLE_PLUGINS.
12025         * stor-layout.c (finish_bitfield_layout): Now public.  Change
12026         argument type to 'tree'.
12027         (finish_record_layout): Update.
12028         * stor-layout.h (finish_bitfield_layout): Declare.
12029
12030 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12031
12032         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
12033         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12034         Restore, enable for bigendian, update to use __builtin..._scal...
12035
12036 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12037
12038         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
12039         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
12040         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
12041         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
12042
12043         * config/aarch64/aarch64-simd.md
12044         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
12045         (reduc_<maxmin_uns>_internal<mode>): ...this.
12046         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
12047         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
12048
12049         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
12050         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
12051         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
12052
12053         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
12054         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
12055         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
12056         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
12057         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
12058         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
12059         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
12060         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
12061
12062 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12063
12064         * config/aarch64/aarch64-simd-builtins.def
12065         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
12066         Remove.
12067         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
12068
12069         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
12070         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
12071
12072         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
12073         (aarch64_reduc_plus_internal<mode>): ...this.
12074
12075         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
12076         (aarch64_reduc_plus_internalv2si): ...this.
12077
12078         (reduc_splus_<mode>/V2F): Rename to...
12079         (aarch64_reduc_plus_internal<mode>): ...this.
12080
12081         * config/aarch64/iterators.md
12082         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
12083         (UNSPEC_ADDV): New.
12084         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
12085
12086         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
12087         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
12088         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
12089         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
12090         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
12091
12092 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12093
12094         PR tree-optimization/61114
12095         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
12096         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
12097
12098         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
12099         back to old reduc_... + BIT_FIELD_REF only if not.
12100
12101         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
12102         return the reduce-to-scalar (reduc_..._scal) optab.
12103         (scalar_reduc_to_vector): New.
12104
12105         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
12106         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
12107         New.
12108
12109         * optabs.h (scalar_reduc_to_vector): Declare.
12110
12111         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
12112         to either scalar or vector.
12113
12114 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12115
12116         PR tree-optimization/61114
12117         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
12118         extract_bit_field around optab result.
12119
12120         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
12121         scalar not vector.
12122
12123         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
12124         for REDUC_{MIN,MAX,PLUS}_EXPR.
12125
12126         * tree-vect-loop.c (vect_analyze_loop): Update comment.
12127         (vect_create_epilog_for_reduction): For direct vector reduction, use
12128         result of tree code directly without extract_bit_field.
12129
12130         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
12131         comment.
12132
12133 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
12134
12135         * basic-block.h: Remove all includes.
12136         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
12137         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
12138         * Makefile.in (GTFILES): Add cfg.h to list.
12139         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
12140         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
12141         * genconditions.c (write_header): Add predict.h and basic-block.h to
12142         lits of includes.
12143         * genemit.c (main): Ditto.
12144         * genpreds.c (write_insn_preds_c): Ditto.
12145         * genrecog.c (write_header): Ditto.
12146         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
12147         to list of includes.
12148         * alias.c: Adjust include files.
12149         * asan.c: Ditto.
12150         * auto-inc-dec.c: Ditto.
12151         * auto-profile.c: Ditto.
12152         * bb-reorder.c: Ditto.
12153         * bt-load.c: Ditto.
12154         * builtins.c: Ditto.
12155         * caller-save.c: Ditto.
12156         * calls.c: Ditto.
12157         * cfg.c: Ditto.
12158         * cfganal.c: Ditto.
12159         * cfgbuild.c: Ditto.
12160         * cfgcleanup.c: Ditto.
12161         * cfgexpand.c: Ditto.
12162         * cfghooks.c: Ditto.
12163         * cfgloop.c: Ditto.
12164         * cfgloopanal.c: Ditto.
12165         * cfgloopmanip.c: Ditto.
12166         * cfgrtl.c: Ditto.
12167         * cgraphbuild.c: Ditto.
12168         * cgraphclones.c: Ditto.
12169         * cgraphunit.c: Ditto.
12170         * combine-stack-adj.c: Ditto.
12171         * combine.c: Ditto.
12172         * compare-elim.c: Ditto.
12173         * coverage.c: Ditto.
12174         * cprop.c: Ditto.
12175         * cse.c: Ditto.
12176         * cselib.c: Ditto.
12177         * data-streamer-in.c: Ditto.
12178         * data-streamer-out.c: Ditto.
12179         * data-streamer.c: Ditto.
12180         * dce.c: Ditto.
12181         * ddg.c: Ditto.
12182         * ddg.h: Ditto.
12183         * df-core.c: Ditto.
12184         * df-problems.c: Ditto.
12185         * df-scan.c: Ditto.
12186         * df.h: Ditto.
12187         * dojump.c: Ditto.
12188         * dominance.c: Ditto.
12189         * domwalk.c: Ditto.
12190         * dse.c: Ditto.
12191         * dwarf2cfi.c: Ditto.
12192         * emit-rtl.c: Ditto.
12193         * et-forest.c: Ditto.
12194         * except.c: Ditto.
12195         * expmed.c: Ditto.
12196         * expr.c: Ditto.
12197         * final.c: Ditto.
12198         * fold-const.c: Ditto.
12199         * function.c: Ditto.
12200         * fwprop.c: Ditto.
12201         * gcc-plugin.h: Ditto.
12202         * gcse.c: Ditto.
12203         * generic-match-head.c: Ditto.
12204         * ggc-page.c: Ditto.
12205         * gimple-builder.c: Ditto.
12206         * gimple-expr.c: Ditto.
12207         * gimple-fold.c: Ditto.
12208         * gimple-iterator.c: Ditto.
12209         * gimple-low.c: Ditto.
12210         * gimple-match-head.c: Ditto.
12211         * gimple-pretty-print.c: Ditto.
12212         * gimple-ssa-isolate-paths.c: Ditto.
12213         * gimple-ssa-strength-reduction.c: Ditto.
12214         * gimple-streamer-in.c: Ditto.
12215         * gimple-streamer-out.c: Ditto.
12216         * gimple-streamer.h: Ditto.
12217         * gimple-walk.c: Ditto.
12218         * gimple.c: Ditto.
12219         * gimplify-me.c: Ditto.
12220         * gimplify.c: Ditto.
12221         * graph.c: Ditto.
12222         * graphite-blocking.c: Ditto.
12223         * graphite-clast-to-gimple.c: Ditto.
12224         * graphite-dependences.c: Ditto.
12225         * graphite-interchange.c: Ditto.
12226         * graphite-isl-ast-to-gimple.c: Ditto.
12227         * graphite-optimize-isl.c: Ditto.
12228         * graphite-poly.c: Ditto.
12229         * graphite-scop-detection.c: Ditto.
12230         * graphite-sese-to-poly.c: Ditto.
12231         * graphite.c: Ditto.
12232         * haifa-sched.c: Ditto.
12233         * hw-doloop.c: Ditto.
12234         * ifcvt.c: Ditto.
12235         * init-regs.c: Ditto.
12236         * internal-fn.c: Ditto.
12237         * ipa-cp.c: Ditto.
12238         * ipa-devirt.c: Ditto.
12239         * ipa-icf-gimple.c: Ditto.
12240         * ipa-icf.c: Ditto.
12241         * ipa-inline-analysis.c: Ditto.
12242         * ipa-inline.c: Ditto.
12243         * ipa-polymorphic-call.c: Ditto.
12244         * ipa-profile.c: Ditto.
12245         * ipa-prop.c: Ditto.
12246         * ipa-pure-const.c: Ditto.
12247         * ipa-reference.c: Ditto.
12248         * ipa-split.c: Ditto.
12249         * ipa-utils.c: Ditto.
12250         * ipa.c: Ditto.
12251         * ira-build.c: Ditto.
12252         * ira-color.c: Ditto.
12253         * ira-conflicts.c: Ditto.
12254         * ira-costs.c: Ditto.
12255         * ira-emit.c: Ditto.
12256         * ira-lives.c: Ditto.
12257         * ira.c: Ditto.
12258         * jump.c: Ditto.
12259         * lcm.c: Ditto.
12260         * loop-doloop.c: Ditto.
12261         * loop-init.c: Ditto.
12262         * loop-invariant.c: Ditto.
12263         * loop-iv.c: Ditto.
12264         * loop-unroll.c: Ditto.
12265         * lower-subreg.c: Ditto.
12266         * lra-assigns.c: Ditto.
12267         * lra-coalesce.c: Ditto.
12268         * lra-constraints.c: Ditto.
12269         * lra-eliminations.c: Ditto.
12270         * lra-lives.c: Ditto.
12271         * lra-spills.c: Ditto.
12272         * lra.c: Ditto.
12273         * lto-cgraph.c: Ditto.
12274         * lto-compress.c: Ditto.
12275         * lto-opts.c: Ditto.
12276         * lto-section-in.c: Ditto.
12277         * lto-section-out.c: Ditto.
12278         * lto-streamer-in.c: Ditto.
12279         * lto-streamer-out.c: Ditto.
12280         * lto-streamer.c: Ditto.
12281         * mcf.c: Ditto.
12282         * mode-switching.c: Ditto.
12283         * modulo-sched.c: Ditto.
12284         * omp-low.c: Ditto.
12285         * optabs.c: Ditto.
12286         * opts-global.c: Ditto.
12287         * passes.c: Ditto.
12288         * postreload-gcse.c: Ditto.
12289         * postreload.c: Ditto.
12290         * predict.c: Ditto.
12291         * print-rtl.c: Ditto.
12292         * profile.c: Ditto.
12293         * recog.c: Ditto.
12294         * ree.c: Ditto.
12295         * reg-stack.c: Ditto.
12296         * regcprop.c: Ditto.
12297         * regcprop.h: Ditto.
12298         * reginfo.c: Ditto.
12299         * regrename.c: Ditto.
12300         * regstat.c: Ditto.
12301         * reload.c: Ditto.
12302         * reload1.c: Ditto.
12303         * reorg.c: Ditto.
12304         * resource.c: Ditto.
12305         * rtlanal.c: Ditto.
12306         * sched-deps.c: Ditto.
12307         * sched-ebb.c: Ditto.
12308         * sched-int.h: Ditto.
12309         * sched-rgn.c: Ditto.
12310         * sched-vis.c: Ditto.
12311         * sel-sched-dump.c: Ditto.
12312         * sel-sched-ir.c: Ditto.
12313         * sel-sched-ir.h: Ditto.
12314         * sel-sched.c: Ditto.
12315         * sese.c: Ditto.
12316         * shrink-wrap.c: Ditto.
12317         * stack-ptr-mod.c: Ditto.
12318         * stmt.c: Ditto.
12319         * store-motion.c: Ditto.
12320         * symtab.c: Ditto.
12321         * toplev.c: Ditto.
12322         * tracer.c: Ditto.
12323         * trans-mem.c: Ditto.
12324         * tree-affine.c: Ditto.
12325         * tree-call-cdce.c: Ditto.
12326         * tree-cfg.c: Ditto.
12327         * tree-cfgcleanup.c: Ditto.
12328         * tree-chrec.c: Ditto.
12329         * tree-complex.c: Ditto.
12330         * tree-data-ref.c: Ditto.
12331         * tree-dfa.c: Ditto.
12332         * tree-eh.c: Ditto.
12333         * tree-emutls.c: Ditto.
12334         * tree-if-conv.c: Ditto.
12335         * tree-inline.c: Ditto.
12336         * tree-into-ssa.c: Ditto.
12337         * tree-loop-distribution.c: Ditto.
12338         * tree-nested.c: Ditto.
12339         * tree-nrv.c: Ditto.
12340         * tree-object-size.c: Ditto.
12341         * tree-outof-ssa.c: Ditto.
12342         * tree-parloops.c: Ditto.
12343         * tree-phinodes.c: Ditto.
12344         * tree-predcom.c: Ditto.
12345         * tree-pretty-print.c: Ditto.
12346         * tree-profile.c: Ditto.
12347         * tree-scalar-evolution.c: Ditto.
12348         * tree-sra.c: Ditto.
12349         * tree-ssa-address.c: Ditto.
12350         * tree-ssa-alias.c: Ditto.
12351         * tree-ssa-ccp.c: Ditto.
12352         * tree-ssa-coalesce.c: Ditto.
12353         * tree-ssa-copy.c: Ditto.
12354         * tree-ssa-copyrename.c: Ditto.
12355         * tree-ssa-dce.c: Ditto.
12356         * tree-ssa-dom.c: Ditto.
12357         * tree-ssa-dse.c: Ditto.
12358         * tree-ssa-forwprop.c: Ditto.
12359         * tree-ssa-ifcombine.c: Ditto.
12360         * tree-ssa-live.c: Ditto.
12361         * tree-ssa-loop-ch.c: Ditto.
12362         * tree-ssa-loop-im.c: Ditto.
12363         * tree-ssa-loop-ivcanon.c: Ditto.
12364         * tree-ssa-loop-ivopts.c: Ditto.
12365         * tree-ssa-loop-manip.c: Ditto.
12366         * tree-ssa-loop-niter.c: Ditto.
12367         * tree-ssa-loop-prefetch.c: Ditto.
12368         * tree-ssa-loop-unswitch.c: Ditto.
12369         * tree-ssa-loop.c: Ditto.
12370         * tree-ssa-math-opts.c: Ditto.
12371         * tree-ssa-operands.c: Ditto.
12372         * tree-ssa-phiopt.c: Ditto.
12373         * tree-ssa-phiprop.c: Ditto.
12374         * tree-ssa-pre.c: Ditto.
12375         * tree-ssa-propagate.c: Ditto.
12376         * tree-ssa-reassoc.c: Ditto.
12377         * tree-ssa-sccvn.c: Ditto.
12378         * tree-ssa-sink.c: Ditto.
12379         * tree-ssa-strlen.c: Ditto.
12380         * tree-ssa-structalias.c: Ditto.
12381         * tree-ssa-tail-merge.c: Ditto.
12382         * tree-ssa-ter.c: Ditto.
12383         * tree-ssa-threadedge.c: Ditto.
12384         * tree-ssa-threadupdate.c: Ditto.
12385         * tree-ssa-uncprop.c: Ditto.
12386         * tree-ssa-uninit.c: Ditto.
12387         * tree-ssa.c: Ditto.
12388         * tree-ssanames.c: Ditto.
12389         * tree-stdarg.c: Ditto.
12390         * tree-streamer-in.c: Ditto.
12391         * tree-streamer-out.c: Ditto.
12392         * tree-streamer.c: Ditto.
12393         * tree-switch-conversion.c: Ditto.
12394         * tree-tailcall.c: Ditto.
12395         * tree-vect-data-refs.c: Ditto.
12396         * tree-vect-generic.c: Ditto.
12397         * tree-vect-loop-manip.c: Ditto.
12398         * tree-vect-loop.c: Ditto.
12399         * tree-vect-patterns.c: Ditto.
12400         * tree-vect-slp.c: Ditto.
12401         * tree-vect-stmts.c: Ditto.
12402         * tree-vectorizer.c: Ditto.
12403         * tree-vrp.c: Ditto.
12404         * tree.c: Ditto.
12405         * tsan.c: Ditto.
12406         * ubsan.c: Ditto.
12407         * valtrack.c: Ditto.
12408         * valtrack.h: Ditto.
12409         * value-prof.c: Ditto.
12410         * var-tracking.c: Ditto.
12411         * varasm.c: Ditto.
12412         * varpool.c: Ditto.
12413         * vtable-verify.c: Ditto.
12414         * web.c: Ditto.
12415         * config/aarch64/aarch64-builtins.c: Ditto.
12416         * config/aarch64/aarch64.c: Ditto.
12417         * config/alpha/alpha.c: Ditto.
12418         * config/arc/arc.c: Ditto.
12419         * config/arm/arm.c: Ditto.
12420         * config/avr/avr.c: Ditto.
12421         * config/bfin/bfin.c: Ditto.
12422         * config/c6x/c6x.c: Ditto.
12423         * config/cr16/cr16.c: Ditto.
12424         * config/cris/cris.c: Ditto.
12425         * config/darwin-c.c: Ditto.
12426         * config/darwin.c: Ditto.
12427         * config/epiphany/epiphany.c: Ditto.
12428         * config/epiphany/mode-switch-use.c: Ditto.
12429         * config/epiphany/resolve-sw-modes.c: Ditto.
12430         * config/fr30/fr30.c: Ditto.
12431         * config/frv/frv.c: Ditto.
12432         * config/h8300/h8300.c: Ditto.
12433         * config/i386/i386.c: Ditto.
12434         * config/i386/winnt.c: Ditto.
12435         * config/ia64/ia64.c: Ditto.
12436         * config/iq2000/iq2000.c: Ditto.
12437         * config/lm32/lm32.c: Ditto.
12438         * config/m32c/m32c.c: Ditto.
12439         * config/m32r/m32r.c: Ditto.
12440         * config/m68k/m68k.c: Ditto.
12441         * config/mcore/mcore.c: Ditto.
12442         * config/mep/mep.c: Ditto.
12443         * config/microblaze/microblaze.c: Ditto.
12444         * config/mips/mips.c: Ditto.
12445         * config/mmix/mmix.c: Ditto.
12446         * config/mn10300/mn10300.c: Ditto.
12447         * config/moxie/moxie.c: Ditto.
12448         * config/msp430/msp430.c: Ditto.
12449         * config/nds32/nds32-cost.c: Ditto.
12450         * config/nds32/nds32-fp-as-gp.c: Ditto.
12451         * config/nds32/nds32-intrinsic.c: Ditto.
12452         * config/nds32/nds32-isr.c: Ditto.
12453         * config/nds32/nds32-md-auxiliary.c: Ditto.
12454         * config/nds32/nds32-memory-manipulation.c: Ditto.
12455         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
12456         * config/nds32/nds32-predicates.c: Ditto.
12457         * config/nds32/nds32.c: Ditto.
12458         * config/nios2/nios2.c: Ditto.
12459         * config/pa/pa.c: Ditto.
12460         * config/pdp11/pdp11.c: Ditto.
12461         * config/rl78/rl78.c: Ditto.
12462         * config/rs6000/rs6000.c: Ditto.
12463         * config/rx/rx.c: Ditto.
12464         * config/s390/s390.c: Ditto.
12465         * config/sh/sh-mem.cc: Ditto.
12466         * config/sh/sh.c: Ditto.
12467         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
12468         * config/sh/sh_treg_combine.cc: Ditto.
12469         * config/sparc/sparc.c: Ditto.
12470         * config/spu/spu.c: Ditto.
12471         * config/stormy16/stormy16.c: Ditto.
12472         * config/tilegx/tilegx.c: Ditto.
12473         * config/tilepro/tilepro.c: Ditto.
12474         * config/v850/v850.c: Ditto.
12475         * config/vax/vax.c: Ditto.
12476         * config/xtensa/xtensa.c: Ditto.
12477
12478 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12479
12480         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
12481         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12482         Remove using preprocessor directives.
12483
12484 2014-10-27  Richard Biener  <rguenther@suse.de>
12485
12486         * match.pd (0 % X): Properly use the iterator iterating over
12487         all modulo operators.
12488         (X % 1): Likewise.
12489
12490 2014-10-27  Richard Biener  <rguenther@suse.de>
12491
12492         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
12493         (lattice): New global.
12494         (fwprop_ssa_val): New function.
12495         (fold_all_stmts): Likewise.
12496         (pass_forwprop::execute): Finally fold all stmts.
12497
12498 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12499
12500         PR c++/53061
12501         * doc/invoke.texi (fmessage-length): Update text to match reality.
12502
12503 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12504
12505         * config/microblaze/microblaze.c: Include rtl-iter.h.
12506         (microblaze_tls_referenced_p_1): Delete.
12507         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
12508
12509 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12510
12511         * config/mips/mips.c (mips_at_reg_p): Delete.
12512         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
12513
12514 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12515
12516         * config/mips/mips.c (mips_record_lo_sum): Replace with...
12517         (mips_record_lo_sums): ...this new function.
12518         (mips_reorg_process_insns): Update accordingly.
12519
12520 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12521
12522         * config/mips/mips.c (mips_sim_insn): Update comment.
12523         (mips_sim_wait_regs_2): Delete.
12524         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
12525
12526 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12527
12528         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
12529         and return a bool.  Iterate over all subrtxes here.
12530         (r10k_needs_protection_p): Update accordingly.
12531
12532 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12533
12534         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
12535         rather than an rtx pointer.  Change type of insn from "void *"
12536         to its real type.  Return bool rather than int.  Iterate over
12537         all subrtxes here.
12538         (r10k_needs_protection_p_store): Update accordingly.
12539         (r10k_needs_protection_p): Likewise.
12540
12541 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12542
12543         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
12544         (mips16_rewrite_pool_refs): Take the insn and constant pool as
12545         parameters.  Iterate over the instruction's pattern and return void.
12546         (mips16_lay_out_constants): Update accordingly.
12547
12548 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12549
12550         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
12551         (mips_refers_to_kernel_reg_p): ...this new function.
12552         (mips_expand_prologue): Update accordingly.
12553
12554 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12555
12556         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
12557         as a parameter instead of the containing MEM.  Iterate over all
12558         subrtxes.  Don't return a value.
12559         (mips_rewrite_small_data): Update call accordingly.
12560
12561 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12562
12563         * config/mips/mips.c: Include rtl-iter.h.
12564         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
12565         Take the context as a parameter instead of the containing MEM.
12566         Iterate over all subrtxes.
12567         (mips_small_data_pattern_p): Update call accordingly.
12568
12569 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12570
12571         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
12572         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
12573
12574 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12575
12576         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
12577         return a bool.  Replace "void *" with specific type.  Iterate
12578         over all subrtxes.
12579         (mep_store_data_bypass_1): Update calls accordingly.
12580
12581 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12582
12583         * config/mep/mep.c: Include rtl-iter.h.
12584         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
12585         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
12586
12587 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12588
12589         * config/xtensa/xtensa.c: Include rtl-iter.h.
12590         (xtensa_tls_referenced_p_1): Delete.
12591         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
12592
12593 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12594
12595         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
12596         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
12597
12598 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12599
12600         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
12601         rtx as argument and return the number of changes.
12602         * config/sh/sh.c: Include rtl-iter.h.
12603         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
12604         over all subrtxes.  Return the number of changes made.
12605         * config/sh/sh.md: Update caller accordingly.
12606
12607 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12608
12609         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
12610         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
12611
12612 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12613
12614         * config/m68k/m68k.c: Include rtl-iter.h.
12615         (m68k_final_prescan_insn_1): Delete.
12616         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
12617
12618 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
12619
12620         PR tree-optimization/63641
12621         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
12622         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12623
12624 2014-10-25  Alan Modra  <amodra@gmail.com>
12625
12626         PR rtl-optimization/63615
12627         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
12628         decomposing PLUS or MINUS if operands are not placed adjacent
12629         in the "ops" array.
12630
12631 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
12632
12633         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
12634         not allow e500 double in registers not satisyfing
12635         SPE_SIMD_REGNO_P.
12636
12637 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
12638
12639         * dwarf2out.c (declare_in_namespace): Only emit external
12640         declarations in the local scope once.
12641
12642 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
12643
12644         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
12645
12646 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12647
12648         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
12649         update uses to use new macro arguments.
12650         (__LD3_LANE_FUNC): Likewise.
12651         (__LD4_LANE_FUNC): Likewise.
12652
12653 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12654
12655         * config/aarch64/aarch64-builtins.c
12656         (aarch64_types_loadstruct_lane_qualifiers): Define.
12657         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
12658         ld4_lane): New builtins.
12659         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
12660         New pattern.
12661         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12662         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12663         (aarch64_ld2_lane<mode>): New expand.
12664         (aarch64_ld3_lane<mode>): Likewise.
12665         (aarch64_ld4_lane<mode>): Likewise.
12666         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12667         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
12668
12669 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
12670
12671         * avr-protos.h (avr_out_sign_extend): New.
12672         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
12673         (avr_out_sign_extend): New function.
12674         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
12675         (extendhisi2, extendpsisi2): Use it.
12676         (adjust_len) [sext]: New.
12677
12678 2014-10-24  Martin Liska  <mliska@suse.cz>
12679
12680         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
12681         added.
12682
12683 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12684
12685         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
12686         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12687         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
12688         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12689
12690 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12691
12692         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
12693         do while (0).
12694         * config/aarch64/aarch64.c (is_mem_p): Delete.
12695         (is_memory_op): Rename to...
12696         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
12697         (dep_between_memop_and_curr): Assert that the input is a SET.
12698         (aarch64_madd_needs_nop): Add comment.  Do not call
12699         dep_between_memop_and_curr on NULL body.
12700         (aarch64_final_prescan_insn): Add comment.
12701         Include rtl-iter.h.
12702
12703 2014-10-24  Richard Biener  <rguenther@suse.de>
12704
12705         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
12706         to genmatch BUILD_LIBS instead.
12707
12708 2014-10-24  Richard Biener  <rguenther@suse.de>
12709
12710         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
12711         and build_call_expr_loc.
12712         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
12713         non_lvalue_loc to build it for GENERIC.
12714         (decision_tree::gen_generic): Add location argument to
12715         generic_simplify prototype.
12716         (capture_info): New class.
12717         (capture_info::capture_info): New constructor.
12718         (capture_info::walk_match): New method.
12719         (capture_info::walk_result): New method.
12720         (capture_info::walk_c_expr): New method.
12721         (dt_simplify::gen): Handle preserving side-effects for
12722         GENERIC code generation.
12723         (decision_tree::gen_generic): Do not reject operands
12724         with TREE_SIDE_EFFECTS.
12725         * generic-match.h: New file.
12726         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
12727         * match.pd: Add some constant folding patterns from fold-const.c.
12728         * fold-const.c: Include generic-match.h.
12729         (fold_unary_loc): Dispatch to generic_simplify.
12730         (fold_ternary_loc): Likewise.
12731         (fold_binary_loc): Likewise.  Remove patterns now implemented
12732         by generic_simplify.
12733         * gimple-fold.c (replace_stmt_with_simplification): New function.
12734         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
12735         (no_follow_ssa_edges): New function.
12736         (fold_stmt): New overload with valueization hook.  Use
12737         no_follow_ssa_edges for the overload without hook.
12738         (fold_stmt_inplace): Likewise.
12739         * gimple-fold.h (no_follow_ssa_edges): Declare.
12740
12741 2014-10-24  Felix Yang  <felix.yang@huawei.com>
12742         Jiji Jiang  <jiangjiji@huawei.com>
12743
12744         PR target/63173
12745         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
12746         (__LD3R_FUNC): Ditto.
12747         (__LD4R_FUNC): Ditto.
12748         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
12749          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
12750          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
12751          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
12752          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
12753          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
12754         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
12755          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
12756          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
12757          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
12758          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
12759          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
12760         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
12761          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
12762          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
12763          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
12764          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
12765          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
12766         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12767         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
12768         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
12769         builtins.
12770         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
12771         (aarch64_simd_ld3r<mode>): Likewise.
12772         (aarch64_simd_ld4r<mode>): Likewise.
12773         (aarch64_ld2r<mode>): New expand.
12774         (aarch64_ld3r<mode>): Likewise.
12775         (aarch64_ld4r<mode>): Likewise.
12776
12777 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12778
12779         * rtlanal.c (get_base_term): Handle SCRATCH.
12780
12781 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12782
12783         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
12784         register pressure.
12785
12786 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12787
12788         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
12789         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
12790         (max_issue, choose_ready, sched_init): Update.
12791
12792 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12793
12794         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
12795         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
12796         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
12797         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
12798         (print_rank_for_schedule_stats): Print out elements of ready list that
12799         ended up on their respective places due to each of the sorting
12800         heuristics.
12801         (ready_sort): Update.
12802         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
12803         (schedule_block): Update.
12804
12805 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12806
12807         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
12808         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
12809         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
12810         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
12811         (model_start_schedule): Update.
12812         (sched_pressure_start_bb): New static function.  Calculate
12813         sched_class_regs_num.
12814         (schedule_block): Use it.
12815         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
12816
12817 2014-10-24  Richard Biener  <rguenther@suse.de>
12818
12819         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
12820         host library and make sure to pull in the required libintl
12821         and libiconv dependencies.
12822
12823 2014-10-24  Richard Biener  <rguenther@suse.de>
12824
12825         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
12826
12827 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
12828
12829         PR bootstrap/63632
12830         * collect2.c (main): Filter out -fno-lto.
12831
12832 2014-10-24  Martin Liska  <mliska@suse.cz>
12833
12834         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
12835         division by zero in dumps.
12836         (sem_item_optimizer::merge_classes): Ditto.
12837
12838 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
12839
12840         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
12841
12842 2014-10-23  Ian Lance Taylor  <iant@google.com>
12843
12844         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
12845
12846 2014-10-23  Ian Lance Taylor  <iant@google.com>
12847
12848         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
12849
12850 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
12851
12852         PR debug/63623
12853         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
12854         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
12855         instead of only handling autoinc in dest if it is a MEM.
12856         (vt_stack_adjustments): Fix up formatting.
12857
12858 2014-10-23  DJ Delorie  <dj@redhat.com>
12859
12860         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
12861         independend of -mlarge.
12862         * config/msp430/constraints.md (Ys): Update comment.
12863
12864 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
12865
12866         PR target/63534
12867         PR target/63618
12868         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
12869         while it is pseudo.
12870         * dse.c (deletable_insn_p): Likewise.
12871
12872 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
12873
12874         * config/avr/avr.c: Fix GNU coding rules and typos.
12875         * config/avr/avr.h: Dito.
12876         * config/avr/avr-c.c: Dito.
12877         * config/avr/avr.md: Dito.
12878
12879 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12880
12881         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
12882         New.
12883         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
12884         iterator.
12885         (define_expand "abs<mode>2"): Ditto.
12886
12887 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12888
12889         * tree-core.h (tree_var_decl): Extend `function_code' field
12890         by one bit, move `regdecl_flag' field to ...
12891         (tree_decl_with_vis): Here.
12892         * tree.h (DECL_STATIC_CHAIN): Update struct name.
12893
12894 2014-10-23  Richard Biener  <rguenther@suse.de>
12895
12896         * Makefile.in (BUILD_CPPLIB): Add.
12897         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
12898         Drop LIBIBERTY.
12899
12900 2014-10-23  Richard Biener  <rguenther@suse.de>
12901
12902         * fold-const.c (fold_binary_loc): Preserve side-effects of
12903         X - X when simplifying to 0.
12904         * stor-layout.c (finish_bitfield_representative): Strip
12905         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
12906
12907 2014-10-22  Richard Biener  <rguenther@suse.de>
12908             Tobias Burnus <burnus@net-b.de>
12909
12910         PR lto/63603
12911         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
12912
12913 2014-10-22  Dehao Chen  <dehao@google.com>
12914
12915         * auto-profile.c: Change order of header files.
12916
12917 2014-10-22  Guozhi Wei  <carrot@google.com>
12918
12919         PR tree-optimization/63530
12920         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
12921         pointer alignment according to DR_MISALIGNMENT.
12922
12923 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
12924
12925         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
12926
12927 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
12928
12929         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
12930         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
12931         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
12932         * dominance.h: New.  Add prototypes for dominance.c.
12933         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
12934         * cfghooks.h: (struct profile_record) Relocate here.
12935         Relocate 2 prototypes from basic-block.h.
12936         * basic-block.h: Move prototypes and struct to new header files.
12937         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
12938         * rtl.h: Move a few prototypes to new header files.
12939         * cfgcleanup.c (merge_memattrs): Make static.
12940         * genopinit.c (main): Add predict.h to list of includes.
12941         * predict.h: Update prototype list to match predict.c.
12942         * predict.c (maybe_hot_count_p): Export.
12943         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
12944         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
12945         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
12946         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
12947         * profile.h: Adjust prototypes.
12948         * ifcvt.h: New.  Relocate struct ce_if_block here.
12949         * ifcvt.c: Include ifcvt.h.
12950         * config/frv/frv.c: Include ifcvt.h.
12951         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
12952
12953 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12954
12955         * lra.c (lra): Remove call to recog_init.
12956         * config/i386/i386.md (preferred_for_speed): New attribute
12957         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
12958         "enabled".  Remove check for sched1.
12959
12960 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12961
12962         * recog.h (recog_data_d): Remove enabled_alternatives.
12963         * recog.c (extract_insn): Don't set it.
12964         * reload.c (find_reloads): Call get_enabled_alternatives.
12965
12966 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12967
12968         * recog.h (constrain_operands): Add an alternative_mask parameter.
12969         (constrain_operands_cached): Likewise.
12970         (get_preferred_alternatives): Declare new form.
12971         * recog.c (get_preferred_alternatives): New bb-taking instance.
12972         (constrain_operands): Take the set of available alternatives as
12973         a parameter.
12974         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
12975         (extract_constrain_insn_cached): Update calls to constrain_operands.
12976         * caller-save.c (reg_save_code): Likewise.
12977         * ira.c (setup_prohibited_mode_move_regs): Likewise.
12978         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
12979         * ree.c (combine_reaching_defs): Likewise.
12980         * reload.c (can_reload_into): Likewise.
12981         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
12982         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
12983         (emit_insn_if_valid_for_reload): Likewise.
12984         * reorg.c (fill_slots_from_thread): Likewise.
12985         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
12986         * config/pa/pa.c (pa_can_combine_p): Likewise.
12987         * config/rl78/rl78.c (insn_ok_now): Likewise.
12988         * config/sh/sh.md (define_peephole2): Likewise.
12989         * final.c (final_scan_insn): Update call to constrain_operands_cached.
12990
12991 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12992
12993         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
12994         attributes.
12995         * genattr.c (main): Handle "preferred_for_size" and
12996         "preferred_for_speed" in the same way as "enabled".
12997         * recog.h (bool_attr): New enum.
12998         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
12999         (get_preferred_alternatives, check_bool_attrs): Declare.
13000         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
13001         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
13002         New functions.
13003         (get_enabled_alternatives): Use get_bool_attr_mask.
13004         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
13005         instead of recog_data.enabled_alternatives.
13006         * ira.c (ira_setup_alts): Likewise.
13007         * postreload.c (reload_cse_simplify_operands): Likewise.
13008         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
13009         * ira-lives.c (preferred_alternatives): New variable.
13010         (process_bb_node_lives): Set it.
13011         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
13012         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
13013         of recog_data.enabled_alternatives.
13014         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
13015         to preferred_alternatives.
13016         * lra-constraints.c (process_alt_operands): Update accordingly.
13017         * lra.c (lra_set_insn_recog_data): Likewise.
13018         (lra_update_insn_recog_data): Assert check_bool_attrs.
13019
13020 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
13021
13022         * recog.h (extract_constrain_insn): Declare.
13023         * recog.c (extract_constrain_insn): New function.
13024         * lra.c (check_rtl): Use it.
13025         * postreload.c (reload_cse_simplify_operands): Likewise.
13026         * reg-stack.c (check_asm_stack_operands): Likewise.
13027         (subst_asm_stack_regs): Likewise.
13028         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
13029         * regrename.c (build_def_use): Likewise.
13030         * sel-sched.c (get_reg_class): Likewise.
13031         * config/arm/arm.c (note_invalid_constants): Likewise.
13032         * config/s390/predicates.md (execute_operation): Likewise.
13033
13034 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13035             Yury Gribov  <y.gribov@samsung.com>
13036
13037         * common.opt (flag_sanitize_recover): New variable.
13038         (fsanitize-recover): Remove Var/Init, deprecate.
13039         (fsanitize-recover=): New option.
13040         * doc/invoke.texi (fsanitize-recover): Update docs.
13041         * opts.c (finish_options): Use opts->x_flag_sanitize
13042         instead of flag_sanitize.  Prohibit -fsanitize-recover
13043         for anything besides UBSan.  Formatting.
13044         (common_handle_option): Handle OPT_fsanitize_recover_
13045         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
13046         instead of flag_sanitize.
13047         * asan.c (pass_sanopt::execute): Fix up formatting.
13048         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
13049         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
13050         instrument_bool_enum_load, ubsan_instrument_float_cast,
13051         instrument_nonnull_arg, instrument_nonnull_return): Check
13052         bits in flag_sanitize_recover bitmask instead of
13053         flag_sanitize_recover as bool flag.
13054
13055 2014-10-22  Jiong Wang <jiong.wang@arm.com>
13056
13057         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
13058
13059 2014-10-22  Renlin Li <renlin.li@arm.com>
13060
13061         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
13062         __ARM_FEATURE_IDIV__.
13063
13064 2014-10-22  Richard Biener  <rguenther@suse.de>
13065
13066         * Makefile.in (s-match): Adjust dependencies to only catch
13067         match.pd.
13068
13069 2014-10-22  Richard Biener  <rguenther@suse.de>
13070         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
13071
13072         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
13073         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
13074         (gimple-match.c): Generate by triggering s-match.
13075         (generic-match.c): Likewise.
13076         (s-match): Rule to build gimple-match.c and generic-match.c
13077         by running the genmatch generator program.
13078         (build/hash-table.o): Dependencies to build hash-table.c for the host.
13079         (build/genmatch.o): Dependencies to build genmatch.
13080         (genprog): Add match.
13081         (build/genmatch): Likewise.
13082         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
13083         * generic-match-head.c: New file.
13084         * gimple-match-head.c: Likewise.
13085         * gimple-match.h: Likewise.
13086         * genmatch.c: Likewise.
13087         * match.pd: Likewise.
13088         * builtins.h (fold_builtin_n): Export.
13089         * builtins.c (fold_builtin_n): Likewise.
13090         * gimple-fold.h (gimple_build): Declare various overloads.
13091         (gimple_simplify): Likewise.
13092         (gimple_convert): Re-implement in terms of gimple_build.
13093         * gimple-fold.c (gimple_convert): Remove.
13094         (gimple_build): New functions.
13095         * doc/match-and-simplify.texi: New file.
13096         * doc/gccint.texi: Add menu item Match and Simplify and include
13097         match-and-simplify.texi.
13098
13099 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13100
13101         PR target/63594
13102         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
13103         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
13104         even for just TARGET_AVX2, not only for
13105         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
13106         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
13107         otherwise build it using concatenation of 256-bit
13108         broadcast.
13109         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
13110         avx512 broadcast patterns.
13111         (vec_dup<mode>): Likewise.  For avx2 use
13112         v<sseintprefix>broadcast<bcstscalarsuff> instead of
13113         vbroadcast<ssescalarmodesuffix>.
13114         (AVX2_VEC_DUP_MODE): New mode iterator.
13115         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
13116         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
13117
13118         PR target/63542
13119         * config/i386/i386.c (ix86_pic_register_p): Also return
13120         true if x is a hard register with ORIGINAL_REGNO equal to
13121         pic_offset_table_rtx pseudo REGNO.
13122         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
13123         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
13124
13125 2014-10-22  Alan Modra  <amodra@gmail.com>
13126
13127         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
13128         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
13129         (gcc_obstack_init): Use obstack_specify_allocation in place of
13130         _obstack_begin.
13131         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
13132         (regexp_representation): Likewise.
13133         * godump.c (go_output_type): Likewise.
13134
13135 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
13136
13137         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
13138         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
13139         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
13140
13141 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
13142
13143         * doc/invoke.texi (pedantic-errors): Explain better.
13144
13145 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
13146             Vidya Praveen <vidya.praveen@atmel.com>
13147             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
13148             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
13149             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
13150
13151         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
13152         __MEMX for avrtiny.
13153         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
13154         (avr_nonconst_pointer_addrspace): Likewise.
13155         * config/avr/avr.h (AVR_HAVE_LPM): Define.
13156
13157         Added AVRTINY architecture to avr target.
13158         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
13159         (base_arch_s): member added for AVRTINY architecture.
13160         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
13161         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
13162         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
13163         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
13164         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
13165         in callee saved register list.
13166         (avr_option_override): CCP address updated for AVRTINY.
13167         (avr_init_expanders): tmp and zero rtx initialized as per arch.
13168         Reset avr_have_dimode if AVRTINY.
13169         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
13170         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
13171         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
13172         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
13173         (expand_epilogue): Likewise.
13174         (avr_print_operand): Print CCP address in case of AVRTINY also.
13175         <TBD>bad address
13176         (function_arg_regno_p): Check different register list for arguments
13177         if AVRTINY.
13178         (init_cumulative_args): Check for AVRTINY to update number of argument
13179         registers.
13180         (tiny_valid_direct_memory_access_range): New function. Return false if
13181         direct memory access range is not in accepted range for AVRTINY.
13182         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
13183         indirect load (with displacement) for AVRTINY.
13184         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
13185         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
13186         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
13187         indirect load (no displacement) for AVRTINY.
13188         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
13189         indirect load (with displacement) for AVRTINY.
13190         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
13191         indirect load for pre-decrement address.
13192         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
13193         functions. Update instruction length for AVRTINY.
13194         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
13195         SImode.
13196         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
13197         (out_movsi_r_mr): Likewise, for SImode.
13198         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
13199         indirect store (no displacement) for AVRTINY.
13200         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
13201         indirect store (with displacement) for AVRTINY.
13202         (out_movsi_mr_r): Emit out insn for IO address store. Update store
13203         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
13204         store functions.
13205         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
13206         indirect load (no displacement) for PSImode in AVRTINY.
13207         (avr_out_load_psi_reg_disp_tiny): New function to handle register
13208         indirect load (with displacement) for PSImode in AVRTINY.
13209         (avr_out_load_psi): Call PSImode register indirect load functions for
13210         AVRTINY. Update instruction length for AVRTINY.
13211         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
13212         indirect store (no displacement) for PSImode in AVRTINY.
13213         (avr_out_store_psi_reg_disp_tiny): New function to handle register
13214         indirect store (with displacement) for PSImode in AVRTINY.
13215         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
13216         register indirect store functions for AVRTINY.
13217         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
13218         register indirect store (with displacement) for AVRTINY.
13219         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
13220         register indirect store function for QImode in AVRTINY.
13221         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
13222         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
13223         indirect store (no displacement) for HImode in AVRTINY.
13224         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
13225         indirect store (with displacement) for HImode in AVRTINY.
13226         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
13227         indirect store for post-increment address in HImode.
13228         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
13229         register indirect store function for HImode in AVRTINY.
13230         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
13231         in case of AVRTINY.
13232         (order_regs_for_local_alloc): Updated register allocation order for
13233         AVRTINY.
13234         (avr_conditional_register_usage): New function. It is a target hook
13235         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
13236         used registers list and register allocation order for AVRTINY.
13237         (avr_return_in_memory): Update return value size for AVRTINY.
13238         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
13239         for AVRTINY arch and tiny program memory base address.
13240         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
13241         (avr_texinfo): Added description for AVRTINY arch.
13242         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
13243         STATIC_CHAIN_REGNUM for AVRTINY.
13244         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
13245         * config/avr/avr.md: Added constants for tmp/ zero registers in
13246         AVRTINY. Attributes for AVRTINY added.
13247         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
13248         memory access range.
13249         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
13250         in AVRTINY memory access range.
13251         (*mov<mode>): Likewise for HImode and SImode.
13252         (*movsf): Likewise for SFmode.
13253         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
13254         not have sbiw.
13255         * config/avr/avr-protos.h: Added function prototype for
13256         tiny_valid_direct_memory_access_range.
13257         * config/avr/avr-tables.opt: Regenerate.
13258         * gcc/config/avr/t-multilib: Regenerate.
13259         * doc/avr-mmcu.texi: Regenerate.
13260
13261 2014-10-21  Andrew Pinski  <apinski@cavium.com>
13262
13263         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
13264         available option also.
13265         * config/aarch64/aarch64-cost-tables.h: New file.
13266         * config/aarch64/aarch64-cores.def (thunderx): New core.
13267         * config/aarch64/aarch64-tune.md: Regenerate.
13268         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
13269         of config/arm/aarch-cost-tables.h.
13270         (thunderx_regmove_cost): New variable.
13271         (thunderx_tunings): New variable.
13272
13273 2014-10-21  Dehao Chen  <dehao@google.com>
13274
13275         * auto-profile.c: New file.
13276         * auto-profile.h: New file.
13277         * basic-block.h (maybe_hot_count_p): New export func.
13278         (add_working_set): New export func.
13279         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
13280         (GCOV_TAG_AFDO_FUNCTION): Likewise.
13281         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
13282         * opts.c (enable_fdo_optimizations): New func.
13283         (common_handle_option): Handle -fauto-profile flag.
13284         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
13285         (class pass_early_inline): Export early_inliner.
13286         (early_inliner): Likewise.
13287         (pass_early_inline::execute): Likewise.
13288         * ipa-inline.h (early_inliner): Likewise.
13289         * predict.c (maybe_hot_count_p): New export func.
13290         (counts_to_freqs): AutoFDO logic.
13291         (rebuild_frequencies): Likewise.
13292         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
13293         * profile.c (add_working_set): New func.
13294         * Makefile.in (auto-profile.o): New object file.
13295         * passes.def (pass_ipa_auto_profile): New pass.
13296         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
13297         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
13298         * toplev.c (compile_file): AutoFDO logic.
13299         * doc/invoke.texi (-fauto-profile): New doc.
13300         * coverage.c (coverage_init): AutoFDO logic.
13301         * common.opt (-fauto-profile): New flag.
13302         * timevar.def (TV_IPA_AUTOFDO): New tag.
13303         * value-prof.c (gimple_alloc_histogram_value): New export func.
13304         (check_ic_target): Likewise.
13305         * value-prof.h (gimple_alloc_histogram_value): Likewise.
13306         (check_ic_target): Likewise.
13307
13308 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
13309
13310         * cgraph.c (cgraph_c_finalize): New function.
13311         * cgraph.h (cgraph_c_finalize): New prototype.
13312         (cgraphunit_c_finalize): New prototype.
13313         * cgraphunit.c (first_analyzed): Move from analyze_functions
13314         to file-scope.
13315         (first_analyzed_var): Likewise.
13316         (analyze_functions): Move static variables into file-scope.
13317         (cgraphunit_c_finalize): New function.
13318         * diagnostic.c (diagnostic_finish): Free the memory for
13319         context->classify_diagnostic and context->printer, running the
13320         destructor for the latter.
13321         (bt_stop): Use toplev::main.
13322         * dwarf2out.c (dwarf2out_finalize): New function.
13323         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13324         * gcse.c (gcse_c_finalize): New function.
13325         * gcse.h (gcse_c_finalize): New prototype.
13326         * ggc-page.c (init_ggc): Make idempotent.
13327         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13328         * ipa-cp.c (ipa_cp_c_finalize): New function.
13329         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13330         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13331         a field of class pass_ipa_pure_const.
13332         (node_duplication_hook_holder): Likewise.
13333         (node_removal_hook_holder): Likewise.
13334         (register_hooks): Convert to method...
13335         (pass_ipa_pure_const::register_hooks): ...here, converting
13336         static variable init_p into...
13337         (pass_ipa_pure_const::init_p): ...new field.
13338         (pure_const_generate_summary): Update invocation of
13339         register_hooks to invoke as a method of current_pass.
13340         (pure_const_read_summary): Likewise.
13341         (propagate): Convert to...
13342         (pass_ipa_pure_const::execute): ...method.
13343         * ipa-reference.c (ipa_init): Move static bool init_p from here
13344         to...
13345         (ipa_init_p): New file-scope variable, so that it can be reset
13346         when repeatedly invoking the compiler within one process by...
13347         (ipa_reference_c_finalize): New function.
13348         * ipa-reference.h (ipa_reference_c_finalize): New.
13349         * main.c (main): Replace invocation of toplev_main with
13350         construction of a toplev instance, and call its "main" method.
13351         * params.c (global_init_params): Add an assert that
13352         params_finished is false.
13353         (params_c_finalize): New.
13354         * params.h (params_c_finalize): New.
13355         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13356         invoking generate_summary, for the benefit of pass_ipa_pure_const.
13357         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13358         before calling write_summary hook.
13359         (ipa_write_optimization_summaries_1): Likewise when calling
13360         write_optimization_summary hook.
13361         (ipa_read_summaries_1): Likewise for read_summary hook.
13362         (ipa_read_optimization_summaries_1): Likewise for
13363         read_optimization_summary hook.
13364         (execute_ipa_stmt_fixups): Likewise.
13365         * stringpool.c (init_stringpool): Clean up if we're called more
13366         than once.
13367         * timevar.c (timevar_init): Ignore repeated calls.
13368         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13369         "ipa-prop.h".
13370         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13371         (initialize_rtl): Move static local "initialized_once"
13372         into file scope, and rename to...
13373         (rtl_initialized): New variable.
13374         (do_compile): Move timevar initialization from here to
13375         toplev::start_timevars.
13376         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13377         toplev::finalize): New functions.
13378         (toplev_main): Rename to...
13379         (toplev::main): ...this.
13380         * toplev.h (class toplev): New class.
13381
13382 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13383
13384         * loop-doloop.c: Include loop-unroll.h.
13385
13386 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13387
13388         * cfg.h: New.  Header file for cfg.c.
13389         * cfganal.h: New.  Header file for cfganal.c.
13390         * lcm.h: New.  Header file for lcm.c.
13391         * loop-unroll.h: New.  Header file for loop-unroll.h.
13392         * cfgloop.h: (unroll_loops): Remove prototype.
13393         * basic-block.h: Move prototypes and structs to new header files.
13394         Include cfg.h, cfganal.h, and lcm.h.
13395         * loop-init.c: Include loop-unroll.h.
13396         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13397         * modulo-sched.c: Include loop-unroll.h.
13398
13399 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13400
13401         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
13402         MARKER_BYTE_UNKNOWN markers when handling casts.
13403
13404 2014-10-21  Richard Biener  <rguenther@suse.de>
13405
13406         * tree-ssa-phiopt.c (value_replacement): Properly verify we
13407         are the non-singleton PHI.
13408
13409 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
13410
13411         PR tree-optimization/63563
13412         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
13413         if either dra or drb stmts are not normal loads/stores.
13414
13415 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
13416
13417         * config/i386/i386.c (expand_vec_perm_1): Fix
13418         expand_vec_perm_palignr case.
13419         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
13420         VI1_AVX512.
13421
13422 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
13423
13424         * cfgloopanal.c (seq_cost): Delete.
13425         * rtl.h (seq_cost): New prototype.
13426         * rtlanal.c (seq_cost): New function.
13427         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
13428
13429 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
13430
13431         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
13432         * basic-block.h: Remove prototypes for cfgrtl.c.
13433         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
13434         prototypes to cfgrtl.h.
13435         * profile.h (profile_info): Add extern export declaration.
13436         * rtl.h: Remove prototypes for cfgrtl.h.
13437         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
13438         * ipa-inline.c: Include profile.h.
13439         * loop-unroll.c: Ditto.
13440         * modulo-sched.c: Ditto.
13441         * postreload-gcse.c: Ditto.
13442         * predict.c: Ditto.
13443         * sched-ebb.c: Ditto.
13444         * sched-rgn.c: Ditto.
13445         * tracer.c: Ditto.
13446         * tree-ssa-loop-ivcanon.c: Ditto.
13447
13448 2014-10-20  Richard Biener  <rguenther@suse.de>
13449
13450         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
13451         operands to get a def operand kind match.  Signal mismatches
13452         to the parent so we can try swapping its operands.
13453         (vect_build_slp_tree): Try swapping operands if they have
13454         a mismatched operand kind.
13455
13456 2014-10-20  Alan Modra  <amodra@gmail.com>
13457
13458         PR debug/60655
13459         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
13460         Increase "ops" array size.  Correct array size tests.  Init
13461         n_constants in loop.  Break out of innermost loop when finding
13462         a trivial CONST expression.
13463
13464 2014-10-20  Martin Liska  <mliska@suse.cz>
13465
13466         PR ipa/63583
13467         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
13468         Gimple tempate string is compared.
13469
13470 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
13471
13472         * varasm.c (const_alias_set): Remove.
13473         (init_varasm_once): Remove initialization of const_alias_set.
13474         (build_constant_desc): Do not set alias set to const_alias_set.
13475
13476 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
13477
13478         * configure: Regenerate.
13479         * configure.ac: Move the test for section attribute specifier "e" in GAS
13480         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
13481         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
13482         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
13483         ifdef HAVE_GAS_SECTION_EXCLUDE.
13484
13485 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
13486
13487         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
13488         match_operand expression.
13489
13490 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
13491             David Edelsohn  <dje.gcc@gmail.com>
13492
13493         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
13494         function.
13495         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13496
13497 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13498
13499         * doc/invoke.texi (Options to Request or Suppress Warnings):
13500         Explain options precedence.
13501         (Wtrampolines): Do not indent paragraph.
13502
13503 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
13504
13505         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
13506         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
13507         (pa_jump_in_call_delay): Likewise.
13508         * config/pa/pa.c (pa_option_override): Remove jump in call delay
13509         override.
13510         (pa_output_millicode_call): Remove support for jump in call delay.
13511         (pa_output_call): Likewise.
13512         (pa_jump_in_call_delay): Delete.
13513         (pa_following_call): Likewise.
13514         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
13515         (uncond_branch): Remove following call check from attribute length.
13516
13517 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
13518
13519         PR target/53513
13520         * config/sh/sh-modes.def (PSI): Remove.
13521         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
13522         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
13523         (sh_reorg): Remove commented out FPSCR code.
13524         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
13525         insn instead of move insn.
13526         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
13527         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
13528         handling.
13529         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
13530         (sh1_builtin_p): Uncomment.
13531         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
13532         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
13533         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
13534         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
13535         (general_movsrc_operand, general_movdst_operand): Disallow
13536         fpscr_operand.
13537         * config/sh/sh.md (FPSCR_FR): New constant.
13538         (push_fpscr): Emit sts_fpscr insn.
13539         (pop_fpscr): Emit lds_fpscr_insn.
13540         (movsi_ie): Disallow FPSCR operands.
13541         (fpu_switch, unnamed related split, extend_psi_si,
13542         truncate_si_psi): Remove insns.
13543         (lds_fpscr, sts_fpscr): New insns.
13544         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
13545
13546 >>>>>>> .r217525
13547 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
13548
13549         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
13550         (clone_inlined_nodes): Do not overwrite the clone if above predicate
13551         returns true.
13552
13553 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
13554
13555         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
13556         (expand_vec_perm_d): Ditto.
13557         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
13558         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
13559         V4DFmode.
13560         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
13561         (ix86_expand_sse_unpack): Handle V64QImode.
13562         (expand_vec_perm_blend): Update conditions for TARGET, handle
13563         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
13564         (expand_vec_perm_pshufb): Handle V64QImode.
13565         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
13566         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
13567         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
13568         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
13569         (ix86_expand_vecop_qihi): Handle V64QImode.
13570         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
13571         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
13572         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
13573         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
13574         (mul<mode>3): Use VI1_AVX512.
13575         (<sse2_avx2>_packsswb): Ditto.
13576         (<sse2_avx2>_packuswb): Ditto.
13577         (<ssse3_avx2>_pshufb<mode>3): Ditto.
13578         (<shift_insn><mode>3): Ditto.
13579
13580 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
13581
13582         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
13583         conditions to fix bootstrap.
13584
13585 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
13586
13587         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
13588
13589 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13590             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13591             Anna Tikhonova  <anna.tikhonova@intel.com>
13592             Ilya Tocar  <ilya.tocar@intel.com>
13593             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13594             Ilya Verbin  <ilya.verbin@intel.com>
13595             Kirill Yukhin  <kirill.yukhin@intel.com>
13596             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13597
13598         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
13599         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
13600         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
13601         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
13602         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
13603         (define_expand "vec_init<mode>"): Use VF48_I1248.
13604
13605 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13606             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13607             Anna Tikhonova  <anna.tikhonova@intel.com>
13608             Ilya Tocar  <ilya.tocar@intel.com>
13609             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13610             Ilya Verbin  <ilya.verbin@intel.com>
13611             Kirill Yukhin  <kirill.yukhin@intel.com>
13612             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13613
13614         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
13615         expand_sse2_mulvxdi3.
13616
13617 2014-10-17  Richard Biener  <rguenther@suse.de>
13618
13619         * fold-const.c (fold_comparison): Remove redundant constant
13620         folding and operand swapping.
13621         (fold_binary_loc): Do comparison operand swapping here.
13622         (fold_ternary_loc): Canonicalize operand order for
13623         commutative ternary operations.
13624         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
13625         and FMA_EXPR.
13626
13627 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
13628
13629         PR tree-optimization/63464
13630         * gimple.h (gimple_seq_discard): New prototype.
13631         * gimple.c: Include stringpool.h and tree-ssanames.h.
13632         (gimple_seq_discard): New function.
13633         * optabs.h (lshift_cheap_p): New prototype.
13634         * optabs.c (lshift_cheap_p): New function, moved from...
13635         * tree-switch-conversion.c (lshift_cheap_p): ... here.
13636         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
13637         (reassoc_branch_fixups): New variable.
13638         (update_range_test): Add otherrangep and seq arguments.
13639         Unshare exp.  If otherrange is NULL, use for other ranges
13640         array of pointers pointed by otherrangep instead.
13641         Emit seq before gimplified statements for tem.
13642         (optimize_range_tests_diff): Adjust update_range_test
13643         caller.
13644         (optimize_range_tests_xor): Likewise.  Fix up comment.
13645         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
13646         functions.
13647         (optimize_range_tests): Adjust update_range_test caller.
13648         Call optimize_range_tests_to_bit_test.
13649         (branch_fixup): New function.
13650         (execute_reassoc): Call branch_fixup.
13651
13652         PR tree-optimization/63302
13653         * tree-ssa-reassoc.c (optimize_range_tests_xor,
13654         optimize_range_tests_diff): Use !integer_pow2p () instead of
13655         tree_log2 () < 0.
13656
13657 2014-10-17  Martin Liska  <mliska@suse.cz>
13658
13659         * ipa-icf.c (sem_function::merge): Local flags are set to false
13660         to enforce equal calling convention to be used.
13661         * opts.c (common_handle_option): Indentation fix.
13662
13663 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
13664
13665         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
13666
13667 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13668
13669         PR rtl-optimization/61605
13670         * regcprop.c (copyprop_hardreg_forward_1): Use
13671         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
13672
13673 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13674
13675         PR rtl-optimization/61605
13676         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
13677         notice stores for noops.  Don't regard noops as copies.
13678
13679 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
13680
13681         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
13682         register in a special way.
13683         (__cpuid_count): Ditto.
13684         * config/i386/driver-i386.h: Protect with
13685         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
13686         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
13687         is required to compile the function.
13688
13689 2014-10-16  DJ Delorie  <dj@redhat.com>
13690
13691         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
13692         integers.
13693
13694         * config/rs6000/rs6000-c.c (rid_int128): New.
13695         (rs6000_macro_to_expand): Use instead of RID_INT128.
13696
13697 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
13698
13699         * function.h: Flatten file.  Remove includes, adjust prototypes to
13700         reflect only what is in function.h.
13701         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13702         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
13703         from expr.h.
13704         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
13705         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
13706         prototypes to predict.h.
13707         (init_varasm_status): Move prototype to varasm.h.
13708         * expr.h: Adjust include files.
13709         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13710         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
13711         to function.h.
13712         (locate_and_pad_parm): Move prototype to function.h.
13713         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
13714         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
13715         assign_temp, reposition_prologue_and_epilogue_notes,
13716         prologue_epilogue_contains, sibcall_epilogue_contains,
13717         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
13718         set_return_jump_label): Move prototypes to function.h.
13719         * predict.h (optimize_function_for_size_p,
13720         optimize_function_for_speed_p): Relocate prototypes from function.h.
13721         * shrink-wrap.h (emit_return_into_block, active_insn_between,
13722         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
13723         function.h.
13724         * varasm.h (init_varasm_status): Relocate prototype from function.h.
13725         * genattrtab.c (write_header): Add predict.h to include list.
13726         * genconditions.c (write_header): Add predict.h to include list.
13727         * genemit.c (main): Adjust header file includes.
13728         * gengtype.c (ifiles): Add flattened function.h header files.
13729         * genoutput.c (output_prologue): Add predict.h to include list.
13730         * genpreds.c (write_insn_preds_c): Adjust header file includes.
13731         * genrecog.c (write_header): Add flattened function.h header files.
13732         * alias.c: Adjust include files.
13733         * auto-inc-dec.c: Likewise.
13734         * basic-block.h: Likewise.
13735         * bb-reorder.c: Likewise.
13736         * bt-load.c: Likewise.
13737         * builtins.c: Likewise.
13738         * caller-save.c: Likewise.
13739         * calls.c: Likewise.
13740         * cfgbuild.c: Likewise.
13741         * cfgcleanup.c: Likewise.
13742         * cfgexpand.c: Likewise.
13743         * cfgloop.c: Likewise.
13744         * cfgloop.h: Likewise.
13745         * cfgrtl.c: Likewise.
13746         * cgraph.h: Likewise.
13747         * cgraphclones.c: Likewise.
13748         * cgraphunit.c: Likewise.
13749         * combine-stack-adj.c: Likewise.
13750         * combine.c: Likewise.
13751         * coverage.c: Likewise.
13752         * cprop.c: Likewise.
13753         * cse.c: Likewise.
13754         * cselib.c: Likewise.
13755         * dbxout.c: Likewise.
13756         * ddg.c: Likewise.
13757         * df-core.c: Likewise.
13758         * df-problems.c: Likewise.
13759         * df-scan.c: Likewise.
13760         * dojump.c: Likewise.
13761         * dwarf2cfi.c: Likewise.
13762         * dwarf2out.c: Likewise.
13763         * emit-rtl.c: Likewise.
13764         * except.c: Likewise.
13765         * explow.c: Likewise.
13766         * expr.c: Likewise.
13767         * final.c: Likewise.
13768         * function.c: Likewise.
13769         * gcse.c: Likewise.
13770         * gimple-fold.c: Likewise.
13771         * gimple-low.c: Likewise.
13772         * gimple-streamer.h: Likewise.
13773         * haifa-sched.c: Likewise.
13774         * ifcvt.c: Likewise.
13775         * ira.c: Likewise.
13776         * jump.c: Likewise.
13777         * lcm.c: Likewise.
13778         * loop-invariant.c: Likewise.
13779         * lra-assigns.c: Likewise.
13780         * lra-coalesce.c: Likewise.
13781         * lra-constraints.c: Likewise.
13782         * lra-eliminations.c: Likewise.
13783         * lra-lives.c: Likewise.
13784         * lra-spills.c: Likewise.
13785         * lra.c: Likewise.
13786         * lto-cgraph.c: Likewise.
13787         * lto-section-in.c: Likewise.
13788         * lto-section-out.c: Likewise.
13789         * lto-streamer-in.c: Likewise.
13790         * lto-streamer-out.c: Likewise.
13791         * mode-switching.c: Likewise.
13792         * modulo-sched.c: Likewise.
13793         * omp-low.c: Likewise.
13794         * optabs.c: Likewise.
13795         * passes.c: Likewise.
13796         * postreload-gcse.c: Likewise.
13797         * postreload.c: Likewise.
13798         * predict.c: Likewise.
13799         * profile.c: Likewise.
13800         * recog.c: Likewise.
13801         * ree.c: Likewise.
13802         * reg-stack.c: Likewise.
13803         * regcprop.c: Likewise.
13804         * reginfo.c: Likewise.
13805         * regrename.c: Likewise.
13806         * reload.c: Likewise.
13807         * reload1.c: Likewise.
13808         * reorg.c: Likewise.
13809         * resource.c: Likewise.
13810         * rtlanal.c: Likewise.
13811         * sched-deps.c: Likewise.
13812         * sched-ebb.c: Likewise.
13813         * sched-rgn.c: Likewise.
13814         * sel-sched-dump.c: Likewise.
13815         * sel-sched-ir.c: Likewise.
13816         * sel-sched.c: Likewise.
13817         * shrink-wrap.c: Likewise.
13818         * simplify-rtx.c: Likewise.
13819         * statistics.c: Likewise.
13820         * stmt.c: Likewise.
13821         * stor-layout.c: Likewise.
13822         * store-motion.c: Likewise.
13823         * symtab.c: Likewise.
13824         * targhooks.c: Likewise.
13825         * toplev.c: Likewise.
13826         * trans-mem.c: Likewise.
13827         * tree-cfg.c: Likewise.
13828         * tree-cfgcleanup.c: Likewise.
13829         * tree-dfa.c: Likewise.
13830         * tree-eh.c: Likewise.
13831         * tree-inline.c: Likewise.
13832         * tree-into-ssa.c: Likewise.
13833         * tree-nested.c: Likewise.
13834         * tree-nrv.c: Likewise.
13835         * tree-profile.c: Likewise.
13836         * tree-ssa-alias.c: Likewise.
13837         * tree-ssa-ccp.c: Likewise.
13838         * tree-ssa-copy.c: Likewise.
13839         * tree-ssa-copyrename.c: Likewise.
13840         * tree-ssa-dom.c: Likewise.
13841         * tree-ssa-operands.c: Likewise.
13842         * tree-ssa-propagate.c: Likewise.
13843         * tree-ssa-structalias.c: Likewise.
13844         * tree-ssa-tail-merge.c: Likewise.
13845         * tree-ssa-threadedge.c: Likewise.
13846         * tree-ssa-threadupdate.c: Likewise.
13847         * tree-ssa-uncprop.c: Likewise.
13848         * tree-ssa-uninit.c: Likewise.
13849         * tree-ssa.c: Likewise.
13850         * tree-stdarg.c: Likewise.
13851         * tree-tailcall.c: Likewise.
13852         * tree.c: Likewise.
13853         * tsan.c: Likewise.
13854         * valtrack.c: Likewise.
13855         * varasm.c: Likewise.
13856         * vmsdbgout.c: Likewise.
13857         * web.c: Likewise.
13858         * config/aarch64/aarch64.c: Add flattened includes from function.h.
13859         * config/alpha/alpha.c: Likewise.
13860         * config/arc/arc.c: Likewise.
13861         * config/arm/arm.c: Likewise.
13862         * config/avr/avr-log.c: Likewise.
13863         * config/avr/avr.c: Likewise.
13864         * config/bfin/bfin.c: Likewise.
13865         * config/c6x/c6x.c: Likewise.
13866         * config/cr16/cr16.c: Likewise.
13867         * config/cris/cris.c: Likewise.
13868         * config/darwin.c: Likewise.
13869         * config/epiphany/epiphany.c: Likewise.
13870         * config/epiphany/mode-switch-use.c: Likewise.
13871         * config/epiphany/resolve-sw-modes.c: Likewise.
13872         * config/fr30/fr30.c: Likewise.
13873         * config/frv/frv.c: Likewise.
13874         * config/h8300/h8300.c: Likewise.
13875         * config/i386/i386.c: Likewise.
13876         * config/ia64/ia64.c: Likewise.
13877         * config/iq2000/iq2000.c: Likewise.
13878         * config/lm32/lm32.c: Likewise.
13879         * config/m32c/m32c.c: Likewise.
13880         * config/m32r/m32r.c: Likewise.
13881         * config/m68k/m68k.c: Likewise.
13882         * config/mcore/mcore.c: Likewise.
13883         * config/mep/mep-pragma.c: Likewise.
13884         * config/mep/mep.c: Likewise.
13885         * config/microblaze/microblaze.c: Likewise.
13886         * config/mips/mips.c: Likewise.
13887         * config/mmix/mmix.c: Likewise.
13888         * config/mn10300/mn10300.c: Likewise.
13889         * config/moxie/moxie.c: Likewise.
13890         * config/msp430/msp430.c: Likewise.
13891         * config/nds32/nds32-cost.c: Likewise.
13892         * config/nds32/nds32-fp-as-gp.c: Likewise.
13893         * config/nds32/nds32-intrinsic.c: Likewise.
13894         * config/nds32/nds32-isr.c: Likewise.
13895         * config/nds32/nds32-md-auxiliary.c: Likewise.
13896         * config/nds32/nds32-memory-manipulation.c: Likewise.
13897         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13898         * config/nds32/nds32-predicates.c: Likewise.
13899         * config/nds32/nds32.c: Likewise.
13900         * config/nios2/nios2.c: Likewise.
13901         * config/pa/pa.c: Likewise.
13902         * config/pdp11/pdp11.c: Likewise.
13903         * config/rl78/rl78.c: Likewise.
13904         * config/rs6000/rs6000.c: Likewise.
13905         * config/rx/rx.c: Likewise.
13906         * config/s390/s390.c: Likewise.
13907         * config/score/score.c: Likewise.
13908         * config/sh/sh.c: Likewise.
13909         * config/sparc/sparc.c: Likewise.
13910         * config/spu/spu.c: Likewise.
13911         * config/stormy16/stormy16.c: Likewise.
13912         * config/tilegx/tilegx.c: Likewise.
13913         * config/tilepro/tilepro.c: Likewise.
13914         * config/v850/v850.c: Likewise.
13915         * config/vax/vax.c: Likewise.
13916         * config/xtensa/xtensa.c: Likewise.
13917
13918 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
13919
13920         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
13921         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
13922
13923 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13924
13925         * config/sh/sh-protos.h (fldi_ok): Remove.
13926         * config/sh/sh.c (fldi_ok): Likewise.
13927         (sh_secondary_reload): Don't use fldi_ok.
13928         * config/sh/constraints.md (G constraint, H constraint): Don't use
13929         fldi_ok.
13930
13931 2014-10-16  Martin Liska  <mliska@suse.cz>
13932
13933         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
13934         Cast to unsigned long.
13935         (sem_item_optimizer::dump_cong_classes): Likewise.
13936
13937 2014-10-16  Tom de Vries  <tom@codesourcery.com>
13938
13939         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
13940         with SSA_NAME_IN_FREELIST.
13941
13942 2014-10-16  Richard Biener  <rguenther@suse.de>
13943
13944         PR middle-end/63554
13945         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
13946         (fold_builtin_strncat_chk): Move ...
13947         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
13948         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
13949
13950 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13951
13952         PR target/59401
13953         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
13954         GBR to 0.
13955
13956 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13957             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13958             Anna Tikhonova  <anna.tikhonova@intel.com>
13959             Ilya Tocar  <ilya.tocar@intel.com>
13960             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13961             Ilya Verbin  <ilya.verbin@intel.com>
13962             Kirill Yukhin  <kirill.yukhin@intel.com>
13963             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13964
13965         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
13966         V64QI modes.
13967
13968 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13969             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13970             Anna Tikhonova  <anna.tikhonova@intel.com>
13971             Ilya Tocar  <ilya.tocar@intel.com>
13972             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13973             Ilya Verbin  <ilya.verbin@intel.com>
13974             Kirill Yukhin  <kirill.yukhin@intel.com>
13975             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13976
13977         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
13978         V16SI, V32HI, V64QI modes.
13979
13980 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13981
13982         PR target/53513
13983         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
13984         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
13985
13986         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
13987         to match fp insn patterns.
13988         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
13989         list.
13990         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
13991         expand_df_unop, expand_df_binop): Remove.
13992         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
13993         FPSCR_STAT_REG as not call clobbered.
13994         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
13995         invoking fpscr_set_from_mem.
13996
13997         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
13998         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
13999         FPSCR_STAT_REG.
14000         (REGISTER_NAMES): Adjust.
14001         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
14002         (FIRST_PSEUDO_REGISTER): Increase to 156.
14003         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
14004         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
14005         FPSCR_STAT_REG.
14006         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
14007         FPSCR_MODES_REG and FPSCR_STAT_REG.
14008         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
14009
14010         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
14011         FPSCR_SZ): Add new constants.
14012         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
14013
14014         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
14015         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
14016         Use TARGET_FPU_ANY condition.
14017         (fpu_switch peephole2): Remove.
14018         (fpu_switch split): Use simple_mem_operand to capture the mem and
14019         adjust split implementation.
14020         (extend_psi_si, truncate_si_psi): New insns.
14021         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
14022         set of FPSCR_MODES_REG.
14023
14024         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
14025         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
14026         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
14027         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
14028         call_value_compact, call_value_compact_rettramp, call,
14029         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
14030         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
14031         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
14032         sibcall_value_compact, sibcall_value, call_value_pop_compact,
14033         call_value_pop_compact_rettramp, various unnamed splits):
14034         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
14035         function uses.
14036
14037         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
14038         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
14039         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
14040         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
14041         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
14042
14043         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
14044         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
14045         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
14046         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
14047         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
14048         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
14049         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
14050
14051 2014-10-16  Martin Liska  <mliska@suse.cz>
14052             Jan Hubicka  <hubicka@ucw.cz>
14053
14054         * Makefile.in: New object files included.
14055         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
14056         is printed.
14057         (verify_edge_corresponds_to_fndecl): More sensitive verification
14058         of nodes that are merged by IPA ICF.
14059         * cgraph.h (cgraph_node::num_references): New function.
14060         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
14061         * common.opt: New options ipa-icf, ipa-icf-functions and
14062         ipa-icf-variables introduced.
14063         * doc/invoke.texi: Documentation of new options introduced.
14064         * ipa-icf-gimple.c: New file.
14065         * ipa-icf-gimple.h: New file.
14066         * ipa-icf.c: New file.
14067         * ipa-icf.h: New file.
14068         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
14069         (input_overwrite_node): Likewise.
14070         * lto-section-in.c: New icf section added.
14071         * lto-streamer.h (enum lto_section_type): Likewise.
14072         * opts.c (common_handle_option): New option added.
14073         * passes.def: New pass included.
14074         * timevar.def: Time variable for IPA ICF added.
14075         * tree-pass.h: New IPA ICF pass entry point added.
14076
14077 2014-10-16  Richard Biener  <rguenther@suse.de>
14078
14079         PR tree-optimization/63168
14080         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
14081         latches if after merging they are no longer simple.
14082         * cfghooks.c (merge_blocks): Handle merging a latch block
14083         into another block.
14084
14085 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14086             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14087             Anna Tikhonova  <anna.tikhonova@intel.com>
14088             Ilya Tocar  <ilya.tocar@intel.com>
14089             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14090             Ilya Verbin  <ilya.verbin@intel.com>
14091             Kirill Yukhin  <kirill.yukhin@intel.com>
14092             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14093
14094         * config/i386/sse.md
14095         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
14096         support AVX-512VL instructions.
14097
14098 2014-10-16  DJ Delorie  <dj@redhat.com>
14099
14100         * tree-core.h: Fix comment to not assume pointers are multiples of
14101         bytes.
14102
14103 2014-10-15  Tom Tromey  <tromey@redhat.com>
14104
14105         * timevar.h (class auto_timevar): New class.
14106
14107 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
14108
14109         PR go/59432
14110         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14111         Remove the second alternative.
14112         (regprefix): Remove mode attribute.
14113         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
14114         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
14115
14116         Revert:
14117         2013-11-05  Ian Lance Taylor  <iant@google.com>
14118
14119         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14120         If possible, add .cfi directives to record change to bx.
14121         * config/i386/i386.c (ix86_emit_cfi): New function.
14122         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
14123
14124 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
14125
14126         PR lto/62026
14127         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
14128         to duplicate.
14129         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
14130         at WPA time.
14131
14132 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
14133
14134         PR rtl-optimization/63448
14135         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
14136         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
14137         (LRA_MAX_INHERITANCE_PASSES): Use it.
14138         (lra_constraint_iter_after_spill): Remove.
14139         (lra_assignment_iter): New.
14140         (lra_assignment_iter_after_spill): New.
14141         * lra-assigns.c (lra_assignment_iter): New.
14142         (lra_assignment_iter_after_spill): New.
14143         (former_reload_pseudo_spill_p): New.
14144         (spill_for): Set up former_reload_pseudo_spill_p.
14145         (setup_live_pseudos_and_spill_after_risky): Ditto.
14146         (assign_by_spills): Ditto.
14147         (lra_assign): Increment lra_assignment_iter.  Print the iteration
14148         number.  Reset former_reload_pseudo_spill_p.  Check
14149         lra_assignment_iter_after_spill.
14150         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
14151         lra_assignment_iter and lra_assignment_iter_after_spill.
14152         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
14153         (lra_constraints): Remove code with
14154         lra_assignment_iter_after_spill.
14155
14156 2014-10-15  Teresa Johnson  <tejohnson@google.com>
14157
14158         PR bootstrap/63432
14159         * tree-ssa-threadupdate.c (recompute_probabilities): Better
14160         overflow checking.
14161
14162 2014-10-15  Renlin Li <renlin.li@arm.com>
14163
14164         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
14165         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
14166         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
14167         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
14168
14169 2014-10-15  Richard Biener  <rguenther@suse.de>
14170
14171         * gimple-fold.c (gimple_fold_call): Properly keep virtual
14172         SSA form up-to-date when devirtualizing a call to
14173         __builtin_unreachable and avoid fixing up EH info here.
14174
14175 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14176             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14177             Anna Tikhonova  <anna.tikhonova@intel.com>
14178             Ilya Tocar  <ilya.tocar@intel.com>
14179             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14180             Ilya Verbin  <ilya.verbin@intel.com>
14181             Kirill Yukhin  <kirill.yukhin@intel.com>
14182             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14183
14184         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
14185         to support AVX-512BW.
14186         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
14187         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
14188         (define_insn "*<plusminus_insn><mode>3"): Ditto.
14189         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
14190         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14191         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
14192         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14193         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
14194         (define_insn "*andnot<mode>3"): Ditto.
14195         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
14196         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
14197         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
14198         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
14199         (define_insn "*abs<mode>2"): Remove masking support.
14200         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
14201         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
14202         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
14203
14204 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14205             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14206             Anna Tikhonova  <anna.tikhonova@intel.com>
14207             Ilya Tocar  <ilya.tocar@intel.com>
14208             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14209             Ilya Verbin  <ilya.verbin@intel.com>
14210             Kirill Yukhin  <kirill.yukhin@intel.com>
14211             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14212
14213         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
14214         * config/i386/sse.md
14215         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
14216         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
14217         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
14218         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14219         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14220         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14221         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14222
14223 2014-10-15  Renlin Li <renlin.li@arm.com>
14224
14225         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
14226
14227 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
14228
14229         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
14230         MINUS_EXPR in unsigned type to avoid undefined behavior.
14231
14232 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
14233
14234         * stor-layout.c (self_referential_size): Do not promote arguments.
14235
14236 2014-10-15  Marek Polacek  <polacek@redhat.com>
14237
14238         * doc/invoke.texi: Update to reflect that GNU11 is the default
14239         mode for C.
14240         * c-common.h (c_language_kind): Update comment.
14241
14242 2014-10-15  Richard Biener  <rguenther@suse.de>
14243
14244         * hash-table.c: Include bconfig.h if building for the host.
14245         * hash-table.h: Do not include ggc.h on the host but just declare
14246         a few ggc allocation templates.
14247
14248 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14249             Jeff Law  <law@redhat.com>
14250
14251         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
14252         multiple hard registers, use smaller mode derived from MODE.
14253
14254 2014-10-15  Andreas Schwab  <schwab@suse.de>
14255
14256         * explow.c (convert_memory_address_addr_space_1): Mark in_const
14257         as ATTRIBUTE_UNUSED.
14258
14259 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
14260
14261         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
14262         (decide_unrolling): ... this one.
14263         (peel_loops_completely): Remove.
14264         (decide_peel_simple): Remove.
14265         (decide_peel_once_rolling): Remove.
14266         (decide_peel_completely): Remove.
14267         (peel_loop_simple): Remove.
14268         (peel_loop_completely): Remove.
14269         (unroll_and_peel_loops): Rename to ...
14270         (unroll_loops): ... this one; handle only unrolling.
14271         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
14272         LPT_PEEL_SIMPLE.
14273         (UAP_PEEL): Remove.
14274         (unroll_and_peel_loops): Remove.
14275         (unroll_loops): New.
14276         * passes.def: Replace
14277         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
14278         * loop-init.c (gate_rtl_unroll_and_peel_loops,
14279         rtl_unroll_and_peel_loops): Rename to ...
14280         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
14281         (pass_rtl_unroll_and_peel_loops): Rename to ...
14282         (pass_rtl_unroll_loops): ... this one.
14283         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
14284         (make_pass_rtl_unroll_loops): New.
14285         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
14286         (canonicalize_loop_induction_variables): Update.
14287
14288 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14289
14290         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
14291         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
14292         !TARGET_HARD_FLOAT_POSTINC.
14293         (*lsip, *ssip): new instructions.
14294
14295 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14296
14297         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
14298         remove.
14299
14300 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14301
14302         * explow.c (convert_memory_address_addr_space): Rename to ...
14303         (convert_memory_address_addr_space_1): This.  Add in_const argument.
14304         Inside a CONST RTL, permute the conversion and addition of constant
14305         for zero and sign extended pointers.
14306         (convert_memory_address_addr_space): New function.
14307
14308 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14309
14310         Revert:
14311         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14312
14313         PR middle-end/49721
14314         * explow.c (convert_memory_address_addr_space): Also permute the
14315         conversion and addition of constant for zero-extend.
14316
14317 2014-10-14  DJ Delorie  <dj@redhat.com>
14318
14319         * config/msp430/msp430-modes.def (PSI): Add.
14320
14321         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
14322         (msp430_hard_regno_nregs_with_padding): New.
14323         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14324         (msp430_hard_regno_nregs_has_padding): New.
14325         (msp430_hard_regno_nregs_with_padding): New.
14326         (msp430_unwind_word_mode): Use PSImode instead of SImode.
14327         (msp430_addr_space_legitimate_address_p): New.
14328         (msp430_asm_integer): New.
14329         (msp430_init_dwarf_reg_sizes_extra): New.
14330         (msp430_print_operand): Use X suffix for PSImode even in small model.
14331         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14332         (PTR_SIZE): ...but 4 bytes for EH.
14333         (SIZE_TYPE): Use __int20.
14334         (PTRDIFF_TYPE): Likewise.
14335         (INCOMING_FRAME_SP_OFFSET): Adjust.
14336         * config/msp430/msp430.md (movqi_topbyte): New.
14337         (movpsi): Use fixed suffixes.
14338         (movsipsi2): Enable for 430X, not large model.
14339         (extendhipsi2): Likewise.
14340         (zero_extendhisi2): Likewise.
14341         (zero_extendhisipsi2): Likewise.
14342         (extend_and_shift1_hipsi2): Likewise.
14343         (extendpsisi2): Likewise.
14344         (*bitbranch<mode>4_z): Fix suffix logic.
14345
14346 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
14347
14348         PR ada/62019
14349         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14350         do not choke on null node.
14351         <VAR_DECL>: Likewise.
14352
14353 2014-10-14  DJ Delorie  <dj@redhat.com>
14354
14355         * machmode.h (int_n_data_t): New.
14356         (int_n_enabled_p): New.
14357         (int_n_data): New.
14358         * tree.c (int_n_enabled_p): New.
14359         (int_n_trees): New.
14360         (make_or_reuse_type): Check for all __intN types, not just
14361         __int128.
14362         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
14363         entries.
14364         * tree.h (int128_integer_type_node): Remove.
14365         (int128_unsigned_type_node): Remove.
14366         (int_n_trees_t): New.
14367         (int_n_enabled_p): New.
14368         (int_n_trees): New.
14369         * toplev.c (standard_type_bitsize): New.
14370         (do_compile): Check which __intN types are enabled for the current
14371         run.
14372         * builtin-types.def (BT_INT128): Remove.
14373         (BT_UINT128): Remove.
14374         * machmode.def: Add macro to create __int128 for all targets.
14375         * stor-layout.c (mode_for_size): Support __intN types.
14376         (smallest_mode_for_size): Likewise.
14377         (initialize_sizetypes): Support __intN types.
14378         * genmodes.c (struct mode_data): Add int_n field.
14379         (blank_mode): Likewise.
14380         (INT_N): New.
14381         (make_int_n): New.
14382         (emit_insn_modes_h): Count __intN entries and define
14383         NUM_INT_N_ENTS.
14384         (emit_mode_int_n): New.
14385         (emit_insn_modes_c): Call it.
14386         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14387         types, not just __int128.
14388         * tree-core.h (integer_type_kind): Remove __int128-specific
14389         entries, reserve spots for __intN entries.
14390
14391         * config/msp430/msp430-modes.def (PSI): Add.
14392
14393 2014-10-14  Kito Cheng  <kito@0xlab.org>
14394
14395         * ira.c: Fix typo in comment.
14396         * ira.h: Ditto.
14397         * ira-build.c: Ditto.
14398         * ira-color.c: Ditto.
14399         * ira-emit.c: Ditto.
14400         * ira-int.h: Ditto.
14401         * ira-lives.c: Ditto.
14402
14403 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
14404
14405         PR rtl-optimization/63475
14406         * alias.c (true_dependence_1): Always use get_addr to extract
14407         true address operands from x_addr and mem_addr.  Use extracted
14408         address operands to check for references with alignment ANDs.
14409         Use extracted address operands with find_base_term and
14410         base_alias_check. For noncanonicalized operands call canon_rtx with
14411         extracted address operand.
14412         (write_dependence_1): Ditto.
14413         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
14414
14415 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
14416
14417         PR target/63534
14418         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
14419         __morestack local.
14420
14421 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14422             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14423             Anna Tikhonova  <anna.tikhonova@intel.com>
14424             Ilya Tocar  <ilya.tocar@intel.com>
14425             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14426             Ilya Verbin  <ilya.verbin@intel.com>
14427             Kirill Yukhin  <kirill.yukhin@intel.com>
14428             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14429
14430         * config/i386/i386.c
14431         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
14432         (ix86_expand_int_vcond): Ditto.
14433
14434 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14435             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14436             Anna Tikhonova  <anna.tikhonova@intel.com>
14437             Ilya Tocar  <ilya.tocar@intel.com>
14438             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14439             Ilya Verbin  <ilya.verbin@intel.com>
14440             Kirill Yukhin  <kirill.yukhin@intel.com>
14441             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14442
14443         * config/i386/i386.c
14444         (emit_reduc_half): Handle V64QI and V32HI mode.
14445         * config/i386/sse.md
14446         (define_mode_iterator VI_AVX512BW): New.
14447         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
14448
14449 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14450             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14451             Anna Tikhonova  <anna.tikhonova@intel.com>
14452             Ilya Tocar  <ilya.tocar@intel.com>
14453             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14454             Ilya Verbin  <ilya.verbin@intel.com>
14455             Kirill Yukhin  <kirill.yukhin@intel.com>
14456             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14457
14458         * config/i386/sse.md
14459         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
14460
14461 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14462             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14463             Anna Tikhonova  <anna.tikhonova@intel.com>
14464             Ilya Tocar  <ilya.tocar@intel.com>
14465             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14466             Ilya Verbin  <ilya.verbin@intel.com>
14467             Kirill Yukhin  <kirill.yukhin@intel.com>
14468             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14469
14470         * config/i386/i386.c
14471         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
14472         * config/i386/sse.md
14473         (define_mode_iterator VI): Add V64QI and V32HI modes.
14474
14475 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14476             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14477             Anna Tikhonova  <anna.tikhonova@intel.com>
14478             Ilya Tocar  <ilya.tocar@intel.com>
14479             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14480             Ilya Verbin  <ilya.verbin@intel.com>
14481             Kirill Yukhin  <kirill.yukhin@intel.com>
14482             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14483
14484         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
14485
14486 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14487             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14488             Anna Tikhonova  <anna.tikhonova@intel.com>
14489             Ilya Tocar  <ilya.tocar@intel.com>
14490             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14491             Ilya Verbin  <ilya.verbin@intel.com>
14492             Kirill Yukhin  <kirill.yukhin@intel.com>
14493             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14494
14495         * config/i386/sse.md
14496         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
14497         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
14498
14499 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14500             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14501             Anna Tikhonova  <anna.tikhonova@intel.com>
14502             Ilya Tocar  <ilya.tocar@intel.com>
14503             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14504             Ilya Verbin  <ilya.verbin@intel.com>
14505             Kirill Yukhin  <kirill.yukhin@intel.com>
14506             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14507
14508         * config/i386/sse.md
14509         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
14510         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
14511
14512 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14513             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14514             Anna Tikhonova  <anna.tikhonova@intel.com>
14515             Ilya Tocar  <ilya.tocar@intel.com>
14516             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14517             Ilya Verbin  <ilya.verbin@intel.com>
14518             Kirill Yukhin  <kirill.yukhin@intel.com>
14519             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14520
14521         * config/i386/sse.md
14522         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
14523         (define_mode_iterator VI2_AVX2): Add V32HI mode.
14524         (define_expand "mul<mode>3<mask_name>"): Add masking.
14525         (define_insn "*mul<mode>3<mask_name>"): Ditto.
14526         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
14527         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
14528         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
14529         (define_mode_attr SDOT_PMADD_SUF): Ditto.
14530         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
14531         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
14532         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
14533         (define_insn "avx2_packusdw"): Delete.
14534         (define_insn "sse4_1_packusdw"): Ditto.
14535         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
14536
14537 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14538             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14539             Anna Tikhonova  <anna.tikhonova@intel.com>
14540             Ilya Tocar  <ilya.tocar@intel.com>
14541             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14542             Ilya Verbin  <ilya.verbin@intel.com>
14543             Kirill Yukhin  <kirill.yukhin@intel.com>
14544             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14545
14546         * config/i386/sse.md
14547         (define_insn "vec_dup<mode>"): Update constraints.
14548
14549 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14550             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14551             Anna Tikhonova  <anna.tikhonova@intel.com>
14552             Ilya Tocar  <ilya.tocar@intel.com>
14553             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14554             Ilya Verbin  <ilya.verbin@intel.com>
14555             Kirill Yukhin  <kirill.yukhin@intel.com>
14556             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14557
14558         * config/i386/sse.md
14559         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
14560         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
14561         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
14562
14563 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14564             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14565             Anna Tikhonova  <anna.tikhonova@intel.com>
14566             Ilya Tocar  <ilya.tocar@intel.com>
14567             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14568             Ilya Verbin  <ilya.verbin@intel.com>
14569             Kirill Yukhin  <kirill.yukhin@intel.com>
14570             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14571
14572         * config/i386/sse.md
14573         (define_expand "mul<mode>3<mask_name>"): Add masking.
14574
14575 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14576             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14577             Anna Tikhonova  <anna.tikhonova@intel.com>
14578             Ilya Tocar  <ilya.tocar@intel.com>
14579             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14580             Ilya Verbin  <ilya.verbin@intel.com>
14581             Kirill Yukhin  <kirill.yukhin@intel.com>
14582             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14583
14584         * config/i386/sse.md
14585         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
14586         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
14587
14588 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14589             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14590             Anna Tikhonova  <anna.tikhonova@intel.com>
14591             Ilya Tocar  <ilya.tocar@intel.com>
14592             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14593             Ilya Verbin  <ilya.verbin@intel.com>
14594             Kirill Yukhin  <kirill.yukhin@intel.com>
14595             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14596
14597         * config/i386/sse.md
14598         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
14599         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
14600         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
14601         Ditto.
14602
14603 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14604             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14605             Anna Tikhonova  <anna.tikhonova@intel.com>
14606             Ilya Tocar  <ilya.tocar@intel.com>
14607             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14608             Ilya Verbin  <ilya.verbin@intel.com>
14609             Kirill Yukhin  <kirill.yukhin@intel.com>
14610             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14611
14612         * config/i386/sse.md
14613         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
14614         use VF_128_256 mode iterator and update assembler emit code.
14615         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
14616         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
14617         Add masking, use VF_128_256 mode iterator.
14618         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
14619         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
14620         Add masking, use VF_128_256 mode iterator and update assembler emit
14621         code.
14622         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
14623         (define_mode_attr avx512flogicsuff): Delete.
14624         (define_insn "avx512f_<logic><mode>"): Ditto.
14625         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
14626         MODE_TI.
14627         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
14628
14629 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14630             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14631             Anna Tikhonova  <anna.tikhonova@intel.com>
14632             Ilya Tocar  <ilya.tocar@intel.com>
14633             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14634             Ilya Verbin  <ilya.verbin@intel.com>
14635             Kirill Yukhin  <kirill.yukhin@intel.com>
14636             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14637
14638         * config/i386/sse.md
14639         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
14640         (define_expand "vashr<mode>3<mask_name>"): Add masking,
14641         use VI12_128 mode iterator.
14642         (define_expand "ashrv2di3<mask_name>"): New.
14643
14644 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14645             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14646             Anna Tikhonova  <anna.tikhonova@intel.com>
14647             Ilya Tocar  <ilya.tocar@intel.com>
14648             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14649             Ilya Verbin  <ilya.verbin@intel.com>
14650             Kirill Yukhin  <kirill.yukhin@intel.com>
14651             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14652
14653         * config/i386/i386.c
14654         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
14655         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
14656         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
14657         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
14658         CODE_FOR_avx512vl_ucmpv4si3_mask.
14659         * config/i386/sse.md
14660         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
14661         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
14662         (define_insn
14663         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
14664         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
14665         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
14666         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
14667         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
14668         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
14669
14670 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14671             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14672             Anna Tikhonova  <anna.tikhonova@intel.com>
14673             Ilya Tocar  <ilya.tocar@intel.com>
14674             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14675             Ilya Verbin  <ilya.verbin@intel.com>
14676             Kirill Yukhin  <kirill.yukhin@intel.com>
14677             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14678
14679         * config/i386/sse.md
14680         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
14681         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
14682         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
14683         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
14684         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
14685         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
14686         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14687         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14688         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
14689
14690 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14691             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14692             Anna Tikhonova  <anna.tikhonova@intel.com>
14693             Ilya Tocar  <ilya.tocar@intel.com>
14694             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14695             Ilya Verbin  <ilya.verbin@intel.com>
14696             Kirill Yukhin  <kirill.yukhin@intel.com>
14697             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14698
14699         * config/i386/sse.md
14700         (define_insn "avx512f_blendm<mode>"): Delete.
14701         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
14702         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
14703         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
14704         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
14705         (define_insn
14706         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14707         Remove.
14708         (define_insn
14709         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14710         New.
14711         (define_insn
14712         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14713         Ditto.
14714         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
14715         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
14716         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
14717         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
14718         Delete.
14719         (define_insn
14720         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
14721         New.
14722         (define_insn
14723         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
14724         Ditto.
14725         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
14726         Delete.
14727         (define_insn
14728         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
14729         New.
14730         (define_insn
14731         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
14732         Ditto.
14733
14734 2014-10-14  Richard Biener  <rguenther@suse.de>
14735
14736         PR tree-optimization/63512
14737         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
14738         modified.
14739
14740 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
14741
14742         PR target/63260
14743         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
14744         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
14745         of FPSCR.
14746         (negsf2_i): Rename to *negsf2_i.
14747         (abssf2_i): Rename to *abssf2_i.
14748         (negdf2_i): Rename to *negdf2_i.
14749         (absdf2_i): Rename to *absdf2_i.
14750
14751 2014-10-14  Felix Yang  <felix.yang@huawei.com>
14752             Jeff Law  <law@redhat.com>
14753
14754         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
14755         "replace" into boolean bitfields; turn member "loop_depth" into a short
14756         integer; add new member "no_equiv" and "reserved".
14757         (no_equiv): Set no_equiv of struct equivalence if register is marked
14758         as having no known equivalence.
14759         (update_equiv_regs): Check all definitions for a multiple-set
14760         register to make sure that the RHS have the same value.
14761
14762 2014-10-13  Richard Henderson  <rth@redhat.com>
14763
14764         * combine-stack-adj.c (no_unhandled_cfa): New.
14765         (maybe_merge_cfa_adjust): New.
14766         (combine_stack_adjustments_for_block): Use them.
14767
14768 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
14769
14770         * Makefile.in (TAGS): Tag ../include files.
14771
14772 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14773
14774         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
14775         to rs6000_dbx_register_number.
14776         (DWARF_FRAME_REGNUM): Redefine as identity map.
14777         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
14778         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
14779         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
14780         argument to handle .debug_frame and .eh_frame directly.  Always
14781         translate SPE high register numbers.  Add special treatment for CR,
14782         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
14783
14784         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
14785         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
14786         (RS6000_USE_DWARF_NUMBERING): Define.
14787         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
14788         (RS6000_USE_DWARF_NUMBERING): Define.
14789         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
14790         (RS6000_USE_DWARF_NUMBERING): Define.
14791         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
14792         (RS6000_USE_DWARF_NUMBERING): Define.
14793         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
14794         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
14795
14796 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14797
14798         * config/i386/i386.c (ix86_address_cost): Lower cost for
14799         when address contains GOT register.
14800
14801 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
14802             Vladimir Makarov  <vmakarov@redhat.com>
14803
14804         PR target/8340
14805         PR middle-end/47602
14806         PR rtl-optimization/55458
14807         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
14808         (ix86_init_pic_reg): New.
14809         (ix86_select_alt_pic_regnum): Add check on pseudo register.
14810         (ix86_save_reg): Likewise.
14811         (ix86_expand_prologue): Remove PIC register initialization
14812         now performed in ix86_init_pic_reg.
14813         (ix86_output_function_epilogue): Add check on pseudo register.
14814         (set_pic_reg_ever_alive): New.
14815         (legitimize_pic_address): Replace df_set_regs_ever_live with new
14816         set_pic_reg_ever_alive.
14817         (legitimize_tls_address): Likewise.
14818         (ix86_pic_register_p): New check.
14819         (ix86_delegitimize_address): Add check on pseudo register.
14820         (ix86_expand_call): Insert move from pseudo PIC register to ABI
14821         defined REAL_PIC_OFFSET_TABLE_REGNUM.
14822         (TARGET_INIT_PIC_REG): New.
14823         (TARGET_USE_PSEUDO_PIC_REG): New.
14824         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
14825         if pic_offset_table_rtx exists.
14826         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
14827         Document.
14828         * doc/tm.texi: Regenerate.
14829         * function.c (assign_parms): Generate pseudo register for PIC.
14830         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
14831         register.
14832         * ira-color.c (color_pass): Add check on pseudo register.
14833         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
14834         register.
14835         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
14836         register.
14837         (ira): Add target specific PIC register initialization.
14838         (do_reload): Keep PIC pseudo register.
14839         * lra-assigns.c (spill_for): Add checks on pseudo register.
14840         * lra-constraints.c (contains_symbol_ref_p): New.
14841         (lra_constraints): Enable lra risky transformations when PIC is pseudo
14842         register.
14843         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
14844         * target.def (use_pseudo_pic_reg): New.
14845         (init_pic_reg): New.
14846
14847 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14848
14849         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
14850         Remove m_SILVERMONT and m_INTEL from the tune.
14851
14852 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14853
14854         PR libfortran/63471
14855         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14856         when _HPUX_SOURCE is defined.
14857
14858 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14859
14860         PR tree-optimization/62127
14861         * tree.c (remap_type_1): When remapping array, remap
14862         also its type.
14863
14864 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
14865
14866         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
14867         longer impact parallelization.
14868
14869 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14870
14871         PR bootstrap/63496
14872         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
14873
14874 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
14875
14876         * asan.c (instrument_derefs): BIT_FIELD_REF added.
14877
14878 2014-10-13  Richard Biener  <rguenther@suse.de>
14879
14880         PR tree-optimization/63419
14881         * gimple-fold.h (gimple_convert): New function.
14882         * gimple-fold.c (gimple_convert): Likewise.
14883         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
14884         to split out required conversions early.
14885
14886 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
14887
14888         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
14889         Add the parts of an insn in reverse order, with the pattern at
14890         the top of the queue.  Detect when we're iterating over a SEQUENCE
14891         pattern and in that case just consider patterns of subinstructions.
14892
14893 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
14894
14895         PR target/59401
14896         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
14897         of rtx.
14898         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
14899         insn walking.
14900         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
14901         address.  Use def chains to handle GBR clobbering call insns.
14902
14903 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
14904
14905         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
14906         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
14907         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
14908         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
14909         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
14910         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
14911         * doc/gty.texi (for_user): Document new option.
14912         * gengtype.c (create_user_defined_type): Don't try to get a struct for
14913         char.
14914         (walk_type): Don't error out on for_user option.
14915         (write_func_for_structure): Emit user marking routines if requested by
14916         for_user option.
14917         (write_local_func_for_structure): Likewise.
14918         (main): Mark types with for_user option as used.
14919         * ggc.h (gt_pch_nx): Add overload for unsigned int.
14920         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
14921         * hash-table.h (ggc_hasher): New struct.
14922         (hash_table::create_ggc): New function.
14923         (gt_pch_nx): New overload for hash_table.
14924
14925 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
14926
14927         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
14928         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
14929         * config/sh/sh.c: Likewise.
14930         * config/sh/sh-mem.cc: Likewise.
14931         * config/sh/sh.md: Likewise.
14932         * config/sh/predicates.md: Likewise.
14933         * config/sh/sync.md: Likewise.
14934
14935 2014-10-11  Martin Liska  <mliska@suse.cz>
14936
14937         PR middle-end/63376
14938         * cgraphunit.c (symbol_table::process_new_functions): Missing call
14939         for call_cgraph_insertion_hooks added.
14940
14941 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
14942
14943         PR c/63495
14944         * stor-layout.c (min_align_of_type): Don't decrease alignment
14945         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
14946         TYPE_USER_ALIGN is set.
14947
14948 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
14949
14950         PR rtl-optimization/63483
14951         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
14952         references when alignment ANDs are involved.
14953         (write_dependence_p): Ditto.
14954         (may_alias_p): Ditto.
14955
14956 2014-10-10  Marek Polacek  <polacek@redhat.com>
14957
14958         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
14959         * doc/invoke.texi: Document -fsanitize=object-size.
14960         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
14961         or it into SANITIZE_UNDEFINED.
14962         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
14963         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
14964         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
14965         * opts.c (common_handle_option): Handle -fsanitize=object-size.
14966         * ubsan.c: Include tree-object-size.h.
14967         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
14968         (ubsan_expand_bounds_ifn): Use false instead of 0.
14969         (ubsan_expand_objsize_ifn): New function.
14970         (instrument_object_size): New function.
14971         (pass_ubsan::execute): Add object size instrumentation.
14972         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
14973
14974 2014-10-10  Richard Henderson  <rth@redhat.com>
14975
14976         PR target/63404
14977         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
14978         Restrict the set of expressions we're willing to move.
14979
14980 2014-10-10  Jeff Law  <law@redhat.com>
14981
14982         * ira.c (struct equivalence): Promote INIT_INSNs field to
14983         an rtx_insn_list.  Add comments.
14984         (no_equiv): Promote LIST to an rtx_insn_list.  Update
14985         testing for and creating the special marker.  Use methods
14986         to extract the insn and next pointers.  Promote INSN to an
14987         rtx_insn.
14988         (update_equiv_regs): Update test for special marker in the
14989         INIT_INSNs list.
14990
14991 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14992
14993         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
14994         * configure: Regenerate.
14995         * config/aarch64/aarch64.c (aarch64_override_options): Handle
14996         TARGET_FIX_ERR_A53_835769_DEFAULT.
14997         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
14998         value to 2.
14999         * doc/install.texi (aarch64*-*-*): Document
15000         new --enable-fix-cortex-a53-835769 option.
15001
15002 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15003             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15004
15005         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
15006         (ADJUST_INSN_LENGTH): Define.
15007         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
15008         * config/aarch64/aarch64.c (is_mem_p): New function.
15009         (is_memory_op): Likewise.
15010         (aarch64_prev_real_insn): Likewise.
15011         (is_madd_op): Likewise.
15012         (dep_between_memop_and_curr): Likewise.
15013         (aarch64_madd_needs_nop): Likewise.
15014         (aarch64_final_prescan_insn): Likewise.
15015         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
15016         and -mno-fix-cortex-a53-835769 options.
15017
15018 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
15019
15020         PR tree-optimization/63464
15021         * tree-switch-conversion.c (struct case_bit_test): Remove
15022         hi and lo fields, add wide_int mask field.
15023         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
15024         hi/lo fields into wide_int mask operations, optimize by pretending
15025         minval to be 0 if maxval is small enough.
15026         (process_switch): Adjust caller.
15027
15028 2014-10-10  Richard Biener  <rguenther@suse.de>
15029
15030         PR tree-optimization/63379
15031         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
15032         a neutral operand for min/max when it is not a reduction chain.
15033
15034 2014-10-10  Richard Biener  <rguenther@suse.de>
15035
15036         PR tree-optimization/63476
15037         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
15038         (BB_LIVE_VOP_ON_EXIT): New define.
15039         (create_expression_by_pieces): Assign VUSEs to stmts.
15040         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
15041         (pass_pre::execute): Assert virtual SSA form is up-to-date
15042         after insertion.
15043
15044 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
15045
15046         * lra-assigns.c (assign_by_spills): Error out on spill failure.
15047
15048 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
15049
15050         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
15051         assertion.
15052
15053 2014-10-09  Richard Biener  <rguenther@suse.de>
15054
15055         PR tree-optimization/63380
15056         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
15057         may trap.
15058
15059 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
15060
15061         * config/avr/avr.opt (mmcu=): Change to have a string value.
15062         (mn-flash=, mskip-bug, march=, mrmw): New options.
15063         (HeaderInclude): New.
15064         (mmcu=): Remove Var / Init clauses.
15065         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
15066         -specs option.
15067         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
15068         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
15069         (SYMBOL_FLAG_IO_LOW): Define.
15070         (avr_device_to_as, avr_device_to_ld): Don't declare.
15071         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
15072         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
15073         (EXTRA_SPEC_FUNCTIONS): Don't define.
15074         (ASM_SPEC): Translate -arch= option to -mmcu= option.
15075         (LINK_SPEC): Translate -arch= option to -m= option.
15076         Don't use device_to_ld / device_to_data_start.
15077         (STARTFILE_SPEC): Now empty.
15078         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
15079         * config/avr/gen-avr-mmcu-specs.c: New file.
15080         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
15081         (s-device-specs): Likewise.
15082         (GCC_PASSES): Add s-device-specs.
15083         (install-driver): Depend on install-device-specs.
15084         (install-device-specs): New rule.
15085         * config/avr/avr.c (avr_option_override): Look up mcu arch by
15086         avr_arch_index and provide fallback initialization for avr_n_flash.
15087         (varasm.h): #include.
15088         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
15089         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
15090         (avr_attribute_table): Add "io", "address" and "io_low".
15091         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
15092         Add special handling for symbols with "io" and/or "address" attributes.
15093         (avr_asm_asm_output_aligned_bss): New function.
15094         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
15095         as appropriate.  Handle io_low attribute.
15096         (avr_out_sbxx_branch): Handle symbolic io addresses.
15097         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
15098         avr_n_flash instead of avr_current_device->n_flash.
15099         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
15100         (avr_emit_movmemhi): Likewise.
15101         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
15102         Use TARGET_RMW instead of avr_current_device->dev_attributes.
15103         Don't define avr_current_device->macro (that's the specfile's job).
15104         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
15105         * config/avr/avr.c (avr_2word_insn_p): Likewise.
15106         * config/avr/avr.md (*cpse.ne): Likewise.
15107         (mov<mode>): Use avr_eval_addr_attrib.
15108         (cbi): Change constraint for low_io_address_operand operand to "i".
15109         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
15110         * config/avr/predicates.md (io_address_operand):
15111         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
15112         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
15113         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
15114         Update prototype.
15115         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
15116         * config/avr/genmultilib.awk: Use -march=.
15117         Remove Multilib matches processing.
15118         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
15119         * config/avr/avr-arch.h: Add double include guard.
15120         (avr_mcu_t) <library_name>: Update comment.
15121         * config/avr/driver-avr.c (avr_device_to_as): Delete.
15122         (avr_device_to_ld, avr_device_to_data_start): Likewise.
15123         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
15124         (avr_device_to_sp8): Likewise.
15125         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
15126
15127         * doc/extend.texi (io, address): Document new AVR variable attributes.
15128         (io_low): Likewise.
15129
15130 2014-10-09  Marek Polacek  <polacek@redhat.com>
15131
15132         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
15133
15134 2014-10-08  Richard Biener  <rguenther@suse.de>
15135
15136         PR tree-optimization/61969
15137         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
15138         variables.
15139
15140 2014-10-09  Richard Biener  <rguenther@suse.de>
15141
15142         PR tree-optimization/63445
15143         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
15144         overflow for non-equality compares.
15145
15146 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
15147
15148         PR rtl-optimization/57003
15149         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
15150         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
15151         killing regs_invalidated_by_call.
15152
15153 2014-10-08  Teresa Johnson  <tejohnson@google.com>
15154
15155         PR bootstrap/63432.
15156         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
15157         (ssa_fix_duplicate_block_edges): Invoke it.
15158         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
15159
15160 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
15161
15162         PR target/52941
15163         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
15164         atomic_fetch_<fetchop_name>si_hard,
15165         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
15166         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
15167         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
15168         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
15169
15170 2014-10-08  Rong Xu  <xur@google.com>
15171
15172         * gcov-tool.c (profile_overlap): New driver function
15173         to compute profile overlap.
15174         (print_overlap_usage_message): New.
15175         (overlap_usage): New.
15176         (do_overlap): New.
15177         (print_usage): Add calls to overlap function.
15178         (main): Ditto.
15179         * doc/gcov-tool.texi: Add documentation.
15180
15181 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15182
15183         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
15184         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
15185
15186 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
15187
15188         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
15189         pattern matching of MEM_REF.
15190         (check_stmt_for_type_change): Update.
15191
15192 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15193
15194         * config/mips/linux64.h: Remove.
15195         * config/mips/gnu-user64.h: Remove.
15196         * gcc.config (mips*-*-*): Remove references to linux64.h and
15197         gnu-user64.h
15198         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
15199         with modified version from gnu-user64.h.
15200         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
15201         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
15202         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
15203         linux64.h.
15204         (GNU_USER_LINK_EMULATION64): Ditto.
15205         (GNU_USER_LINK_EMULATIONN32): Ditto.
15206         (GLIBC_DYNAMIC_LINKER32): Ditto.
15207         (GLIBC_DYNAMIC_LINKER64): Ditto.
15208         (GLIBC_DYNAMIC_LINKERN32): Ditto.
15209         (UCLIBC_DYNAMIC_LINKER32): Ditto.
15210         (UCLIBC_DYNAMIC_LINKER64): Ditto.
15211         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
15212         (BIONIC_DYNAMIC_LINKERN32): Ditto.
15213         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
15214         (GLIBC_DYNAMIC_LINKER): Delete.
15215         (UCLIBC_DYNAMIC_LINKER): Delete.
15216
15217 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15218             Richard Biener  <rguenther@suse.de>
15219
15220         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
15221         Get address space from operand 0 (BASE).
15222
15223 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
15224
15225         PR target/61387
15226         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
15227
15228 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
15229
15230         * dwarf2out.c: Remove current_function_has_inlines.
15231         (gen_subprogram_die): Same.
15232         (gen_inlined_subroutine_die): Same.
15233
15234 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
15235
15236         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
15237         type.
15238         (_addcarry_u64): Ditto.
15239         (_addcarryx_u64): Ditto.
15240
15241 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15242
15243         * cgraph.h (cgraph_node::get_fun): Declare.
15244         * cgraph.c (cgraph_node::get_fun): New method.
15245         * ipa-inline.c (can_inline_edge_p): Use it.
15246
15247 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15248
15249         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
15250         and -ftrapping-math.
15251         * lto-wrapper.c (merge_and_complain): Likewise.
15252         (run_gcc): Likewise.
15253
15254 2014-10-06  Rong Xu  <xur@google.com>
15255
15256         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
15257         * tree-profile.c: (params.h): New include.
15258         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
15259         and __gcov_indirect_call_topn_counters for
15260         indirect_call_topn_profile.
15261         (gimple_init_edge_profiler): New decls for
15262         __gcov_indirect_call_topn_profiler.
15263         (gimple_gen_ic_profiler): Generate the correct profiler call.
15264         (gimple_gen_ic_func_profiler): Fix format.
15265         * value-prof.c (params.h): New include.
15266         (dump_histogram_value): Hanlde indirect_call_topn counters.
15267         (stream_in_histogram_value): Ditto.
15268         (gimple_indirect_call_to_profile): Use indirect_call_topn
15269         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
15270         (gimple_find_values_to_profile): Hanlde indirect_call_topn
15271         counters.
15272         * value-prof.h (enum hist_type): Histrogram type for
15273         indirect_call_topn counters.
15274         * profile.c (instrument_values): Instrument
15275         indirect_call_topn counters.
15276
15277 2014-10-06  Rong Xu  <xur@google.com>
15278
15279         * Makefile.in: Fix dependence.
15280         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
15281         indirect call topn profiler.
15282         * gcov-io.h: Ditto.
15283
15284 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15285
15286         * calls.c (expand_call): Do not use the target as the return slot if
15287         it is not sufficiently aligned.
15288
15289 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15290
15291         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
15292         discussion of permutes and why we don't handle them.
15293
15294 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15295
15296         * config/sparc/predicates.md (int_register_operand): Delete.
15297
15298 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15299
15300         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
15301
15302 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
15303
15304         * ubsan.h (ubsan_get_source_location): New prototype.
15305         * ubsan.c (ubsan_source_location_type): New variable.
15306         Function renamed to ...
15307         (ubsan_get_source_location_type): ... this.  Cache
15308         return value in ubsan_source_location_type variable.
15309         (ubsan_source_location, ubsan_create_data): Use
15310         ubsan_get_source_location_type instead of
15311         ubsan_source_location_type.
15312         * asan.c (asan_protect_global): Don't protect globals
15313         with ubsan_get_source_location_type () type.
15314         (asan_add_global): Provide global decl location info
15315         if possible.
15316
15317 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15318
15319         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
15320         sanity check.
15321
15322 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15323
15324         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15325         on size.
15326         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15327         into vptr pointer.
15328         (ipa_polymorphic_call_context::dump): Fix formating.
15329         (walk_ssa_copies): Add logic avoiding loops; update uses.
15330         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15331
15332 2014-10-02  Mark Wielaard  <mjw@redhat.com>
15333
15334         PR debug/63239
15335         * dwarf2out.c (gen_subprogram_die): When a member function is
15336         explicitly deleted then add a DW_AT_GNU_deleted attribute.
15337         * langhooks.h (struct lang_hooks_for_decls): Add
15338         function_decl_deleted_p langhook.
15339         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15340         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15341
15342 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15343
15344         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15345         NULL pointer checks.
15346         (ipa_polymorphic_call_context::get_dynamic_type): Return true
15347         if type doesn't change.
15348         * cgraph.h (cgraph_indirect_call_info): New flag.
15349         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15350         (cgraph_node::dump): Dump it.
15351         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
15352         of context.get_dynamic_type.
15353         (ipa_make_edge_direct_to_target): Do not speculate
15354         edge that is already speuclative.
15355         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15356         speculate to __builtin_unreachable
15357         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15358         vptr_changed.
15359         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15360
15361 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15362
15363         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15364         get_dynamic_type; drop TODO.
15365         * ipa-polymorphic-call.c
15366         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15367         for otr_type to be unknown.
15368
15369 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15370
15371         * common/config/score/score-common.c: Remove.
15372         * config.gcc: Remove support for score-*.
15373         * config/score/constraints.md: Remove.
15374         * config/score/elf.h: Remove.
15375         * config/score/predicates.md: Remove.
15376         * config/score/score-conv.h: Remove.
15377         * config/score/score-generic.md: Remove.
15378         * config/score/score-modes.def: Remove.
15379         * config/score/score-protos.h: Remove.
15380         * config/score/score.c: Remove.
15381         * config/score/score.h: Remove.
15382         * config/score/score.md: Remove.
15383         * config/score/score.opt: Remove.
15384         * doc/md.texi: Don't document score-*.
15385
15386 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15387
15388         PR pch/63429
15389         * genconditions.c: Directly include ggc.h before rtl.h.
15390
15391 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15392
15393         * ipa-polymorphic-call.c
15394         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15395         code determining speculative type.
15396         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15397
15398 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15399
15400         * altivec.md (altivec_lvsl): New define_expand.
15401         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15402         (altivec_lvsr): New define_expand.
15403         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15404         * rs6000.c (rs6000_expand_builtin): Change to use
15405         altivec_lvs[lr]_direct; remove commented-out code.
15406
15407 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15408
15409         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15410         Issue a warning message when vec_lvsl or vec_lvsr is used with a
15411         little endian target.
15412
15413 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15414
15415         * tree-pretty-print.c (dump_location): Make it extern. Dump also
15416         the column.
15417         * tree-pretty-print.h (dump_location): Declare.
15418         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
15419         (pp_gimple_stmt_1): Likewise.
15420         (dump_implicit_edges): Likewise.
15421         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
15422         LOCATION_LINE.
15423
15424
15425 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15426
15427         * gcc.c (driver::global_initializations): Remove "const" so
15428         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
15429         and decoded_options_count.
15430
15431 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
15432
15433         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
15434         macro.
15435         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
15436         TARGET_E500_DOUBLE case here.
15437
15438 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
15439
15440         PR c++/54427
15441         PR c++/57198
15442         PR c++/58845
15443         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
15444
15445 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15446
15447         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
15448         * lto-cgraph.c (lto_output_edge, input_edge): Stream
15449         in_polymorphic_cdtor
15450         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
15451         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
15452         * cgraphclones.c (cgraph_edge::clone): Likewise.
15453         * ipa-prop.c (update_jump_functions_after_inlining,
15454         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
15455         to possible_dynamic_type_change.
15456         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
15457         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15458         IN_POLY_CDOTR argument.
15459
15460         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
15461         for BASE and OUTER_TYPE being NULL.
15462         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15463         in_poly_cdtor parameter.
15464
15465 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15466
15467         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
15468         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
15469         TARGET_AVX512F.
15470         (expand_vec_perm_1): Likewise.
15471
15472 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15473             Uros Bizjak  <ubizjak@gmail.com>
15474
15475         PR tree-optimization/61403
15476         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
15477         error in comment.  Also optimize 256-bit vectors for AVX2
15478         or AVX (floating vectors only), provided the first permutation
15479         can be performed in one insn.
15480
15481 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15482
15483         * gcc.c (class driver): New class.
15484         (main): Reimplement in terms of driver::main, moving most of the
15485         locals to be locals within individual methods of class driver.
15486         The remaining locals "explicit_link_files", "decoded_options" and
15487         "decoded_options_count" are used by multiple driver:: methods, and
15488         so become member data.  Doing so isolates the argc/argv reads and
15489         writes.  Replace "goto out" with a special exit code from
15490         new method driver::prepare_infiles.  Split out the old
15491         implementation of main into the following...
15492         (driver::main): New function, corresponding to the old "main"
15493         implementation.
15494         (driver::set_progname): New function, taken from the old
15495         "main" implementation.
15496         (driver::expand_at_files): Likewise.
15497         (driver::decode_argv): Likewise.
15498         (driver::global_initializations): Likewise.
15499         (driver::build_multilib_strings): Likewise.
15500         (driver::set_up_specs): Likewise.
15501         (driver::putenv_COLLECT_GCC): Likewise.
15502         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
15503         (driver::handle_unrecognized_options): Likewise.
15504         (driver::maybe_print_and_exit): Likewise.
15505         (driver::prepare_infiles): Likewise.
15506         (driver::do_spec_on_infiles): Likewise.
15507         (driver::maybe_run_linker): Likewise.
15508         (driver::final_actions): Likewise.
15509         (driver::get_exit_code): Likewise.
15510
15511 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
15512
15513         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
15514         don't emit empty ctors.
15515
15516 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
15517
15518         * convert.c (convert_to_integer): Do not introduce useless conversions
15519         between integral types.
15520
15521 2014-10-03  David Sherwood  <david.sherwood@arm.com>
15522
15523         * ira-int.h (ira_allocno): Mark hard_regno as signed.
15524
15525 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
15526
15527         * lra-constraints.c (inherit_in_ebb): Handle calls with
15528         multiple return values.
15529         * caller-save.c (save_call_clobbered_regs): Likewise.
15530
15531 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15532
15533         * tree-vect-data-refs.c (vect_permute_load_chain,
15534         vect_shift_permute_load_chain): Fix a typo in temporary var names,
15535         suffle3 to shuffle3.
15536
15537         PR libgomp/61200
15538         * omp-low.c (taskreg_contexts): New variable.
15539         (scan_omp_parallel): Push newly created context into taskreg_contexts
15540         vector and move record layout code to finish_taskreg_scan.
15541         (scan_omp_task): Likewise.
15542         (finish_taskreg_scan): New function.
15543         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
15544         vector elements and release it.
15545
15546         PR target/62128
15547         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
15548         of palignr arguments can't be used due to min 0 or max - min
15549         too high, try also op0, op1 order of palignr arguments.
15550
15551 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
15552
15553         * cgraph.h (ipa_polymorphic_call_context):
15554         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
15555         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
15556         * ipa-polymorphic-call.c
15557         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
15558         past end of dynamic types.
15559         (ipa_polymorphic_call_context::stream_out,
15560         speculative_outer_type): Stream dynamic flag.
15561         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
15562         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
15563         Clear DYNAMIC.
15564         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
15565         set it.
15566         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
15567         * ipa-prop.c (update_jump_functions_after_inlining,
15568         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
15569
15570 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15571
15572         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
15573         up when synthesizing counts to avoid rounding errors.
15574
15575 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15576
15577         PR middle-end/63422
15578         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
15579         asserts to handle incoming insanities.
15580
15581 2014-10-02  Martin Jambor  <mjambor@suse.cz>
15582
15583         PR tree-optimization/63375
15584         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
15585         references.
15586
15587 2014-10-02  Olivier Hainque  <hainque@adacore.com>
15588
15589         * Makefile.in (CROSS): Define, to @CROSS.
15590
15591 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
15592
15593         PR target/62128
15594         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
15595         if it expands to a single insn only.
15596         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
15597         fail unless in_order is true.  Add forward declaration.
15598         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
15599         is useful for one_operand_p.
15600         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15601
15602 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15603
15604         * cgraphclones.c (build_function_type_skip_args): Do not make new
15605         type variant of old.
15606
15607 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15608
15609         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
15610         when speculation is added.
15611         (ipa_edge_args): Add polymorphic_call_contexts.
15612         (ipa_get_ith_polymorhic_call_context): New accesor.
15613         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
15614         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
15615         (ipa_compute_jump_functions_for_edge): Compute contexts.
15616         (update_jump_functions_after_inlining): Update contexts.
15617         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
15618         update dumping; add speculative edge creation.
15619         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
15620         context updating.
15621         (update_indirect_edges_after_inlining): Pass down context.
15622         (ipa_edge_duplication_hook): Duplicate contexts.
15623         (ipa_write_node_info): Stream out contexts.
15624         (ipa_read_node_info): Stream in contexts.
15625         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
15626         types.
15627         (try_speculative_devirtualization): New function.
15628         * ipa-utils.h (try_speculative_devirtualization): Declare.
15629
15630 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15631
15632         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
15633         dumping during WPA.
15634
15635 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15636
15637         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
15638         type variants.
15639
15640 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15641
15642         * ipa-polymorphic-call.c
15643         (ipa_polymorphic_call_context::restrict_to_inner_class):
15644         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
15645         use speculation_consistent_p to do so; Add CONSDER_BASES
15646         and CONSIDER_PLACEMENT_NEW parameters.
15647         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
15648         short circuit obvious cases.
15649         (ipa_polymorphic_call_context::dump): Improve formatting.
15650         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
15651         combine_speculation_with to record speculations; Do not ICE when
15652         object is located in pointer type decl; do not ICE for methods
15653         of UNION_TYPE; do not record nonpolymorphic types.
15654         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
15655         (ipa_polymorphic_call_context::combine_speculation_with): New method.
15656         (ipa_polymorphic_call_context::combine_with): New method.
15657         (ipa_polymorphic_call_context::make_speculative): Move here; use
15658         combine speculation.
15659         * cgraph.h (ipa_polymorphic_call_context): Update
15660         restrict_to_inner_class prototype; add offset_by, make_speculative,
15661         combine_with, useless_p, combine_speculation_with and
15662         speculation_consistent_p methods.
15663         (ipa_polymorphic_call_context::offset_by): New method.
15664         (ipa_polymorphic_call_context::useless_p): New method.
15665
15666 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
15667
15668         PR rtl-optimization/62151
15669         * combine.c (can_combine_p): Allow the destination register of INSN
15670         to be clobbered in I3.
15671         (subst): Do not substitute into clobbers of registers.
15672
15673 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
15674
15675         PR debug/63342
15676         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
15677         offset, TARGET_MEM_REF and SSA_NAME.
15678
15679         * config/i386/i386.c (expand_vec_perm_palignr): Handle
15680         256-bit vectors for TARGET_AVX2.
15681
15682         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
15683         dfirst permutation.
15684
15685         PR target/63428
15686         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
15687         argument to avx2_permv2ti.
15688
15689 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15690
15691         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
15692
15693 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
15694
15695         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
15696         (fmod<mode>3): Ditto.
15697         (fpremxf4_i387): Ditto.
15698         (reminderxf3): Ditto.
15699         (reminder<mode>3): Ditto.
15700         (fprem1xf4_i387): Ditto.
15701
15702 2014-09-30  Teresa Johnson  <tejohnson@google.com>
15703
15704         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
15705         duplicate_blocks bitmap.
15706         (remove_ctrl_stmt_and_useless_edges): Ditto.
15707         (create_block_for_threading): Ditto.
15708         (compute_path_counts): New function.
15709         (update_profile): Ditto.
15710         (recompute_probabilities): Ditto.
15711         (update_joiner_offpath_counts): Ditto.
15712         (freqs_to_counts_path): Ditto.
15713         (clear_counts_path): Ditto.
15714         (ssa_fix_duplicate_block_edges): Update profile info.
15715         (ssa_create_duplicates): Pass new parameter.
15716         (ssa_redirect_edges): Remove old profile update.
15717         (thread_block_1): New duplicate_blocks bitmap,
15718         remove old profile update.
15719         (thread_single_edge): Pass new parameter.
15720
15721 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
15722
15723         PR middle-end/62120
15724         * varasm.c (decode_reg_name_and_count): Check availability for
15725         registers from ADDITIONAL_REGISTER_NAMES.
15726
15727 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
15728
15729         PR plugins/63410
15730         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
15731         (PLUGIN_HEADERS): Add pass-instances.def.
15732
15733 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
15734
15735         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
15736         iterator.
15737         * config/aarch64/aarch64-simd.md
15738         (aarch64_sqdmull_laneq<mode>): Expand iterator.
15739         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
15740         (vqdmulls_lane_s32): Fix return type.
15741         (vqdmulls_laneq_s32): New.
15742
15743 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
15744
15745         PR inline-asm/63282
15746         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
15747         or invert_jump_1 if jump isn't any_condjump_p.
15748
15749 2014-09-30  Terry Guo  <terry.guo@arm.com>
15750
15751         * config/arm/arm-cores.def (cortex-m7): New core name.
15752         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
15753         (fpv5-d16): Ditto.
15754         * config/arm/arm-tables.opt: Regenerated.
15755         * config/arm/arm-tune.md: Regenerated.
15756         * config/arm/arm.h (TARGET_VFP5): New macro.
15757         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
15758         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
15759         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
15760         * doc/invoke.texi: Document new cpu and fpu names.
15761
15762 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
15763
15764         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
15765         before sinking insn.
15766
15767 2014-09-30  David Sherwood  <david.sherwood@arm.com>
15768
15769         * ira-int.h (ira_allocno): Add "wmode" field.
15770         * ira-build.c (create_insn_allocnos): Add new "parent" function
15771         parameter.
15772         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
15773         that cannot be accessed in wmode.
15774
15775 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
15776
15777         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
15778         integer overflow.
15779
15780 2014-09-29  Andi Kleen  <ak@linux.intel.com>
15781
15782         * opts.c (print_filtered_help): Print --param min/max/default
15783         with -Q.
15784
15785 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15786
15787         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
15788
15789 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
15790
15791         * tree-vrp.c (get_single_symbol): New function.
15792         (build_symbolic_expr): Likewise.
15793         (symbolic_range_based_on_p): New predicate.
15794         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
15795         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
15796         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
15797         operand is symbolic and based on the other operand.
15798
15799 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
15800
15801         * config/microblaze/microblaze.md (call_internal1): Use VOID
15802         instead of SI to fix "((void (*)(void)) 0)()" issue
15803
15804 2014-09-29  Nick Clifton  <nickc@redhat.com>
15805
15806         * config/msp430/msp430.c (msp430_expand_prologue): Return a
15807         CLOBBER rtx for naked functions.
15808         (msp430_expand_epilogue): Likewise.
15809         (msp430_use_f5_series_hwmult): Cache result.
15810         (use_32bit_hwmult): Cache result.
15811         (msp430_no_hwmult): New function.
15812         (msp430_output_labelref): Use it.
15813
15814 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
15815
15816         PR middle-end/63247
15817         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
15818         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
15819         use the alignment of avar rather than ovar.
15820
15821 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
15822
15823         * config/pa/pa.c (pa_output_function_epilogue): Only update
15824         last_address when a nonnote insn is found.
15825
15826 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15827
15828         PR ipa/60665
15829         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
15830
15831 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15832
15833         PR ipa/62121
15834         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
15835         fix pasto in checking array size.
15836
15837 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15838
15839         PR middle-end/35545
15840         * passes.def (pass_tracer): Move before last dominator pass.
15841
15842 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
15843
15844         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
15845         users.
15846         (run_attempt): Handle errors of "pex_run" invocation.
15847
15848 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
15849
15850         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
15851         (CC1_SPEC): Define.
15852         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
15853         (TARGET_ASAN_SHADOW_OFFSET): Define.
15854
15855 2014-09-26  Martin Liska  <mliska@suse.cz>
15856
15857         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
15858         introduced.
15859         * cgraph.h: Likewise.
15860         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
15861         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
15862         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
15863         * tree-ssa-alias.h: Likewise.
15864
15865 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
15866             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15867
15868         * common.opt: New option.
15869         * doc/invoke.texi: Describe new option.
15870         * gcc.c (execute): Don't free first string early, but at the end
15871         of the function.  Call retry_ice if compiler exited with
15872         ICE_EXIT_CODE.
15873         (main): Factor out common code.
15874         (print_configuration): New function.
15875         (files_equal_p): Likewise.
15876         (check_repro): Likewise.
15877         (run_attempt): Likewise.
15878         (do_report_bug): Likewise.
15879         (append_text): Likewise.
15880         (try_generate_repro): Likewise
15881
15882 2014-09-25  Andi Kleen  <ak@linux.intel.com>
15883
15884         * config/i386/i386.c (x86_print_call_or_nop): New function.
15885         (x86_function_profiler): Support -mnop-mcount and
15886         -mrecord-mcount.
15887         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
15888         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
15889
15890 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15891
15892         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
15893         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
15894         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
15895         Remove.
15896
15897 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15898
15899         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
15900         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
15901         types_odr_comparable): Declare.
15902         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
15903         * ipa-polymorphic-call.c: New file.
15904         (contains_polymorphic_type_p, possible_placement_new,
15905         ipa_polymorphic_call_context::restrict_to_inner_class,
15906         contains_type_p, decl_maybe_in_construction_p,
15907         ipa_polymorphic_call_context::stream_out,
15908         ipa_polymorphic_call_context::debug,
15909         ipa_polymorphic_call_context::stream_in,
15910         ipa_polymorphic_call_context::set_by_decl,
15911         ipa_polymorphic_call_context::set_by_invariant,
15912         walk_ssa_copies,
15913         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15914         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15915         extr_type_from_vtbl_ptr_store, record_known_type
15916         check_stmt_for_type_change,
15917         ipa_polymorphic_call_context::get_dynamic_type): Move here from
15918         ipa-devirt.c
15919         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
15920         and streamer-hooks.h
15921         (contains_polymorphic_type_p, possible_placement_new,
15922         ipa_polymorphic_call_context::restrict_to_inner_class,
15923         contains_type_p, decl_maybe_in_construction_p,
15924         ipa_polymorphic_call_context::stream_out,
15925         ipa_polymorphic_call_context::debug,
15926         ipa_polymorphic_call_context::stream_in,
15927         ipa_polymorphic_call_context::set_by_decl,
15928         ipa_polymorphic_call_context::set_by_invariant,
15929         walk_ssa_copies,
15930         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15931         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15932         extr_type_from_vtbl_ptr_store, record_known_type
15933         check_stmt_for_type_change,
15934         ipa_polymorphic_call_context::get_dynamic_type): Move to
15935         ipa-polymorphic-call.c
15936         (type_all_derivations_known_p, types_odr_comparable,
15937         types_must_be_same_for_odr): Export.
15938         (type_known_to_have_no_deriavations_p): New function.
15939         * Makefile.in: Add ipa-polymorphic-call.c
15940
15941 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15942
15943         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
15944         for better storage.
15945         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
15946         (possible_polymorphic_call_targets): Instead of computing both
15947         speculative and non-speculative answers, do just one at a time.
15948         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
15949         (dump_targets): Break out from ...
15950         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
15951         and non-speculative lists.
15952         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
15953         * ipa-utils.h (possible_polymorphic_call_targets): Update.
15954
15955 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
15956
15957         PR rtl-optimization/63348
15958         * emit-rtl.c (try_split): Do not emit extra barrier.
15959
15960 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
15961
15962         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
15963         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
15964         new predicates.
15965         (aarch64_<sur>shll2_n<mode>): Likewise.
15966         (aarch64_<sur>shr_n<mode>): Likewise.
15967         (aarch64_<sur>sra_n<mode>: Likewise.
15968         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
15969         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
15970         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
15971         * config/aarch64/iterators.md (ve_mode): New.
15972         (offsetlr): Remap to infix text for use in new predicates.
15973         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
15974         (aarch64_simd_shift_imm_hi): Likewise.
15975         (aarch64_simd_shift_imm_si): Likewise.
15976         (aarch64_simd_shift_imm_di): Likewise.
15977         (aarch64_simd_shift_imm_offset_qi): Likewise.
15978         (aarch64_simd_shift_imm_offset_hi): Likewise.
15979         (aarch64_simd_shift_imm_offset_si): Likewise.
15980         (aarch64_simd_shift_imm_offset_di): Likewise.
15981         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
15982         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
15983         (aarch64_simd_shift_imm_bitsize_si): Likewise.
15984         (aarch64_simd_shift_imm_bitsize_di): Likewise.
15985
15986 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
15987
15988         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
15989         new created BB as the intersection of live-in from "old_dest" and
15990         live-out from "bb".
15991
15992 2014-09-25  Felix Yang  <felix.yang@huawei.com>
15993
15994         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
15995         * genautomata.c (merge_states): Ditto.
15996
15997 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
15998
15999         PR target/62218
16000         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
16001         in instruction sequence.
16002
16003 2014-09-25  Nick Clifton  <nickc@redhat.com>
16004
16005         PR target/62218
16006         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
16007         in instruction sequence.
16008
16009 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16010
16011         PR target/63335
16012         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
16013         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
16014
16015 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16016             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16017             Anna Tikhonova  <anna.tikhonova@intel.com>
16018             Ilya Tocar  <ilya.tocar@intel.com>
16019             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16020             Ilya Verbin  <ilya.verbin@intel.com>
16021             Kirill Yukhin  <kirill.yukhin@intel.com>
16022             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16023
16024         * config/i386/sse.md
16025         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
16026         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
16027         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
16028         (define_expand "<avx512>_perm<mode>_mask"): ... this.
16029         Use VI8F_256_512 mode iterator.
16030         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
16031         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
16032
16033 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16034             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16035             Anna Tikhonova  <anna.tikhonova@intel.com>
16036             Ilya Tocar  <ilya.tocar@intel.com>
16037             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16038             Ilya Verbin  <ilya.verbin@intel.com>
16039             Kirill Yukhin  <kirill.yukhin@intel.com>
16040             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16041
16042         * config/i386/sse.md
16043         (define_insn "avx_movshdup256<mask_name>"): Add masking.
16044         (define_insn "sse3_movshdup<mask_name>"): Ditto.
16045         (define_insn "avx_movsldup256<mask_name>"): Ditto.
16046         (define_insn "sse3_movsldup<mask_name>"): Ditto.
16047         (define_insn "vec_dupv2df<mask_name>"): Ditto.
16048         (define_insn "*vec_concatv2df"): Add EVEX version.
16049
16050 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16051             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16052             Anna Tikhonova  <anna.tikhonova@intel.com>
16053             Ilya Tocar  <ilya.tocar@intel.com>
16054             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16055             Ilya Verbin  <ilya.verbin@intel.com>
16056             Kirill Yukhin  <kirill.yukhin@intel.com>
16057             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16058
16059         * config/i386/sse.md
16060         (define_insn "vec_set<mode>_0"): Add EVEX version.
16061
16062 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16063             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16064             Anna Tikhonova  <anna.tikhonova@intel.com>
16065             Ilya Tocar  <ilya.tocar@intel.com>
16066             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16067             Ilya Verbin  <ilya.verbin@intel.com>
16068             Kirill Yukhin  <kirill.yukhin@intel.com>
16069             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16070
16071         * config/i386/sse.md
16072         (define_insn
16073         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
16074         New.
16075         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
16076         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
16077         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
16078         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
16079         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
16080         (define_expand "sse2_cvtpd2ps_mask): New.
16081         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
16082         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
16083
16084 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16085             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16086             Anna Tikhonova  <anna.tikhonova@intel.com>
16087             Ilya Tocar  <ilya.tocar@intel.com>
16088             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16089             Ilya Verbin  <ilya.verbin@intel.com>
16090             Kirill Yukhin  <kirill.yukhin@intel.com>
16091             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16092
16093         * config/i386/i386.c
16094         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
16095         (ufix_notruncv8dfv8si2_mask_round): ... this.
16096         * config/i386/sse.md
16097         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
16098         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
16099         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
16100         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
16101         (define_expand "sse2_cvtpd2dq"): Delete.
16102         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
16103         make 2nd operand const0 vector.
16104         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
16105         Delete.
16106         (define_mode_attr pd2udqsuff): New.
16107         (define_insn
16108         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
16109         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
16110         (define_insn "*avx_cvttpd2dq256_2"): Delete.
16111         (define_expand "sse2_cvttpd2dq"): Ditto.
16112         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
16113         make 2nd operand const0 vector.
16114
16115 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
16116
16117         PR tree-optimization/63341
16118         * tree-vectorizer.h (vect_create_data_ref_ptr,
16119         vect_create_addr_base_for_vector_ref): Add another tree argument
16120         defaulting to NULL_TREE.
16121         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
16122         argument, pass it down to vect_create_addr_base_for_vector_ref.
16123         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
16124         add that to base_offset too if non-NULL.
16125         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
16126         for dr_explicit_realign_optimized set it to vector byte size
16127         - 1 instead of setting offset, pass byte_offset down to
16128         vect_create_data_ref_ptr.
16129
16130 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16131
16132         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
16133         forgotten debug output; canonicalize querries more wtih LTO.
16134
16135 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16136
16137         * cgraph.h (class ipa_polymorphic_call_context): Move here from
16138         ipa-utils.h; add stream_int and stream_out methods.
16139         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
16140         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
16141         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
16142         add CONTEXT.
16143         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16144         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16145         ipa_polymorphic_call_context::clear_speculation,
16146         ipa_polymorphic_call_context::clear_outer_type): Move here from
16147         ipa-utils.h
16148         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
16149         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16150         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16151         ipa_polymorphic_call_context::clear_speculation,
16152         ipa_polymorphic_call_context::clear_outer_type): Likewise.
16153         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
16154         streamer-hooks.h
16155         (ipa_polymorphic_call_context::stream_out): New method.
16156         (ipa_polymorphic_call_context::stream_in): New method.
16157         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
16158         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
16159         OUTER_TYPE.
16160         (ipa_analyze_call_uses): Simplify.
16161         (update_indirect_edges_after_inlining): Do not care about outer_type.
16162         (ipa_write_indirect_edge_info): Update.
16163         (ipa_write_indirect_edge_info): Likewise.
16164         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
16165         (dump_edge_flags): Break out from ...
16166         (cgraph_node::dump): ... here; dump indirect edges.
16167
16168 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16169
16170         * ipa-utils.h (polymorphic_call_context): Add
16171         metdhos dump, debug and clear_outer_type.
16172         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16173         (ipa_polymorphic_call_context::clear_outer_type): New method.
16174         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
16175         * ipa-devirt.c (types_odr_comparable): New function.
16176         (types_must_be_same_for_odr): New function.
16177         (odr_subtypes_equivalent_p): Simplify.
16178         (possible_placement_new): Break out from ...
16179         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
16180         be more cuatious about returning false in cases the context may be
16181         valid in derived type or via placement new.
16182         (contains_type_p): Clear maybe_derived_type
16183         (ipa_polymorphic_call_context::dump): New method.
16184         (ipa_polymorphic_call_context::debug): New method.
16185         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
16186         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
16187         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16188         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
16189         to suceed on all valid cases; remove confused sanity check.
16190         (dump_possible_polymorphic_call_targets): Simplify.
16191
16192 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
16193
16194         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
16195         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
16196         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
16197         varpool.c: Rename all instances of DECL_ABSTRACT to
16198         DECL_ABSTRACT_P.
16199
16200 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16201
16202         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
16203         special handling for stores whose SET_SRC is an UNSPEC (such as
16204         UNSPEC_STVE).
16205
16206 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
16207
16208         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
16209         !REG_P (src) to release more instruction sink opportunities.
16210
16211 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16212
16213         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
16214         move costs for 128-bit types.
16215
16216 2014-09-24  Martin Jambor  <mjambor@suse.cz>
16217
16218         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
16219         when duplicating a PASS_THROUGH jump function when creating a
16220         speculative edge.
16221
16222 2014-09-24  Marek Polacek  <polacek@redhat.com>
16223
16224         PR c/61405
16225         PR c/53874
16226         * asan.c (maybe_instrument_call): Add default case.
16227         * ipa-pure-const.c (special_builtin_state): Likewise.
16228         * predict.c (expr_expected_value_1): Likewise.
16229         * lto-streamer-out.c (write_symbol): Initialize variable.
16230
16231 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16232
16233         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
16234         the lane.
16235         (vmuld_laneq_f64): Likewise.
16236         (vmuls_lane_f32): Likewise.
16237         (vmuls_laneq_f32): Likewise.
16238
16239 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
16240
16241         PR bootstrap/63235
16242         * varpool.c (varpool_node::add): Pass decl attributes
16243         to lookup_attribute.
16244
16245 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
16246
16247         PR sanitizer/63316
16248         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
16249
16250 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16251
16252         PR tree-optimization/63266
16253         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
16254         marker for unknown byte value.
16255         (MARKER_MASK): New macro.
16256         (MARKER_BYTE_UNKNOWN): New macro.
16257         (HEAD_MARKER): New macro.
16258         (do_shift_rotate): Mark bytes with unknown values due to sign
16259         extension when doing an arithmetic right shift. Replace hardcoded
16260         mask for marker by new MARKER_MASK macro.
16261         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
16262         numbers accordingly.
16263
16264 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16265             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16266             Anna Tikhonova  <anna.tikhonova@intel.com>
16267             Ilya Tocar  <ilya.tocar@intel.com>
16268             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16269             Ilya Verbin  <ilya.verbin@intel.com>
16270             Kirill Yukhin  <kirill.yukhin@intel.com>
16271             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16272
16273         * config/i386/sse.md
16274         (define_insn
16275         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
16276         Add masking.
16277         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
16278         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
16279
16280 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16281             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16282             Anna Tikhonova  <anna.tikhonova@intel.com>
16283             Ilya Tocar  <ilya.tocar@intel.com>
16284             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16285             Ilya Verbin  <ilya.verbin@intel.com>
16286             Kirill Yukhin  <kirill.yukhin@intel.com>
16287             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16288
16289         * config/i386/sse.md
16290         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
16291         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
16292         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
16293         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
16294         (define_expand "avx512vl_pshuflw_mask"): New.
16295         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
16296         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
16297         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
16298         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
16299         (define_expand "avx512vl_pshufhw_mask"): New.
16300         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
16301
16302 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16303             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16304             Anna Tikhonova  <anna.tikhonova@intel.com>
16305             Ilya Tocar  <ilya.tocar@intel.com>
16306             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16307             Ilya Verbin  <ilya.verbin@intel.com>
16308             Kirill Yukhin  <kirill.yukhin@intel.com>
16309             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16310
16311         * config/i386/i386.c
16312         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
16313         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
16314         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
16315         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
16316         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
16317         * config/i386/sse.md
16318         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
16319         (define_insn
16320         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
16321         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
16322         (define_insn
16323         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16324         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16325         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16326         (define_expand "avx512vl_pshufd_mask"): New.
16327         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16328
16329 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16330             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16331             Anna Tikhonova  <anna.tikhonova@intel.com>
16332             Ilya Tocar  <ilya.tocar@intel.com>
16333             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16334             Ilya Verbin  <ilya.verbin@intel.com>
16335             Kirill Yukhin  <kirill.yukhin@intel.com>
16336             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16337
16338         * config/i386/i386.c
16339         (CODE_FOR_avx2_extracti128): Rename to ...
16340         (CODE_FOR_avx_vextractf128v4di): this.
16341         (CODE_FOR_avx2_inserti128): Rename to ...
16342         (CODE_FOR_avx_vinsertf128v4di): this.
16343         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16344         CODE_FOR_avx_vextractf128v4di.
16345         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16346         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16347         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16348         CODE_FOR_avx512vl_vinsertv8si.
16349         * config/i386/sse.md
16350         (define_expand
16351         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16352         AVX512_VEC mode iterator.
16353         (define_insn
16354         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16355         Ditto.
16356         (define_expand
16357         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16358         AVX512_VEC_2 mode iterator.
16359         (define_insn "vec_set_lo_<mode><mask_name>"): New.
16360         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16361         (define_expand "avx512vl_vinsert<mode>"): Ditto.
16362         (define_insn "avx2_vec_set_lo_v4di"): Delete.
16363         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16364         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16365         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16366         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16367         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16368         (define_expand "avx2_extracti128"): Delete.
16369         (define_expand "avx2_inserti128"): Ditto.
16370
16371 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16372             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16373             Anna Tikhonova  <anna.tikhonova@intel.com>
16374             Ilya Tocar  <ilya.tocar@intel.com>
16375             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16376             Ilya Verbin  <ilya.verbin@intel.com>
16377             Kirill Yukhin  <kirill.yukhin@intel.com>
16378             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16379
16380         * config/i386/sse.md
16381         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16382         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16383         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16384         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16385         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16386         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16387         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16388         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16389         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16390         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16391         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16392         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16393         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16394
16395 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16396
16397         PR rtl-optimization/63210
16398         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
16399         HARD_REGNO is not available for CONFLICT_A.
16400
16401 2014-09-23  Andi Kleen  <ak@linux.intel.com>
16402
16403         * cgraph.h (symtab_node): Add no_reorder attribute.
16404         (symbol_table::output_asm_statements): Remove.
16405         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
16406         (cgraph_node::create_version_clone): Dito.
16407         (symbol_table::output_asm_statements): Remove.
16408         * trans-mem.c (ipa_tm_create_version_alias): Dito.
16409         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
16410         (output_in_order): Add no_reorder flag. Only handle no_reorder
16411         nodes when set.
16412         (symbol_table::compile): Add separate pass for no_reorder nodes.
16413         (process_common_attributes): Set no_reorder flag in symtab node.
16414         Add node argument.
16415         (process_function_and_variable_attributes): Pass symtab nodes to
16416         process_common_attributes.
16417         * doc/extend.texi (no_reorder): Document no_reorder attribute.
16418         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
16419         (lto_output_varpool_node): Dito.
16420         (input_overwrite_node): Dito.
16421         (input_varpool_node): Dito.
16422         * varpool.c (varpool_node::add): Set no_reorder attribute.
16423         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
16424         (symbol_table::output_variables): Dito.
16425         * symtab.c (symtab_node::dump_base): Print no_reorder.
16426
16427 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
16428
16429         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
16430         be INVALID_REGNUM.
16431
16432 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
16433
16434         * configure: Regenerate.
16435
16436 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
16437
16438         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
16439         when result_mode == shift_mode.
16440
16441 2014-09-23  Kostya Serebryany  <kcc@google.com>
16442
16443         Update to match the changed asan API.
16444         * asan.c (asan_global_struct): Update the __asan_global definition
16445         to match the new API.
16446         (asan_add_global): Ditto.
16447         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
16448         to __asan_init_v4.
16449
16450 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16451
16452         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
16453         refine the constraints used on 32/64-bit floating point moves.
16454         (f32_av): Likewise.
16455         (f64_vsx): Likewise.
16456         (f64_dm): Likewise.
16457         (f64_av): Likewise.
16458         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
16459         (BOOL_REGS_OP1): Likewise.
16460         (BOOL_REGS_OP2): Likewise.
16461         (BOOL_REGS_UNARY): Likewise.
16462         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
16463         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
16464         for moves involving VSX registers.  Do not use constraints that
16465         target VSX registers for decimal types.
16466         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
16467         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
16468
16469 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
16470
16471         * tree.h (int_bit_position): Turn into inline function;
16472         implement using wide int.
16473         * tree.c (int_bit_position): Remove.
16474
16475 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
16476
16477         PR bootstrap/63280
16478         * target-globals.c (target_globals::~target_globals): Fix location
16479         of ira_int destruction.
16480
16481 2014-09-23  Renlin Li  <renlin.li@arm.com>
16482
16483         * config/aarch64/aarch64.md (return): New.
16484         (simple_return): Likewise.
16485         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
16486         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
16487
16488 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
16489
16490         * common/config/aarch64/aarch64-common.c:
16491         (default_options aarch_option_optimization_table):
16492         Default to -fsched-pressure.
16493
16494 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
16495
16496         * cfgcleanup.c (try_optimize_cfg): Do not remove label
16497         with LABEL_PRESERVE_P flag set.
16498
16499 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16500             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16501             Anna Tikhonova  <anna.tikhonova@intel.com>
16502             Ilya Tocar  <ilya.tocar@intel.com>
16503             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16504             Ilya Verbin  <ilya.verbin@intel.com>
16505             Kirill Yukhin  <kirill.yukhin@intel.com>
16506             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16507
16508         * config/i386/sse.md
16509         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
16510         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
16511         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
16512         (define_insn "sse2_shufpd_v2df_mask"): New.
16513
16514 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16515             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16516             Anna Tikhonova  <anna.tikhonova@intel.com>
16517             Ilya Tocar  <ilya.tocar@intel.com>
16518             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16519             Ilya Verbin  <ilya.verbin@intel.com>
16520             Kirill Yukhin  <kirill.yukhin@intel.com>
16521             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16522
16523         * config/i386/sse.md
16524         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
16525         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
16526         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
16527         (define_insn "sse_shufps_v4sf_mask"): New.
16528
16529 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16530             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16531             Anna Tikhonova  <anna.tikhonova@intel.com>
16532             Ilya Tocar  <ilya.tocar@intel.com>
16533             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16534             Ilya Verbin  <ilya.verbin@intel.com>
16535             Kirill Yukhin  <kirill.yukhin@intel.com>
16536             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16537
16538         * config/i386/sse.md
16539         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
16540         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
16541         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
16542         (define_insn "unpcklps128_mask"): New.
16543
16544 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16545             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16546             Anna Tikhonova  <anna.tikhonova@intel.com>
16547             Ilya Tocar  <ilya.tocar@intel.com>
16548             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16549             Ilya Verbin  <ilya.verbin@intel.com>
16550             Kirill Yukhin  <kirill.yukhin@intel.com>
16551             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16552
16553         * config/i386/sse.md
16554         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
16555         (define_insn "avx512vl_unpckhpd128_mask"): New.
16556         (define_expand "avx_movddup256<mask_name>"): Add masking.
16557         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
16558         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
16559         (define_insn "avx512vl_unpcklpd128_mask"): New.
16560
16561 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
16562
16563         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16564         * doc/tm.texi: Regenerate.
16565         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
16566         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16567         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16568         Remove.
16569         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16570         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16571         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16572         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16573         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16574         Remove.
16575         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16576         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16577         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16578         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16579         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16580         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16581         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16582         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16583         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16584         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16585         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16586         Remove.
16587
16588 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
16589
16590         * tree-ssa-ccp.c (prop_value_d): Rename to ...
16591         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
16592         * ipa-prop.c (struct type_change_info): Rename to ...
16593         (prop_type_change_info): ... this; update uses.
16594         * ggc-page.c (globals): Rename to ...
16595         (static struct ggc_globals): ... this; update uses.
16596         * tree-ssa-loop-im.c (mem_ref): Rename to ...
16597         (im_mem_ref): ... this; update uses.
16598         * ggc-common.c (loc_descriptor): Rename to ...
16599         (ggc_loc_descriptor): ... this; update uses.
16600         * lra-eliminations.c (elim_table): Rename to ...
16601         (lra_elim_table): ... this; update uses.
16602         * bitmap.c (output_info): Rename to ...
16603         (bitmap_output_info): ... this; update uses.
16604         * gcse.c (expr): Rename to ...
16605         (gcse_expr) ... this; update uses.
16606         (occr): Rename to ...
16607         (gcse_occr): .. this; update uses.
16608         * tree-ssa-copy.c (prop_value_d): Rename to ...
16609         (prop_value_t): ... this.
16610         * predict.c (block_info_def): Rename to ...
16611         (block_info): ... this; update uses.
16612         (edge_info_def): Rename to ...
16613         (edge_info): ... this; update uses.
16614         * profile.c (bb_info): Rename to ...
16615         (bb_profile_info): ... this; update uses.
16616         * alloc-pool.c (output_info): Rename to ...
16617         (pool_output_info): ... this; update uses.
16618         * ipa-cp.c (topo_info): Rename to ..
16619         (ipa_topo_info): ... this; update uses.
16620         * tree-nrv.c (nrv_data): Rename to ...
16621         (nrv_data_t): ... this; update uses.
16622         * ipa-split.c (bb_info): Rename to ...
16623         (split_bb_info): ... this one.
16624         * profile.h (edge_info): Rename to ...
16625         (edge_profile_info): ... this one; update uses.
16626         * dse.c (bb_info): Rename to ...
16627         (dse_bb_info): ... this one; update uses.
16628         * cprop.c (occr): Rename to ...
16629         (cprop_occr): ... this one; update uses.
16630         (expr): Rename to ...
16631         (cprop_expr): ... this one; update uses.
16632
16633 2014-09-22  Jason Merrill  <jason@redhat.com>
16634
16635         * Makefile.in (check-parallel-%): Add @.
16636
16637 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16638
16639         * config/aarch64/geniterators.sh: New.
16640         * config/aarch64/iterators.md (VDQF_DF): New.
16641         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
16642         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
16643
16644 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
16645
16646         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
16647         -lnosys when -msim absent.
16648
16649 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
16650
16651         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
16652
16653 2014-09-22  Richard Biener  <rguenther@suse.de>
16654
16655         * gimplify.c (gimplify_init_constructor): Do not leave
16656         non-GIMPLE vector constructors around.
16657         * tree-cfg.c (verify_gimple_assign_single): Verify that
16658         CONSTRUCTORs have gimple elements.
16659
16660 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
16661
16662         PR debug/63328
16663         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
16664         insert a debug source bind stmt setting DEBUG_EXPR_DECL
16665         instead of a normal gimple assignment stmt.
16666
16667 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16668
16669         * config/bfin/bfin.md: Fix use of constraints in define_split.
16670
16671 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16672
16673         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
16674         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
16675
16676 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16677
16678         * hard-reg-set.h: Include hash-table.h.
16679         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
16680         field.
16681         * target-globals.c (target_globals::~target_globals): Call
16682         hard_regs->finalize.
16683         * rtl.h (subreg_shape): New structure.
16684         (shape_of_subreg): New function.
16685         (simplifiable_subregs): Declare.
16686         * reginfo.c (simplifiable_subreg): New structure.
16687         (simplifiable_subregs_hasher): Likewise.
16688         (simplifiable_subregs): New function.
16689         (invalid_mode_changes): Delete.
16690         (alid_mode_changes, valid_mode_changes_obstack): New variables.
16691         (record_subregs_of_mode): Remove subregs_of_mode parameter.
16692         Record valid mode changes in valid_mode_changes.
16693         (find_subregs_of_mode): Remove subregs_of_mode parameter.
16694         Update calls to record_subregs_of_mode.
16695         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
16696         handling.  Initialize new variables.  Update call to
16697         find_subregs_of_mode.
16698         (invalid_mode_change_p): Check new variables instead of
16699         invalid_mode_changes.
16700         (finish_subregs_of_mode): Finalize new variables instead of
16701         invalid_mode_changes.
16702         (target_hard_regs::finalize): New function.
16703         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
16704         even when CLASS_CANNOT_CHANGE_MODE is undefined.
16705
16706 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16707
16708         * combine.c (subst): Use simplify_subreg_regno rather than
16709         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
16710
16711 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16712
16713         * rtl.h (subreg_info): Expand commentary
16714         * rtlanal.c (subreg_get_info): Likewise.
16715
16716 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16717
16718         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
16719         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
16720         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
16721
16722 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16723
16724         * config/arm/arm.c: #include "tm-constrs.h"
16725         (thumb1_size_rtx_costs): Adjust rtx costs.
16726
16727 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
16728
16729         * configure.ac (target_header_dir): Move block defining
16730         this to before the block setting inhibit_libc.
16731         (inhibit_libc): When considering $with_headers, just
16732         check it it's explicitly "no".  If not, also check if
16733         $target_header_dir/stdio.h is present.  If not, set
16734         inhibit_libc=true.
16735         * configure: Regenerate.
16736
16737 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
16738
16739         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
16740
16741 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16742
16743         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
16744         insn for divides by integer powers of two.
16745         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
16746         (mod<mode>3): Fix formatting.
16747         (three anonymous define_insn and two define_split): Delete.
16748
16749 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16750
16751         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
16752         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
16753         (floatdisf2_internal2): Ditto.
16754         (ashrdi3_no_power): Ditto.  Fix formatting.
16755
16756 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16757
16758         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16759         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
16760         Tidy.
16761
16762 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16763
16764         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
16765         constant, use addsi3 directly.
16766         (three anonymous define_insn, two define_split): Delete.
16767         (sub<mode>3): Move.  Do not allow constant second operand.
16768         Generate different insn for constant first operand.
16769         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
16770         (subf<mode>3_imm): New.
16771         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
16772         (*plus_ltu<mode>): Only handle registers.
16773         (*plus_ltu<mode>_1): New.  Handle integer third operand.
16774         (*plus_gtu<mode>): Only handle registers.
16775         (*plus_gtu<mode>_1): New.  Handle integer third operand.
16776
16777 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16778
16779         * config/rs6000/rs6000.md (iorxor): New code_iterator.
16780         (iorxor): New code_attr.
16781         (IORXOR): New code_attr.
16782         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
16783         (ior<mode>3, xor<mode>3): Delete.
16784         (<iorxor><mode>3): New.
16785         (splitter for "big" integer ior, xor): New.
16786         (*bool<mode>3): Move.  Also handle AND.
16787         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
16788         (splitter for "big" integer ior, xor): Delete.
16789
16790 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16791
16792         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
16793         (two anonymous define_insn and two define_split): Delete.
16794         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
16795
16796 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16797
16798         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
16799         (two anonymous define_insn and two define_split): Delete.
16800         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
16801
16802 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16803
16804         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
16805
16806 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16807
16808         * config/rs6000/predicates.md (ca_operand): Allow subregs.
16809         (input_operand): Do not allow ca_operand.
16810         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
16811         carry bit, allow SImode and Pmode.
16812         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
16813
16814 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
16815
16816         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
16817         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
16818         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
16819         (*call_rex64_ms_sysv): Remove.
16820         (*call_value_rex64_ms_sysv): Ditto.
16821         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
16822
16823 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
16824
16825         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
16826         operand 3 to "CnL".
16827
16828 2014-09-20  Andreas Schwab  <schwab@suse.de>
16829
16830         * config/ia64/ia64.md: Remove constraints from define_split
16831         patterns.
16832
16833 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16834
16835         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16836         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16837         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16838         (get_dynamic_type): Remove.
16839         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16840         (clear_speculation): Bring to ipa-deivrt.h
16841         (get_class_context): Rename to ...
16842         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16843         (contains_type_p): Update.
16844         (get_dynamic_type): Rename to ...
16845         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16846         (possible_polymorphic_call_targets): UPdate.
16847         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16848         * ipa-prop.c (ipa_analyze_call_uses): Update.
16849
16850 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16851
16852         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
16853         privatize dynamic TLS variables.
16854
16855 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16856
16857         * diagnostic.c (warning_n): New function.
16858         * diagnostic-core.h (warning_n): Declare.
16859         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
16860         output dynamic counts when available.
16861
16862 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16863
16864         PR tree-optimization/63255
16865         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
16866         issue in setting body_removed flag.
16867
16868 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16869
16870         PR c++/61825
16871         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
16872         that visibility change is possible
16873         (handle_weakref_attribute): Likewise.
16874         * cgraph.h (symtab_node): Add method get_create and
16875         field refuse_visibility_changes.
16876         (symtab_node::get_create): New method.
16877         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
16878         * varasm.c (mark_weak): Verify that visibility change is
16879         possible.
16880
16881 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
16882
16883         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
16884         for base_reg_operand to be common between LO_SUM and PLUS.
16885         (fusion_gpr_mem_combo): New predicate to match a fused address
16886         that combines the addis and memory offset address.
16887
16888         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
16889         calling signature.
16890         (emit_fusion_gpr_load): Likewise.
16891
16892         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
16893         signature to pass each argument separately, rather than
16894         using an operands array.  Rewrite the insns found by peephole2 to
16895         be a single insn, rather than hoping the insns will still be
16896         together when the peephole pass is done.  Drop being called via a
16897         normal peephole.
16898         (emit_fusion_gpr_load): Change calling signature to be called from
16899         the fusion_gpr_load_<mode> insns with a combined memory address
16900         instead of the peephole pass passing the addis and offset
16901         separately.
16902
16903         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
16904         fusion.
16905         (power8 fusion peephole): Drop support for doing power8 via a
16906         normal peephole that was created by the peephole2 pass.
16907         (power8 fusion peephole2): Create a new insn with the fused
16908         address, so that the fused operation is kept together after
16909         register allocation is done.
16910         (fusion_gpr_load_<mode>): Likewise.
16911
16912 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16913
16914         PR lto/63286
16915         * tree.c (need_assembler_name_p): Do not mangle variadic types.
16916
16917 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
16918
16919         * recog.c (scratch_operand): Do not simply allow all hard registers:
16920         only allow those that are allocatable.
16921
16922 2014-09-19  Felix Yang  <felix.yang@huawei.com>
16923
16924         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
16925         comments and fix spacing to conform to coding style.
16926
16927 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16928
16929         * genrecog.c (validate_pattern): Allow empty constraints in
16930         a match_scratch.
16931
16932 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
16933
16934         * dwarf2out.c (decl_ultimate_origin): Update comment.
16935         * tree.c (block_ultimate_origin): Same.
16936
16937 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16938
16939         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
16940         Update GCC version name to GCC 5.
16941         (rs6000_function_arg_boundary): Likewise.
16942         (rs6000_function_arg): Likewise.
16943
16944 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16945
16946         * config/sh/sh.md: Fix use of constraints in define_split.
16947
16948 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
16949
16950         PR ipa/61998
16951         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
16952
16953 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16954
16955         * doc/md.texi (Modifiers): Consistently use "read/write"
16956         nomenclature rather than "input/output".
16957         * genrecog.c (constraints_supported_in_insn_p): New.
16958         (validate_pattern): If needed, also check constraints on
16959         MATCH_SCRATCH operands.
16960         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
16961         operands with no '=' or '+' modifier.
16962
16963 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16964
16965         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
16966         scratch register as written.
16967
16968 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16969
16970         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
16971         assignment.
16972
16973 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16974
16975         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
16976         expanders.
16977
16978 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16979
16980         PR target/62662
16981         * config/s390/s390.c (s390_emit_epilogue): When doing the return
16982         address load optimization force s390_optimize_prologue to leave it
16983         that way.  Only do the optimization if we already decided to push
16984         r14 into a stack slot.
16985
16986 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
16987
16988         * asan.c (build_check_stmt): Alignment arg was added.
16989         (asan_expand_check_ifn): Optimization for alignment >= 8.
16990
16991 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16992
16993         * config/i386/vxworksae.h: Remove obsolete definitions.
16994         (STACK_CHECK_PROTECT): Define.
16995         * config/i386/vx-common.h: Remove.  Merge contents within
16996         config/i386/vxworks.h.
16997         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
16998         i386/vx-common.h.
16999
17000 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17001
17002         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
17003         * config/rs6000/t-vxworksmils: New file.
17004         * config/rs6000/vxworksmils.h: New file.
17005
17006 2014-09-19  Olivier Hainque  <hainque@adacore.com>
17007
17008         * varasm.c (default_section_type_flags): Flag .persistent.bss
17009         sections as SECTION_BSS.
17010
17011 2014-09-19  Nick Clifton  <nickc@redhat.com>
17012
17013         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
17014         pop'ed registers so that DCE does not eliminate them.
17015
17016 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
17017
17018         PR lto/63298
17019         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
17020
17021 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
17022
17023         * system.h (LIBGCC2_TF_CEXT): Poison.
17024         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
17025         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
17026         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
17027         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
17028         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
17029         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
17030         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
17031         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
17032         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
17033
17034 2014-09-19  Kito Cheng  <kito@0xlab.org>
17035
17036         * except.h: Fix header guard.
17037         * addresses.h: Add missing header guard.
17038         * cfghooks.h: Likewise.
17039         * collect-utils.h: Likewise.
17040         * collect2-aix.h: Likewise.
17041         * conditions.h: Likewise.
17042         * cselib.h: Likewise.
17043         * dwarf2asm.h: Likewise.
17044         * graphds.h: Likewise.
17045         * graphite-scop-detection.h: Likewise.
17046         * gsyms.h: Likewise.
17047         * hw-doloop.h: Likewise.
17048         * incpath.h: Likewise.
17049         * ipa-inline.h: Likewise.
17050         * ipa-ref.h: Likewise.
17051         * ira-int.h: Likewise.
17052         * ira.h: Likewise.
17053         * lra-int.h: Likewise.
17054         * lra.h: Likewise.
17055         * lto-section-names.h: Likewise.
17056         * read-md.h: Likewise.
17057         * reload.h: Likewise.
17058         * rtl-error.h: Likewise.
17059         * sdbout.h: Likewise.
17060         * targhooks.h: Likewise.
17061         * tree-affine.h: Likewise.
17062         * xcoff.h: Likewise.
17063         * xcoffout.h: Likewise.
17064
17065 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17066
17067         PR debug/63285
17068         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
17069         if advance != 0.
17070
17071 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17072
17073         PR target/61360
17074         * lra.c (lra): Call recog_init.
17075
17076 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
17077
17078         PR c++/62017
17079         * asan.c (transform_statements): Don't instrument clobber statements.
17080
17081 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17082
17083         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
17084         to neon_load1_1reg<q>.
17085
17086 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
17087
17088         PR debug/63284
17089         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
17090         if there are only debug stmts after the noreturn call, instead
17091         remove the debug stmts.
17092
17093 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
17094
17095         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
17096         (odr_types_equivalent_p): Use pair hash.
17097         (odr_subtypes_equivalent_p): Likewise, do structural compare
17098         on ODR types that may be mismatched.
17099         (warn_odr): Support warning when only one field is given.
17100         (odr_types_equivalent_p): Strenghten comparsions made;
17101         support VOIDtype.
17102         (add_type_duplicate): Update VISITED hash set.
17103
17104 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17105
17106         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
17107         Enable selection of 'posix' or no thread model.
17108
17109 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
17110
17111         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
17112         when architecture is older than ARMv7.
17113
17114 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
17115
17116         PR target/61853
17117         * config/pa/pa.c (pa_function_value): Directly handle aggregates
17118         that fit exactly in a word or double word.
17119
17120 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
17121
17122         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
17123         zmm/k regs support.
17124
17125 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17126             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17127             Anna Tikhonova  <anna.tikhonova@intel.com>
17128             Ilya Tocar  <ilya.tocar@intel.com>
17129             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17130             Ilya Verbin  <ilya.verbin@intel.com>
17131             Kirill Yukhin  <kirill.yukhin@intel.com>
17132             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17133
17134         * config/i386/i386.c
17135         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
17136         * config/i386/sse.md
17137         (define_mode_iterator VI48F_256): New.
17138         (define_mode_attr extract_type): Ditto.
17139         (define_mode_attr extract_suf): Ditto.
17140         (define_mode_iterator AVX512_VEC): Ditto.
17141         (define_expand
17142         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
17143         AVX512_VEC.
17144         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
17145         (define_insn
17146         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
17147         Ditto.
17148         (define_mode_attr extract_type_2): Ditto.
17149         (define_mode_attr extract_suf_2): Ditto.
17150         (define_mode_iterator AVX512_VEC_2): Ditto.
17151         (define_expand
17152         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
17153         AVX512_VEC_2 mode iterator.
17154         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17155         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
17156         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17157         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17158         (define_split for V16FI mode): Ditto.
17159         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17160         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17161         (define_split for VI8F_256 mode): Ditto.
17162         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17163         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17164         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17165         (define_split for VI4F_256 mode): Ditto.
17166         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
17167         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17168         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17169         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
17170         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
17171         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
17172         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
17173         Update `type' attribute, remove explicit `memory' attribute calculation.
17174
17175 2014-09-16  Kito Cheng  <kito@0xlab.org>
17176
17177         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
17178         ira_spilled_reg_stack_slots_num if using lra.
17179         (do_reload): Remove release ira_spilled_reg_stack_slots part.
17180         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
17181         make sure not using lra.
17182         (ira_reuse_stack_slot): Likewise.
17183         (ira_mark_new_stack_slot): Likewise.
17184
17185 2014-09-15  Andi Kleen  <ak@linux.intel.com>
17186
17187         * function.c (allocate_struct_function): Force
17188         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
17189         profiling is disabled.
17190
17191 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17192
17193         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
17194         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
17195         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
17196         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
17197         macro with statically checked member functions.
17198         * rtl.h (rtx_insn::deleted): New method.
17199         (rtx_insn::set_deleted): Likewise.
17200         (rtx_insn::set_undeleted): Likewise.
17201         (INSN_DELETED_P): Remove.
17202
17203 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17204
17205         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
17206         result of emit_jump_insn_before to a new variable.
17207         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
17208         (mark_jump_label_1): Likewise.
17209         (mark_jump_label_asm): Likewise.
17210         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
17211         * rtl.h (mark_jump_label): Adjust.
17212
17213 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
17214
17215         * Makefile.in (dg_target_exps): Remove.
17216         (check_gcc_parallelize): Change to just an upper bound number.
17217         (check-%-subtargets): Always print the non-parallelized goals.
17218         (check_p_vars, check_p_comma, check_p_subwork): Remove.
17219         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
17220         check_p_numbers3, check_p_numbers4, check_p_numbers5,
17221         check_p_numbers6): New variables.
17222         (check_p_numbers): Set to sequence from 1 to 9999.
17223         (check_p_subdirs): Set to sequence from 1 to minimum of
17224         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
17225         or 128.
17226         (check-%, check-parallel-%): Rewritten so that for parallelized
17227         testing each job runs all the *.exp files, with
17228         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
17229
17230 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17231
17232         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
17233         rtx to rtx_insn *.
17234         (arc_sets_cc_p): Likewise.
17235         * config/arc/arc.c (arc_print_operand): Use methods of
17236         "final_sequence" for clarity, and to enable strengthening of
17237         locals "jump" and "delay" from rtx to rtx_insn *.
17238         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
17239         rtx_insn *; use method of rtx_sequence for typesafety.
17240         (arc_get_insn_variants): Use insn method of rtx_sequence for
17241         typesafety.
17242         (arc_pad_return): Likewise.
17243         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
17244         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
17245         dyn_cast to rtx_sequence *, using insn method for typesafety.
17246         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
17247         rtx_sequence * and use insn method when invoking get_attr_length.
17248         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
17249         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
17250         rtx_sequence *, introducing a local "seq", using its insn method
17251         from typesafety and clarity.
17252         (add_sched_insns_for_speculation): Strengthen local "next" from
17253         rtx to rtx_insn *.
17254         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
17255         (predicate_insn): Likewise.
17256         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
17257         second param.
17258         * config/cris/cris.c (cris_notice_update_cc): Likewise.
17259         * config/epiphany/epiphany-protos.h
17260         (extern void epiphany_insert_mode_switch_use): Likewise for param
17261         "insn".
17262         (get_attr_sched_use_fpu): Likewise for param.
17263         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
17264         Likewise for param "insn".
17265         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
17266         param "insn" of "target_insert_mode_switch_use" callback.
17267         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
17268         (frv_issues_to_branch_unit_p): Likewise.
17269         (frv_pack_insn_p): Likewise.
17270         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
17271         const rtx * (i.e. mutable rtx_def * const *) to
17272         rtx_insn * const *.
17273         * config/i386/i386-protos.h (standard_sse_constant_opcode):
17274         Strengthen first param from rtx to rtx_insn *.
17275         (output_fix_trunc): Likewise.
17276         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
17277         (output_fix_trunc): Likewise.
17278         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
17279         local "insn".
17280         (min_insn_size): Likewise for param "insn".
17281         (get_mem_group): Likewise.
17282         (is_cmp): Likewise.
17283         (get_insn_path): Likewise.
17284         (get_insn_group): Likewise.
17285         (count_num_restricted): Likewise.
17286         (fits_dispatch_window): Likewise.
17287         (add_insn_window): Likewise.
17288         (add_to_dispatch_window): Likewise.
17289         (debug_insn_dispatch_info_file): Likewise.
17290         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
17291         first param.
17292         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
17293         "cmp" and local "prev".
17294         (m32c_output_compare): Likewise for param "insn".
17295         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
17296         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
17297         (define_predicate "large_insn_p"): Likewise.
17298         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
17299         param from rtx to rtx_insn *.
17300         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
17301         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
17302         (m68k_sched_attr_size): Likewise.
17303         (sched_get_opxy_mem_type): Likewise for param "insn".
17304         (m68k_sched_attr_op_mem): Likewise.
17305         (sched_mem_operand_p): Likewise.
17306         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
17307         * config/mep/mep.c (mep_multi_slot): Likewise.
17308         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
17309         first param.
17310         (mips_sync_loop_insns): Likewise.
17311         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
17312         method of "final_sequence" for typesafety.
17313         (mips_process_sync_loop): Strengthen param "insn" from rtx to
17314         rtx_insn *.
17315         (mips_output_sync_loop): Likewise.
17316         (mips_sync_loop_insns): Likewise.
17317         (mips_74k_agen_init): Likewise.
17318         (mips_sched_init): Use NULL rather than NULL_RTX when working with
17319         insns.
17320         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
17321         Strengthen param "insn" from rtx to rtx_insn *.
17322         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
17323         local "insn".
17324         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
17325         param.
17326         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17327         "insn".  Use method of rtx_sequence for typesafety.
17328         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17329         rtx_insn *.
17330         (branch_needs_nop_p): Likewise.
17331         (use_skip_p): Likewise.
17332         (pa_insn_refs_are_delayed): Likewise.
17333         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17334         for locals "insn", "ninsn".
17335         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17336         "insn".
17337         (is_cracked_insn): Likewise.
17338         (is_branch_slot_insn): Likewise.
17339         (is_nonpipeline_insn): Likewise.
17340         (insn_terminates_group_p): Likewise.
17341         (insn_must_be_first_in_group): Likewise.
17342         (insn_must_be_last_in_group): Likewise.
17343         (force_new_group): Likewise for param "next_insn".
17344         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17345         "insn".
17346         (s390_sched_score): Likewise.
17347         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17348         (rtx sfunc_uses_reg): Likewise for sole param.
17349         * config/sh/sh.c (sh_print_operand): Use insn method of
17350         final_sequence for typesafety.
17351         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17352         Use insn method of final_sequence for typesafety.
17353         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17354         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17355         for param.
17356         (eligible_for_return_delay): Likewise.
17357         (eligible_for_sibcall_delay): Likewise.
17358         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17359         (eligible_for_return_delay): Likewise.
17360         (eligible_for_sibcall_delay): Likewise.
17361         * config/stormy16/stormy16-protos.h
17362         (xstormy16_output_cbranch_hi): Likewise for final param.
17363         (xstormy16_output_cbranch_si): Likewise.
17364         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17365         (xstormy16_output_cbranch_si): Likewise.
17366         * config/v850/v850-protos.h (notice_update_cc): Likewise.
17367         * config/v850/v850.c (notice_update_cc): Likewise.
17368
17369         * final.c (get_attr_length_1): Strengthen param "insn" and param
17370         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17371         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17372         (get_attr_min_length): Likewise.
17373         (shorten_branches): Likewise for signature of locals "length_fun"
17374         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
17375         from a checked cast and use its methods for clarity and to enable
17376         strengthening local "inner_insn" from rtx to rtx_insn *.
17377         * genattr.c (gen_attr): When writing out the prototypes of the
17378         various generated "get_attr_" functions, strengthen the params of
17379         the non-const functions from rtx to rtx_insn *.
17380         Similarly, strengthen the params of insn_default_length,
17381         insn_min_length, insn_variable_length_p, insn_current_length.
17382         (main): Similarly, strengthen the param of num_delay_slots,
17383         internal_dfa_insn_code, insn_default_latency, bypass_p,
17384         insn_latency, min_issue_delay, print_reservation,
17385         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17386         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
17387         to hook_int_rtx_insn_unreachable.
17388         * genattrtab.c (write_attr_get): When writing out the generated
17389         "get_attr_" functions, strengthen the param "insn" from rtx to
17390         rtx_insn *, eliminating a checked cast.
17391         (make_automaton_attrs): When writing out prototypes of
17392         "internal_dfa_insn_code_", "insn_default_latency_" functions
17393         and the "internal_dfa_insn_code" and "insn_default_latency"
17394         callbacks, strengthen their params from rtx to rtx_insn *
17395         * genautomata.c (output_internal_insn_code_evaluation): When
17396         writing out code, add a checked cast from rtx to rtx_insn * when
17397         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
17398         (output_dfa_insn_code_func): Strengthen param of generated
17399         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
17400         (output_trans_func): Likewise for generated function
17401         "state_transition".
17402         (output_internal_insn_latency_func): When writing out generated
17403         function "internal_insn_latency", rename params from "insn" and
17404         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
17405         locals "insn" and "insn2" as rtx_insn * with checked casts once
17406         we've proven that we're not dealing with const0_rtx.
17407         (output_insn_latency_func):  Strengthen param of generated
17408         function "insn_latency" from rtx to rtx_insn *.
17409         (output_print_reservation_func): Likewise for generated function
17410         "print_reservation".
17411         (output_insn_has_dfa_reservation_p): Likewise for generated
17412         function "insn_has_dfa_reservation_p".
17413         * hooks.c (hook_int_rtx_unreachable): Rename to...
17414         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
17415         from rtx to rtx_insn *.
17416         * hooks.h (hook_int_rtx_unreachable): Likewise.
17417         (extern int hook_int_rtx_insn_unreachable): Likewise.
17418         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
17419         (get_attr_min_length): Likewise.
17420         * recog.c (get_enabled_alternatives): Likewise.
17421         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
17422         * reorg.c (find_end_label): Introduce local rtx "pat" and
17423         strengthen local "insn" from rtx to rtx_insn *.
17424         (redundant_insn): Use insn method of "seq" rather than element for
17425         typesafety; strengthen local "control" from rtx to rtx_insn *.
17426         * resource.c (mark_referenced_resources): Add checked cast to
17427         rtx_insn * within INSN/JUMP_INSN case.
17428         (mark_set_resources): Likewise.
17429         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
17430         rtx to rtx_insn *.
17431
17432 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17433
17434         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
17435         param "label" from rtx to rtx_insn *.
17436         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
17437         and local "op".
17438         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
17439         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
17440         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
17441         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
17442         * final.c (default_label_align_after_barrier_max_skip): Strengthen
17443         param from rtx to rtx_insn *.
17444         (default_loop_align_max_skip): Likewise.
17445         (default_label_align_max_skip): Likewise.
17446         (default_jump_align_max_skip): Likewise.
17447         * target.def (label_align_after_barrier_max_skip): Likewise.
17448         (loop_align_max_skip): Likewise.
17449         (label_align_max_skip): Likewise.
17450         (jump_align_max_skip): Likewise.
17451         * targhooks.h (default_label_align_after_barrier_max_skip):
17452         Likewise.
17453         (default_loop_align_max_skip): Likewise.
17454         (default_label_align_max_skip): Likewise.
17455         (default_jump_align_max_skip): Likewise.
17456
17457 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17458
17459         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
17460         from const_rtx to const rtx_insn *.  Update union members from rtx
17461         to rtx_insn *.
17462         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
17463         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
17464         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
17465         strengthen both params from const_rtx to const rtx_insn *.
17466         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
17467         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
17468         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
17469         rtx_insn *.
17470         * target.def (can_follow_jump): Strengthen both params from
17471         const_rtx to const rtx_insn *, and update default implementation
17472         from hook_bool_const_rtx_const_rtx_true to
17473         hook_bool_const_rtx_insn_const_rtx_insn_true.
17474
17475 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17476
17477         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
17478         "insn" from rtx to rtx_insn *.
17479         * sched-int.h (deps_start_bb): Likewise for 2nd param.
17480
17481 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17482             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17483             Anna Tikhonova  <anna.tikhonova@intel.com>
17484             Ilya Tocar  <ilya.tocar@intel.com>
17485             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17486             Ilya Verbin  <ilya.verbin@intel.com>
17487             Kirill Yukhin  <kirill.yukhin@intel.com>
17488             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17489
17490         * config/i386/sse.md
17491         (define_insn "vcvtph2ps<mask_name>"): Add masking.
17492         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
17493         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
17494         (define_expand "vcvtps2ph_mask"): New.
17495         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
17496         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
17497         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
17498
17499 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17500             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17501             Anna Tikhonova  <anna.tikhonova@intel.com>
17502             Ilya Tocar  <ilya.tocar@intel.com>
17503             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17504             Ilya Verbin  <ilya.verbin@intel.com>
17505             Kirill Yukhin  <kirill.yukhin@intel.com>
17506             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17507
17508         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
17509         New.
17510         (define_mode_iterator VI24_AVX512BW_1): Ditto.
17511         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
17512         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
17513         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
17514         also for TARGET_AVX512VL.
17515         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
17516
17517 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
17518
17519         * doc/install.texi (Options specification): add
17520         --disable-libsanitizer item.
17521
17522 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
17523             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
17524
17525         PR target/61407
17526         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
17527         and above.
17528         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
17529         kernel version check to avoid incrementing it after every major OS X
17530         release.
17531         (darwin_default_min_version): Avoid static memory buffer.
17532
17533 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
17534
17535         * tree.c (need_assembler_name_p): Store C++ type mangling only
17536         for aggregates.
17537
17538 2014-09-13  Marek Polacek  <polacek@redhat.com>
17539
17540         * tree.c (protected_set_expr_location): Don't check whether T is
17541         non-null here.
17542
17543 2014-09-12  DJ Delorie  <dj@redhat.com>
17544
17545         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
17546         (extend_and_shift1_hipsi2): Likewise.
17547         (extend_and_shift2_hipsi2): Likewise.
17548
17549 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
17550
17551         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
17552         with NULL when dealing with an insn.
17553         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
17554         from rtx to rtx_insn *.
17555         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
17556         const_rtx to const rtx_insn *.
17557         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
17558
17559 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
17560
17561         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
17562         assert.
17563
17564 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
17565
17566         * target.def (libgcc_floating_mode_supported_p): New hook.
17567         * targhooks.c (default_libgcc_floating_mode_supported_p): New
17568         function.
17569         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
17570         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
17571         (LIBGCC2_HAS_TF_MODE): Remove.
17572         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
17573         * doc/tm.texi: Regenerate.
17574         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
17575         machine mode.
17576         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
17577         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
17578         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
17579         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
17580         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17581         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
17582         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
17583         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
17584         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
17585         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
17586         function.
17587         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
17588         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17589         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17590         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17591         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17592         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17593         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17594         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
17595         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
17596         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
17597         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17598         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
17599         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
17600         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
17601         Remove.
17602         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
17603         New macro.
17604         (ia64_libgcc_floating_mode_supported_p): New function.
17605         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
17606         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
17607         (IA64_NO_LIBGCC_TFMODE): Define.
17608         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
17609         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
17610         macro.
17611         (pdp11_scalar_mode_supported_p): New function.
17612         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
17613         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
17614
17615 2014-09-12  Richard Biener  <rguenther@suse.de>
17616
17617         PR middle-end/63237
17618         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
17619
17620 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
17621
17622         * tree.c (integer_each_onep): New function.
17623         * tree.h (integer_each_onep): Declare it.
17624         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
17625         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
17626         (X & 1) == 0 for vector and complex.
17627
17628 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17629
17630         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
17631         for A57.
17632         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
17633         cost to spilling from integer to FP registers.
17634
17635 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17636
17637         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
17638         move handling.
17639         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
17640         are now handled correctly.
17641
17642 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17643
17644         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
17645         handling of CALLER_SAVE_REGS and POINTER_REGS.
17646
17647 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17648
17649         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
17650         the number of hard registers.
17651
17652 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17653             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17654             Anna Tikhonova  <anna.tikhonova@intel.com>
17655             Ilya Tocar  <ilya.tocar@intel.com>
17656             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17657             Ilya Verbin  <ilya.verbin@intel.com>
17658             Kirill Yukhin  <kirill.yukhin@intel.com>
17659             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17660
17661         * config/i386/sse.md
17662         (define_mode_iterator VI48_AVX512VL): New.
17663         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
17664         "avx512f_vternlog<mode>_maskz" and update mode iterator.
17665         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
17666         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
17667         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
17668         "avx512f_vternlog<mode>_mask" and update mode iterator.
17669         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
17670         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
17671         iterator.
17672         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
17673         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
17674         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
17675         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
17676         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
17677         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
17678
17679 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17680             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17681             Anna Tikhonova  <anna.tikhonova@intel.com>
17682             Ilya Tocar  <ilya.tocar@intel.com>
17683             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17684             Ilya Verbin  <ilya.verbin@intel.com>
17685             Kirill Yukhin  <kirill.yukhin@intel.com>
17686             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17687
17688         * config/i386/sse.md (VI128_256): Delete.
17689         (define_mode_iterator VI124_256): New.
17690         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
17691         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
17692         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
17693         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
17694         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
17695         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
17696         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
17697         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
17698         iterator.
17699         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
17700         in presence of AVX-512.
17701
17702 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17703             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17704             Anna Tikhonova  <anna.tikhonova@intel.com>
17705             Ilya Tocar  <ilya.tocar@intel.com>
17706             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17707             Ilya Verbin  <ilya.verbin@intel.com>
17708             Kirill Yukhin  <kirill.yukhin@intel.com>
17709             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17710
17711         * config/i386/sse.md
17712         (define_expand "<avx512>_gathersi<mode>"): Rename from
17713         "avx512f_gathersi<mode>".
17714         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
17715         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
17716         (define_expand "<avx512>_gatherdi<mode>"): Rename from
17717         "avx512f_gatherdi<mode>".
17718         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
17719         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
17720         wide versions.
17721         (define_expand "<avx512>_scattersi<mode>"): Rename from
17722         "avx512f_scattersi<mode>".
17723         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
17724         (define_expand "<avx512>_scatterdi<mode>"): Rename from
17725         "avx512f_scatterdi<mode>".
17726         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
17727
17728 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
17729
17730         * ira.h (ira_finish_once): Delete.
17731         * ira-int.h (target_ira_int::~target_ira_int): Declare.
17732         (target_ira_int::free_ira_costs): Likewise.
17733         (target_ira_int::free_register_move_costs): Likewise.
17734         (ira_finish_costs_once): Delete.
17735         * ira.c (free_register_move_costs): Replace with...
17736         (target_ira_int::free_register_move_costs): ...this new function.
17737         (target_ira_int::~target_ira_int): Define.
17738         (ira_init): Call free_register_move_costs as a member function rather
17739         than a global function.
17740         (ira_finish_once): Delete.
17741         * ira-costs.c (free_ira_costs): Replace with...
17742         (target_ira_int::free_ira_costs): ...this new function.
17743         (ira_init_costs): Call free_ira_costs as a member function rather
17744         than a global function.
17745         (ira_finish_costs_once): Delete.
17746         * target-globals.c (target_globals::~target_globals): Call the
17747         target_ira_int destructor.
17748         * toplev.c: Include lra.h.
17749         (finalize): Call lra_finish_once rather than ira_finish_once.
17750
17751 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
17752
17753         * common.opt (flto-odr-type-merging): New flag.
17754         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
17755         (types_same_for_odr): Likewise.
17756         (odr_subtypes_equivalent_p): Likewise.
17757         (add_type_duplicate): Do not walk type variants.
17758         (register_odr_type): New function.
17759         * ipa-utils.h (register_odr_type): Declare.
17760         (odr_type_p): New function.
17761         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
17762         TYPE_DECLs
17763         * doc/invoke.texi (-flto-odr-type-merging): Document.
17764         * tree.c (need_assembler_name_p): Compute ODR names when asked
17765         for it.
17766         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
17767
17768 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
17769
17770         PR target/63228
17771         * config/i386/i386.c (ix86_option_override_internal): Also turn
17772         off OPTION_MASK_ABI_X32 for -m16.
17773
17774 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17775
17776         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
17777         GPR instead of P.
17778
17779 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
17780
17781         PR target/58757
17782         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
17783         Directly forward to __*_DENORM_MIN__.
17784
17785 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
17786
17787         * rtl.h (LABEL_REF_LABEL): New macro.
17788
17789         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
17790         of XEXP (, 0), where we know that we have a LABEL_REF.
17791         * cfgbuild.c (make_edges): Likewise.
17792         (purge_dead_tablejump_edges): Likewise.
17793         * cfgexpand.c (convert_debug_memory_address): Likewise.
17794         * cfgrtl.c (patch_jump_insn): Likewise.
17795         * combine.c (distribute_notes): Likewise.
17796         * cse.c (hash_rtx_cb): Likewise.
17797         (exp_equiv_p): Likewise.
17798         (fold_rtx): Likewise.
17799         (check_for_label_ref): Likewise.
17800         * cselib.c (rtx_equal_for_cselib_1): Likewise.
17801         (cselib_hash_rtx): Likewise.
17802         * emit-rtl.c (mark_label_nuses): Likewise.
17803         * explow.c (convert_memory_address_addr_space): Likewise.
17804         * final.c (output_asm_label): Likewise.
17805         (output_addr_const): Likewise.
17806         * gcse.c (add_label_notes): Likewise.
17807         * genconfig.c (walk_insn_part): Likewise.
17808         * genrecog.c (validate_pattern): Likewise.
17809         * ifcvt.c (cond_exec_get_condition): Likewise.
17810         (noce_emit_store_flag): Likewise.
17811         (noce_get_alt_condition): Likewise.
17812         (noce_get_condition): Likewise.
17813         * jump.c (maybe_propagate_label_ref): Likewise.
17814         (mark_jump_label_1): Likewise.
17815         (redirect_exp_1): Likewise.
17816         (rtx_renumbered_equal_p): Likewise.
17817         * lra-constraints.c (operands_match_p): Likewise.
17818         * reload.c (operands_match_p): Likewise.
17819         (find_reloads): Likewise.
17820         * reload1.c (set_label_offsets): Likewise.
17821         * reorg.c (get_branch_condition): Likewise.
17822         * rtl.c (rtx_equal_p_cb): Likewise.
17823         (rtx_equal_p): Likewise.
17824         * rtlanal.c (reg_mentioned_p): Likewise.
17825         (rtx_referenced_p): Likewise.
17826         (get_condition): Likewise.
17827         * sched-vis.c (print_value): Likewise.
17828         * varasm.c (const_hash_1): Likewise.
17829         (compare_constant): Likewise.
17830         (const_rtx_hash_1): Likewise.
17831         (output_constant_pool_1): Likewise.
17832
17833 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17834
17835         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
17836         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
17837         instead of minus.
17838         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
17839         cr6_test_for_lt_reverse): Ditto.
17840
17841 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
17842
17843         PR c++/61489
17844         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
17845
17846 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17847
17848         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
17849         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
17850         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
17851         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
17852         Delete.
17853
17854         (aarch64_fold_builtin): Remove all reinterpret cases.
17855
17856         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
17857
17858         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
17859
17860         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
17861         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
17862         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
17863         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
17864         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
17865         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
17866         aarch64_reinterpretv2df<mode>): Delete.
17867
17868         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
17869
17870         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
17871         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
17872         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
17873         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
17874         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
17875         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
17876         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
17877         vreinterpret_u32_f64): Use cast.
17878
17879         * config/aarch64/iterators.md (VD_RE): Delete.
17880
17881 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17882
17883         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
17884         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
17885         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
17886         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
17887         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
17888         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
17889         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
17890         Replace inline assembler with __aarch64_vset_lane_any.
17891
17892 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
17893
17894         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
17895         types.
17896         (vmull_high_lane_s32): Likewise.
17897         (vmull_high_lane_u16): Likewise.
17898         (vmull_high_lane_u32): Likewise.
17899
17900 2014-09-11  Jason Merrill  <jason@redhat.com>
17901
17902         PR c++/58678
17903         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
17904
17905 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
17906
17907         PR target/63223
17908         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
17909         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
17910         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
17911
17912 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17913             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17914             Anna Tikhonova  <anna.tikhonova@intel.com>
17915             Ilya Tocar  <ilya.tocar@intel.com>
17916             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17917             Ilya Verbin  <ilya.verbin@intel.com>
17918             Kirill Yukhin  <kirill.yukhin@intel.com>
17919             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17920
17921         * config/i386/sse.md
17922         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
17923         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
17924         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
17925         New.
17926         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
17927         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
17928         iterator.
17929         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17930         New.
17931         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
17932         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
17933         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
17934         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
17935         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
17936         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
17937         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
17938         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
17939         iterator.
17940         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17941         New.
17942         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
17943         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
17944         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
17945
17946 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17947
17948         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
17949         to access removed nodes.
17950
17951 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17952
17953         PR tree-optimization/63186
17954         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
17955         (mark_nonssa_use): Likewise.
17956         (verify_non_ssa_vars): Verify all header blocks for label
17957         definitions.
17958
17959 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17960             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17961             Anna Tikhonova  <anna.tikhonova@intel.com>
17962             Ilya Tocar  <ilya.tocar@intel.com>
17963             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17964             Ilya Verbin  <ilya.verbin@intel.com>
17965             Kirill Yukhin  <kirill.yukhin@intel.com>
17966             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17967
17968         * config/i386/sse.md
17969         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
17970         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
17971         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
17972         "<avx2_avx512f>_permvar<mode><mask_name>".
17973         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
17974         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
17975         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
17976         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
17977         Ditto.
17978         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
17979         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17980         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
17981         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17982
17983 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17984
17985         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
17986         V2DF, V4SF, DF, and DI modes.
17987         (vsx_fmav2df2): Likewise.
17988         (vsx_float_fix_<mode>2): Likewise.
17989         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
17990
17991 2014-09-10  Xinliang David Li  <davidxl@google.com>
17992
17993         PR target/63209
17994         * config/arm/arm.md (movcond_addsi): Handle case where source
17995         and target operands are the same.
17996
17997 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
17998
17999         * final.c (this_is_asm_operands): Strengthen this variable from
18000         rtx to const rtx_insn *.
18001         * output.h (this_is_asm_operands): Likewise.
18002         * rtl-error.c (location_for_asm): Strengthen param "insn" from
18003         const_rtx to const rtx_insn *.
18004         (diagnostic_for_asm): Likewise.
18005         * rtl-error.h (error_for_asm): Likewise.
18006         (warning_for_asm): Likewise.
18007
18008 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
18009
18010         * genextract.c (print_header): When writing out insn_extract to
18011         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
18012         * recog.h (insn_extract): Strengthen the param from rtx to
18013         rtx_insn *.
18014
18015 2014-09-10  Mike Stump  <mikestump@comcast.net>
18016
18017         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
18018         8.6.1.
18019
18020 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18021
18022         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
18023         (analyze): Do not set analyze flag if expand_thunk returns false;.
18024         (create_wrapper): Likewise.
18025         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
18026
18027 2014-09-10  Martin Jambor  <mjambor@suse.cz>
18028
18029         PR ipa/61654
18030         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
18031         new decl properly.  Analyze the new thunk if it is expanded.
18032
18033 2014-09-10  Andreas Schwab  <schwab@suse.de>
18034
18035         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
18036         [USED_FOR_TARGET]: Define.
18037
18038 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
18039
18040         * config/mips/mips.c (mips_secondary_reload_class): Handle
18041         regno < 0 case.
18042
18043 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
18044
18045         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
18046         assignment.
18047
18048 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
18049
18050         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
18051         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
18052         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
18053         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
18054         flag_delete_null_pointer_checks for them.
18055         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
18056         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
18057         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
18058         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
18059         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
18060         stmt's iterator.
18061         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
18062         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
18063         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
18064         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
18065         * doc/invoke.texi (-fsanitize=nonnull-attribute,
18066         -fsanitize=returns-nonnull-attribute): Document.
18067
18068         * ubsan.h (struct ubsan_mismatch_data): Removed.
18069         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18070         * ubsan.c (ubsan_source_location): For unknown locations,
18071         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
18072         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18073         Allow more than one location and arbitrary extra arguments passed
18074         in ... instead of through MISMATCH pointer.
18075         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
18076         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
18077         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
18078         callers.
18079
18080 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18081             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18082             Anna Tikhonova  <anna.tikhonova@intel.com>
18083             Ilya Tocar  <ilya.tocar@intel.com>
18084             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18085             Ilya Verbin  <ilya.verbin@intel.com>
18086             Kirill Yukhin  <kirill.yukhin@intel.com>
18087             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18088
18089         * config/i386/sse.md
18090         (define_mode_iterator VI48F): New.
18091         (define_insn "<avx512>_compress<mode>_mask"): Rename from
18092         "avx512f_compress<mode>_mask" and update mode iterator.
18093         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
18094         "avx512f_compressstore<mode>_mask" and update mode iterator.
18095         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
18096         "avx512f_expand<mode>_maskz" and update mode iterator.
18097         (define_insn "<avx512>_expand<mode>_mask"): Rename from
18098         "avx512f_expand<mode>_mask" and update mode iterator.
18099
18100 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18101             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18102             Anna Tikhonova  <anna.tikhonova@intel.com>
18103             Ilya Tocar  <ilya.tocar@intel.com>
18104             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18105             Ilya Verbin  <ilya.verbin@intel.com>
18106             Kirill Yukhin  <kirill.yukhin@intel.com>
18107             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18108
18109         * config/i386/i386.c
18110         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
18111         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
18112         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
18113         avx512dq_rangepv4sf_mask.
18114         * config/i386/sse.md
18115         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
18116         UNSPEC_RANGE.
18117         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
18118         (define_insn "reduces<mode>"): Ditto.
18119         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
18120         Ditto.
18121         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
18122         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
18123         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
18124
18125 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18126             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18127             Anna Tikhonova  <anna.tikhonova@intel.com>
18128             Ilya Tocar  <ilya.tocar@intel.com>
18129             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18130             Ilya Verbin  <ilya.verbin@intel.com>
18131             Kirill Yukhin  <kirill.yukhin@intel.com>
18132             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18133
18134         * config/i386/i386.c
18135         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
18136         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
18137         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
18138         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
18139         avx512vl_getmantv2df_mask.
18140         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
18141         avx512f_vgetmantv4sf_round.
18142         * config/i386/sse.md
18143         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
18144         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
18145         mode iterator.
18146         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
18147         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
18148         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
18149         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
18150         iterator..
18151         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
18152         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
18153         update mode iterator.
18154         (define_expand
18155         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
18156         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
18157         mode iterator.
18158         (define_insn
18159         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
18160         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
18161         update mode iterator.
18162         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
18163         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
18164         iterator..
18165         (define_insn
18166         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
18167         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
18168         mode iterator..
18169         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
18170         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
18171         update mode iterator.
18172         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
18173         "avx512f_getmant<mode><round_saeonly_name>".
18174
18175 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18176
18177         PR ipa/63166
18178         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
18179
18180 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18181             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18182             Anna Tikhonova  <anna.tikhonova@intel.com>
18183             Ilya Tocar  <ilya.tocar@intel.com>
18184             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18185             Ilya Verbin  <ilya.verbin@intel.com>
18186             Kirill Yukhin  <kirill.yukhin@intel.com>
18187             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18188
18189         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
18190         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
18191         (define_mode_iterator FMAMODE_AVX512): New.
18192         (define_mode_iterator FMAMODE): Remove conditions.
18193         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
18194         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
18195         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
18196         mode iterator.
18197         (define_mode_iterator FMAMODE_NOVF512): Remove.
18198         (define_insn "*fma_fmadd_<mode>"): Rename from
18199         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
18200         FMAMODE mode iterator.
18201         (define_mode_iterator VF_SF_AVX512VL): New.
18202         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
18203         Use VF_SF_AVX512VL mode iterator.
18204         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
18205         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18206         iterator.
18207         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
18208         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18209         iterator.
18210         (define_insn "*fma_fmsub_<mode>"): Rename from
18211         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
18212         FMAMODE mode iterator.
18213         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
18214         Use VF_SF_AVX512VL mode iterator.
18215         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
18216         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18217         iterator.
18218         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
18219         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18220         iterator.
18221         (define_insn "*fma_fnmadd_<mode>"): Rename from
18222         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
18223         use FMAMODE mode iterator.
18224         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
18225         Use VF_SF_AVX512VL mode iterator.
18226         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
18227         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18228         iterator.
18229         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
18230         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18231         iterator.
18232         (define_insn "*fma_fnmsub_<mode>"): Rename from
18233         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
18234         FMAMODE mode iterator.
18235         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
18236         Use VF_SF_AVX512VL mode iterator.
18237         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
18238         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18239         iterator.
18240         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
18241         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18242         iterator.
18243         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
18244         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
18245         use VF_AVX512VL mode iterator.
18246         (define_insn "*fma_fmaddsub_<mode>"): Rename from
18247         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
18248         remove subst usage.
18249         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
18250         Use VF_SF_AVX512VL mode iterator.
18251         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
18252         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18253         iterator.
18254         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
18255         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18256         iterator.
18257         (define_insn "*fma_fmsubadd_<mode>"): Rename from
18258         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
18259         remove usage of subst.
18260         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
18261         Use VF_SF_AVX512VL mode iterator.
18262         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
18263         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18264         iterator.
18265         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
18266         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18267         iterator.
18268
18269 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
18270
18271         Revert r213751:
18272         * calls.c (precompute_arguments): Check
18273          promoted_for_signed_and_unsigned_p and set the promoted mode.
18274         (promoted_for_signed_and_unsigned_p): New function.
18275         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18276         and set the promoted mode.
18277         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18278         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18279         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18280
18281 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18282
18283         * opth-gen.awk: Generate mapping from cpp message reasons to the
18284         options that enable them.
18285         * doc/options.texi (CppReason): Document.
18286
18287 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18288
18289         * doc/invoke.texi (Wnormalized=): Update.
18290
18291 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
18292
18293         PR target/63195
18294         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
18295         operands.  Split off the constant operand alternative to ...
18296         (*bool<mode>3_imm): New.
18297
18298 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18299
18300         * rtl.h (single_set_2): Strengthen first param from const_rtx to
18301         const rtx_insn *, and move prototype to above...
18302         (single_set): ...this.  Convert this from a macro to an inline
18303         function, enforcing the requirement that the param is a const
18304         rtx_insn *.
18305         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
18306
18307         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
18308         Strengthen both params from rtx to rtx_insn *.
18309         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18310         Likewise; introduce locals "producer_set", "consumer_set", using
18311         them in place of "producer" and "consumer" when dealing with SET
18312         rather than insn.
18313         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
18314         when invoking single_set in region guarded by INSN_P.
18315         (avr_out_bitop): Likewise.
18316         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
18317         region guarded by GET_CODE check, using methods to strengthen
18318         local "this_insn" from rtx to rtx_insn *, and for clarity.
18319         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
18320         Strengthen local "insn" from rtx to rtx_insn *.
18321         (define_insn_and_split "xload<mode>_A"): Likewise.
18322         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
18323         "insn".
18324         (find_load): Likewise for return type.
18325         (workaround_speculation): Likewise for both locals named
18326         "load_insn".
18327         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18328         local "cc0_user".
18329         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18330         for local "prev".
18331         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18332         param 2.
18333         * config/h8300/h8300.c (notice_update_cc): Likewise.
18334         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18335         "insn" and "dep_insn".
18336         (exact_store_load_dependency): Likewise for both params.
18337         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18338         since this now clashes with inline function.  Instead, delay
18339         calling single_set until the point where its needed, and then
18340         assign the result to "compare_set" and rework the conditional that
18341         follows.
18342         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18343         local "last" from rtx to rtx_insn *.
18344         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18345         second param.
18346         (mips_store_data_bypass_p): Likewise for both params.
18347         * config/mips/mips.c (mips_load_store_insns): Likewise for second
18348         param.
18349         (mips_store_data_bypass_p): Likewise for both params.
18350         (mips_orphaned_high_part_p): Likewise for param "insn".
18351         * config/mn10300/mn10300.c (extract_bundle): Likewise.
18352         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18353         Introduce local rtx "insn2_pat".
18354         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18355         "ninsn".
18356         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18357         Introduce local rtx "set", using it in place of "insn" for the
18358         result of single_set.  This appears to fix a bug, since the call
18359         to find_regno_note on a SET does nothing.
18360         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18361         params from rtx to rtx_insn *.
18362         (set_to_load_agen): Likewise.
18363         * config/s390/s390.c (s390_label_align): Likewise for local
18364         "prev_insn".  Introduce new rtx locals "set" and "src", using
18365         them in place of "prev_insn" for the results of single_set
18366         and SET_SRC respectively.
18367         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18368         Introduce new rtx local "set" using in place of "jump" for the
18369         result of single_set.  Use SET_SRC (set) rather than plain
18370         XEXP (set, 1).
18371         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18372         rtx to rtx_insn *.
18373         (noncall_uses_reg): Likewise.
18374         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18375         guarded by GET_CODE check, using its methods for clarity, and to
18376         enable strengthening local "this_insn" from rtx to rtx_insn *.
18377         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18378         "insn" from rtx to rtx_insn *.
18379         (define_expand "umulhisi3"): Likewise.
18380         (define_expand "smulsi3_highpart"): Likewise.
18381         (define_expand "umulsi3_highpart"): Likewise.
18382         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18383         local "after".  Replace GET_CODE check with a dyn_cast,
18384         introducing new local rtx_sequence * "seq", using insn method for
18385         typesafety.
18386
18387         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18388         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
18389         place of "insn" once we're dealing with patterns rather than the
18390         input insn.
18391         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18392         (scan_trace): Likewise for local "elt", updating lookups within
18393         sequence to use insn method rather than element method.
18394         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18395         to rtx_insn *.
18396         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18397         * ifcvt.c (noce_try_abs): Likewise for local "insn".
18398         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18399         invoking single_set.
18400         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
18401         "insn" from rtx to rtx_insn *.
18402         (skip_usage_debug_insns): Likewise for return type, adding a
18403         checked cast.
18404         (check_secondary_memory_needed_p): Likewise for local "insn".
18405         (inherit_reload_reg): Likewise.
18406         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
18407         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
18408         checked casts.
18409         (store_data_bypass_p): Likewise for both params.
18410         (if_test_bypass_p): Likewise.
18411         * recog.h (store_data_bypass_p): Likewise for both params.
18412         (if_test_bypass_p): Likewise.
18413         * reload.c (find_equiv_reg): Likewise for local "where".
18414         * reorg.c (delete_jump): Likewise for param "insn".
18415         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
18416         to const rtx_insn *.
18417         * store-motion.c (replace_store_insn): Likewise for param "del".
18418         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
18419         and use its methods for clarity, and to strengthen local "del"
18420         from rtx to rtx_insn *.
18421         (build_store_vectors): Use insn method of "st" when calling
18422         replace_store_insn for typesafety and clarity.
18423
18424 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18425
18426         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
18427         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
18428         on how to make it legal in future.
18429
18430 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18431
18432         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
18433         to rtx_insn *.
18434         (restinsn): Likewise.
18435         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
18436         Likewise for param.
18437         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
18438         Likewise.
18439         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
18440         first param.
18441         (arc_hazard): Likewise for both params.
18442         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
18443         checked casts to rtx_sequence * and uses of the insn method for
18444         type-safety.
18445         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
18446         (arc_adjust_insn_length): Likewise for param "insn".
18447         (struct insn_length_parameters_s): Likewise for first param of
18448         "get_variants" callback field.
18449         (arc_get_insn_variants): Likewise for first param and local
18450         "inner".  Replace a check of GET_CODE with a dyn_cast to
18451         rtx_sequence *, using methods for type-safety and clarity.
18452         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
18453         rtx_sequence * and uses of the insn method for type-safety when
18454         invoking arc_adjust_insn_length.
18455         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
18456         for param.
18457         (arm_address_offset_is_imm): Likewise.
18458         (struct tune_params): Likewise for params 1 and 3 of the
18459         "sched_adjust_cost" callback field.
18460         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
18461         params 1 and 3 ("insn" and "dep").
18462         (xscale_sched_adjust_cost): Likewise.
18463         (fa726te_sched_adjust_cost): Likewise.
18464         (cortexa7_older_only): Likewise for param "insn".
18465         (cortexa7_younger): Likewise.
18466         (arm_attr_length_move_neon): Likewise.
18467         (arm_address_offset_is_imm): Likewise.
18468         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
18469         * config/avr/avr.c (avr_notice_update_cc): Likewise.
18470         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
18471         (workaround_speculation): Likewise for local "last_condjump".
18472         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
18473         (shadow_or_blockage_p): Likewise.
18474         (get_unit_reqs): Likewise.
18475         (get_unit_operand_masks): Likewise.
18476         (c6x_registers_update): Likewise.
18477         (returning_call_p): Likewise.
18478         (can_use_callp): Likewise.
18479         (convert_to_callp): Likewise.
18480         (find_last_same_clock): Likwise for local "t".
18481         (reorg_split_calls): Likewise for local "shadow".
18482         (hwloop_pattern_reg): Likewise for param "insn".
18483         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
18484         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
18485         (frv_extract_membar): Likewise.
18486         (frv_optimize_membar_local): Strengthen param "last_membar" from
18487         rtx * to rtx_insn **.
18488         (frv_optimize_membar_global): Strengthen param "membar" from rtx
18489         to rtx_insn *.
18490         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
18491         to rtx_insn **.
18492         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
18493         both params from rtx to rtx_insn *.
18494         (ia64_ld_address_bypass_p): Likewise.
18495         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
18496         "insn".
18497         (ia64_safe_type): Likewise.
18498         (group_barrier_needed): Likewise.
18499         (safe_group_barrier_needed): Likewise.
18500         (ia64_single_set): Likewise.
18501         (is_load_p): Likewise.
18502         (record_memory_reference): Likewise.
18503         (get_mode_no_for_insn): Likewise.
18504         (important_for_bundling_p): Likewise.
18505         (unknown_for_bundling_p): Likewise.
18506         (ia64_st_address_bypass_p): Likewise for both params.
18507         (ia64_ld_address_bypass_p): Likewise.
18508         (expand_vselect): Introduce new local rtx_insn * "insn", using it
18509         in place of rtx "x" after the emit_insn call.
18510         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
18511         Strengthen param from rtx to rtx_insn *.
18512         (ix86_agi_dependent): Likewise for both params.
18513         (ix86_attr_length_immediate_default): Likewise for param 1.
18514         (ix86_attr_length_address_default): Likewise for param.
18515         (ix86_attr_length_vex_default): Likewise for param 1.
18516         * config/i386/i386.c (ix86_attr_length_immediate_default):
18517         Likewise for param "insn".
18518         (ix86_attr_length_address_default): Likewise.
18519         (ix86_attr_length_vex_default): Likewise.
18520         (ix86_agi_dependent): Likewise for both params.
18521         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
18522         (vselect_insn): Likewise for this variable.
18523         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
18524         for param 1.
18525         (m68k_sched_attr_opy_type): Likewise.
18526         * config/m68k/m68k.c (sched_get_operand): Likewise.
18527         (sched_attr_op_type): Likewise.
18528         (m68k_sched_attr_opx_type): Likewise.
18529         (m68k_sched_attr_opy_type): Likewise.
18530         (sched_get_reg_operand): Likewise.
18531         (sched_get_mem_operand): Likewise.
18532         (m68k_sched_address_bypass_p): Likewise for both params.
18533         (sched_get_indexed_address_scale): Likewise.
18534         (m68k_sched_indexed_address_bypass_p): Likewise.
18535         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
18536         (m68k_sched_indexed_address_bypass_p): Likewise.
18537         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
18538         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
18539         removing another.
18540         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
18541         params from rtx to rtx_insn *.
18542         (mips_fmadd_bypass): Likewise.
18543         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
18544         (mips_linked_madd_p): Likewise.
18545         (mips_macc_chains_last_hilo): Likewise for this variable.
18546         (mips_macc_chains_record): Likewise for param.
18547         (vr4130_last_insn): Likewise for this variable.
18548         (vr4130_swap_insns_p): Likewise for both params.
18549         (mips_ls2_variable_issue): Likewise for param.
18550         (mips_need_noat_wrapper_p): Likewise for param "insn".
18551         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
18552         in place of "x" after the emit_insn.
18553         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
18554         params from rtx to rtx_insn *.
18555         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
18556         (pa_combine_instructions): Introduce local "par" for result of
18557         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
18558         to make_insn_raw.
18559         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
18560         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
18561         (rl78_alloc_physical_registers_op1): Likewise.
18562         (rl78_alloc_physical_registers_op2): Likewise.
18563         (rl78_alloc_physical_registers_ro1): Likewise.
18564         (rl78_alloc_physical_registers_cmp): Likewise.
18565         (rl78_alloc_physical_registers_umul): Likewise.
18566         (rl78_alloc_address_registers_macax): Likewise.
18567         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
18568         * config/s390/predicates.md (execute_operation): Likewise for
18569         local "insn".
18570         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
18571         params.
18572         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
18573         (addr_generation_dependency_p): Likewise for param "insn".
18574         (s390_agen_dep_p): Likewise for both params.
18575         (s390_fpload_toreg): Likewise for param "insn".
18576         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
18577         * config/sh/sh.c (sh_loop_align): Likewise for param and local
18578         "next".
18579         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
18580         * config/sh/sh_treg_combine.cc
18581         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
18582         and local "i".
18583         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
18584         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
18585         "and_insn", "load", "shift".
18586         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
18587         "insn".
18588         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
18589         for XEXP (note, 0) of the REG_CC_SETTER note.
18590         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
18591         rtx_insn *, eliminating a checked cast made redundant by this.
18592         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
18593         to rtx_insn *.
18594         * genattr.c (main): When writing out the prototype to
18595         const_num_delay_slots, strengthen the param from rtx to
18596         rtx_insn *.
18597         * genattrtab.c (write_const_num_delay_slots): Likewise when
18598         writing out the implementation of const_num_delay_slots.
18599         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
18600         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
18601         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
18602         favor of new rtx locals "src" and "set" and new local rtx_insn *
18603         "insn" and "seq".
18604         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
18605         to rtx_insn *.
18606         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
18607         locals "cond", "if_then_else", "set" and new rtx_insn * locals
18608         "insn" and "seq".
18609         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
18610         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
18611         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
18612         the top-level scope, replacing with new more tightly-scoped rtx
18613         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
18614         "new_insn", "copy_of_insn_b", and make local rtx "set" more
18615         tightly-scoped.
18616         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
18617         rtx_insn *.
18618         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
18619         "move_insn".
18620         (ira_setup_alts): Likewise for param "insn".
18621         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
18622         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
18623         and an rtx_insn *.
18624         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
18625         new more-tightly scoped rtx locals "add3_insn", "insn",
18626         "add2_insn" and rtx_insn * "move_insn".
18627         * postreload-gcse.c (eliminate_partially_redundant_load): Add
18628         checked cast on result of gen_move_insn when invoking
18629         extract_insn.
18630         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
18631         rtx_insn *.
18632         (verify_changes): Add a checked cast on "object" when invoking
18633         insn_invalid_p.
18634         (extract_insn_cached): Strengthen param "insn" from rtx to
18635         rtx_insn *.
18636         (extract_constrain_insn_cached): Likewise.
18637         (extract_insn): Likewise.
18638         * recog.h (insn_invalid_p): Likewise for param 1.
18639         (recog_memoized): Likewise for param.
18640         (extract_insn): Likewise.
18641         (extract_constrain_insn_cached): Likewise.
18642         (extract_insn_cached): Likewise.
18643         * reload.c (can_reload_into): Likewise for local "test_insn".
18644         * reload.h (cleanup_subreg_operands): Likewise for param.
18645         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
18646         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
18647         result of emit_insn.  Remove a checked cast made redundant by this
18648         change.
18649         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
18650         rtx to rtx_insn *.
18651         * sel-sched.c (get_reg_class): Likewise.
18652
18653 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18654             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18655
18656         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
18657         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
18658         Define.
18659         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
18660
18661 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18662
18663         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
18664         const rtx_insn *, and from rtx to rtx_insn * for the other
18665         overloaded variant.
18666         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
18667         INSN_LOCATION, since we know INSN_P holds.
18668         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
18669         (insn_file): Likewise.
18670         (insn_scope): Likewise.
18671         (insn_location): Likewise.
18672
18673         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
18674         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
18675         for the result of gen_load_const_gp.
18676         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
18677         param from rtx to rtx_insn *.
18678         * config/rs6000/rs6000.c (output_call): Likewise.
18679         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
18680         introducing a checked cast to rtx_sequence * and use of the insn
18681         method.
18682         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
18683         from rtx to rtx_insn *.
18684         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
18685         (insn_line): Likewise.
18686         (insn_file): Likewise.
18687         (insn_location): Likewise.
18688         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
18689         from rtx to rtx_insn *.
18690         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
18691         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
18692         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
18693         via a checked cast.
18694         * reorg.c (relax_delay_slots): Strengthen locals named "after"
18695         from rtx to rtx_insn *; use methods of "pat" for type-safety.
18696
18697 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18698
18699         * combine.c (try_combine): Eliminate checked cast on result of
18700         gen_rtx_INSN.
18701         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
18702         autogenerated one by strengthening the return type and params 2 and 3
18703         from rtx to rtx_insn *, and by naming the params.
18704         * gengenrtl.c (special_rtx): Add INSN to those that are
18705         special-cased.
18706         * rtl.h (gen_rtx_INSN): New prototype.
18707
18708 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18709
18710         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
18711         than NULL_RTX.
18712         (no_equiv): Likewise.
18713         (update_equiv_regs): Likewise.
18714         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
18715         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
18716         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
18717         clarity.
18718         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
18719         from rtx to rtx_insn_list *.
18720         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
18721         rtx_insn_list * and use methods for clarity and typesafety.
18722         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
18723         "list".
18724         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
18725         redundant check on INSN_P (insns): this cannot hold, as "insns" is
18726         an INSN_LIST, not an insn.
18727         (reverse_equiv_p): Strengthen local "insns" from rtx to
18728         rtx_insn_list * and use methods for clarity and typesafety.
18729         (contains_reloaded_insn_p): Likewise for local "list".
18730
18731 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
18732
18733         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
18734         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
18735         (arm_builtin_vectorized_function): Likewise.
18736         * config/arm/arm_neon_builtins.def: New macro for copysignf.
18737         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
18738
18739 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
18740
18741         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
18742         * builtins.h (default_target_builtins): Likewise.
18743         * gcse.h (default_target_gcse): Likewise.
18744         * target-globals.h (target_globals): Add a destructor.  Convert
18745         void-pointer fields back to their real type and change from
18746         GTY((atomic)) to GTY((skip)).
18747         (restore_target_globals): Remove casts accordingly.
18748         * target-globals.c (save_target_globals): Use XCNEW rather than
18749         ggc_internal_cleared_alloc to allocate non-GC structures.
18750         Use ggc_cleared_alloc to allocate the target_globals structure
18751         itself.
18752         (target_globals::~target_globals): Define.
18753
18754 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18755
18756         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
18757         mnemonic instead of fldmfdd.
18758         * config/arm/arm.c (vfp_output_fstmd): Rename to...
18759         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
18760         Output vpush when address register is SP.
18761         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
18762         (vfp_output_vstmd): ... This.
18763         * config/arm/vfp.md (push_multi_vfp): Update call to
18764         vfp_output_vstmd.
18765
18766 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18767
18768         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
18769
18770 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18771
18772         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
18773         (*sqrtdf2_vfp): Likewise.
18774         (*cmpsf_vfp): Likewise.
18775         (*cmpsf_trap_vfp): Likewise.
18776         (*cmpdf_vfp): Likewise.
18777         (*cmpdf_trap_vfp): Likewise.
18778
18779 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18780
18781         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
18782         (*truncdfsf2_vfp): Likewise.
18783         (*truncsisf2_vfp): Likewise.
18784         (*truncsidf2_vfp): Likewise.
18785         (fixuns_truncsfsi2): Likewise.
18786         (fixuns_truncdfsi2): Likewise.
18787         (*floatsisf2_vfp): Likewise.
18788         (*floatsidf2_vfp): Likewise.
18789         (floatunssisf2): Likewise.
18790         (floatunssidf2): Likewise.
18791
18792 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18793
18794         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
18795         (*muldf3_vfp): Likewise.
18796         (*mulsf3negsf_vfp): Likewise.
18797         (*muldf3negdf_vfp): Likewise.
18798         (*mulsf3addsf_vfp): Likewise.
18799         (*muldf3adddf_vfp): Likewise.
18800         (*mulsf3subsf_vfp): Likewise.
18801         (*muldf3subdf_vfp): Likewise.
18802         (*mulsf3negsfaddsf_vfp): Likewise.
18803         (*fmuldf3negdfadddf_vfp): Likewise.
18804         (*mulsf3negsfsubsf_vfp): Likewise.
18805         (*muldf3negdfsubdf_vfp): Likewise.
18806
18807 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18808
18809         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
18810         (*absdf2_vfp): Likewise.
18811         (*negsf2_vfp): Likewise.
18812         (*negdf2_vfp): Likewise.
18813         (*addsf3_vfp): Likewise.
18814         (*adddf3_vfp): Likewise.
18815         (*subsf3_vfp): Likewise.
18816         (*subdf3_vfp): Likewise.
18817         (*divsf3_vfp): Likewise.
18818         (*divdf3_vfp): Likewise.
18819
18820 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18821
18822         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
18823         multiple.
18824         (arm_print_operand): Don't convert real values to decimal
18825         representation in default case.
18826         (fp_immediate_constant): Delete.
18827         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
18828         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
18829         syntax.
18830         (*thumb2_movsi_vfp): Likewise.
18831         (*movdi_vfp): Likewise.
18832         (*movdi_vfp_cortexa8): Likewise.
18833         (*movhf_vfp_neon): Likewise.
18834         (*movhf_vfp): Likewise.
18835         (*movsf_vfp): Likewise.
18836         (*thumb2_movsf_vfp): Likewise.
18837         (*movdf_vfp): Likewise.
18838         (*thumb2_movdf_vfp): Likewise.
18839         (*movsfcc_vfp): Likewise.
18840         (*thumb2_movsfcc_vfp): Likewise.
18841         (*movdfcc_vfp): Likewise.
18842         (*thumb2_movdfcc_vfp): Likewise.
18843
18844 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
18845
18846         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
18847         (-mtune): Likewise.
18848         (-mcpu): Likewise.
18849
18850 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18851
18852         PR target/61749
18853         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
18854         Use qualifier_immediate for last operand.  Rename to...
18855         (aarch64_types_ternop_lane_qualifiers): ... This.
18856         (TYPES_QUADOP): Rename to...
18857         (TYPES_TERNOP_LANE): ... This.
18858         (aarch64_simd_expand_args): Return const0_rtx when encountering user
18859         error.  Change return of 0 to return of NULL_RTX.
18860         (aarch64_crc32_expand_builtin): Likewise.
18861         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
18862         ICE when expanding unknown builtin.
18863         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
18864         TERNOP_LANE qualifiers.
18865         (sqdmlsl_lane): Likewise.
18866         (sqdmlal_laneq): Likewise.
18867         (sqdmlsl_laneq): Likewise.
18868         (sqdmlal2_lane): Likewise.
18869         (sqdmlsl2_lane): Likewise.
18870         (sqdmlal2_laneq): Likewise.
18871         (sqdmlsl2_laneq): Likewise.
18872
18873 2014-09-09  Nick Clifton  <nickc@redhat.com>
18874
18875         * doc/invoke.texi (Optimization Options): Add missing @gol to the
18876         end of a line.
18877         (S/390 and zSeries Options): Remove superfluous word from the
18878         description of the -mhotpatch option.
18879
18880 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
18881
18882         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
18883         * ira.c: #include "shrink-wrap.h"
18884         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
18885         * ifcvt.c: #include "shrink-wrap.h"
18886         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
18887
18888 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
18889
18890         * common/config/picochip/picochip-common.c: Remove.
18891         * config.gcc: Remove support for picochip.
18892         * config/picochip/constraints.md: Remove.
18893         * config/picochip/dfa_space.md: Remove.
18894         * config/picochip/dfa_speed.md: Remove.
18895         * config/picochip/picochip-protos.h: Remove.
18896         * config/picochip/picochip.c: Remove.
18897         * config/picochip/picochip.h: Remove.
18898         * config/picochip/picochip.md: Remove.
18899         * config/picochip/picochip.opt: Remove.
18900         * config/picochip/predicates.md: Remove.
18901         * config/picochip/t-picochip: Remove.
18902         * doc/md.texi: Don't document picochi.
18903
18904 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18905
18906         * basic-block.h (control_flow_insn_p): Strengthen param from
18907         const_rtx to const rtx_insn *.
18908         * cfgbuild.c (control_flow_insn_p): Likewise.
18909
18910 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18911
18912         * gcse.c (modify_mem_list): Strengthen this variable from
18913         vec<rtx> * to vec<rtx_insn *> *.
18914         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
18915         vec<rtx_insn *>.
18916         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
18917         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
18918         (record_last_mem_set_info): Strengthen param "insn" from rtx to
18919         rtx_insn *.
18920         (record_last_set_info): Likewise for local "last_set_insn".
18921
18922 2014-09-08  DJ Delorie  <dj@redhat.com>
18923
18924         * doc/invoke.texi (MSP430 Options): Add -minrt.
18925
18926 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18927
18928         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
18929         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
18930         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
18931         handling SH_SPLAT.
18932         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
18933         of extracted lane.
18934         (adjust_splat): New function.
18935         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
18936         (dump_swap_insn_table): Add case for SH_SPLAT.
18937
18938 2014-09-08  Richard Biener  <rguenther@suse.de>
18939
18940         PR ipa/63196
18941         * tree-inline.c (copy_loops): The source loop header should
18942         always be non-NULL.
18943         (tree_function_versioning): If loops need fixup after removing
18944         unreachable blocks fix them.
18945         * omp-low.c (simd_clone_adjust): Do not add incr block to
18946         loop under construction.
18947
18948 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
18949
18950         * config/aarch64/aarch64-builtins.c
18951         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
18952
18953 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18954
18955         * config/i386/cygming.h (TF_SIZE): Remove.
18956         * config/i386/darwin.h (TF_SIZE): Remove.
18957         * config/i386/dragonfly.h (TF_SIZE): Remove.
18958         * config/i386/freebsd.h (TF_SIZE): Remove.
18959         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
18960         * config/i386/openbsdelf.h (TF_SIZE): Remove.
18961         * config/i386/sol2.h (TF_SIZE): Remove.
18962         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
18963         * config/ia64/linux.h (TF_SIZE): Remove.
18964         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
18965         * doc/tm.texi: Regenerate.
18966         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
18967
18968 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18969
18970         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18971         Remove.
18972         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
18973         Remove.
18974         * doc/tm.texi: Regenerate.
18975         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18976         Poison.
18977         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
18978         * config/cris/cris.h (__make_dp): Remove.
18979
18980 2014-09-08  Richard Biener  <rguenther@suse.de>
18981
18982         PR bootstrap/63204
18983         * cfgloop.c (mark_loop_for_removal): Track former header
18984         unconditionally.
18985         * cfgloop.h (struct loop): Add former_header member unconditionally.
18986         * loop-init.c (fix_loop_structure): Enable bogus loop removal
18987         diagnostic unconditionally.
18988
18989 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
18990
18991         PR target/63190
18992         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
18993         constraint for operand0 and remove write only modifier from operand3.
18994
18995 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
18996
18997         PR rtl-optimization/62208
18998         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
18999         rather than const0_rtx in eq/ne-xor simplifications.
19000
19001 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
19002
19003         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
19004         (arc_output_mi_thunk): Likewise.
19005
19006         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
19007         arguments to silence bogus warning.
19008
19009 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
19010
19011         PR middle-end/63171
19012         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
19013
19014 2014-09-06  Tom de Vries  <tom@codesourcery.com>
19015
19016         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
19017         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
19018         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
19019
19020 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
19021
19022         PR target/63188
19023         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
19024         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
19025
19026 2014-09-05  Easwaran Raman  <eraman@google.com>
19027
19028         PR rtl-optimization/62146
19029         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
19030         hoisted instruction unconditional.
19031
19032 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
19033
19034         PR target/63187
19035         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
19036         Do not allow any_mask_operand for operands[2].
19037         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
19038
19039 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19040
19041         * config/arc/arc.c (arc_print_operand): Use insn method of
19042         final_sequence for type-safety.
19043         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
19044         "insn" from rtx to rtx_insn *.
19045         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
19046         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
19047         Likewise for locals "branch", "label".
19048         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
19049         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
19050         (same_cmp_following_p): Likewise for locals "i2", "i3".
19051         * config/sh/sh_optimize_sett_clrt.cc
19052         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
19053         param "cbranch_insn".
19054         * function.c (convert_jumps_to_returns): Likewis for local "jump".
19055         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
19056         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
19057         const rtx_insn *.
19058         (condjump_p): Likewise.
19059         (condjump_in_parallel_p): Likewise.
19060         (pc_set): Likewise.
19061         (any_uncondjump_p): Likewise.
19062         (any_condjump_p): Likewise.
19063         (condjump_label): Likewise.
19064         (returnjump_p): Strengthen param "insn" from rtx to
19065         const rtx_insn *.
19066         (onlyjump_p): Strengthen param "insn" from const_rtx to
19067         const rtx_insn *.
19068         (jump_to_label_p): Likewise.
19069         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
19070         (invert_jump): Likewise.
19071         * reorg.c (simplejump_or_return_p): Add checked cast when calling
19072         simplejump_p.
19073         (get_jump_flags): Strengthen param "insn" from rtx to
19074         const rtx_insn *.
19075         (get_branch_condition): Likewise.
19076         (condition_dominates_p): Likewise.
19077         (make_return_insns): Move declaration of local "pat" earlier, to
19078         after we've handled NONJUMP_INSN_P and non-sequences, using its
19079         methods to simplify the code and for type-safety.
19080         * rtl.h (find_constant_src): Strengthen param from const_rtx to
19081         const rtx_insn *.
19082         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
19083         (condjump_p): Strengthen param from const_rtx to
19084         const rtx_insn *.
19085         (any_condjump_p): Likewise.
19086         (any_uncondjump_p): Likewise.
19087         (pc_set): Likewise.
19088         (condjump_label): Likewise.
19089         (simplejump_p): Likewise.
19090         (returnjump_p): Likewise.
19091         (onlyjump_p): Likewise.
19092         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
19093         (invert_jump): Likewise.
19094         (condjump_in_parallel_p): Strengthen param from const_rtx to
19095         const rtx_insn *.
19096         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
19097         to const rtx_insn *.
19098         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
19099         to const rtx_insn *.
19100         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
19101
19102 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19103
19104         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
19105         above the conditional, and convert the check on GET_CODE to a
19106         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
19107         the conditional.  Simplify the conditional by using methods of
19108         "trial_seq".
19109
19110 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19111
19112         * haifa-sched.c (check_clobbered_conditions): Strengthen local
19113         "link" from rtx to rtx_insn_list *, and use its methods for
19114         clarity and type-safety.
19115         (toggle_cancelled_flags): Likewise.
19116         (restore_last_backtrack_point): Likewise.
19117         (queue_to_ready): Use insn method of "link" in one place.
19118         (schedule_block): Strengthen local "link" from rtx to
19119         rtx_insn_list *, and use its methods for clarity and type-safety.
19120
19121 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19122
19123         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
19124         param "insn" from const_rtx to const rtx_insn *.
19125         (sched_get_reverse_condition_uncached): Likewise.
19126         (sched_get_condition_with_rev): Likewise.
19127         (sched_has_condition_p): Likewise.
19128         (sched_insns_conditions_mutex_p): Likewise for both params.
19129         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
19130         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
19131         (setup_insn_reg_uses): Move local "list" to be more tightly
19132         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
19133         its methods for clarity and type-safety.
19134         (sched_analyze_1): Strengthen local "pending" from rtx to
19135         rtx_insn_list *, and local "pending_mem" from rtx to
19136         rtx_expr_list *.  Use methods of each for clarity and type-safety.
19137         (sched_analyze_2): Likewise.
19138         (sched_analyze_insn): Likewise.
19139
19140         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
19141         param from const_rtx to const rtx_insn *.
19142         (sched_insns_conditions_mutex_p): Likewise for both params.
19143         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
19144         param.
19145
19146         * system.h (CONST_CAST_RTX_INSN): New macro.
19147
19148 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19149
19150         * recog.c (peep2_attempt): Strengthen return type from rtx to
19151         rtx_insn *.
19152         (peep2_update_life): Likewise for params "last", "prev", removing
19153         a checked cast made redundant by this.
19154         (peephole2_optimize): Likewise for local "last".
19155
19156 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19157
19158         * basic-block.h (set_block_for_insn): Eliminate this macro in
19159         favor of...
19160         * rtl.h (set_block_for_insn): New inline function, imposing the
19161         requirement that the "insn" param is an rtx_insn *.
19162
19163 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19164
19165         * caller-save.c (setup_save_areas): Strengthen local "insn" from
19166         rtx to rtx_insn *.
19167         * final.c (get_call_reg_set_usage): Likewise for first param,
19168         eliminating a checked cast.
19169         * regs.h (get_call_reg_set_usage): Likewise for first param.
19170         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
19171         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
19172         cast, replacing references to "x" with "call_insn" where
19173         appropriate.
19174         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
19175         rtx_insn *, adding a checked cast.
19176
19177 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19178
19179         * output.h (final_scan_insn): Strengthen first param from rtx to
19180         rtx_insn *.
19181
19182         * final.c (final_scan_insn): Likewise, renaming it back from
19183         "uncast_insn" to "insn", eliminating the checked cast.
19184
19185         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
19186         "vec" with an rtx_sequence * "seq", taking a copy of
19187         "final_sequence", and using methods of "seq" for clarity, and for
19188         type-safety in the calls to final_scan_insn.
19189         * config/mips/mips.c (mips_output_conditional_branch): Use methods
19190         of "final_sequence" for clarity, and for type-safety in the call to
19191         final_scan_insn.
19192         * config/sh/sh.c (print_slot): Strengthen param from rtx to
19193         rtx_sequence * and rename from "insn" to "seq".
19194
19195 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19196
19197         * jump.c (delete_related_insns): Introduce a new local "table" by
19198         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
19199         get_labels method of "table" to simplify access to the labels in
19200         the jump table.
19201
19202 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19203
19204         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
19205         f_minmaxs, f_minmaxd types.
19206
19207 2014-09-05  Richard Biener  <rguenther@suse.de>
19208
19209         * cfgloop.c (mark_loop_for_removal): Record former header
19210         when ENABLE_CHECKING.
19211         * cfgloop.h (strut loop): Add former_header member when
19212         ENABLE_CHECKING.
19213         * loop-init.c (fix_loop_structure): Sanity check loops
19214         marked for removal if they re-appeared.
19215
19216 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19217
19218         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
19219         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
19220
19221         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
19222         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
19223         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
19224         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
19225         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
19226         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
19227         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
19228         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
19229         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
19230         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
19231         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
19232         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
19233         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
19234         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
19235         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
19236         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
19237         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
19238         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
19239         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
19240         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
19241         with int{32,16,8}_t.
19242
19243 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19244
19245         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
19246         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
19247         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
19248         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
19249         Remove temporary __asm__ and reimplement.
19250
19251 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19252
19253         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
19254         handling cmge, cmgt, cmeq, cmtst.
19255
19256         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
19257         cmlt, cmgeu, cmgtu, cmtst): Remove.
19258
19259         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
19260         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
19261         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
19262         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
19263
19264 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19265
19266         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
19267         TYPES_TST): Define.
19268         (aarch64_fold_builtin): Update pattern for cmtst.
19269
19270         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
19271         Declare.
19272
19273         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
19274
19275         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
19276         Switch operands, separate out more cases, refactor.
19277
19278         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
19279
19280         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
19281         argument; rename old version to...
19282         (aarch64_const_vec_all_same_in_range_p): ...this.
19283         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
19284
19285         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
19286
19287 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19288
19289         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19290         Remove qualifier_const_pointer, update comment.
19291
19292 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19293
19294         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
19295
19296 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19297
19298         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
19299         varargs with pointer parameter.
19300         (aarch64_simd_expand_builtin): pass pointer into previous.
19301
19302 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19303
19304         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
19305         alus_ext.
19306
19307 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19308
19309         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
19310         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
19311         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
19312         Replace temporary asm with call to builtin.
19313         (vrbit_p8, vrbitq_p8): New functions.
19314
19315 2014-09-05  Richard Biener  <rguenther@suse.de>
19316
19317         * cfgloop.c (mark_loop_for_removal): New function.
19318         * cfgloop.h (mark_loop_for_removal): Declare.
19319         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
19320         (merge_blocks): Likewise.
19321         (duplicate_block): Likewise.
19322         * except.c (sjlj_emit_dispatch_table): Likewise.
19323         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19324         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19325         (thread_through_loop_header): Likewise.
19326
19327 2014-09-05  Richard Biener  <rguenther@suse.de>
19328
19329         PR middle-end/63148
19330         * fold-const.c (try_move_mult_to_index): Remove.
19331         (fold_binary_loc): Do not call it.
19332         * tree-data-ref.c (dr_analyze_indices): Strip conversions
19333         from the base object again.
19334
19335 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
19336
19337         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19338         DImode.
19339
19340 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19341
19342         PR target/55701
19343         * config/arm/arm.md (setmem): New pattern.
19344         * config/arm/arm-protos.h (struct tune_params): New fields.
19345         (arm_gen_setmem): New prototype.
19346         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19347         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19348         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19349         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19350         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19351         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19352         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19353         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19354         (arm_const_inline_cost): New function.
19355         (arm_block_set_max_insns): New function.
19356         (arm_block_set_non_vect_profit_p): New function.
19357         (arm_block_set_vect_profit_p): New function.
19358         (arm_block_set_unaligned_vect): New function.
19359         (arm_block_set_aligned_vect): New function.
19360         (arm_block_set_unaligned_non_vect): New function.
19361         (arm_block_set_aligned_non_vect): New function.
19362         (arm_block_set_vect, arm_gen_setmem): New functions.
19363
19364 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19365
19366         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19367
19368 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19369
19370         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19371
19372 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19373
19374         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19375         an rtx.
19376         * valtrack.h: Adjust.
19377
19378 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19379
19380         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19381         an rtx.
19382         (emit_jump_insn_before_noloc): Likewise.
19383         (emit_call_insn_before_noloc): Likewise.
19384         (emit_label_before): Likewise.
19385         (emit_label_after): Likewise.
19386         (emit_insn_before_setloc): Likewise.
19387         (emit_jump_insn_before_setloc): Likewise.
19388         (emit_call_insn_before_setloc): Likewise.
19389         (emit_call_insn_before): Likewise.
19390         * rtl.h: Adjust.
19391
19392 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19393
19394         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19395         rtx_insn *, eliminating a checked cast.
19396
19397 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19398
19399         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
19400         const_rtx to const rtx_insn *.
19401         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
19402         cast.
19403
19404 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19405
19406         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
19407         fixup_args_size_notes.
19408         * expr.c (fixup_args_size_notes): Strengthen first two params from
19409         rtx to rtx_insn *, eliminating a checked cast.
19410         * rtl.h (fixup_args_size_notes): Strengthen first two params from
19411         rtx to rtx_insn *.
19412
19413 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19414
19415         * haifa-sched.c (get_ready_element): Strengthen return type from
19416         rtx to rtx_insn *.
19417         * sched-int.h (get_ready_element): Likewise.
19418
19419 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
19420
19421         PR target/63165
19422         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
19423         indexed_or_indirect_operand instead of memory_operand.
19424         (floatsi<mode>2_lfiwzx_mem): Ditto.
19425
19426 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19427
19428         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
19429         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
19430         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
19431
19432 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19433
19434         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
19435         rtx.
19436         (get_last_nonnote_insn): Likewise.
19437         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
19438         * resource.c (find_basic_block): Likewise.
19439         * rtl.h: Adjust.
19440         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
19441         const_rtx.
19442
19443 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19444
19445         * genattr.c (main): Within the prototype of insn_latency written
19446         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
19447         * genautomata.c (output_internal_maximal_insn_latency_func):
19448         Within the implementation of insn_latency written out to
19449         insn-automata.c, strengthen both params from rtx to rtx_insn *,
19450         eliminating a pair of checked casts.
19451
19452 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19453
19454         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
19455         rtx_insn *.
19456
19457         * rtl.h (eh_returnjump_p): Likewise.
19458
19459 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
19460
19461         * Makefile.in (TAGS): Handle constructs in timevar.def.
19462
19463 2014-09-04  Guozhi Wei  <carrot@google.com>
19464
19465         PR target/62040
19466         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
19467         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
19468         it into two patterns.
19469         (move_lo_quad_internal_be_<mode>): Likewise.
19470
19471 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19472
19473         * doc/options.texi: Document that Var and Init are required if CPP
19474         is given.
19475         * optc-gen.awk: Require Var and Init if CPP is given.
19476         * common.opt (Wpedantic): Use Init.
19477
19478 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19479
19480         * config/rs6000/rs6000.c (special_handling_values): Add
19481         SH_EXTRACT.
19482         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
19483         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
19484         as swappable with special handling SH_EXTRACT.  Remove
19485         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
19486         optimization.
19487         (adjust_extract): New function.
19488         (handle_special_swappables): Add default to case statement; add
19489         case for SH_EXTRACT that calls adjust_extract.
19490         (dump_swap_insn_table): Handle SH_EXTRACT.
19491
19492 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19493
19494         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
19495         selection of 0th memory doubleword, regardless of endianness.
19496
19497 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19498
19499         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
19500
19501 2014-09-04  Alan Modra  <amodra@gmail.com>
19502
19503         PR debug/60655
19504         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
19505         can't be output.
19506
19507 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
19508
19509         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
19510         * targhooks.c (default_dwarf_frame_reg_mode): New function.
19511         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
19512         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
19513         * doc/tm.texi: Regenerate.
19514         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
19515         selection logic to default_dwarf_frame_reg_mode.
19516
19517 2014-09-03  Marek Polacek  <polacek@redhat.com>
19518
19519         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
19520         by -Wall.
19521
19522 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19523
19524         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
19525         the automodified register.
19526
19527 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19528
19529         * output.h (get_some_local_dynamic_name): Declare.
19530         * final.c (some_local_dynamic_name): New variable.
19531         (get_some_local_dynamic_name): New function.
19532         (final_end_function): Clear some_local_dynamic_name.
19533         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
19534         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19535         (print_operand): Report an error if '%&' is used inappropriately.
19536         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
19537         (get_some_local_dynamic_name_1): Delete.
19538         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
19539         (rs6000_get_some_local_dynamic_name): Delete.
19540         (rs6000_get_some_local_dynamic_name_1): Delete.
19541         (print_operand): Report an error if '%&' is used inappropriately.
19542         * config/s390/s390.c (machine_function): Remove some_ld_name.
19543         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19544         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
19545         * config/sparc/sparc.c: Include rtl-iter.h.
19546         (machine_function): Remove some_ld_name.
19547         (sparc_print_operand): Report an error if '%&' is used inappropriately.
19548         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19549
19550 2014-09-03  Richard Henderson  <rth@redhat.com>
19551
19552         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
19553         (aarch64_popwb_pair_reg): Remove.
19554         (aarch64_set_frame_expr): Remove.
19555         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
19556         the restore ops performed by the insns generated.
19557         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
19558         insn.  Perform the calls_eh_return addition later; do not attempt to
19559         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
19560         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
19561         special markup at all.  Load cfun->machine->frame.hard_fp_offset
19562         into a local variable.
19563         (aarch64_frame_pointer_required): Don't check calls_alloca.
19564
19565 2014-09-03  Richard Biener  <rguenther@suse.de>
19566
19567         * opts.c (default_options_optimization): Adjust
19568         max-combine-insns to 2 for -Og.
19569
19570 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19571
19572         PR ipa/62015
19573         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
19574         pass-trough jump functions correctly.
19575
19576 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19577
19578         PR ipa/61986
19579         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
19580         created replacements in ascending order of offsets.
19581         (known_aggs_to_agg_replacement_list): Likewise.
19582
19583 2014-09-03  Martin Liska  <mliska@suse.cz>
19584
19585         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
19586         is set to set uninitialized value for vnresult.
19587
19588 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19589
19590         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
19591         for TARGET_MUST_PASS_IN_STACK.
19592
19593 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19594
19595         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
19596         for TARGET_ARG_PARTIAL_BYTES.
19597
19598 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19599
19600         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
19601         instructions for varargs implementation.
19602         (nds32_expand_epilogue): Emit stack adjustment instructions for
19603         varargs implementation.
19604
19605 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19606
19607         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
19608         optimization detection.
19609
19610 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19611
19612         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
19613         arguments.
19614         (nds32_function_arg_advance): Deal with nameless arguments.
19615         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
19616         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
19617         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
19618
19619 2014-09-03  Richard Biener  <rguenther@suse.de>
19620
19621         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
19622         (struct bb_bitmap_sets): Remove deferred member.
19623         (BB_DEFERRED): Remove.
19624         (defer_or_phi_translate_block): Remove.
19625         (compute_antic_aux): Remove deferring of blocks, assert
19626         proper iteration order.
19627         (compute_antic): Do not set BB_DEFERRED.
19628         (eliminate): Allocate el_avail of proper size initially.
19629
19630 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19631
19632         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
19633         according to the value of crtl->args.pretend_args_size.
19634
19635 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19636
19637         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
19638         varargs information.
19639
19640 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19641
19642         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
19643         implementation for TARGET_SETUP_INCOMING_VARARGS.
19644         (nds32_strict_argument_naming): Refine comment.
19645         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
19646         Define for future implementation.
19647
19648 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
19649
19650         * config/i386/adxintrin.h (_subborrow_u32): New.
19651         (_addcarry_u32): Ditto.
19652         (_subborrow_u64): Ditto.
19653         (_addcarry_u64): Ditto.
19654         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
19655         IX86_BUILTIN_SBB64.
19656         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
19657         __builtin_ia32_sbb_u64
19658
19659 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19660
19661         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
19662         GPR-specific stuff.
19663         (nds32_function_arg_advance): Likewise.
19664         (nds32_init_cumulative_args): Likewise.
19665         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
19666         (NDS32_FIRST_GPR_REGNUM): Define.
19667         (NDS32_LAST_GPR_REGNUM): Define.
19668         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
19669         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19670         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19671         (machine_function): Use GRP-specific stuff.
19672
19673 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19674
19675         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
19676         (nds32_expand_epilogue): Likewise.
19677         (nds32_expand_prologue_v3push): Likewise.
19678         (nds32_expand_epilogue_v3pop): Likewise.
19679
19680 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19681
19682         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
19683         v3push/v3pop for variadic function.
19684         * config/nds32/nds32.md (prologue, epilogue): Likewise.
19685
19686 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19687
19688         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
19689         Check rtx for varargs implementation.
19690         (nds32_output_stack_pop): Likewise.
19691         * config/nds32/nds32-protos.h: Have a rtx argument for
19692         nds32_output_stack_push and nds32_output_stack_pop.
19693         * config/nds32/nds32.md: Likewise.
19694
19695 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19696
19697         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
19698         to check if FUNC is an interrupt service routine.
19699         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
19700
19701 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19702
19703         * config/nds32/nds32.h (machine_function): Add some fields for variadic
19704         arguments implementation.
19705
19706 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19707
19708         * config/nds32/nds32-predicates.c
19709         (nds32_valid_stack_push_pop): Rename to ...
19710         (nds32_valid_stack_push_pop_p): ... this.
19711         * config/nds32/nds32-protos.h: Likewise.
19712         * config/nds32/predicates.md: Likewise.
19713
19714 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19715
19716         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
19717         (nds32_emit_stack_v3push): ... this.
19718         (nds32_gen_stack_v3pop): Rename to ...
19719         (nds32_emit_stack_v3pop): ... this and consider CFA restore
19720         information.
19721
19722 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19723
19724         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
19725         (nds32_emit_stack_push_multiple): ... this.
19726         (nds32_gen_stack_pop_multiple): Rename to ...
19727         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
19728         information.
19729
19730 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19731
19732         PR target/61078
19733         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
19734         and add a second splitter to handle the remaining cases.
19735
19736 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19737
19738         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
19739
19740 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19741
19742         * cfgexpand.c (label_rtx_for_bb): Change type to
19743         hash_map<basic_block, rtx_code_label *> *.
19744         (expand_gimple_basic_block): Adjust.
19745         (pass_expand::execute): Likewise.
19746
19747 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19748
19749         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
19750         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
19751         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
19752         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
19753         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
19754         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
19755         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
19756         of rtx.
19757
19758 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19759
19760         * alloc-pool.c: Include coretypes.h.
19761         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
19762         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
19763         hash_set instead of htab.
19764         * ggc-page.c (in_gc): New variable.
19765         (ggc_free): Do nothing if a collection is taking place.
19766         (ggc_collect): Set in_gc appropriately.
19767         * ggc.h (gt_ggc_mx(const char *)): New function.
19768         (gt_pch_nx(const char *)): Likewise.
19769         (gt_ggc_mx(int)): Likewise.
19770         (gt_pch_nx(int)): Likewise.
19771         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
19772         (hash_map::hash_entry::pch_nx): Likewise.
19773         (hash_map::hash_entry::pch_nx_helper): Likewise.
19774 (hash_map::hash_map): Adjust.
19775 (hash_map::create_ggc): New function.
19776 (gt_ggc_mx): Likewise.
19777 (gt_pch_nx): Likewise.
19778         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
19779 (default_hashset_traits::pch_nx): Likewise.
19780 (hash_set::hash_entry::ggc_mx): Likewise.
19781 (hash_set::hash_entry::pch_nx): Likewise.
19782 (hash_set::hash_entry::pch_nx_helper): Likewise.
19783 (hash_set::hash_set): Adjust.
19784 (hash_set::create_ggc): New function.
19785 (hash_set::elements): Likewise.
19786 (gt_ggc_mx): Likewise.
19787 (gt_pch_nx): Likewise.
19788         * hash-table.h (hash_table::hash_table): Adjust.
19789 (hash_table::m_ggc): New member.
19790         (hash_table::~hash_table): Adjust.
19791         (hash_table::expand): Likewise.
19792         (hash_table::empty): Likewise.
19793 (gt_ggc_mx): New function.
19794         (hashtab_entry_note_pointers): Likewise.
19795 (gt_pch_nx): Likewise.
19796
19797 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19798
19799         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
19800         built-in definition.
19801         (XVCVUXDDP_SCALE): Likewise.
19802         (XVCVDPSXDS_SCALE): Likewise.
19803         (XVCVDPUXDS_SCALE): Likewise.
19804         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
19805         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
19806         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
19807         VSX_BUILTIN_XVCVDPUXDS_SCALE.
19808         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
19809         prototype.
19810         * config/rs6000/rs6000.c (real.h): New include.
19811         (rs6000_scale_v2df): New function.
19812         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
19813         (UNSPEC_VSX_XVCVUXDDP): Likewise.
19814         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
19815         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
19816         (vsx_xvcvsxddp_scale): New define_expand.
19817         (vsx_xvcvsxddp): New define_insn.
19818         (vsx_xvcvuxddp_scale): New define_expand.
19819         (vsx_xvcvuxddp): New define_insn.
19820         (vsx_xvcvdpsxds_scale): New define_expand.
19821         (vsx_xvcvdpsxds): New define_insn.
19822         (vsx_xvcvdpuxds_scale): New define_expand.
19823         (vsx_xvcvdpuxds): New define_insn.
19824         * doc/extend.texi (vec_ctf): Add new prototypes.
19825         (vec_cts): Likewise.
19826         (vec_ctu): Likewise.
19827         (vec_splat): Likewise.
19828         (vec_div): Likewise.
19829         (vec_mul): Likewise.
19830
19831 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19832
19833         PR target/62275
19834         * config/arm/neon.md
19835         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
19836         <v_cmp_result>): New pattern.
19837         * config/arm/iterators.md (NEON_VCVT): New int iterator.
19838         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
19839         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
19840         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
19841         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
19842         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
19843
19844 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19845
19846         PR target/62275
19847         * config/arm/iterators.md (FIXUORS): New code iterator.
19848         (VCVT): New int iterator.
19849         (su_optab): New code attribute.
19850         (su): Likewise.
19851         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
19852
19853 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19854
19855         * config/aarch64/predicates.md (aarch64_comparison_operation):
19856         New special predicate.
19857         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
19858         aarch64_comparison_operation instead of matching an operator.
19859         Update operand numbers.
19860         (csinc3<mode>_insn): Likewise.
19861         (*csinv3<mode>_insn): Likewise.
19862         (*csneg3<mode>_insn): Likewise.
19863         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
19864         * config/aarch64/aarch64.c (aarch64_get_condition_code):
19865         Return -1 instead of aborting on invalid condition codes.
19866         (aarch64_print_operand): Update aarch64_get_condition_code callsites
19867         to assert that the returned condition code is valid.
19868         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
19869
19870 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
19871
19872         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
19873         tree.def, and gimple.def
19874
19875 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
19876             Balaji V. Iyer  <balaji.v.iyer@intel.com>
19877             Igor Zamyatin  <igor.zamyatin@intel.com>
19878
19879         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
19880         (__cilkrts_cilk_for_64): Likewise.
19881         * cilk-common.c (declare_cilk_for_builtin): New function.
19882         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
19883         __cilkrts_cilk_for_64 bultins.
19884         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
19885         CILK_TI_F_LOOP_64.
19886         (cilk_for_32_fndecl): New define.
19887         (cilk_for_64_fndecl): Likewise.
19888         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
19889         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
19890         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
19891         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
19892         GF_OMP_FOR_COMBINED_INTO.
19893         * gimplify.c (gimplify_scan_omp_clauses): Added
19894         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19895         (gimplify_adjust_omp_clauses): Ditto.
19896         (gimplify_omp_for): Added CILK_FOR case.
19897         (gimplify_expr): Ditto.
19898         * omp-low.c: Include cilk.h.
19899         (extract_omp_for_data): Set appropriate kind for
19900         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
19901         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
19902         (create_omp_child_function_name): Added second argument to handle
19903         cilk_for case.
19904         (cilk_for_check_loop_diff_type): New function.
19905         (expand_cilk_for_call): Likewise.
19906         (expand_cilk_for): Likewise.
19907         (create_omp_child_function): Set cilk_for_count; handle the cases when
19908         it is true; call create_omp_child_function_name with second argument.
19909         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
19910         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
19911         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
19912         * tree-nested.c (convert_nonlocal_omp_clauses): Added
19913         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19914         (convert_local_omp_clauses): Ditto.
19915         * tree-pretty-print.c (dump_omp_clause): Added
19916         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
19917         (dump_generic_node): Added CILK_FOR case.
19918         * tree.c (omp_clause_num_ops): New element
19919         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
19920         (omp_clause_code_name): New element _Cilk_for_count_.
19921         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
19922         * tree.def: Add tree code for CILK_FOR.
19923
19924 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19925
19926         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
19927         (ppc403-compare): Add "exts with dot" case.
19928         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
19929         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
19930         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
19931         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
19932         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
19933         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
19934         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
19935         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19936         cell-cmp-microcoded): Similarly.
19937         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
19938         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
19939         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
19940         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
19941         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
19942         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
19943         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
19944         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
19945         (power6-compare): Add "exts with dot" case.
19946         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
19947         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
19948         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
19949
19950         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
19951         if avoiding Cell microcode.
19952         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
19953         (is_cracked_insn): Ditto.
19954         (insn_must_be_first_in_group): Ditto.
19955         * config/rs6000/rs6000.md (dot): Adjust comment.
19956         (cell_micro): Handle exts+dot.
19957         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
19958         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
19959         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
19960         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
19961         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
19962         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
19963         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
19964
19965 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19966
19967         * config/rs6000/rs6000.md (QHSI): Delete.
19968         (EXTQI, EXTHI, EXTSI): New mode iterators.
19969         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
19970         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19971         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
19972         9 anonymous instructions, and 8 splitters): Delete.
19973         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
19974         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
19975         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
19976         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
19977         *zero_extendsi<mode>2_dot2): New.
19978
19979 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19980
19981         * config/rs6000/rs6000.md (any_extend): New code iterator.
19982         (u, su): New code attributes.
19983         (dmode, DMODE): New mode attributes.
19984         (<su>mul<mode>3_highpart): New.
19985         (*<su>mul<mode>3_highpart): New.
19986         (<su>mulsi3_highpart_le): New.
19987         (<su>muldi3_highpart_le): New.
19988         (<su>mulsi3_highpart_64): New.
19989         (<u>mul<mode><dmode>3): New.
19990         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
19991         splitters): Delete.
19992         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
19993         splitters): Delete.
19994
19995 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19996
19997         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
19998         *mulsi3_internal2, and two splitters): Delete.
19999         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
20000         Delete.
20001         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
20002
20003 2014-09-02  Richard Biener  <rguenther@suse.de>
20004
20005         PR tree-optimization/62695
20006         * tree-ssa-structalias.c (find_func_clobbers): Add missing
20007         vector truncate.
20008
20009 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
20010
20011         PR target/62312
20012         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
20013
20014 2014-09-01  Andi Kleen  <ak@linux.intel.com>
20015
20016         * file-find.c (add_prefix_begin): Add.
20017         (do_add_prefix): Rename from add_prefix with first argument.
20018         (add_prefix): Add new wrapper.
20019         * file-find.h (add_prefix_begin): Add.
20020         * gcc-ar.c (main): Support -B option.
20021
20022 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
20023
20024         * genemit.c: Include dumpfile.h.
20025         (gen_split): Print name of splitter function to dump file.
20026
20027 2014-09-01  Richard Biener  <rguenther@suse.de>
20028
20029         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
20030         Use stack auto_vecs for constraint expressions.
20031         (find_func_aliases_for_call): Likewise.
20032         (find_func_aliases): Likewise.
20033         (find_func_clobbers): Likewise.
20034
20035 2014-09-01  Richard Biener  <rguenther@suse.de>
20036
20037         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
20038         operands vector in most cases.  Remove redundant code.
20039
20040 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20041
20042         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
20043         $WIND_BASE instead of designating a harcoded arbitrary home dir.
20044         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
20045
20046 2014-09-01  Richard Biener  <rguenther@suse.de>
20047
20048         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
20049         copy_reference_ops_from_call, vn_nary_op_compute_hash,
20050         vn_reference_compute_hash, vn_reference_insert): Remove.
20051         (vn_reference_lookup_call): New function.
20052         * tree-ssa-sccvn.c (vn_reference_compute_hash,
20053         copy_reference_ops_from_ref, copy_reference_ops_from_call,
20054         vn_reference_insert, vn_nary_op_compute_hash): Make static.
20055         (create_reference_ops_from_call): Remove.
20056         (vn_reference_lookup_3): Properly update shared_lookup_references.
20057         (vn_reference_lookup_pieces): Assert that we updated
20058         shared_lookup_references properly.
20059         (vn_reference_lookup): Likewise.
20060         (vn_reference_lookup_call): New function.
20061         (visit_reference_op_call): Use it.  Avoid re-building the
20062         reference ops.
20063         (visit_reference_op_load): Remove redundant lookup.
20064         (visit_reference_op_store): Perform special tail-merging work
20065         only when possibly doing tail-merging.
20066         (visit_use): Likewise.
20067         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
20068
20069 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20070
20071         PR target/62025
20072         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
20073         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
20074         (find_inc): Revert 2014-08-13 change.
20075
20076 2014-09-01  Marek Polacek  <polacek@redhat.com>
20077
20078         PR middle-end/61903
20079         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
20080         Change the type of V to unsigned HOST_WIDE_INT.
20081
20082 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20083
20084         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
20085         the size of byte markers.
20086         (do_shift_rotate): Fix confusion between host, target and marker byte
20087         size.
20088         (verify_symbolic_number_p): Likewise.
20089         (find_bswap_or_nop_1): Likewise.
20090         (find_bswap_or_nop): Likewise.
20091
20092 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20093
20094         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
20095         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
20096
20097 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20098
20099         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
20100         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
20101         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
20102
20103 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
20104
20105         PR sanitizer/61897
20106         PR sanitizer/62140
20107         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
20108         (build_check_stmt): Likewise.
20109         (instrument_strlen_call): Likewise.
20110         (asan_expand_check_ifn): Likewise and fix types.
20111         (maybe_cast_to_ptrmode): New function.
20112
20113 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20114
20115         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
20116
20117 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
20118
20119         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
20120
20121 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
20122
20123         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
20124         prefix to function labels when generating fast indirect calls.
20125
20126 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
20127
20128         PR bootstrap/62304
20129
20130         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
20131         param back from rtx_insn * to rtx.  Rename param from "label" to
20132         "label_or_return", reintroducing "label" as an rtx_insn * after
20133         we've ensured it's not a RETURN.
20134         (first_active_target_insn): Likewise for return type and param;
20135         add a checked cast to rtx_insn * once we've ensured "insn" is not
20136         a RETURN.
20137         (steal_delay_list_from_target): Convert param "pnew_thread" back
20138         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
20139         with JUMP_LABEL.
20140         (own_thread_p): Convert param "thread" back from an rtx_insn * to
20141         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
20142         cast once we've established we're not dealing with a RETURN,
20143         renaming subsequent uses of "thread" to "thread_insn".
20144         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
20145         to JUMP_LABEL.
20146         (follow_jumps): Convert return type and param "label" from
20147         rtx_insn * back to rtx.  Move initialization of "value" to after
20148         the handling for ANY_RETURN_P, adding a checked cast there to
20149         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
20150         rename to "this_label_or_return", reintroducing "this_label" as
20151         an rtx_insn * once we've handled the case where it could be an
20152         ANY_RETURN_P.
20153         (fill_slots_from_thread): Rename param "thread" to
20154         "thread_or_return", converting from an rtx_insn * back to an rtx.
20155         Reintroduce name "thread" as an rtx_insn * local with a checked
20156         cast once we've handled the case of it being an ANY_RETURN_P.
20157         Convert local "new_thread" from an rtx_insn * back to an rtx.
20158         Add a checked cast when assigning to "trial" from "new_thread".
20159         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
20160         checked cast to rtx_insn * from "new_thread" when invoking
20161         get_label_before.
20162         (fill_eager_delay_slots): Convert locals "target_label",
20163         "insn_at_target" from rtx_insn * back to rtx.
20164         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
20165         (relax_delay_slots): Convert locals "trial", "target_label" from
20166         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
20167         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
20168         invoking update_block.
20169         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
20170         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
20171
20172         * resource.h (mark_target_live_regs): Undo erroneous conversion
20173         of second param of r214693, converting it back from rtx_insn * to
20174         rtx, since it could be a RETURN.
20175
20176         * resource.c (find_dead_or_set_registers): Similarly, convert
20177         param "jump_target" back from an rtx_insn ** to an rtx *, as we
20178         could be writing back a RETURN.  Rename local rtx_insn * "next" to
20179         "next_insn", and introduce "lab_or_return" as a local rtx,
20180         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
20181         (mark_target_live_regs): Undo erroneous conversion
20182         of second param of r214693, converting it back from rtx_insn * to
20183         rtx, since it could be a RETURN.  Rename it from "target" to
20184         "target_maybe_return", reintroducing the name "target" as a local
20185         rtx_insn * with a checked cast, after we've handled the case of
20186         ANY_RETURN_P.
20187
20188 2014-08-29  DJ Delorie  <dj@redhat.com>
20189
20190         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
20191         pointer size up to a power of two.
20192         * defaults.h (DWARF2_ADDR_SIZE): Round up.
20193         (POINTER_SIZE_UNITS): New, rounded up value.
20194         * dwarf2asm.c (size_of_encoded_value): Use it.
20195         (dw2_output_indirect_constant_1): Likewise.
20196         * expmed.c (init_expmed_one_conv): We now know the sizes of
20197         partial int modes.
20198         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
20199         * optabs.c (expand_float): Use precision, not size.
20200         (expand_fix): Likewise.
20201         * simplify-rtx (simplify_unary_operation_1): Likewise.
20202         * tree-dfa.c (get_ref_base_and_extent): Likewise.
20203         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
20204         (default_assemble_integer) Likewise.
20205         (dump_tm_clone_pairs): Likewise.
20206         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
20207         * var-tracking.c (adjust_mems): Allow partial-int modes also.
20208         (prepare_call_arguments): Likewise.
20209         * stor-layout.c (finalize_type_size): Preserve precision.
20210         (layout_type): Use precision, not size.
20211
20212         * expr.c (convert_move): If the target has an explicit converter,
20213         use it.
20214
20215 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20216
20217         * gdbinit.in: Skip various inline functions in rtl.h when
20218         stepping.
20219
20220 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
20221
20222         PR bootstrap/62301
20223         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
20224
20225 2014-08-29  Richard Biener  <rguenther@suse.de>
20226
20227         PR tree-optimization/62291
20228         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
20229         exactly the vector size needed and use quick_push.
20230         (phi_translate_1): Adjust comment.
20231         (valid_in_sets): Remove block argument and remove pointless
20232         checking of NAMEs.
20233         (dependent_clean): Adjust for removal of block argument.
20234         (clean): Likewise.
20235         (compute_antic_aux): Likewise.
20236         (compute_partial_antic_aux): Likewise.
20237
20238 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20239             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20240             Anna Tikhonova  <anna.tikhonova@intel.com>
20241             Ilya Tocar  <ilya.tocar@intel.com>
20242             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20243             Ilya Verbin  <ilya.verbin@intel.com>
20244             Kirill Yukhin  <kirill.yukhin@intel.com>
20245             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20246
20247         * config/i386/sse.md
20248         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
20249         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
20250         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
20251         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
20252
20253 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20254             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20255             Anna Tikhonova  <anna.tikhonova@intel.com>
20256             Ilya Tocar  <ilya.tocar@intel.com>
20257             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20258             Ilya Verbin  <ilya.verbin@intel.com>
20259             Kirill Yukhin  <kirill.yukhin@intel.com>
20260             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20261
20262         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
20263         * config/i386/sse.md
20264         (define_mode_iterator VI4_128_8_256): New.
20265         (define_mode_iterator VI2_128_4_256): Ditto.
20266         (define_mode_iterator PMOV_DST_MODE): Rename into
20267         (define_mode_iterator PMOV_DST_MODE_1): this.
20268         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
20269         Use PMOV_DST_MODE_1 mode iterator.
20270         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20271         Ditto.
20272         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20273         Ditto.
20274         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
20275         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
20276         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
20277         (define_mode_iterator PMOV_DST_MODE_2): New.
20278         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
20279         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
20280         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
20281         Ditto.
20282         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
20283         (define_mode_attr pmov_dst_3): Ditto.
20284         (define_mode_attr pmov_dst_zeroed_3): Ditto.
20285         (define_mode_attr pmov_suff_3): Ditto.
20286         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
20287         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
20288         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
20289         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
20290         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
20291         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
20292         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
20293         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
20294         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
20295         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
20296         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
20297         (define_mode_attr pmov_dst_4): Ditto.
20298         (define_mode_attr pmov_dst_zeroed_4): Ditto.
20299         (define_mode_attr pmov_suff_4): Ditto.
20300         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
20301         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
20302         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
20303         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
20304         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
20305         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
20306         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
20307         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
20308         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
20309         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
20310         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
20311
20312 2014-08-29  Richard Biener  <rguenther@suse.de>
20313
20314         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
20315         NON_LVALUE_EXPR in gimple.
20316
20317 2014-08-29  Richard Biener  <rguenther@suse.de>
20318
20319         PR middle-end/62292
20320         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
20321         from previous refactoring.
20322         (gimple_fold_builtin_strncpy): Likewise.
20323
20324 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20325
20326         PR bootstrap/62300
20327         * function.c (assign_parm_setup_reg): Remove erroneous checked
20328         cast to rtx_insn * on result of gen_extend_insn in favor of
20329         introducing a new local rtx "pat".
20330
20331 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20332
20333         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20334         to silence warning.
20335         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20336
20337 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20338
20339         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20340         (next_insn): Likewise.
20341         * emit-rtl.c (next_insn): Likewise.
20342         (previous_insn): Likewise.
20343         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20344         "insn" and "next" from rtx to rtx_insn *.
20345         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20346         "insn", "insn1", "vliw_start",  "prologue_end_note",
20347         "last_insn_in_packet".
20348
20349 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20350
20351         * shrink-wrap.h (active_insn_between): Strengthen both params from
20352         rtx to rtx_insn *.
20353         * function.c (active_insn_between): Likewise.
20354
20355 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20356
20357         * genattr.c (main): When writing out insn-attr.h, strengthen param
20358         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20359         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20360         writing out the definition of dfa_clear_single_insn_cache to the
20361         generated insn-automata.c
20362
20363 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20364
20365         * resource.h (clear_hashed_info_for_insn): Strengthen param from
20366         rtx to rtx_insn *.
20367         (incr_ticks_for_insn): Likewise.
20368         (init_resource_info): Likewise.
20369
20370         * resource.c (init_resource_info): Likewise.
20371         (clear_hashed_info_for_insn): Likewise.
20372         (incr_ticks_for_insn): Likewise.
20373
20374         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20375         rtx to rtx_insn *.
20376         (steal_delay_list_from_target): Use methods of "seq".
20377         (try_merge_delay_insns): Use methods of "merged_insns".
20378         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20379         (reorg_redirect_jump): Likewise for param "jump".
20380
20381 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20382
20383         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20384         rtx to rtx_insn *.
20385         * config/s390/s390.c (s390_split_branches): Eliminate top-level
20386         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20387         "set_insn".
20388         (s390_mainpool_finish): In three places, split out a local rtx
20389         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20390         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
20391         and split another local rtx "insn" out into rtx "pat" and
20392         rtx_insn * "insn".
20393         * config/sh/sh.c (output_branchy_insn): Rather than working
20394         directly on operands[9], introduce local rtx_code_label *
20395         variables named "lab" in two places, working on them, and then
20396         assigning them to operands[9], so that the intervening operations
20397         are known by the type system to be on insns.
20398
20399 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20400
20401         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
20402         const rtx_insn *.
20403
20404         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
20405         in invocation of INSN_HAS_LOCATION.
20406
20407 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20408
20409         * config/rs6000/altivec.h (vec_xl): New #define.
20410         (vec_xst): Likewise.
20411         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
20412         (XXSPLTD_V2DI): Likewise.
20413         (DIV_V2DI): Likewise.
20414         (UDIV_V2DI): Likewise.
20415         (MUL_V2DI): Likewise.
20416         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20417         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
20418         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
20419         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
20420         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
20421         (UNSPEC_VSX_DIVSD): Likewise.
20422         (UNSPEC_VSX_DIVUD): Likewise.
20423         (UNSPEC_VSX_MULSD): Likewise.
20424         (vsx_mul_v2di): New insn-and-split.
20425         (vsx_div_v2di): Likewise.
20426         (vsx_udiv_v2di): Likewise.
20427         (vsx_xxspltd_<mode>): New insn.
20428
20429 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20430
20431         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
20432         NEXT_INSN.
20433         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
20434         (NEXT_INSN): Likewise.
20435         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
20436         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
20437         const rtx_insn *.
20438         (no_labels_between_p): Likewise for both params.
20439
20440         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
20441         cast when using NEXT_INSN on operands[2].
20442         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
20443         "insn" from rtx to rtx_insn *, adding a checked cast.
20444         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
20445         rtx_insn *.
20446         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
20447         for third param.
20448         (arc_text_label): Likewise for param "insn".
20449         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
20450         "insn".
20451         (arc_ccfsm_record_condition): Likewise for param "jump".
20452         (arc_text_label): Likewise for local "label".
20453         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
20454         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
20455         a method for typesafety.  Add a checked cast.
20456         * config/arc/constraints.md (Clb): Add a checked cast when getting
20457         the CODE_LABEL from a LABEL_REF.
20458         * config/arm/arm.c (require_pic_register): Strengthen locals
20459         "seq", "insn" from rtx to rtx_insn *.
20460         (create_fix_barrier): Likewise for locals "selected", "next".
20461         (thumb1_reorg): Likewise for locals "prev", "insn".
20462         (arm_expand_prologue): Likewise for local "last".
20463         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
20464         operands[0].
20465         (thumb2_output_casesi): Likewise for operands[2].
20466         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
20467         strengthen local "insn" from rtx to rtx_insn *.
20468         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
20469         type and param "insn".
20470         (find_prev_insn_start): Likewise.
20471         (hwloop_optimize): Likewise for locals "insn", "last_insn",
20472         "prev".
20473         (gen_one_bundle): Likewise for loal "t".
20474         (find_load): Likewise for param "insn".
20475         (workaround_speculation): Likewise for locals "insn", "next",
20476         "target", "next_tgt".
20477         * config/c6x/c6x.c (assign_reservations): Likewise for both params
20478         and for locals "insn", "within", "last".
20479         (count_unit_reqs): Likewise for params "head", "tail" and local
20480         "insn".
20481         (try_rename_operands): Likewise for params "head", "tail".
20482         (reshuffle_units): Likewise for locals "head", "tail", "insn".
20483         (struct c6x_sched_context): Likewise for fields
20484         "last_scheduled_insn", "last_scheduled_iter0".
20485         (init_sched_state): Replace NULL_RTX with NULL.
20486         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
20487         to rtx_insn *.
20488         (undo_split_delayed_nonbranch): Likewise for param and for local
20489         "prev".
20490         (conditionalize_after_sched): Likewise for local "insn".
20491         (bb_earliest_end_cycle): Likewise.
20492         (filter_insns_above): Likewise for locals "insn", "next".
20493         (hwloop_optimize): Remove redundant checked cast.
20494         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
20495         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
20496         NULL_RTX with NULL.
20497         (cris_simple_epilogue): Likewise.
20498         (cris_expand_prologue): Likewise.
20499         (cris_expand_epilogue): Likewise.
20500         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
20501         local "insn" from rtx to rtx_insn *.
20502         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
20503         (struct frv_packet_group): Likewise for the elements within array
20504         fields "insns", "sorted", and for field "nop".
20505         (frv_packet): Likewise for the elements within array field
20506         "insns".
20507         (frv_add_insn_to_packet): Likewise for param "insn".
20508         (frv_insert_nop_in_packet): Likewise for param "insn" and local
20509         "last".
20510         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
20511         (frv_sort_insn_group_1): Likewise for local "insn".
20512         (frv_optimize_membar_local): Likewise.
20513         (frv_align_label): Likewise for locals "x", "last", "barrier",
20514         "label".
20515         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
20516         local.
20517         (ia64_sched_init): Likewise for local "insn".
20518         (scheduled_good_insn): Likewise for param "last".
20519         (struct _ia64_sched_context): Likewise for field
20520         "last_scheduled_insn".
20521         (ia64_init_sched_context): Replace NULL_RTX with NULL.
20522         (struct bundle_state): Likewise for field "insn".
20523         (issue_nops_and_insn): Likewise for param "insn".
20524         (get_next_important_insn): Likewise for return type and both
20525         params.
20526         (ia64_add_bundle_selector_before): Likewise for param "insn".
20527         (bundling): Likewise for params "prev_head_insn", "tail" and
20528         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
20529         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
20530         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
20531         Strengthen final param from rtx to rtx_insn *.
20532         (iq2000_move_1word): Likewise for second param.
20533         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
20534         param "cur_insn" and local "next_insn".
20535         (iq2000_move_1word): Likewise for param "insn".
20536         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
20537         casts when using NEXT_INSN on operands[1].
20538         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
20539         "insn" from rtx to rtx_insn *.
20540         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
20541         "x", introducing local rtx_insn * "insn" for when working with the
20542         CODE_LABEL of the LABEL_REF.
20543         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
20544         rtx_insn *.
20545         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
20546         param.
20547         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
20548         type.
20549         (conditionalize_block): Likewise for return type and param.
20550         (mcore_is_dead): Likewise for param "first" and local "insn".
20551         (emit_new_cond_insn): Likewise for return type.
20552         (conditionalize_block): Likewise for return type, param, and
20553         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
20554         "newinsn".
20555         (conditionalize_optimization): Likewise for local "insn".
20556         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
20557         using NEXT_INSN.
20558         * config/microblaze/microblaze.md: Add checked casts when using
20559         NEXT_INSN.
20560         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
20561         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
20562         and rtx_insn * "insn".
20563         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
20564         checked cast when using NEXT_INSN on operands[2].
20565         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
20566         local "insn" from rtx to rtx_insn *.
20567         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
20568         Likewise.
20569         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
20570         Add a checked cast when using NEXT_INSN on operands[1].
20571         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
20572         rtx to rtx_insn *.
20573         (pa_output_cbranch): Likewise for final param.
20574         (pa_output_lbranch): Likewise for second param.
20575         (pa_output_bb): Likewise for third param.
20576         (pa_output_bvb): Likewise.
20577         (pa_output_dbra): Likewise for second param.
20578         (pa_output_movb): Likewise.
20579         (pa_output_parallel_movb): Likewise.
20580         (pa_output_parallel_addb): Likewise.
20581         (pa_output_millicode_call): Likewise for first param.
20582         (pa_output_mul_insn): Likewise for second param.
20583         (pa_output_div_insn): Likewise for third param.
20584         (pa_output_mod_insn): Likewise for second param.
20585         (pa_jump_in_call_delay): Likewise for param.
20586         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
20587         (pa_output_div_insn): Likewise.
20588         (pa_output_mod_insn): Likewise.
20589         (pa_output_cbranch): Likewise.
20590         (pa_output_lbranch): Likewise.
20591         (pa_output_bb): Likewise.
20592         (pa_output_bvb): Likewise.
20593         (pa_output_dbra): Likewise.
20594         (pa_output_movb): Likewise.
20595         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
20596         to simplify and for typesafety.
20597         (pa_output_call): Use method of rtx_sequence *.
20598         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
20599         (pa_jump_in_call_delay): Likewise.
20600         (pa_output_parallel_movb): Likewise.
20601         (pa_output_parallel_addb): Likewise.
20602         (pa_following_call): Likewise.
20603         (pa_combine_instructions): Likewise for locals "anchor",
20604         "floater".
20605         (pa_can_combine_p): Likewise for params "anchor", "floater" and
20606         locals "start", "end".
20607         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
20608         param "insn" and local "local_insn".
20609         (picochip_final_prescan_insn): Likewise for local "local_insn".
20610         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
20611         local "insn".
20612         (uses_TOC): Likewise.
20613         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
20614         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
20615         splitting out to more tightly-scoped locals, 3 as rtx and one as
20616         rtx_insn *.
20617         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
20618         to rtx_insn *.
20619         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
20620         where needed.
20621         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
20622         to rtx_insn *.
20623         (fixup_addr_diff_vecs): Likewise.
20624         (reg_unused_after): Likewise for param 2.
20625         (sh_can_redirect_branch): Likewise for both params.
20626         (check_use_sfunc_addr): Likewise for param 1.
20627         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
20628         (find_barrier): Likewise for local "last_got".
20629         (gen_block_redirect): Likewise for return type, param "jump" and
20630         locals "prev", "scan", "next", "insn".
20631         (struct far_branch): Likewise for fields "near_label",
20632         "insert_place", "far_label".
20633         (gen_far_branch): Likewise for local "jump".
20634         (fixup_addr_diff_vecs): Likewise for param "first" and locals
20635         "insn", "prev".
20636         (barrier_align): Likewise for param and for locals "prev", "x".
20637         Introduce local rtx_sequence * "prev_seq" and use insn method for
20638         typesafety and clarity.
20639         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
20640         (get_dest_uid): Likewise for local "dest".
20641         (split_branches): Likewise for locals "next", "beyond", "label",
20642         "block", "far_label".  Add checked casts when assigning to
20643         bp->far_label and "far_label".
20644         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
20645         (sequence_insn_p): Likewise.
20646         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
20647         more loop-scoped rtx "insn" when walking LABEL_REFS.
20648         (sh_can_redirect_branch): Strengthen both params from rtx to
20649         rtx_insn *.
20650         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
20651         new local rtx_sequence * "seq" via a dyn_cast, and use a method
20652         for clarity and typesafety.
20653         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
20654         "insn" from rtx to rtx_insn *.
20655         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
20656         when using NEXT_INSN on the CODE_LABEL in operands[2].
20657         (define_insn "casesi_worker_2"): Likewise.
20658         (define_insn "casesi_shift_media"): Likewise.
20659         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
20660         operands[3].
20661         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
20662         Strengthen field "insn" from rtx to rtx_insn *.
20663         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
20664         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
20665         param "start_insn" and local "start_insn".
20666         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
20667         field "insn".
20668         (find_set_of_reg_bb): Likewise for param "insn".
20669         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
20670         (trace_reg_uses): Likewise for param "start_insn".
20671         (sh_treg_combine::cbranch_trace): Likewise for field
20672         "cbranch_insn".
20673         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
20674         param "insn".
20675         (sh_treg_combine::record_set_of_reg): Likewise for param
20676         "start_insn" and local "i".
20677         (sh_treg_combine::can_remove_cstore): Likewise for local
20678         "prev_insn".
20679         (sh_treg_combine::try_optimize_cbranch): Likewise for param
20680         "insn".
20681         (sh_treg_combine::execute): Likewise for local "i".
20682         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
20683         param.
20684         (sparc_check_64): Likewise for second param.
20685         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
20686         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
20687         dyn_cast, using its insn method for typesafety and clarity.
20688         (empty_delay_slot): Strengthen param "insn" from rtx to
20689         rtx_insn *.
20690         (set_extends): Likewise.
20691         (sparc_check_64): Likewise.
20692         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
20693         for locals "seq", "last_insn".
20694         (combine_bnp): Likewise for param "insn".
20695         (xstormy16_reorg): Likewise for local "insn".
20696         * config/v850/v850.c (substitute_ep_register): Likewise for params
20697         "first_insn", "last_insn" and local "insn".
20698         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
20699         elements of "regs" array, and local "insn".
20700         * except.c (emit_note_eh_region_end): Likewise for param "insn".
20701         * final.c (final_sequence): Strengthen this global from rtx to
20702         rtx_sequence *.
20703         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
20704         rtx_insn *.
20705         (final_scan_insn): Update assignment to "final_sequence" to be
20706         from "seq", the cast version of "body", for type-safety.
20707         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
20708         "insns" from rtx to rtx_insn *.
20709         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
20710         * genattr.c (main): When writing out generated insn-attr.h,
20711         strengthen params 1 and 3 of eligible_for_delay,
20712         eligible_for_annul_true, eligible_for_annul_false from rtx to
20713         rtx_insn *.
20714         * genattrtab.c (write_eligible_delay): Likewise when writing out
20715         generated insn-attrtab.c; also local "insn" the generated
20716         functions.
20717         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
20718         to rtx_insn *.
20719         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
20720         "start_label" from rtx to rtx_insn *.
20721         * ira.c (decrease_live_ranges_number): Likewise for local "p".
20722         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
20723         "insns" and local "insn".
20724         (validate_equiv_mem): Likewise for param "start" and local "insn".
20725         (memref_used_between_p): Likewise for params "start", "end" and
20726         local "insn".
20727         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
20728         final param.
20729         * loop-doloop.c (doloop_optimize): Within region guarded by
20730         INSN_P (doloop_pat), introduce a new local rtx_insn *
20731         "doloop_insn" via a checked cast, and use it for typesafety,
20732         eventually writing the value back into doloop_pat.
20733         * output.h (final_sequence): Strengthen this global from rtx to
20734         rtx_sequence *.
20735         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
20736         reintroducing "insn" as an rtx_insn * via a checked cast.
20737         Strengthen param "attempt" and local "new_insn"from rtx to
20738         rtx_insn *.
20739         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
20740         to rtx_insn *.
20741         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
20742         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
20743         "p" in favor of more tightly-scoped replacements, sometimes rtx
20744         and sometimes rtx_insn *, as appropriate.
20745         (delete_output_reload): Eliminate top-level rtx "i1", splitting
20746         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
20747         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
20748         local "trial" from rtx to rtx_insn *.
20749         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
20750         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
20751         rtx_sequence * and use methods for clarity and typesafety.
20752         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
20753         rtx to rtx_insn *.  Strenghten local "li" from rtx to
20754         rtx_insn_list * and use its methods for clarity and typesafety.
20755         (steal_delay_list_from_target): Strengthen param "insn" from rtx
20756         to rtx_insn *.
20757         (steal_delay_list_from_fallthrough): Likewise.
20758         (try_merge_delay_insns): Likewise for param "thread" and locals
20759         "trial", "next_trial", "delay_insn".
20760         (redundant_insn): Likewise for param "target" and local "trial".
20761         (own_thread_p): Likewise for param "thread" and locals
20762         "active_insn", "insn".
20763         (get_label_before): Likewise for param "insn".
20764         (fill_simple_delay_slots): Likewise for local "new_label"; use
20765         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
20766         (label_before_next_insn): Strengthen return type and local "insn"
20767         from rtx to rtx_insn *.
20768         (relax_delay_slots): Likewise for locals "other", "tmp".
20769         (make_return_insns): Likewise for param "first" and locals "insn",
20770         "jump_insn", "prev".  Move declaration of "pat" to its assignment
20771         and strengthen from rtx to rtx_sequence *.  Use its methods for
20772         clarity and typesafety.
20773         * rtlanal.c (no_labels_between_p): Strengthen params from
20774         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
20775         rtx_insn *.
20776         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
20777         from const_rtx to const rtx_insn *.
20778         (reg_set_between_p): Rename param "from_insn" to
20779         "uncast_from_insn", and reintroduce "from_insn" as a
20780         const rtx_insn * via a checked cast.
20781         (modified_between_p): Likewise for param "start" as "uncast_start".
20782         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
20783         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
20784         "tmp", head" from rtx to rtx_insn *.
20785         (recompute_rev_top_order): Likewise for local "insn".
20786         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
20787         * store-motion.c (build_store_vectors): Likewise for local "insn".
20788         Strengthen local "st" from rtx to rtx_insn_list * and use methods
20789         for clarity and typesafety.
20790         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
20791         rtx to rtx_insn *.
20792         (computation_cost): Likewise for local "seq".
20793         (get_address_cost): Likewise.
20794
20795 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20796
20797         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
20798         const rtx_insn *.
20799         (label_is_jump_target_p): Likewise for second param.
20800
20801         * rtlanal.c (tablejump_p): Likewise for param "insn".
20802         (label_is_jump_target_p): Likewise for param "jump_insn".
20803
20804 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20805
20806         * rtl.h (find_first_parameter_load): Strengthen return type and
20807         both params from rtx to rtx_insn *.
20808         * rtlanal.c (find_first_parameter_load): Strengthen return type,
20809         both params and locals "before", "first_set" from rtx to
20810         rtx_insn *.  Remove now-redundant cast.
20811         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
20812
20813 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20814
20815         * rtl.h (find_last_value): Delete.
20816         * rtlanal.c (find_last_value): Delete.
20817
20818 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20819
20820         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
20821         from rtx to rtx_insn *.
20822         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
20823         rtx "note" with new local rtx_insn * "new_head" when calculating
20824         head insn of new basic block.
20825         * combine.c (combine_split_insns): Strengthen return type and local
20826         "ret" from rtx to rtx_insn *.
20827         (likely_spilled_retval_p): Likewise for locals "use" and "p".
20828         (try_combine): Eliminate local "m_split", splitting into new
20829         locals "m_split_insn" and "m_split_pat".
20830         (find_split_point): Strengthen local "seq" from rtx into
20831         rtx_insn *.
20832         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
20833         locals "label", "branch".
20834         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
20835         for local "insn".
20836         (define_expand "umulsi3_highpart"): Likewise for local "insn".
20837         * dse.c (note_add_store_info): Likewise for fields "first",
20838         "current".
20839         (note_add_store): Likewise for local "insn".
20840         (emit_inc_dec_insn_before): Likewise for locals "insn",
20841         "new_insn", "cur".
20842         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
20843         (replace_read): Likewise for locals "insns", "this_insn".
20844         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
20845         (notice_eh_throw): Likewise for param "insn".
20846         (before_next_cfi_note): Likewise for return type, param, and local
20847         "prev".
20848         (connect_traces): Likewise for local "note".
20849         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
20850         (verify_rtl_sharing): Likewise.
20851         (unshare_all_rtl_in_chain): Likewise for param "insn".
20852         (get_first_nonnote_insn): Likewise for local "insn".
20853         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
20854         "seq" and use its methods to clarify things.
20855         (next_insn): Strengthen return type from rtx to rtx_insn *.
20856         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
20857         local rtx_insn * using a checked cast, dropping a checked cast
20858         made redundant by this change.  Use a cast to and method of
20859         rtx_sequence to clarify the code.
20860         (previous_insn): Rename param "insn" to "uncast_insn" and
20861         reintroduce "insn" as a local rtx_insn * using a checked cast,
20862         dropping a checked cast made redundant by this change.  Use a cast
20863         to and method of rtx_sequence to clarify the code.
20864         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
20865         reintroduce "insn" as a local rtx_insn * using a checked cast,
20866         dropping a checked cast made redundant by this change.
20867         (next_nonnote_insn_bb): Likewise.
20868         (prev_nonnote_insn): Likewise.
20869         (prev_nonnote_insn_bb): Likewise.
20870         (next_nondebug_insn): Likewise.
20871         (prev_nondebug_insn): Likewise.
20872         (next_nonnote_nondebug_insn): Likewise.
20873         (prev_nonnote_nondebug_insn): Likewise.
20874         (next_real_insn): Likewise.
20875         (prev_real_insn): Likewise.
20876         (next_active_insn): Likewise.
20877         (prev_active_insn): Likewise.
20878         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
20879         clarity.
20880         (prev_cc0_setter): Likewise.
20881         (try_split): Rename param "trial" to "uncast_trial" and
20882         reintroduce "insn" as a local rtx_insn * using a checked cast,
20883         dropping checked casts made redundant by this change.
20884         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
20885         rtx to rtx_insn *.
20886         (remove_insn): Rename param "insn" to "uncast_insn" and
20887         reintroduce "insn" as a local rtx_insn * using a checked cast.
20888         (emit_pattern_after_setloc): Likewise for param "after", as
20889         "uncast_after".
20890         (emit_pattern_after): Likewise.  Strengthen local "prev" from
20891         rtx to rtx_insn *.
20892         (emit_pattern_before_setloc): Rename param "before" to
20893         "uncast_before" and reintroduce "before" as a local rtx_insn *
20894         using a checked cast.  Strengthen locals "first", "last" from
20895         rtx to rtx_insn *.
20896         (emit_pattern_before): Likewise rename/cast param "before" to
20897         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
20898         * except.c (copy_reg_eh_region_note_forward): Strengthen param
20899         "first" and local "insn" from rtx to rtx_insn *.
20900         (copy_reg_eh_region_note_backward): Likewise for param "last"
20901         and local "insn".
20902         * expr.c (fixup_args_size_notes): Rename param "last" to
20903         "uncast_last" and reintroduce "last" as a local rtx_insn *
20904         using a checked cast.  Strengthen local "insn" from rtx to
20905         rtx_insn *.
20906         * function.c (set_insn_locations): Strengthen param "insn" from
20907         rtx to rtx_insn *.
20908         (record_insns): Likewise for param "insns" and local "tmp".
20909         (active_insn_between): Rename param "tail" to
20910         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
20911         using a checked cast.
20912         (thread_prologue_and_epilogue_insns): Split out top-level local
20913         rtx "seq" into three different rtx_insn * locals.  Strengthen
20914         local "prologue_seq" from rtx to rtx_insn *.
20915         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
20916         from rtx to rtx_insn *.
20917         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
20918         (priority): Likewise for locals "prev_first", "twin".
20919         (setup_insn_max_reg_pressure): Likewise for param "after".
20920         (sched_setup_bb_reg_pressure_info): Likewise.
20921         (no_real_insns_p): Strengthen params from const_rtx to
20922         const rtx_insn *.
20923         (schedule_block): Strengthen local "next_tail" from rtx to
20924         rtx_insn *.
20925         * ifcvt.c (find_active_insn_before): Strengthen return type and
20926         param "insn" from rtx to rtx_insn *.
20927         (find_active_insn_after): Likewise.
20928         (cond_exec_process_insns): Likewise for param "start" and local "insn".
20929         (cond_exec_process_if_block): Likewise for locals "then_start",
20930         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
20931         (noce_process_if_block): Likewise for local "jump".
20932         (merge_if_block): Likewise for two locals named "end".
20933         (cond_exec_find_if_block): Likewise for local "last_insn".
20934         * jump.c (delete_related_insns): Rename param "insn" to
20935         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
20936         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
20937         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
20938         NULL.
20939         (split_reg): Likewise.
20940         * lra.c (lra_process_new_insns): Likewise.
20941         * modulo-sched.c (permute_partial_schedule): Strengthen param
20942         "last" from rtx to rtx_insn *.
20943         * optabs.c (add_equal_note): Likewise for param "insns" and local
20944         "last_insn".
20945         (expand_binop_directly): Add checked casts to rtx_insn * within
20946         NEXT_INSN (pat) uses.
20947         (expand_unop_direct): Likewise.
20948         (maybe_emit_unop_insn): Likewise.
20949         * recog.c (peep2_attempt): Strengthen locals "last",
20950         "before_try", "x" from rtx to rtx_insn *.
20951         * reorg.c (optimize_skip): Strengthen return type and local
20952         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
20953         and locals "trial", "next_trial" from rtx to rtx_insn *.
20954         * resource.c (next_insn_no_annul): Strengthen return type and
20955         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
20956         rtx_sequence to clarify the code.
20957         (mark_referenced_resources): Add a checked cast to rtx_insn *
20958         within PREV_INSN (x).
20959         (find_dead_or_set_registers): Strengthen return type, param
20960         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
20961         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
20962         to rtx_insn **.
20963         (mark_target_live_regs): Strengthen params "insns" and "target",
20964         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
20965         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
20966         the code.
20967         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
20968         from rtx to rtx_insn *.
20969         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
20970         from rtx to rtx_insn *.
20971         (copy_reg_eh_region_note_backward): Likewise.
20972         (unshare_all_rtl_in_chain): Likewise for sole param.
20973         (dump_rtl_slim): Strengthen second and third params from const_rtx
20974         to const rtx_insn *.
20975         * sched-deps.c (sched_free_deps): Strengthen params "head" and
20976         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
20977         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
20978         "next_tail" from rtx to rtx_insn *.
20979         (begin_move_insn): Likewise for local "next".
20980         * sched-int.h (sched_free_deps): Likewise for first and second
20981         params.
20982         (no_real_insns_p): Strengthen both params from const_rtx to
20983         const rtx_insn *.
20984         (sched_setup_bb_reg_pressure_info): Strengthen second params from
20985         rtx to rtx_insn *.
20986         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
20987         "next_tail".
20988         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
20989         and locals "insn", "tail" from const_rtx to const rtx_insn *.
20990         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
20991         rtx_insn *.
20992         (debug_rtl_slim): Strengthen params "first" and "last" from
20993         const_rtx to const rtx_insn *.
20994         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
20995         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
20996         (convert_to_simple_return): Likewise for param "returnjump".
20997         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
20998         "prologue_seq".
20999         (convert_to_simple_return): Likewise for param "returnjump".
21000         * valtrack.c (propagate_for_debug): Likewise for params
21001         "insn", "last".
21002         * valtrack.h (propagate_for_debug): Likewise for second param.
21003
21004 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21005
21006         * output.h (insn_current_reference_address): Strengthen param
21007         from rtx to rtx_insn *.
21008         * final.c (insn_current_reference_address): Likewise.
21009
21010 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21011
21012         * basic-block.h (inside_basic_block_p): Strengthen param from
21013         const_rtx to const rtx_insn *.
21014         * cfgbuild.c (inside_basic_block_p): Likewise.
21015
21016 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21017
21018         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
21019         rtx_insn *.
21020         (get_trace_info): Likewise for param "insn".
21021         (save_point_p): Likewise.
21022         (maybe_record_trace_start): Likewise for both params.
21023         (maybe_record_trace_start_abnormal): Likewise.
21024         (create_trace_edges): Likewise for sole param and for three of the
21025         locals named "lab".
21026         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
21027         to rtx_insn *, and update a call to pat->element to pat->insn.
21028
21029 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21030
21031         * function.h (struct expr_status): Convert field "x_forced_labels"
21032         from rtx_expr_list * to rtx_insn_list *.
21033
21034         * cfgbuild.c (make_edges): Convert local "x" from an
21035         rtx_expr_list * to an rtx_insn_list *, replacing use of
21036         "element" method with "insn" method.
21037         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21038         * except.c (sjlj_emit_dispatch_table): Replace use of
21039         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
21040         forced_labels.
21041         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
21042         rtx_expr_list * to an rtx_insn_list *, replacing use of
21043         "element" method with "insn" method.
21044         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21045         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
21046         rtx_insn *, adding a checked cast.  Replace use of
21047         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
21048         forced_labels.
21049         (expand_label): Likewise for local "label_r".
21050
21051 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21052
21053         * function.h (struct rtl_data): Convert field
21054         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
21055         rtx_insn_list *.
21056         * rtl.h (remove_node_from_insn_list): New prototype.
21057
21058         * builtins.c (expand_builtin): When prepending to
21059         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21060         gen_rtx_EXPR_LIST.
21061         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
21062         to rtx_insn_list *, and use its "insn" method rather than
21063         "element" method.
21064         * cfgrtl.c (delete_insn): Use new function
21065         remove_node_from_insn_list rather than
21066         remove_node_from_expr_list.
21067         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
21068         to rtx_insn_list *, and use its "insn" method rather than
21069         "element" method.
21070         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21071         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21072         * rtlanal.c (remove_node_from_insn_list): New function, adapted
21073         from remove_node_from_expr_list.
21074         * stmt.c (expand_label): When prepending to
21075         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21076         gen_rtx_EXPR_LIST.
21077
21078 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21079
21080         * function.h (struct rtl_data): Strengthen fields "x_return_label"
21081         and "x_naked_return_label" from rtx to rtx_code_label *.
21082
21083 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21084
21085         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
21086         (SET_NEXT_INSN): Likewise.
21087         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
21088
21089         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
21090         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
21091         to split out the SEQUENCE from local "bundle", strengthening the
21092         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
21093         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
21094         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
21095         and the type of the elements of the "slot" array from rtx to
21096         rtx_insn *.
21097         (reorg_split_calls): Likewise for locals "insn" and "next", and
21098         the type of the elements of the "slot" array.
21099
21100         * config/frv/frv.c (frv_nops): Likewise for the elements of this
21101         array.
21102         (frv_function_prologue): Likewise for locals "insn", "next",
21103         "last_call".
21104         (frv_register_nop): Introduce a local "nop_insn" to be the
21105         rtx_insn * containing rtx "nop".
21106
21107         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
21108         used as an insn and sometimes as a pattern, so rename it to
21109         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
21110         using it where dealing with the core insn.
21111
21112         * config/picochip/picochip.c (reorder_var_tracking_notes):
21113         Strengthen locals "insn", "next", "last_insn", "queue",
21114         "next_queue", "prev" from rtx to rtx_insn *.
21115
21116         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
21117         the second param is an rtx_insn ** rather than an rtx **.
21118         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
21119         from rtx to rtx_sequence *, and introduce local named "sequence",
21120         using methods of rtx_sequence to clarify the code.
21121         (remove_insn): Introduce local rtx_sequence * named "sequence" and
21122         use its methods.
21123         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
21124         Rename param "after" to "uncast_after", reintroducing "after" as a
21125         local rtx_insn * with a checked cast.
21126         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
21127         reintroducing "after" as a local rtx_insn * with a checked cast.
21128         Strengthen local "last" from rtx to rtx_insn * and remove the
21129         now-redundant checked casts.
21130         (copy_delay_slot_insn): Strengthen return type and param from rtx
21131         to rtx_insn *.
21132
21133         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
21134         "last" from rtx to rtx_insn *.
21135
21136 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21137
21138         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
21139         param from rtx to rtx_insn *.
21140
21141         * emit-rtl.c (copy_delay_slot_insn): Likewise.
21142
21143         * reorg.c (skip_consecutive_labels): Strengthen return type, param
21144         and local "insn" from rtx to rtx_insn *.
21145         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
21146         (unfilled_slots_next): Likewise.
21147         (function_return_label): Strengthen from rtx to rtx_code_label *.
21148         (function_simple_return_label): Likewise.
21149         (first_active_target_insn): Strengthen return type and param from
21150         rtx to rtx_insn *.
21151         (find_end_label): Strengthen return type from rtx to
21152         rtx_code_label *; strengthen locals as appropriate.
21153         (emit_delay_sequence): Strengthen return type, param "insn" and
21154         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
21155         and local "li" from rtx to rtx_insn_list *, using methods of
21156         rtx_insn_list for clarity and typesafety.
21157         (add_to_delay_list): Strengthen return type and param "insn" from
21158         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
21159         rtx_insn_list * and use methods of rtx_insn_list.
21160         (delete_from_delay_slot): Strengthen return type, param "insn",
21161         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
21162         Strengthen local "seq" from rtx to rtx_sequence *, and local
21163         "delay_list" from rtx to rtx_insn_list *, using methods of
21164         rtx_sequence for clarity and type-safety.
21165         (delete_scheduled_jump): Add checked cast when invoking
21166         delete_from_delay_slot.  Strengthen local "trial" from rtx to
21167         rtx_insn *.
21168         (optimize_skip): Strengthen return type and local "delay_list"
21169         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
21170         rtx_insn *.
21171         (steal_delay_list_from_target): Strengthen return type, param
21172         "delay_list" and local "new_delay_list" from rtx to
21173         rtx_insn_list *.  Strengthen param "seq" from rtx to
21174         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
21175         rtx_insn **.
21176         Split out local "temp" into multiple more-tightly scoped locals:
21177         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
21178         of rtx_insn_list and rtx_sequence for clarity and typesafety.
21179         Strengthen locals named "trial" from rtx to rtx_insn *.
21180         (steal_delay_list_from_fallthrough): Strengthen return type and
21181         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
21182         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
21183         Strengthen local "trial" from rtx to rtx_insn *.
21184         (try_merge_delay_insns): Strength local "merged_insns" from rtx
21185         to rtx_insn_list * and use its methods.  Strengthen local "pat"
21186         from rtx to rtx_sequence * and use its methods.  Strengthen locals
21187         "dtrial" and "new_rtx" from rtx to rtx_insn *.
21188         (get_label_before): Strengthen return type and local "label" from
21189         rtx to rtx_insn *.
21190         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
21191         "next_trial", "next", prev".  Strengthen local "delay_list" from
21192         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
21193         rtx_insn **.
21194         (follow_jumps): Strengthen return type, param "label" and locals
21195         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
21196         (fill_slots_from_thread): Strengthen return type, param
21197         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
21198         "insn", "thread", "opposite_thread" and locals "new_thread",
21199         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
21200         "sequence" from a checked cast to rtx_sequence so that we can call
21201         steal_delay_list_from_target and steal_delay_list_from_fallthrough
21202         with an rtx_sequence *.
21203         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
21204         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
21205         Strengthen local "delay_list" from rtx to rtx_insn_list *.
21206         (relax_delay_slots): Strengthen param "first" and locals "insn",
21207         "next", "trial", "delay_insn", "target_label" from rtx to
21208         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
21209         Introduce a local "trial_seq" for PATTERN (trial) of type
21210         rtx_sequence *, in both cases using methods of rtx_sequence.
21211         (dbr_schedule): Strengthen param "first" and locals "insn",
21212         "next", "epilogue_insn" from rtx to rtx_insn *.
21213
21214 2014-08-28  Richard Biener  <rguenther@suse.de>
21215
21216         PR tree-optimization/62283
21217         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21218         Do not peel loops for alignment where the vector loop likely
21219         doesn't run at least VF times.
21220
21221 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
21222
21223         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
21224         important_candidates.  Consider all important candidates if
21225         IVS doesn't give any result.  Remove check on ivs->upto.
21226         (try_add_cand_for): Call iv_ca_add_use only once.
21227
21228 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21229             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21230             Anna Tikhonova  <anna.tikhonova@intel.com>
21231             Ilya Tocar  <ilya.tocar@intel.com>
21232             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21233             Ilya Verbin  <ilya.verbin@intel.com>
21234             Kirill Yukhin  <kirill.yukhin@intel.com>
21235             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21236
21237         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
21238         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
21239         masking.
21240         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
21241         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21242         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21243         (define_insn "*mul<mode>3"): Add EVEX version.
21244
21245 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21246             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21247             Anna Tikhonova  <anna.tikhonova@intel.com>
21248             Ilya Tocar  <ilya.tocar@intel.com>
21249             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21250             Ilya Verbin  <ilya.verbin@intel.com>
21251             Kirill Yukhin  <kirill.yukhin@intel.com>
21252             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21253
21254         * config/i386/sse.md
21255         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
21256         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
21257         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
21258         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
21259         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
21260         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
21261         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
21262         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
21263         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
21264         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
21265         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
21266         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
21267         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
21268         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
21269         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
21270         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
21271
21272 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21273             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21274             Anna Tikhonova  <anna.tikhonova@intel.com>
21275             Ilya Tocar  <ilya.tocar@intel.com>
21276             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21277             Ilya Verbin  <ilya.verbin@intel.com>
21278             Kirill Yukhin  <kirill.yukhin@intel.com>
21279             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21280
21281         * config/i386/sse.md
21282         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
21283         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
21284         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
21285
21286 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21287             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21288             Anna Tikhonova  <anna.tikhonova@intel.com>
21289             Ilya Tocar  <ilya.tocar@intel.com>
21290             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21291             Ilya Verbin  <ilya.verbin@intel.com>
21292             Kirill Yukhin  <kirill.yukhin@intel.com>
21293             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21294
21295         * config/i386/sse.md
21296         (define_mode_iterator VI128_256): New.
21297         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
21298
21299 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21300             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21301             Anna Tikhonova  <anna.tikhonova@intel.com>
21302             Ilya Tocar  <ilya.tocar@intel.com>
21303             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21304             Ilya Verbin  <ilya.verbin@intel.com>
21305             Kirill Yukhin  <kirill.yukhin@intel.com>
21306             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21307
21308         * config/i386/sse.md
21309         (define_mode_iterator VI8_256_512): New.
21310         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
21311         Ditto.
21312         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21313         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
21314         Ditto.
21315         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
21316
21317 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21318
21319         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
21320         pointer to the cumulative reloc value and return the value for
21321         this reloc instead.
21322         (compute_reloc_for_rtx): Take a const_rtx.  Call
21323         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21324         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
21325         for_each_rtx for the CONST case.
21326
21327 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21328
21329         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21330         (mark_constants_in_pattern): ...this new function to iterate over
21331         all the subrtxes.
21332         (mark_constants): Update accordingly.
21333
21334 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21335
21336         * varasm.c: Include rtl-iter.h.
21337         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21338         Remove the pointer to the cumulative hashval_t and just return
21339         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
21340         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21341         Accumulate the hashval_ts here instead of const_rtx_hash_1.
21342
21343 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21344
21345         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21346         Give real type of data parameter.  Remove return value.
21347         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21348         to iterate over subrtxes.
21349
21350 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21351
21352         * var-tracking.c (use_narrower_mode_test): Turn from being a
21353         for_each_rtx callback to being a function that examines each
21354         subrtx itself.
21355         (adjust_mems): Update accordingly.
21356
21357 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21358
21359         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21360         callback to being a function that examines each subrtx itself.
21361         Remove handling of null rtxes.
21362         (add_uses): Update accordingly.
21363
21364 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21365
21366         * var-tracking.c: Include rtl-iter.h.
21367         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21368         to being a function that examines each subrtx itself.
21369         (use_type): Update accordingly.
21370
21371 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21372
21373         * store-motion.c: Include rtl-iter.h.
21374         (extract_mentioned_regs_1): Delete.
21375         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21376         for_each_rtx to iterate over subrtxes.
21377
21378 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21379
21380         * sel-sched.c: Include rtl-iter.h
21381         (count_occurrences_1): Delete.
21382         (count_occurrences_equiv): Turn rtxes into const_rtxes.
21383         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21384
21385 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21386
21387         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21388         * rtlanal.c (tls_referenced_p_1): Delete.
21389         (tls_referenced_p): Take a const_rtx rather than an rtx.
21390         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21391
21392 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21393
21394         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21395         (for_each_inc_dec): Take an rtx rather than an rtx *.
21396         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21397         (cselib_record_sets): Likewise.
21398         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
21399         (check_for_inc_dec): Likewise.
21400         * rtlanal.c (for_each_inc_dec_ops): Delete.
21401         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
21402         rather than a pointer to the memory address.  Replace
21403         for_each_inc_dec_ops argument with separate function and data
21404         arguments.  Abort on non-autoinc addresses.
21405         (for_each_inc_dec_find_mem): Delete.
21406         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
21407         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
21408
21409 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21410
21411         * rtl.h (find_all_hard_regs): Declare.
21412         * rtlanal.c (find_all_hard_regs): New function.
21413         (record_hard_reg_uses_1): Delete.
21414         (record_hard_reg_uses): Use find_all_hard_regs.
21415
21416 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21417
21418         * rtl.h (replace_label_data): Delete.
21419         (replace_label): Take the old label, new label and update-nuses flag
21420         as direct arguments.  Return void.
21421         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
21422         * rtlanal.c (replace_label): Update interface as above.  Handle
21423         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
21424         iterator.  Use FOR_EACH_SUBRTX_PTR.
21425
21426 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21427
21428         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
21429         with const_rtx parameters.
21430         * varasm.c (get_pool_constant): Likewise.
21431         * rtlanal.c (rtx_referenced_p_1): Delete.
21432         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21433         Assert that the rtx we're looking for is nonnull.  Allow searches
21434         for constant pool SYMBOL_REFs.
21435
21436 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21437
21438         * reload1.c: Include rtl-iter.h.
21439         (note_reg_elim_costly): Turn from being a for_each_rtx callback
21440         to being a function that examines each subrtx itself.
21441         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
21442
21443 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21444
21445         * regcprop.c (cprop_find_used_regs_1): Delete.
21446         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21447
21448 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21449
21450         * regcprop.c: Include rtl-iter.h.
21451         (kill_value): Take a const_rtx.
21452         (kill_autoinc_value): Turn from being a for_each_rtx callback
21453         to being a function that examines each subrtx itself.
21454         (copyprop_hardreg_forward_1): Update accordingly.
21455
21456 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21457
21458         * reg-stack.c: Include rtl-iter.h.
21459         (subst_stack_regs_in_debug_insn): Delete.
21460         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
21461         instead of for_each_rtx.
21462
21463 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21464
21465         * lower-subreg.c (find_decomposable_subregs): Turn from being
21466         a for_each_rtx callback to being a function that examines each
21467         subrtx itself.  Remove handling of null rtxes.
21468         (decompose_multiword_subregs): Update accordingly.
21469
21470 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21471
21472         * lower-subreg.c (adjust_decomposed_uses): Delete.
21473         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
21474         Remove handling of null rtxes.
21475
21476 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21477
21478         * lower-subreg.c: Include rtl-iter.h.
21479         (resolve_subreg_use): Turn from being a for_each_rtx callback
21480         to being a function that examines each subrtx itself.  Remove
21481         handling of null rtxes.
21482         (resolve_reg_notes, resolve_simple_move): Update accordingly.
21483         (decompose_multiword_subregs): Likewise.
21484
21485 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21486
21487         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
21488         to being a function that examines each subrtx itself.
21489         (simplify_using_condition, simplify_using_initial_values): Update
21490         accordingly.
21491
21492 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21493
21494         * loop-iv.c: Include rtl-iter.h.
21495         (find_single_def_src): New function.
21496         (replace_single_def_regs): Turn from being a for_each_rtx callback
21497         to being a function that examines each subrtx itself.
21498         (replace_in_expr, simplify_using_initial_values): Update accordingly.
21499
21500 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21501
21502         * jump.c (eh_returnjump_p_1): Delete.
21503         (eh_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         * jump.c: Include rtl-iter.h.
21509         (returnjump_p_1): Delete.
21510         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21511         Remove handling of null rtxes.
21512
21513 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21514
21515         * ira.c: Include rtl-iter.h.
21516         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
21517         to being a function that examines each subrtx itself.  Remove
21518         handling of null rtxes.
21519         (update_equiv_regs): Update call accordingly.
21520
21521 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21522
21523         * fwprop.c: Include rtl-iter.h.
21524         (varying_mem_p): Turn from being a for_each_rtx callback to being
21525         a function that examines each subrtx itself.
21526         (propagate_rtx): Update accordingly.
21527
21528 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21529
21530         * function.c: Include rtl-iter.h
21531         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
21532         callback to being a function that examines each subrtx itself.
21533         Return the changed flag.
21534         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
21535         (instantiate_virtual_regs): Update calls accordingly.
21536
21537 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21538
21539         * final.c: Include rtl-iter.h.
21540         (mark_symbol_ref_as_used): Delete.
21541         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
21542         for_each_rtx.
21543
21544 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21545
21546         * emit-rtl.c: Include rtl-iter.h.
21547         (find_auto_inc): Turn from being a for_each_rtx callback to being
21548         a function that examines each subrtx itself.  Assume the first operand
21549         to an RTX_AUTOINC is the automodified register.
21550         (try_split): Update call accordingly.
21551
21552 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21553
21554         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
21555         Return a bool, inverting the result so that 0/false means "not ok".
21556         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
21557         subrtxes of a CONST.
21558         (mem_loc_descriptor, add_const_value_attribute)
21559         (resolve_addr_in_expr): Update calls accordingly.
21560
21561 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21562
21563         * dwarf2out.c: Include rtl-iter.h.
21564         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
21565         Remove unused data parameter.  Return a bool, inverting the result
21566         so that 0/false means "not ok".
21567         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
21568         instead of for_each_rtx.
21569
21570 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21571
21572         * dse.c: Include rtl-iter.h.
21573         (check_mem_read_rtx): Change void * parameter to real type.
21574         Remove return value.
21575         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
21576         for_each_rtx.  Don't handle null rtxes.
21577
21578 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21579
21580         * df-problems.c: Include rtl-iter.h.
21581         (find_memory): Turn from being a for_each_rtx callback to being
21582         a function that examines each subrtx itself.  Continue to look for
21583         volatile references even after a nonvolatile one has been found.
21584         (can_move_insns_across): Update calls accordingly.
21585
21586 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21587
21588         * ddg.c (walk_mems_2, walk_mems_1): Delete.
21589         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
21590         to iterate over subrtxes.  Return a bool rather than an int.
21591
21592 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21593
21594         * ddg.c: Include rtl-iter.h.
21595         (mark_mem_use_1): Rename to...
21596         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
21597         instead of for_each_rtx.
21598         (mem_read_insn_p): Update accordingly.
21599
21600 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21601
21602         * cse.c (change_cc_mode_args): Delete.
21603         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
21604         a function that examines each subrtx itself.  Take the fields of
21605         change_cc_mode_args as argument and return void.
21606         (cse_change_cc_mode_insn): Update calls accordingly.
21607
21608 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21609
21610         * cse.c (is_dead_reg): Change argument to const_rtx.
21611         (dead_debug_insn_data): Delete.
21612         (is_dead_debug_insn): Expand commentary.  Turn from being a
21613         for_each_rtx callback to being a function that examines
21614         each subrtx itself.  Take the fields of dead_debug_insn_data
21615         as argument.
21616         (delete_trivially_dead_insns): Update call accordingly.
21617
21618 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21619
21620         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
21621         being a for_each_rtx callback to being a function that examines
21622         each subrtx itself.
21623         (cse_extended_basic_block): Update call accordingly.
21624
21625 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21626
21627         * cse.c (check_dependence_data): Delete.
21628         (check_dependence): Change from being a for_each_rtx callback to being
21629         a function that examines all subrtxes itself.  Don't handle null rtxes.
21630         (invalidate): Update call accordingly.
21631
21632 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21633
21634         * cse.c: Include rtl-iter.h.
21635         (approx_reg_cost_1): Delete.
21636         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21637         Don't handle null rtxes.
21638
21639 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21640
21641         * cfgcleanup.c: Include rtl-iter.h.
21642         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
21643         to being a function that examines each subrtx itself.
21644         (thread_jump): Update accordingly.
21645
21646 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21647
21648         * combine-stack-adj.c: Include rtl-iter.h.
21649         (record_stack_refs_data): Delete.
21650         (record_stack_refs): Turn from being a for_each_rtx callback
21651         to being a function that examines each subrtx itself.
21652         Take a pointer to the reflist.  Invert sense of return value
21653         so that true means success and false means failure.  Don't
21654         handle null rtxes.
21655         (combine_stack_adjustments_for_block): Update accordingly.
21656
21657 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21658
21659         * combine.c (record_truncated_value): Turn from being a for_each_rtx
21660         callback to a function that takes an rtx and returns a bool
21661         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
21662         for_each_rtx.
21663
21664 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21665
21666         * combine.c: Include rtl-iter.h.
21667         (unmentioned_reg_p_1): Delete.
21668         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21669         Don't handle null rtxes.
21670
21671 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21672
21673         * calls.c: Include rtl-iter.h.
21674         (internal_arg_pointer_based_exp_1): Delete.
21675         (internal_arg_pointer_based_exp): Take a const_rtx.
21676         Use FOR_EACH_SUBRTX to iterate over subrtxes.
21677
21678 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21679
21680         * caller-save.c: Include rtl-iter.h.
21681         (add_used_regs_1): Delete.
21682         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
21683         to iterate over subrtxes.  Assert that any remaining pseudos
21684         have been spilled.
21685
21686 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21687
21688         * bt-load.c: Include rtl-iter.h.
21689         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
21690         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
21691         to iterate over subrtxes.
21692         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
21693         find_btr_use rather than btr_referenced_p.
21694
21695 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21696
21697         * alias.c: Include rtl-iter.h.
21698         (refs_newer_value_cb): Delete.
21699         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21700
21701 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21702
21703         * rtl-iter.h: New file.
21704         * rtlanal.c: Include it.
21705         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
21706         (generic_subrtx_iterator <T>::add_single_to_queue)
21707         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
21708         (generic_subrtx_iterator <T>::free_array): New functions.
21709         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
21710         (generic_subrtx_iterator <const_rtx_accessor>)
21711         (generic_subrtx_iterator <rtx_var_accessor>
21712         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
21713         (setup_reg_subrtx_bounds): New function.
21714         (init_rtlanal): Call it.
21715
21716 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
21717
21718         PR target/62261
21719         * config/sh/sh.md (ashlsi3): Handle negative shift count for
21720         TARGET_SHMEDIA.
21721         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
21722
21723 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
21724
21725         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
21726
21727 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21728
21729         * rtl.h (JUMP_LABEL_AS_INSN): New.
21730
21731 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21732
21733         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
21734         rtx_expr_list **.
21735         (alloc_EXPR_LIST): Strengthen return type from rtx to
21736         rtx_expr_list *.
21737         (remove_free_EXPR_LIST_node): Likewise for param.
21738         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
21739         from rtx to rtx_expr_list *.
21740         * sched-int.h (struct deps_desc): Strengthen fields
21741         "pending_read_mems" and "pending_write_mems" from rtx to
21742         rtx_expr_list *.
21743
21744         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
21745         rtx to rtx_expr_list *.
21746         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
21747         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
21748         rtx_expr_list **.
21749         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
21750         from rtx to rtx_expr_list *.
21751         * loop-iv.c (simplify_using_initial_values): Strengthen local
21752         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
21753         "pnote_next" from rtx * to rtx_expr_list **.
21754         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
21755         param "exprp" from rtx * to rtx_expr_list **.
21756         (add_insn_mem_dependence): Strengthen local "mem_list" from
21757         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
21758         to rtx_expr_list *.
21759         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
21760         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
21761         param "old_mems_p" from rtx * to rtx_expr_list **.
21762         * var-tracking.c (struct adjust_mem_data): Strengthen field
21763         "side_effects" from rtx to rtx_expr_list *.
21764         (adjust_insn): Replace NULL_RTX with NULL when assigning to
21765         rtx_expr_list *.
21766         (prepare_call_arguments): Likewise.
21767
21768 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21769
21770         * function.h (struct rtl_data): Strengthen field
21771         "x_stack_slot_list" from rtx to rtx_expr_list *.
21772
21773         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
21774         when assigning to stack_slot_list.
21775
21776 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21777
21778         * function.h (struct rtl_data): Strengthen field
21779         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
21780         * rtl.h (remove_node_from_expr_list): Strengthen second param from
21781         rtx * to rtx_expr_list **.
21782
21783         * cfgbuild.c (make_edges): In loop over
21784         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
21785         rtx_expr_list *, and use methods of the latter class to clarify
21786         the code.
21787         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
21788         rtx_expr_list *, and use methods of the latter class to clarify
21789         the code.
21790         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21791         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21792         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
21793         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
21794         to rtx_expr_list *.  Use methods of the latter class to clarify
21795         the code.
21796
21797 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21798
21799         * function.h (struct expr_status): Strengthen field
21800         "x_forced_labels" from rtx to rtx_expr_list *.
21801
21802         * cfgbuild.c (make_edges): Split local "x" into two locals,
21803         strengthening one from rtx to rtx_expr_list *, and using methods
21804         of said class.
21805         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
21806         loop over forced_labels, introduce strengthen it from rtx to
21807         rtx_expr_list *, using methods to clarify the code.
21808         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
21809         to rtx_expr_list *, using methods of said class to clarify the
21810         code.
21811         * reload1.c (set_initial_label_offsets): Split local "x" into two
21812         per-loop variables, strengthening the first from rtx to
21813         rtx_expr_list * and using methods.
21814
21815 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21816
21817         * coretypes.h (class rtx_expr_list): Add forward declaration.
21818         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
21819         * gengenrtl.c (special_rtx): Add EXPR_LIST.
21820         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
21821         invariant: GET_CODE (X) == EXPR_LIST.
21822         (is_a_helper <rtx_expr_list *>::test): New.
21823         (rtx_expr_list::next): New.
21824         (rtx_expr_list::element): New.
21825         (gen_rtx_EXPR_LIST): New.
21826
21827 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21828
21829         * varasm.c (mark_constants): Convert a GET_CODE check into a
21830         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21831         Use methods of rtx_sequence to clarify the code.
21832
21833 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21834
21835         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
21836         local "seq" via a checked cast, and use methods of rtx_sequence
21837         to simplify the code.
21838
21839 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21840
21841         * resource.c (mark_referenced_resources): Strengthen local
21842         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
21843         using methods of rtx_sequence to clarify the code.
21844         (find_dead_or_set_registers): Within the switch statement, convert
21845         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
21846         the JUMP_P handling, introduce another local "seq", adding a
21847         checked cast to rtx_sequence *.  In both cases, use methods of
21848         rtx_sequence to clarify the code.
21849         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
21850         via a checked cast, and use methods of rtx_sequence to simplify
21851         the code.
21852
21853 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21854
21855         * reorg.c (redundant_insn): In two places in the function, replace
21856         a check of GET_CODE with a dyn_cast, introducing local "seq", and
21857         usings methods of rtx_sequence to clarify the code.
21858
21859 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21860
21861         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
21862         local "seq" with a checked cast, and use methods of rtx_sequence
21863         to clarify the code.
21864
21865 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21866
21867         * function.c (contains): Introduce local "seq" for PATTERN (insn),
21868         with a checked cast, in the region for where we know it's a
21869         SEQUENCE.  Use methods of rtx_sequence.
21870
21871 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21872
21873         * final.c (get_attr_length_1): Replace GET_CODE check with a
21874         dyn_cast, introducing local "seq" and the use of methods of
21875         rtx_sequence.
21876         (shorten_branches): Likewise, introducing local "body_seq".
21877         Strengthen local "inner_insn" from rtx to rtx_insn *.
21878         (reemit_insn_block_notes): Replace GET_CODE check with a
21879         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
21880         Use methods of rtx_sequence.
21881         (final_scan_insn): Likewise, introducing local "seq" for when
21882         "body" is known to be a SEQUENCE, using its methods.
21883
21884 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21885
21886         * except.c (can_throw_external): Strengthen local "seq" from rtx
21887         to rtx_sequence *.  Use methods of rtx_sequence.
21888         (insn_nothrow_p): Likewise.
21889
21890 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21891
21892         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
21893         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21894         Use methods of rtx_sequence.
21895         (scan_trace): Likewise for local "pat".
21896
21897 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21898
21899         * coretypes.h (class rtx_sequence): Add forward declaration.
21900         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
21901         invariant: GET_CODE (X) == SEQUENCE.
21902         (is_a_helper <rtx_sequence *>::test): New.
21903         (is_a_helper <const rtx_sequence *>::test): New.
21904         (rtx_sequence::len): New.
21905         (rtx_sequence::element): New.
21906         (rtx_sequence::insn): New.
21907
21908 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21909
21910         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
21911         rtx_insn_list **.
21912         (alloc_INSN_LIST): Strengthen return type from rtx to
21913         rtx_insn_list *.
21914         (copy_INSN_LIST): Likewise for return type and param.
21915         (concat_INSN_LIST): Likewise for both params and return type.
21916         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
21917         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
21918         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
21919         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
21920
21921         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
21922         "implicit_sets", "control_uses", "clobbers" from rtx to
21923         rtx_insn_list *.
21924         (struct deps_desc): Likewise for fields "pending_read_insns",
21925         "pending_write_insns", "pending_jump_insns",
21926         "last_pending_memory_flush", "last_function_call",
21927         "last_function_call_may_noreturn", "sched_before_next_call",
21928         "sched_before_next_jump".
21929         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
21930         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
21931
21932         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
21933         from rtx to rtx_insn_list *.
21934         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
21935         rtx_insn_list *.
21936
21937         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
21938         to rtx_insn_list **.
21939         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
21940         rtx_insn_list *.
21941         (queue_insn): Likewise for local "link".
21942         (struct haifa_saved_data): Strengthen field "insn_queue" from
21943         rtx * to rtx_insn_list **.
21944         (save_backtrack_point): Update allocation of save->insn_queue to
21945         reflect the strengthening of elements from rtx to rtx_insn_list *.
21946         (queue_to_ready): Strengthen local "link" from rtx to
21947         rtx_insn_list *; use methods "next" and "insn" when traversing the
21948         list.
21949         (early_queue_to_ready): Likewise for locals "link", "next_link",
21950         "prev_link".
21951         (schedule_block): Update allocation of insn_queue to reflect the
21952         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
21953         local "link" from rtx to rtx_insn_list *, and use methods when
21954         working it.
21955         (add_to_speculative_block): Strengthen locals "twins" and
21956         "next_node" from rtx to rtx_insn_list *, and use methods when
21957         working with them.  Strengthen local "twin" from rtx to
21958         rtx_insn *, eliminating a checked cast.
21959         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
21960         from rtx to rtx_insn_list *, and use methods when working with
21961         them.
21962
21963         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
21964         from rtx to rtx_insn_list *, adding a checked cast.
21965         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
21966         rtx_insn_list **.
21967         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
21968         "newlink" from rtx to rtx_insn_list *.  Strengthen local
21969         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
21970         from rtx to rtx_insn *.
21971         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
21972         from rtx to rtx_insn_list *.  Use methods of the latter class.
21973         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
21974         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
21975         (remove_free_INSN_LIST_node): Strengthen return type and local
21976         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
21977         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
21978         rtx_insn_list *, using "insn" method.
21979
21980         * sched-deps.c (add_dependence_list):  Strengthen param "list"
21981         from rtx to rtx_insn_list *, and use methods when working with it.
21982         (add_dependence_list_and_free):  Strengthen param "listp" from
21983         rtx * to rtx_insn_list **.
21984         (remove_from_dependence_list): Strenghten param "listp" from rtx *
21985         to rtx_insn_list **, and use methods when working with *listp.
21986         (remove_from_both_dependence_lists): Strengthen param "listp" from
21987         rtx * to rtx_insn_list **
21988         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
21989         to rtx_insn_list **.  Eliminate local "link", in favor of two new
21990         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
21991         respectively.
21992         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
21993         by introducing local "cond_deps".
21994         (remove_from_deps): Strengthen param "insn" from rtx to
21995         rtx_insn *.
21996
21997         * sched-rgn.c (concat_insn_mem_list): Strengthen param
21998         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
21999         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
22000         Use methods of rtx_insn_list.
22001
22002         * store-motion.c (struct st_expr): Strengthen fields
22003         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
22004         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
22005         rtx_insn_list *.
22006         (find_moveable_store): Split out "tmp" into multiple more-tightly
22007         scoped locals.  Use methods of rtx_insn_list *.
22008         (compute_store_table): Strengthen local "tmp" from rtx to
22009         rtx_insn *.  Use methods of rtx_insn_list *.
22010
22011 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22012
22013         * coretypes.h (class rtx_insn_list): Add forward declaration.
22014         * rtl.h (class rtx_insn_list): New subclass of rtx_def
22015         (is_a_helper <rtx_insn_list *>::test): New.
22016         (rtx_insn_list::next): New.
22017         (rtx_insn_list::insn): New.
22018         (gen_rtx_INSN_LIST): Add prototype.
22019         * emit-rtl.c (gen_rtx_INSN_LIST): New.
22020         * gengenrtl.c (special_rtx): Add INSN_LIST.
22021
22022 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22023
22024         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
22025         "prev" from rtx to rtx_insn *.
22026
22027 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22028
22029         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
22030         functions.  Require merely an rtx for now, not an rtx_insn *.
22031         (BLOCK_FOR_INSN): Likewise.
22032         (INSN_LOCATION): Likewise.
22033         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
22034
22035 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22036
22037         * rtl.h (PATTERN): Convert this macro into a pair of inline
22038         functions, for now, requiring const_rtx and rtx.
22039
22040 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22041
22042         * target.def (unwind_emit): Strengthen param "insn" from rtx to
22043         rtx_insn *.
22044         (final_postscan_insn): Likewise.
22045         (adjust_cost): Likewise.
22046         (adjust_priority): Likewise.
22047         (variable_issue): Likewise.
22048         (macro_fusion_pair_p): Likewise.
22049         (dfa_post_cycle_insn): Likewise.
22050         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
22051         (first_cycle_multipass_issue): Likewise.
22052         (dfa_new_cycle): Likewise.
22053         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
22054         (speculate_insn): Likewise for param "insn".
22055         (gen_spec_check): Likewise for params "insn" and "label".
22056         (get_insn_spec_ds): Likewise for param "insn".
22057         (get_insn_checked_ds): Likewise.
22058         (dispatch_do): Likewise.
22059         (dispatch): Likewise.
22060         (cannot_copy_insn_p): Likewise.
22061         (invalid_within_doloop): Likewise.
22062         (legitimate_combined_insn): Likewise.
22063         (needed): Likewise.
22064         (after): Likewise.
22065
22066         * doc/tm.texi: Automatically updated to reflect changes to
22067         target.def.
22068
22069         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
22070         working with insn.
22071         (schedule_block): Likewise.
22072         (sched_init): Likewise.
22073         (sched_speculate_insn): Strengthen param "insn" from rtx to
22074         rtx_insn *.
22075         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
22076         working with insn.
22077         * hooks.c (hook_bool_rtx_true): Rename to...
22078         hook_bool_rtx_insn_true): ...this, and strengthen first param from
22079         rtx to rtx_insn *.
22080         (hook_constcharptr_const_rtx_null): Rename to...
22081         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22082         first param from const_rtx to const rtx_insn *.
22083         (hook_bool_rtx_int_false): Rename to...
22084         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22085         param from rtx to rtx_insn *.
22086         (hook_void_rtx_int): Rename to...
22087         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22088         rtx to rtx_insn *.
22089
22090         * hooks.h (hook_bool_rtx_true): Rename to...
22091         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
22092         rtx to rtx_insn *.
22093         (hook_bool_rtx_int_false): Rename to...
22094         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22095         param from rtx to rtx_insn *.
22096         (hook_void_rtx_int): Rename to...
22097         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22098         rtx to rtx_insn *.
22099         (hook_constcharptr_const_rtx_null): Rename to...
22100         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22101         first param from const_rtx to const rtx_insn *.
22102
22103         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
22104         and local "prev" from rtx to rtx_insn *.
22105
22106         * sched-int.h (sched_speculate_insn): Strengthen first param from
22107         rtx to rtx_insn *.
22108
22109         * sel-sched.c (create_speculation_check): Likewise for local "label".
22110         * targhooks.c (default_invalid_within_doloop): Strengthen param
22111         "insn" from const_rtx to const rtx_insn *.
22112         * targhooks.h (default_invalid_within_doloop): Strengthen param
22113         from const_rtx to const rtx_insn *.
22114
22115         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
22116         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
22117
22118         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
22119         "insn".
22120         (arc_invalid_within_doloop): Likewise, with const.
22121
22122         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
22123         (arm_cannot_copy_insn_p): Likewise for param "insn".
22124         (arm_unwind_emit): Likewise.
22125
22126         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
22127         "dep_insn".
22128
22129         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
22130         (c6x_variable_issue): Likewise.  Removed now-redundant checked
22131         cast.
22132         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
22133
22134         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
22135         Likewise for param "insn".
22136         (epiphany_mode_after): Likewise.
22137         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
22138         params "insn", "dep_insn".
22139         (epiphany_mode_needed): Likewise for param "insn".
22140         (epiphany_mode_after): Likewise.
22141
22142         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
22143         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22144         (ix86_avx_u128_mode_needed): Likewise.
22145         (ix86_i387_mode_needed): Likewise.
22146         (ix86_mode_needed): Likewise.
22147         (ix86_avx_u128_mode_after): Likewise.
22148         (ix86_mode_after): Likewise.
22149         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
22150         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
22151         (ix86_adjust_priority): Likewise for param "insn".
22152         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
22153         (do_dispatch): Likewise.
22154         (has_dispatch): Likewise.
22155         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
22156
22157         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
22158         reflect renaming of default hook implementation from
22159         hook_constcharptr_const_rtx_null to
22160         hook_constcharptr_const_rtx_insn_null.
22161         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
22162         rtx to rtx_insn *.
22163         (ia64_variable_issue): Likewise for param "insn".
22164         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
22165         (ia64_dfa_new_cycle): Likewise.
22166         (ia64_get_insn_spec_ds): Likewise.
22167         (ia64_get_insn_checked_ds): Likewise.
22168         (ia64_speculate_insn): Likewise.
22169         (ia64_gen_spec_check): Likewise for params "insn", "label".
22170         (ia64_asm_unwind_emit): Likewise for param "insn".
22171
22172         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
22173
22174         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
22175         "insn", "def_insn".
22176         (m68k_sched_variable_issue): Likewise for param "insn".
22177
22178         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
22179         "def_insn".
22180
22181         * config/microblaze/microblaze.c (microblaze_adjust_cost):
22182         Likewise for params "insn", "dep".
22183
22184         * config/mips/mips.c (mips_adjust_cost): Likewise.
22185         (mips_variable_issue): Likewise for param "insn".
22186         (mips_final_postscan_insn): Likewise.
22187
22188         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
22189         for params "insn", "dep".
22190
22191         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
22192         "dep_insn".
22193         (pa_adjust_priority): Likewise for param "insn".
22194
22195         * config/picochip/picochip.c (picochip_sched_adjust_cost):
22196         Likewise for params "insn", "dep_insn".
22197
22198         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
22199         param "insn".
22200         (rs6000_variable_issue): Likewise.
22201         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
22202         (rs6000_debug_adjust_cost): Likewise.
22203         (rs6000_adjust_priority): Likewise for param "insn".
22204         (rs6000_use_sched_lookahead_guard): Likewise.
22205         (get_next_active_insn): Likewise for return type and both params.
22206         (redefine_groups): Likewise for params "prev_head_insn", "tail"
22207         and locals "insn", "next_insn".
22208         (pad_groups): Likewise.
22209
22210         * config/s390/s390.c (s390_adjust_priority): Likewise for param
22211         "insn".
22212         (s390_cannot_copy_insn_p): Likewise.
22213         (s390_sched_variable_issue): Likewise for third param, eliminating
22214         checked cast.
22215         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
22216         default hook implementation from hook_constcharptr_const_rtx_null
22217         to hook_constcharptr_const_rtx_insn_null.
22218
22219         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
22220         from rtx to rtx_insn *.
22221         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
22222         (sh_variable_issue): Likewise for param "insn".
22223         (sh_dfa_new_cycle): Likewise.
22224         (sh_mode_needed): Likewise.
22225         (sh_mode_after): Likewise.
22226
22227         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
22228         params "insn", "dep_insn".
22229         (hypersparc_adjust_cost): Likewise.
22230         (sparc_adjust_cost): Likewise.
22231
22232         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
22233         param, eliminated checked cast.
22234         (spu_sched_adjust_cost): Likewise for first and third params.
22235
22236         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
22237         params "insn" and "dep_insn" from rtx to rtx_insn *.
22238
22239         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
22240
22241 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22242
22243         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
22244         (set_is_load_p): ...this, updating to work on a SET pattern rather
22245         than an insn.
22246         (is_store_insn): Rename to...
22247         (set_is_store_p): ...this, updating to work on a SET pattern
22248         rather than an insn.
22249         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
22250         top of function to where it is needed.  Rewrite the bogus
22251         condition that checks for "insn" and "dep" being PARALLEL to
22252         instead use single_set, introducing locals "insn_set" and
22253         "dep_set".  Given that we only ever returned "cost" for a non-pair
22254         of SETs, bail out early if we don't have a pair of SET.
22255         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
22256         use the new locals "insn_set" and "dep_set", and update calls to
22257         is_load_insn and is_store_insn to be calls to set_is_load_p and
22258         set_is_store_p.
22259
22260 2014-08-27  Guozhi Wei  <carrot@google.com>
22261
22262         PR target/62262
22263         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
22264         amount before using it.
22265
22266 2014-08-27  Richard Biener  <rguenther@suse.de>
22267
22268         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
22269         get_maxval_strlen inside a more useful API.
22270         (gimple_fold_builtin_with_strlen): Remove and fold into ...
22271         (gimple_fold_builtin): ... caller.
22272         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
22273         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
22274         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
22275         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
22276         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
22277         gimple_fold_builtin_sprintf): Adjust to compute maxval
22278         themselves.
22279
22280 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
22281
22282         PR other/62248
22283         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
22284
22285 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22286             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22287             Anna Tikhonova  <anna.tikhonova@intel.com>
22288             Ilya Tocar  <ilya.tocar@intel.com>
22289             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22290             Ilya Verbin  <ilya.verbin@intel.com>
22291             Kirill Yukhin  <kirill.yukhin@intel.com>
22292             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22293
22294         * config/i386/sse.md
22295         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
22296         Use `concat_tg_mode' attribute to determine asm register size.
22297
22298 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22299             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22300             Anna Tikhonova  <anna.tikhonova@intel.com>
22301             Ilya Tocar  <ilya.tocar@intel.com>
22302             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22303             Ilya Verbin  <ilya.verbin@intel.com>
22304             Kirill Yukhin  <kirill.yukhin@intel.com>
22305             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22306
22307         * config/i386/sse.md
22308         (define_mode_iterator VI48_AVX512VL): New.
22309         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
22310         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
22311         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
22312         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22313         with VI1): Change mode iterator.
22314         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22315         with VI_ULOADSTORE_BW_AVX512VL): New.
22316         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22317         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22318         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22319         with VI1): Change mode iterator.
22320         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22321         with VI_ULOADSTORE_BW_AVX512VL): New.
22322         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22323         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22324         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22325         with VI1): Change mode iterator.
22326         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22327         with VI_ULOADSTORE_BW_AVX512VL): New.
22328         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22329         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22330         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22331         (define_insn "<avx512>_storedqu<mode>_mask" with
22332         VI48_AVX512VL): New.
22333         (define_insn "<avx512>_storedqu<mode>_mask" with
22334         VI12_AVX512VL): Ditto.
22335
22336 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22337             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22338             Anna Tikhonova  <anna.tikhonova@intel.com>
22339             Ilya Tocar  <ilya.tocar@intel.com>
22340             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22341             Ilya Verbin  <ilya.verbin@intel.com>
22342             Kirill Yukhin  <kirill.yukhin@intel.com>
22343             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22344
22345         * config/i386/sse.md
22346         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22347         (define_mode_iterator VI48_AVX512BW): New.
22348         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22349         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22350         with VI48_AVX2_48_AVX512F): New.
22351         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22352         with VI2_AVX512VL): Ditto.
22353
22354 2014-08-27  Richard Biener  <rguenther@suse.de>
22355
22356         PR middle-end/62239
22357         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22358         (fold_builtin_3): Do not fold strcat_chk here.
22359         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22360         from builtins.c.
22361         (gimple_fold_builtin): Fold strcat_chk here.
22362
22363 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
22364
22365         * dwarf2out.h (dwarf2out_decl): Remove prototype.
22366         * dwarf2out.c (dwarf2out_decl): Make static.
22367
22368 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
22369
22370         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22371
22372 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22373
22374         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22375         from rtx to rtx_insn *.
22376         (cselib_lookup_from_insn): Likewise for final param.
22377         (cselib_subst_to_values_from_insn): Likewise.
22378         (cselib_add_permanent_equiv): Likewise.
22379
22380         * cselib.c (cselib_current_insn): Likewise for this variable.
22381         (cselib_subst_to_values_from_insn): Likewise for param "insn".
22382         (cselib_lookup_from_insn): Likewise.
22383         (cselib_add_permanent_equiv): Likewise for param "insn" and local
22384         "save_cselib_current_insn".
22385         (cselib_process_insn): Replace use of NULL_RTX with NULL.
22386
22387         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22388         from rtx to rtx_insn *.
22389
22390 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22391
22392         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22393         rtx_insn *.
22394
22395 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22396
22397         * df.h (df_dump_insn_problem_function): Strengthen first param of
22398         this callback from const_rtx to const rtx_insn *.
22399         (struct df_insn_info): Strengthen field "insn" from rtx to
22400         rtx_insn *.
22401         (DF_REF_INSN): Eliminate this function, reinstating the older
22402         macro definition.
22403         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
22404         (df_reg_defined): Likewise.
22405         (df_find_use): Likewise.
22406         (df_reg_used): Likewise.
22407         (df_dump_insn_top): Strengthen param 1 from const_rtx to
22408         const rtx_insn *.
22409         (df_dump_insn_bottom): Likewise.
22410         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
22411         (df_insn_debug_regno): Likewise.
22412         (debug_df_insn): Likewise.
22413         (df_rd_simulate_one_insn): Likewise for param 2.
22414         (df_word_lr_simulate_defs): Likewise for param 1.
22415         (df_word_lr_simulate_uses): Likewise.
22416         (df_md_simulate_one_insn): Likewise for param 2.
22417         (df_simulate_find_noclobber_defs): Likewise for param 1.
22418         (df_simulate_find_defs): Likewise.
22419         (df_simulate_defs): Likewise.
22420         (df_simulate_uses): Likewise.
22421         (df_simulate_one_insn_backwards): Likewise for param 2.
22422         (df_simulate_one_insn_forwards): Likewise.
22423         (df_uses_create): Likewise for param 2.
22424         (df_insn_create_insn_record): Likewise for param 1.
22425         (df_insn_delete): Likewise.
22426         (df_insn_rescan): Likewise.
22427         (df_insn_rescan_debug_internal): Likewise.
22428         (df_insn_change_bb): Likewise.
22429         (df_notes_rescan): Likewise.
22430         * rtl.h (remove_death): Likewise for param 2.
22431         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
22432         const rtx_insn *.
22433         * sched-int.h (reemit_notes): Strengthen param from rtx to
22434         rtx_insn *.
22435         * valtrack.h (propagate_for_debug): Likewise for param 1.
22436
22437         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
22438         local "tmp_rtx" from const_rtx to const rtx_insn *.
22439         * combine.c (remove_death): Strengthen param "insn" from rtx to
22440         rtx_insn *.
22441         (move_deaths): Likewise for local "where_dead".
22442         * cse.c (delete_trivially_dead_insns): Introduce local
22443         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
22444         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
22445         rtx_insn *.
22446         (df_reg_defined): Likewise.
22447         (df_find_use): Likewise.
22448         (df_reg_used): Likewise.
22449         (df_dump_insn_problem_data): Strengthen param "insn" from
22450         const_rtx to const rtx_insn *.
22451         (df_dump_insn_top): Likewise.
22452         (df_dump_insn_bottom): Likewise.
22453         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
22454         (df_insn_debug_regno): Likewise.
22455         (debug_df_insn): Likewise.
22456         (DF_REF_INSN): Delete.
22457         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
22458         from rtx to rtx_insn *.
22459         (df_chain_insn_top_dump): Strengthen param "insn" from
22460         const_rtx to const rtx_insn *.
22461         (df_chain_insn_bottom_dump): Likewise.
22462         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
22463         rtx_insn *.
22464         (df_word_lr_simulate_uses): Likewise.
22465         (df_print_note): Likewise.
22466         (df_remove_dead_and_unused_notes): Likewise.
22467         (df_set_unused_notes_for_mw): Likewise.
22468         (df_set_dead_notes_for_mw): Likewise.
22469         (df_create_unused_note): Likewise.
22470         (df_simulate_find_defs): Likewise.
22471         (df_simulate_find_uses): Likewise.
22472         (df_simulate_find_noclobber_defs): Likewise.
22473         (df_simulate_defs): Likewise.
22474         (df_simulate_uses): Likewise.
22475         (df_simulate_one_insn_backwards): Likewise.
22476         (df_simulate_one_insn_forwards): Likewise.
22477         (df_md_simulate_one_insn): Likewise.
22478         * df-scan.c (df_uses_create): Likewise.
22479         (df_insn_create_insn_record): Likewise.
22480         (df_insn_delete): Likewise.
22481         (df_insn_rescan): Likewise.
22482         (df_insn_rescan_debug_internal): Likewise.
22483         (df_insn_change_bb): Likewise.
22484         (df_notes_rescan): Likewise.
22485         (df_refs_add_to_chains): Likewise.
22486         (df_insn_refs_verify): Likewise.
22487         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
22488         when invoking df_insn_delete.
22489         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
22490         (set_unique_reg_note): Add checked cast.
22491         * final.c (cleanup_subreg_operands): Likewise.
22492         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
22493         "insn" from rtx to rtx_insn *.
22494         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
22495         "last" from rtx to rtx_insn *.
22496         * ira-emit.c (change_regs_in_insn): New function.
22497         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
22498         Invoke change_regs_in_insn rather than change_regs.
22499         * ira.c (update_equiv_regs): Strengthen locals "insn",
22500         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
22501         for_each_rtx_in_insn rather than for_each_rtx.
22502         * recog.c (confirm_change_group): Add checked casts.
22503         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
22504         Add checked cast.
22505         (peep2_fill_buffer): Add checked cast.
22506         * rtlanal.c (remove_note): Likewise.
22507         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
22508         locals "next" "end" from rtx to rtx_insn *.
22509
22510 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22511
22512         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
22513         to rtx_insn *.
22514         (struct reg_use_data): Likewise for field "insn".
22515         (insn_cost): Likewise for param.
22516         (real_insn_for_shadow): Likewise for return type and param.
22517         (increase_insn_priority): Likewise for param 1.
22518         (debug_dependencies): Likewise for both params.
22519
22520         * haifa-sched.c (insn_delay): Likewise for param "insn".
22521         (real_insn_for_shadow): Likewise for return type and param "insn".
22522         (update_insn_after_change): Likewise for param "insn".
22523         (recompute_todo_spec): Likewise for param "next" and locals "pro",
22524         "other".
22525         (insn_cost): Likewise for param "insn".
22526         (increase_insn_priority): Likewise.
22527         (calculate_reg_deaths): Likewise.
22528         (setup_insn_reg_pressure_info): Likewise.
22529         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
22530         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
22531         (model_recompute): Likewise.
22532         (must_restore_pattern_p): Likewise for param "next".
22533         (model_excess_cost): Likewise for param "insn".
22534         (queue_remove): Likewise.
22535         (adjust_priority): Likewise for param "prev".
22536         (update_register_pressure): Likewise for param "insn".
22537         (setup_insn_max_reg_pressure): Likewise for local "insn".
22538         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
22539         (model_add_to_schedule): Likewise.
22540         (model_reset_queue_indices): Likewise for local "insn".
22541         (unschedule_insns_until): Strengthen local "recompute_vec" from
22542         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
22543         "con" from rtx to rtx_insn *.
22544         (restore_last_backtrack_point): Likewise for both locals "x". Add
22545         checked casts.
22546         (estimate_insn_tick): Likewise for param "insn".
22547         (commit_schedule): Likewise for params "prev_head", "tail" and
22548         local "x".
22549         (verify_shadows): Likewise for locals "i1", "i2".
22550         (dump_insn_stream): Likewise for params "head", "tail" and locals
22551         "next_tail", "insn".
22552         (schedule_block): Likewise for locals "insn", "x".  Add a checked
22553         cast.
22554         (fix_inter_tick): Likewise for params "head", "tail".
22555         (create_check_block_twin): Likewise for local "jump".
22556         (haifa_change_pattern): Likewise for param "insn".
22557         (haifa_speculate_insn): Likewise.
22558         (dump_new_block_header): Likewise for params "head", "tail".
22559         (fix_jump_move): Likewise for param "jump".
22560         (move_block_after_check): Likewise.
22561         (sched_init_insn_luid): Likewise for param "insn".
22562         (sched_init_luids): Likewise for local "insn".
22563         (insn_luid): Likewise for param "insn".
22564         (init_h_i_d): Likewise.
22565         (haifa_init_h_i_d): Likewise for local "insn".
22566         (haifa_init_insn): Likewise for param "insn".
22567         * sched-deps.c (add_dependence): Likewise for local "real_pro",
22568         "other".
22569         (create_insn_reg_use): Likewise for param "insn".
22570         (setup_insn_reg_uses): Likewise.  Add a checked cast.
22571         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
22572         "tail" from rtx to rtx_insn *.
22573         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
22574         "insn", "next_tail".
22575
22576 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22577
22578         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
22579         from rtx to rtx_insn *.
22580         (model_add_to_schedule): Likewise for locals "start", "end",
22581         "iter".
22582
22583 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22584
22585         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
22586         rtx_insn *.
22587         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
22588         "to" and locals "insn", "next", "copy".  Remove now-redundant
22589         checked cast.
22590
22591 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22592
22593         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
22594         rtx_insn * and param 4 from rtx * to rtx_insn **.
22595         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
22596         param 2 from rtx * to rtx_insn **.
22597
22598         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
22599         rtx_insn * and final param from rtx * to rtx_insn **.
22600
22601         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
22602         from rtx to rtx_insn *.
22603         (try_head_merge_bb): Likewise for both locals named "move_upto".
22604         * df-problems.c (can_move_insns_across): Likewise for params
22605         "from", "to", "across_from", "across_to" and locals "insn",
22606         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
22607         rtx_insn **.
22608         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
22609         from rtx to rtx_insn *.
22610         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
22611         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
22612         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
22613         rtx_insn *.
22614         (noce_try_abs): Likewise.
22615         (noce_get_condition): Likewise for param "jump".  Strengthen param
22616         "earliest" from rtx * to rtx_insn **.
22617         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
22618         rtx_insn *.
22619         (find_cond_trap): Likewise.
22620         (dead_or_predicable): Likewise for local "earliest".
22621         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
22622         checked cast.
22623         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
22624         and local "prev".  Strengthen param "earliest" from rtx * to
22625         rtx_insn **.
22626         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
22627         Strengthen param "earliest" from rtx * to rtx_insn **.
22628
22629 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22630
22631         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
22632         "to" and local "insn" from rtx to rtx_insn *.
22633
22634 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22635
22636         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
22637         from rtx to rtx_insn *.
22638         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
22639         (code_motion_path_driver): Likewise for local "last_insn".
22640         (simplify_changed_insns): Likewise for local "insn".
22641
22642 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22643
22644         * rtl.h (push_to_sequence): Strengthen param from rtx to
22645         rtx_insn *.
22646         (push_to_sequence2): Likewise for both params.
22647         (delete_insns_since): Likewise for param.
22648         (reorder_insns_nobb): Likewise for all three params.
22649         (set_new_first_and_last_insn): Likewise for both params.
22650
22651         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
22652         rtx_insn *.  Remove now-redundant cast.
22653         (set_last_insn): Likewise.
22654
22655         * builtins.c (expand_builtin_return): Strengthen local
22656         "call_fusage" from rtx to rtx_insn *.
22657         * cfgrtl.c (create_basic_block_structure): Likewise for local
22658         "after".
22659         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
22660         "first", "last" and local "insn".
22661         (delete_insns_since): Likewise for param "from".
22662         (reorder_insns_nobb): Likewise for params "from", "to", "after"
22663         and local "x".
22664         (push_to_sequence): Likewise for param "first" and local "last".
22665         (push_to_sequence2): Likewise for params "first" and "last".
22666         * lra.c (emit_add3_insn): Likewise for local "last".
22667         (lra_emit_add): Likewise.
22668         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
22669         "last_insn".
22670         (process_address_1): Likewise for locals "insn", last".
22671         * modulo-sched.c (ps_first_note): Likewise for return type.
22672         * optabs.c (expand_binop_directly): Likewise for param "last".
22673
22674 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22675
22676         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
22677         to rtx_insn*.
22678         * emit-rtl.c (get_last_insn_anywhere): Likewise.
22679
22680 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22681
22682         * function.h (struct sequence_stack): Strengthen fields "first"
22683         and "last" from rtx to rtx_insn *.
22684         (struct emit_status): Likewise for fields "x_first_insn" and
22685         "x_last_insn".
22686
22687         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
22688         (set_first_insn): Add checked cast.
22689         (get_last_insn): Remove now-redundant checked cast.
22690         (set_last_insn): Add checked cast.
22691
22692         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
22693         "saved_first" and "saved_last" from rtx to rtx_insn *.
22694
22695 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22696
22697         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
22698         (unlink_insn_chain): Strengthen both params from rtx to
22699         rtx_insn *.
22700
22701         * cfgrtl.c (cfg_layout_function_header): Likewise for this
22702         variable.
22703         (unlink_insn_chain): Likewise for params "first" and "last".
22704         Remove now-redundant checked cast.
22705         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
22706         (fixup_reorder_chain): Strengthen local "insn" from rtx to
22707         rtx_insn *.
22708         * emit-rtl.c (link_insn_into_chain): Likewise for all three
22709         params.
22710         (add_insn): Likewise for param "insn" and local "prev".
22711         (add_insn_after_nobb): Likewise for both params and local "next".
22712         (add_insn_before_nobb): Likewise for both params and local "prev".
22713         (add_insn_after): Rename param "after" to "uncast_after",
22714         introducing local "after" with another checked cast.
22715         (add_insn_before): Rename params "insn" and "before", giving them
22716         "uncast_" prefixes, adding the old names back using checked casts.
22717         (emit_note_after): Likewise for param "after".
22718         (emit_note_before): Likewise for param "before".
22719         (emit_label): Add a checked cast.
22720
22721 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22722
22723         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
22724         "insn" from rtx to rtx_insn *.
22725
22726         * cselib.c (cselib_record_sets_hook): Likewise.
22727
22728         * var-tracking.c (add_with_sets): Likewise, renaming back from
22729         "uncast_insn" to "insn" and eliminating the checked cast from rtx
22730         to rtx_insn *.
22731
22732 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22733
22734         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
22735         and "header_" from rtx to rtx_insn *.
22736         (struct basic_block_d): Likewise for field "head_" within "x"
22737         field of union basic_block_il_dependent.
22738         (BB_HEAD): Drop function...
22739         (SET_BB_HEAD): ...and this function in favor of...
22740         (BB_HEAD): ...reinstate macro.
22741         (BB_END): Drop function...
22742         (SET_BB_END): ...and this function in favor of...
22743         (BB_END): ...reinstate macro.
22744         (BB_HEADER): Drop function...
22745         (SET_BB_HEADER): ...and this function in favor of...
22746         (BB_HEADER): ...reinstate macro.
22747
22748         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
22749         (fix_crossing_unconditional_branches): Likewise.
22750         * caller-save.c (save_call_clobbered_regs): Likewise.
22751         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
22752         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
22753         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
22754         (merge_blocks_move_successor_nojumps): Likewise.
22755         (outgoing_edges_match): Update use of for_each_rtx to
22756         for_each_rtx_in_insn.
22757         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
22758         (expand_gimple_cond): Likewise.
22759         (expand_gimple_tailcall): Likewise.
22760         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
22761         SET_BB_END.
22762         (construct_exit_block): Drop use of SET_BB_END.
22763         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
22764         rtx_insn *.
22765         (delete_insn): Rename param "insn" to "uncast_insn", introducing
22766         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
22767         SET_BB_HEAD and SET_BB_END.
22768         (create_basic_block_structure): Drop use of SET_BB_HEAD and
22769         SET_BB_END.
22770         (rtl_delete_block): Drop use of SET_BB_HEAD.
22771         (rtl_split_block): Drop use of SET_BB_END.
22772         (emit_nop_for_unique_locus_between): Likewise.
22773         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
22774         (block_label): Drop use of SET_BB_HEAD.
22775         (fixup_abnormal_edges): Drop use of SET_BB_END.
22776         (record_effective_endpoints): Drop use of SET_BB_HEADER.
22777         (relink_block_chain): Likewise.
22778         (fixup_reorder_chain): Drop use of SET_BB_END.
22779         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
22780         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
22781         rtx_insn **.  Drop use of SET_BB_HEADER.
22782         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
22783         SET_BB_HEAD.
22784         (BB_HEAD): Delete this function.
22785         (SET_BB_HEAD): Likewise.
22786         (BB_END): Likewise.
22787         (SET_BB_END): Likewise.
22788         (BB_HEADER): Likewise.
22789         (SET_BB_HEADER): Likewise.
22790         * emit-rtl.c (add_insn_after):  Rename param "insn" to
22791         "uncast_insn", adding a new local "insn" and a checked cast to
22792         rtx_insn *.  Drop use of SET_BB_END.
22793         (remove_insn): Strengthen locals "next" and "prev" from rtx to
22794         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
22795         (reorder_insns): Drop use of SET_BB_END.
22796         (emit_insn_after_1): Strengthen param "first" and locals "last",
22797         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
22798         (emit_pattern_after_noloc): Add checked cast.
22799         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
22800         (restore_other_notes): Likewise.
22801         (move_insn): Likewise.
22802         (sched_extend_bb): Likewise.
22803         (fix_jump_move): Likewise.
22804         * ifcvt.c (noce_process_if_block): Likewise.
22805         (dead_or_predicable): Likewise.
22806         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
22807         * reg-stack.c (change_stack): Drop use of SET_BB_END.
22808         * sel-sched-ir.c (sel_move_insn): Likewise.
22809         * sel-sched.c (move_nop_to_previous_block): Likewise.
22810
22811         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
22812         SET_BB_END.
22813         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
22814
22815 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22816
22817         * basic-block.h (create_basic_block_structure): Strengthen params
22818         1 "head" and 2 "end" from rtx to rtx_insn *.
22819         * cfgrtl.c (create_basic_block_structure): Likewise.
22820         (rtl_create_basic_block): Update casts from void * to rtx to
22821         rtx_insn *, so that we can pass them as rtx_insn * to
22822         create_basic_block_structure.
22823         * sel-sched-ir.c (sel_create_basic_block): Likewise.
22824
22825 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22826
22827         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
22828         rtx_insn **.
22829         (check_for_inc_dec): Strengthen param "insn" from rtx to
22830         rtx_insn *.
22831
22832         * cselib.h (cselib_process_insn): Likewise.
22833
22834         * cselib.c (cselib_record_sets): Likewise.
22835         (cselib_process_insn): Likewise.
22836
22837         * dse.c (struct insn_info): Likewise for field "insn".
22838         (check_for_inc_dec_1): Likewise for local "insn".
22839         (check_for_inc_dec): Likewise for param "insn".
22840         (scan_insn): Likewise.
22841         (dse_step1): Likewise for local "insn".
22842
22843         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
22844         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
22845
22846 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22847
22848         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
22849         from rtx to rtx_insn *.
22850         (DEP_PRO): Delete this function and...
22851         (SET_DEP_PRO): ...this function in favor of...
22852         (DEP_PRO): ...reinstate this macro.
22853         (DEP_CON): Delete this function and...
22854         (SET_DEP_CON): ...this function in favor of...
22855         (DEP_CON): ...reinstate this old macro.
22856         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
22857         (init_dep): Likewise.
22858         (set_priorities): Likewise for both params.
22859         (sd_copy_back_deps): Likewise for params 1 and 2.
22860
22861         * haifa-sched.c (priority): Likewise for param "insn" and local
22862         "next".
22863         (set_priorities): Likewise for params "head" and "tail" and local
22864         "insn".
22865         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
22866         local "consumer".
22867         (add_to_speculative_block): Add a checked cast.
22868         (create_check_block_twin): Drop use of SET_DEP_CON.
22869         (add_jump_dependencies): Strengthen params "insn" and "jump" from
22870         rtx to rtx_insn *.
22871
22872         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
22873         Drop use of SET_DEP_PRO
22874         (init_dep): Strengthen params "pro" and "con" from rtx to
22875         rtx_insn *.
22876         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
22877         use of SET_DEP_CON.
22878         (DEP_PRO): Delete.
22879         (DEP_CON): Delete.
22880         (SET_DEP_PRO): Delete.
22881         (SET_DEP_CON): Delete.
22882
22883 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22884
22885         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
22886         from rtx to rtx_insn *.
22887         (VINSN_INSN_RTX): Eliminate rvalue function and...
22888         (SET_VINSN_INSN): ...lvalue function in favor of...
22889         (VINSN_INSN_RTX): reinstate this old macro.
22890
22891         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
22892         in favor of VINSN_INSN_RTX.
22893         (VINSN_INSN_RTX): Delete this function.
22894         (SET_VINSN_INSN_RTX): Likewise.
22895
22896 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22897
22898         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
22899         (BND_TO): Delete this function and...
22900         (SET_BND_TO): ...this functions in favor of...
22901         (BND_TO): ...reinstating this macro.
22902         (struct _fence): Strengthen field "executing_insns" from
22903         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
22904         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
22905         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
22906         and param "insn" from rtx to insn_t.
22907         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
22908         rtx_insn *.
22909
22910         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
22911         vec<rtx_insn *> .
22912         (rtx_vec_t): Likewise.
22913         (struct sched_deps_info_def): Strengthen param of "start_insn"
22914         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
22915         "note_mem_dep" callback and first param of "note_dep" callback.
22916
22917         * haifa-sched.c (add_to_speculative_block): Strengthen param
22918         "insn" from rtx to rtx_insn *.
22919         (clear_priorities): Likewise.
22920         (calc_priorities): Likewise for local "insn".
22921
22922         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
22923         Remove redundant checked cast.
22924         (haifa_note_mem_dep): Likewise for param "pending_insn".
22925         (haifa_note_dep): Likewise for param "elem".
22926         (note_mem_dep): Likewise for param "e".
22927         (sched_analyze_1): Add checked casts.
22928         (sched_analyze_2): Likewise.
22929
22930         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
22931         from rtx to rtx_insn *.
22932         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
22933         from vec<rtx> * to vec<rtx_insn *> *.
22934
22935         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
22936         scaffolding.
22937         (flist_add): Strengthen param "executing_insns" from
22938         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22939         (advance_deps_context): Remove now-redundant checked cast.
22940         (init_fences): Replace uses of NULL_RTX with NULL.
22941         (merge_fences): Strengthen params "last_scheduled_insn" and
22942         "sched_next" from rtx to rtx_insn * and "executing_insns" from
22943         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22944         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
22945         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
22946         an instruction, rather than doing double-duty as a pattern.
22947         (return_nop_to_pool): Update for change of insn_t.
22948         (deps_init_id): Remove now-redundant checked cast.
22949         (struct sched_scan_info_def): Strengthen param of "init_insn"
22950         callback from rtx to insn_t.
22951         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
22952         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
22953         NULL.
22954         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
22955         "end" from rtx to rtx_insn *.
22956         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
22957         (rtx insn_rtx, bool force_unique_p)
22958         (BND_TO): Delete function.
22959         (SET_BND_TO): Delete function.
22960
22961         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
22962         rtx to rtx_insn *.
22963         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
22964         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
22965         rtx to rtx_insn *.
22966         (undo_transformations): Likewise for param "insn".
22967         (update_liveness_on_insn): Likewise.
22968         (compute_live_below_insn): Likewise for param "insn" and local
22969         "succ".
22970         (update_data_sets): Likewise for param "insn".
22971         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
22972         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
22973         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
22974         rtx_insn *.
22975         (move_cond_jump): Likewise for param "insn".
22976         (move_cond_jump): Drop use of SET_BND_TO.
22977         (compute_av_set_on_boundaries): Likewise.
22978         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
22979         (update_and_record_unavailable_insns): Strengthen local "bb_end"
22980         from rtx to rtx_insn *.
22981         (maybe_emit_renaming_copy): Likewise for param "insn".
22982         (maybe_emit_speculative_check): Likewise.
22983         (handle_emitting_transformations): Likewise.
22984         (remove_insn_from_stream): Likewise.
22985         (code_motion_process_successors): Strengthen local "succ" from rtx
22986         to insn_t.
22987
22988 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22989
22990         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
22991         ilist_t, not _xlist_t;
22992         (ILIST_INSN): Define in terms of new union field "insn".
22993         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
22994         _XLIST_NEXT.
22995         (struct _list_node): Add new field "insn" to the union, of type
22996         insn_t.
22997         (ilist_add): Replace macro with an inline function, requiring an
22998         insn_t.
22999         (ilist_remove): Define this macro directly in terms of
23000         _list_remove, rather than indirectly via _xlist_remove.
23001         (ilist_clear): Likewise, in terms of _list_clear rather than
23002         _xlist_clear.
23003         (ilist_is_in_p): Replace macro with an inline function, requiring
23004         an insn_t.
23005         (_list_iter_cond_insn): New function.
23006         (ilist_iter_remove): Define this macro directly in terms of
23007         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
23008         (ilist_iterator): Define directly in terms of _list_iterator
23009         rather than indirectly through _xlist_iterator.
23010         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
23011         than in terms of _FOR_EACH_X.
23012         (FOR_EACH_INSN_1): Likewise.
23013
23014 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
23015
23016         PR target/60606
23017         PR target/61330
23018         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
23019         DECL_HARD_REGISTER and return for invalid register specifications.
23020         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
23021         DECL_HARD_REGISTER, call expand_one_error_var.
23022         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
23023         CC_REGNUM with non-MODE_CC modes.
23024         (arm_regno_class): Return NO_REGS for PC_REGNUM.
23025
23026 2014-08-26  Marek Polacek  <polacek@redhat.com>
23027
23028         PR c/61271
23029         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
23030
23031 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
23032
23033         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
23034         qi cost; add di cost.
23035         (cortexa57_addrcost_table): Likewise.
23036
23037 2014-08-26  Marek Polacek  <polacek@redhat.com>
23038
23039         PR c/61271
23040         * expr.c (is_aligning_offset): Remove logical not.
23041
23042 2014-08-26  Marek Polacek  <polacek@redhat.com>
23043
23044         PR c/61271
23045         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
23046         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
23047
23048 2014-08-26  Richard Biener  <rguenther@suse.de>
23049
23050         PR tree-optimization/62175
23051         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
23052         expand possibly trapping operations.
23053
23054 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
23055
23056         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
23057         "insn" from rtx to rtx_insn *.
23058         (permute_load): Likewise for param "insn".
23059         (permute_store): Likewise.
23060         (handle_special_swappables): Likewise for local "insn".
23061         (replace_swap_with_copy): Likewise for locals "insn" and
23062         "new_insn".
23063         (rs6000_analyze_swaps): Likewise for local "insn".
23064
23065 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23066
23067         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
23068         to rtx_insn *.
23069
23070 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23071
23072         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
23073         "note_list" from rtx to rtx_insn *.
23074         (BB_NOTE_LIST): Replace this function and...
23075         (SET_BB_NOTE_LIST): ...this function with...
23076         (BB_NOTE_LIST): ...the former macro implementation.
23077
23078         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
23079         local "from_start" from rtx to rtx_insn *.  Strengthen param
23080         "to_endp" from rtx * to rtx_insn **.
23081
23082         * haifa-sched.c (concat_note_lists): Likewise.
23083         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
23084         BB_NOTE_LIST.
23085         (sel_restore_notes): Likewise.
23086         (move_bb_info): Likewise.
23087         (BB_NOTE_LIST): Delete this function.
23088         (SET_BB_NOTE_LIST): Delete this function.
23089         * sel-sched.c (create_block_for_bookkeeping): Eliminate
23090         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
23091
23092 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23093
23094         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
23095         from rtx * to rtx_insn **.
23096         (reorder2): Likewise.
23097         (dependencies_evaluation_hook): Strengthen params "head", "tail"
23098         from rtx to rtx_insn *.
23099
23100         * doc/tm.texi: Update mechanically for above change to target.def.
23101
23102         * sched-int.h (note_list): Strengthen this variable from rtx to
23103         rtx_insn *.
23104         (remove_notes): Likewise for both params.
23105         (restore_other_notes): Likewise for return type and first param.
23106         (struct ready_list): Strengthen field "vec" from rtx * to
23107         rtx_insn **.
23108         (struct dep_replacement): Strenghten field "insn" from rtx to
23109         rtx_insn *.
23110         (struct deps_desc): Likewise for fields "last_debug_insn",
23111         "last_args_size".
23112         (struct haifa_sched_info): Likewise for callback field
23113         "can_schedule_ready_p"'s param, for first param of "new_ready"
23114         callback field, for both params of "rank" callback field, for
23115         first field of "print_insn" callback field (with a const), for
23116         both params of "contributes_to_priority" callback, for param
23117         of "insn_finishes_block_p" callback, for fields "prev_head",
23118         "next_tail", "head", "tail", for first param of "add_remove_insn"
23119         callback, for first param of "begin_schedule_ready" callback, for
23120         both params of "begin_move_insn" callback, and for second param
23121         of "advance_target_bb" callback.
23122         (add_dependence): Likewise for params 1 and 2.
23123         (sched_analyze): Likewise for params 2 and 3.
23124         (deps_analyze_insn): Likewise for param 2.
23125         (ready_element): Likewise for return type.
23126         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23127         (try_ready): Strenghten param from rtx to rtx_insn *.
23128         (sched_emit_insn): Likewise for return type.
23129         (record_delay_slot_pair): Likewise for params 1 and 2.
23130         (add_delay_dependencies): Likewise for param.
23131         (contributes_to_priority): Likewise for both params.
23132         (find_modifiable_mems): Likewise.
23133
23134         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
23135         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
23136         "first_older_only_insn" from rtx to rtx_insn *.
23137         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
23138         rtx_insn **.
23139
23140         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
23141         "last_scheduled_iter0" from rtx to rtx_insn *.
23142         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
23143         (c6x_sched_reorder_1): Strengthen param "ready" and locals
23144         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
23145         "insn" from rtx to rtx_insn *.
23146         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
23147         rtx_insn **.
23148         (c6x_sched_reorder2): Strengthen param "ready" and locals
23149         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
23150         "insn" from rtx to rtx_insn *.
23151         (c6x_variable_issue):  Add a checked cast when assigning from insn
23152         to ss.last_scheduled_iter0.
23153         (split_delayed_branch): Strengthen param "insn" and local "i1"
23154         from rtx to rtx_insn *.
23155         (split_delayed_nonbranch): Likewise.
23156         (undo_split_delayed_nonbranch): Likewise for local "insn".
23157         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
23158         "entry_after", "end_packet", "head_insn", "tail_insn",
23159         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
23160         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
23161         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
23162         but add a checked cast on loop->start_label.  Consolidate calls to
23163         avoid assigning result of gen_spkernel to "insn", now an
23164         rtx_insn *.
23165
23166         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
23167         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
23168         rtx to rtx_insn *.
23169         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
23170         rtx_insn **.  Strengthen locals "top", "next" from rtx to
23171         rtx_insn *.
23172         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
23173         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
23174         (add_parameter_dependencies): Strengthen params "call", "head" and
23175         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
23176         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
23177         (add_dependee_for_func_arg): Likewise for param "arg" and local
23178         "insn".
23179         (ix86_dependencies_evaluation_hook): Likewise for params "head",
23180         "tail" and locals "insn", "first_arg".
23181
23182         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
23183         for params "head", "tail" and locals "insn", "next", "next_tail".
23184         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
23185         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
23186         "insn", "lowest", "highest" from rtx to rtx_insn *.
23187         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
23188         rtx_insn **.
23189         (ia64_sched_reorder2): Likewise.
23190
23191         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
23192         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
23193         from rtx * to rtx_insn **.
23194         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
23195         rtx_insn **.
23196         (mep_print_sched_insn): Strengthen param "insn" from rtx to
23197         rtx_insn *.
23198         (mep_sched_reorder): Strengthen param "ready" from rtx * to
23199         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
23200         to rtx_insn *.
23201
23202         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
23203         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
23204         to rtx_insn *.
23205         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
23206         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
23207         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
23208         rtx_insn **.
23209         (vr4130_reorder): Likewise.
23210         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
23211         rtx to rtx_insn *.
23212         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
23213         rtx_insn **.
23214         (mips_sched_reorder): Likewise.
23215         (mips_sched_reorder2): Likewise.
23216
23217         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
23218
23219         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
23220         Strengthen local "tmp" from rtx to rtx_insn *.
23221         (rs6000_sched_reorder2): Likewise.
23222
23223         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
23224         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
23225         (s390_sched_reorder): Strengthen param "ready" from rtx * to
23226         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
23227
23228         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
23229         "tmp2" from rtx to rtx_insn *.
23230         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
23231         Strengthen local "insn" from rtx to rtx_insn *.
23232         (ready_reorder): Strengthen param "ready" from rtx * to
23233         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
23234         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
23235         (sh_reorder2): Likewise.
23236
23237         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
23238         local "insn" from rtx to rtx_insn *.
23239
23240         * haifa-sched.c (note_list): Strengthen this variable from rtx to
23241         rtx_insn *.
23242         (scheduled_insns): Strengthen this variable from vec<rtx> to
23243         vec<rtx_insn *>.
23244         (set_modulo_params): Likewise for locals "i1", "i2".
23245         (record_delay_slot_pair): Likewise for params "i1", "i2".
23246         (add_delay_dependencies): Likewise for param "insn".
23247         (cond_clobbered_p): Likewise.
23248         (recompute_todo_spec): Likewise for local "prev".
23249         (last_scheduled_insn): Likewise for this variable.
23250         (nonscheduled_insns_begin): Likewise.
23251         (model_set_excess_costs): Strengthen param "insns" from rtx * to
23252         rtx_insn **.
23253         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
23254         rtx_insn *.
23255         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
23256         Strengthen local "insn" from rtx to rtx_insn *.
23257         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
23258         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23259         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
23260         (ready_remove_first): Likewise for return type and local "t".
23261         (ready_element): Likewise for return type.
23262         (ready_remove): Likewise for return type and local "t".
23263         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
23264         (check_clobbered_conditions): Strengthen local "x" from rtx to
23265         rtx_insn *, adding a checked cast.
23266         (schedule_insn): Likewise for param "insn".
23267         (remove_notes): Likewise for params "head", "tail" and locals
23268         "next_tail", "insn", "next".
23269         (struct haifa_saved_data): Likewise for fields
23270         "last_scheduled_insn", "nonscheduled_insns_begin".
23271         (save_backtrack_point): Update for change to field "vec" of
23272         struct ready_list.
23273         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
23274         rtx_insn **.
23275         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
23276         from rtx to rtx_insn *
23277         (resolve_dependencies): Strengthen param "insn" from rtx to
23278         rtx_insn *
23279         (restore_other_notes): Likewise for return type, for param "head"
23280         and local "note_head".
23281         (undo_all_replacements): Likewise for local "insn".
23282         (first_nonscheduled_insn): Likewise for return type and local "insn".
23283         (queue_to_ready): Likewise for local "insn", adding checked casts.
23284         (early_queue_to_ready): Likewise for local "insn".
23285         (debug_ready_list_1): Strengthen local "p" from rtx * to
23286         rtx_insn **.
23287         (move_insn): Strengthen param "insn" and local "note" from rtx to
23288         rtx_insn *
23289         (insn_finishes_cycle_p): Likewise for param "insn".
23290         (max_issue): Likewise for local "insn".
23291         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
23292         to rtx_insn **.
23293         (commit_schedule): Strengthen param "prev_head" and local "insn"
23294         from rtx to rtx_insn *
23295         (prune_ready_list): Likewise for local "insn".
23296         (schedule_block): Likewise for locals "prev_head", "head", "tail",
23297         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
23298         (set_priorities): Likewise for local "prev_head".
23299         (try_ready): Likewise for param "next".
23300         (fix_tick_ready): Likewise.
23301         (change_queue_index): Likewise.
23302         (sched_extend_ready_list): Update for change to field "vec" of
23303         struct ready_list.
23304         (generate_recovery_code): Strengthen param "insn" from rtx to
23305         rtx_insn *.
23306         (begin_speculative_block): Likewise.
23307         (create_check_block_twin): Likewise for param "insn" and locals
23308         "label", "check", "twin".  Introduce local "check_pat" to avoid
23309         "check" being used as a plain rtx before being used as an insn.
23310         (fix_recovery_deps): Add a checked cast to rtx_insn * when
23311         extracting elements from ready_list.
23312         (sched_remove_insn): Strengthen param "insn" from rtx to
23313         rtx_insn *.
23314         (sched_emit_insn): Likewise for return type.
23315         (ready_remove_first_dispatch): Likewise for return type and local
23316         "insn".
23317
23318         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
23319
23320         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
23321         const rtx_insn *.
23322
23323         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23324         from rtx to rtx_insn *.
23325         (add_dependence_list): Likewise for param "insn".  Add a checked
23326         cast.
23327         (add_dependence_list_and_free): Strengthen param "insn" from rtx
23328         to rtx_insn *.  Strengthen param "list_p" from rtx * to
23329         rtx_insn **.
23330         (chain_to_prev_insn): Strengthen param "insn" and locals
23331         "prec_nonnote", "i" from rtx to rtx_insn *.
23332         (flush_pending_lists): Likewise for param "insn".
23333         (cur_insn): Likewise for this variable.
23334         (haifa_start_insn): Add a checked cast.
23335         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23336         (sched_analyze_reg): Likewise for param "insn".
23337         (sched_analyze_1): Likewise.
23338         (sched_analyze_2): Likewise.  Add checked casts.
23339         (sched_analyze_insn): Likewise.  Also for local "prev".
23340         (deps_analyze_insn): Likewise for param "insn".
23341         (sched_analyze): Likewise for params "head", "tail" and local "insn".
23342         (add_dependence_1): Likewise for params "insn", "elem".
23343         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23344         (parse_add_or_inc): Likewise for param "insn".
23345         (find_inc): Likewise for local "inc_cand".
23346         (find_modifiable_mems): Likewise for params "head", "tail" and
23347         locals "insn", "next_tail".
23348
23349         * sched-ebb.c (init_ready_list): Likewise for local "insn".
23350         (begin_schedule_ready): Likewise for param "insn".
23351         (begin_move_insn): Likewise for params "insn" and "last".
23352         (ebb_print_insn): Strengthen param "insn" from const_rtx to
23353         const rtx_insn *.
23354         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23355         (ebb_contributes_to_priority): Likewise for params "next", "insn".
23356         (ebb_add_remove_insn): Likewise for param "insn".
23357         (advance_target_bb): Likewise.
23358
23359         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23360         "insn".
23361         (check_live): Likewise for param "insn".
23362         (init_ready_list): Likewise for local "insn".
23363         (can_schedule_ready_p): Likewise for param "insn".
23364         (begin_schedule_ready): Likewise.
23365         (new_ready): Likewise for param "next".
23366         (rgn_print_insn): Likewise for param "insn".
23367         (rgn_rank): Likewise for params "insn1", "insn2".
23368         (contributes_to_priority): Likewise for params "next", "insn".
23369         (rgn_insn_finishes_block_p): Likewise for param "insn".
23370         (add_branch_dependences): Likewise for params "head", "tail" and
23371         locals "insn", "last".
23372         (rgn_add_remove_insn): Likewise for param "insn".
23373         (advance_target_bb): Likewise.
23374
23375         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23376         const_rtx to const rtx_insn *.
23377
23378         * sel-sched-dump.h (sel_print_insn): Likewise.
23379
23380         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23381         (deps_init_id): Likewise.
23382
23383         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23384         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23385         rtx_insn **.
23386
23387 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23388
23389         * output.h (final_start_function): Strengthen param 1 from rtx to
23390         rtx_insn *.
23391
23392         * final.c (final_start_function): Likewise, renaming back from
23393         "uncast_first" to "first", and dropping the checked cast from rtx
23394         to rtx_insn *.
23395
23396 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23397
23398         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
23399         * final.c (final): Likewise.  Rename param back from
23400         "uncast_first" to "first" and eliminate the checked cast from rtx
23401         to rtx_insn *.
23402
23403 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23404
23405         * output.h (shorten_branches): Strengthen param from rtx to
23406         rtx_insn *.
23407
23408         * final.c (shorten_branches): Likewise, renaming param back from
23409         "uncast_first" to "first", and dropping the checked cast from rtx
23410         to rtx_insn *.
23411
23412         * genattr.c (gen_attr): Likewise when writing out the prototype of
23413         shorten_branches.
23414
23415 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23416
23417         * sched-int.h (struct haifa_sched_info): Strengthen fields
23418         "prev_head" and "next_tail" from rtx to rtx_insn *.
23419
23420 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23421
23422         * rtl.h (rtx_jump_table_data::get_labels): New method.
23423         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
23424         with use of the new rtx_jump_table_data::get_labels method.
23425         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
23426         to rtx_jump_table_data *.  Simplify by using get_labels method.
23427         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
23428         a dyn_cast, introducing local "table", using it to replace
23429         label-lookup logic with a get_labels method call.
23430         (patch_jump_insn): Simplify using get_labels method.
23431         * dwarf2cfi.c (create_trace_edges): Likewise.
23432         * rtlanal.c (label_is_jump_target_p): Likewise.
23433
23434 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23435
23436         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
23437         to rtx_insn *.
23438
23439         * emit-rtl.c (unshare_all_rtl_1): Likewise.
23440         (unshare_all_rtl_again): Likewise, also for local "p".
23441
23442 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23443
23444         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
23445         to rtx_insn *.
23446         * cfgrtl.c (delete_insn_and_edges): Likewise.
23447
23448 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23449
23450         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
23451         from rtx to rtx_insn *.
23452
23453         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
23454
23455 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23456
23457         * function.c (thread_prologue_and_epilogue_insns): Likewise for
23458         locals "returnjump", "epilogue_end", "insn", "next".
23459
23460         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
23461         "returnjump" from rtx * to rtx_insn **.
23462         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
23463
23464 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23465
23466         * basic-block.h (struct edge_def). Strengthen "r" within
23467         union edge_def_insns from rtx to rtx_insn *.
23468
23469         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
23470         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
23471         rtx_insn *.
23472         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
23473         from rtx to rtx_insn *.
23474         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
23475         rtx_insn *.
23476         * postreload-gcse.c (reg_killed_on_edge): Likewise.
23477         (reg_used_on_edge): Likewise.
23478         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
23479         (gt_pch_nx): New overload for rtx_insn *&.
23480         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
23481         from rtx to rtx_insn *.
23482
23483 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23484
23485         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
23486         from rtx to rtx_insn *.
23487         (BB_FOOTER): Replace function with access macro.
23488         (SET_BB_FOOTER): Delete.
23489
23490         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
23491         with BB_FOOTER.
23492         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
23493         (emit_barrier_after_bb): Likewise.
23494         (record_effective_endpoints): Likewise.
23495         (relink_block_chain): Likewise.
23496         (fixup_fallthru_exit_predecessor): Likewise.
23497         (cfg_layout_duplicate_bb): Likewise.
23498         (cfg_layout_split_block): Likewise.
23499         (cfg_layout_delete_block): Likewise.
23500         (cfg_layout_merge_blocks): Likewise.
23501         (BB_FOOTER): Delete function.
23502         (SET_BB_FOOTER): Delete function.
23503         * combine.c (update_cfg_for_uncondjump): Replace uses of
23504         SET_BB_FOOTER with BB_FOOTER.
23505
23506 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23507
23508         * except.h (struct eh_landing_pad_d): Strengthen field
23509         "landing_pad" from rtx to rtx_code_label *.
23510
23511         * except.c (sjlj_emit_dispatch_table): Likewise for param
23512         "dispatch_label"
23513         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
23514
23515 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23516
23517         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
23518         first param from rtx to rtx_insn *.
23519         * config/xtensa/xtensa.c (struct machine_function): Likewise for
23520         field "set_frame_ptr_insn".
23521         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
23522         "csend" from rtx to rtx_code_label *.
23523         (xtensa_expand_atomic): Likewise for local "csloop".
23524         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
23525         rtx_insn *.
23526         (xtensa_call_tls_desc): Likewise for return type and locals
23527         "call_insn", "insns".
23528         (xtensa_legitimize_tls_address): Likewise for local "insns".
23529         (xtensa_expand_prologue): Likewise for locals "insn", "first".
23530
23531 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23532
23533         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
23534         first param from rtx to rtx_insn *.
23535         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
23536         "insn".
23537
23538 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23539
23540         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
23541         Strengthen param 1 from rtx to rtx_insn *.
23542         (tilepro_output_cbranch): Likewise.
23543         (tilepro_adjust_insn_length): Likewise.
23544         (tilepro_final_prescan_insn): Likewise for sole param.
23545
23546         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
23547         Likewise for local "last".
23548         (cbranch_predicted_p): Likewise for param "insn".
23549         (tilepro_output_simple_cbranch_with_opcode): Likewise.
23550         (tilepro_output_cbranch_with_opcode): Likewise.
23551         (tilepro_output_cbranch): Likewise.
23552         (frame_emit_load): Likewise for return type and locals "seq",
23553         "insn".
23554         (emit_sp_adjust): Likewise for return type and local "insn".
23555         (tilepro_expand_epilogue): Likewise for locals "last_insn",
23556         "insn".
23557         (tilepro_adjust_insn_length): Likewise for param "insn".
23558         (next_insn_to_bundle): Likewise for return type and params
23559         "r", "end".
23560         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
23561         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
23562         local "new_insns".
23563         (match_addli_pcrel): Likewise for param "insn".
23564         (replace_addli_pcrel): Likewise.
23565         (match_auli_pcrel): Likewise.
23566         (replace_auli_pcrel): Likewise.
23567         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
23568         "next_insn".
23569         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23570         "queue", "next_queue", "prev".
23571         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
23572         (tilepro_final_prescan_insn): Likewise for param "insn".
23573
23574 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23575
23576         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
23577         Strengthen param 1 from rtx to rtx_insn *.
23578         (tilegx_output_cbranch): Likewise.
23579         (tilegx_adjust_insn_length): Likewise.
23580         (tilegx_final_prescan_insn): Likewise for sole param.
23581
23582         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
23583         or local "last".
23584         (cbranch_predicted_p): Likewise for param "insn".
23585         (tilegx_output_simple_cbranch_with_opcode): Likewise.
23586         (tilegx_output_cbranch_with_opcode): Likewise.
23587         (tilegx_output_cbranch): Likewise.
23588         (frame_emit_load): Likewise for return type.
23589         (set_frame_related_p): Likewise for locals "seq", "insn".
23590         (emit_sp_adjust): Likewise for return type, and for local "insn".
23591         Introduce local "pat" for use in place of "insn" where the latter
23592         isn't an instruction.
23593         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
23594         from rtx to rtx_insn *.
23595         (tilegx_adjust_insn_length): Likewise for param "insn".
23596         (next_insn_to_bundle): Likewise for return type and params "r" and
23597         "end".
23598         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
23599         "end".
23600         (replace_insns): Likewise for params "old_insn", "new_insns".
23601         (replace_mov_pcrel_step1): Likewise for param "insn" and local
23602         "new_insns".
23603         (replace_mov_pcrel_step2): Likewise.
23604         (replace_mov_pcrel_step3): Likewise.
23605         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
23606         "next_insn".
23607         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23608         "queue", "next_queue", "prev".
23609         (tilegx_output_mi_thunk): Likewise for local "insn".
23610         (tilegx_final_prescan_insn): Likewise for param "insn".
23611
23612 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23613
23614         * config/spu/spu.c (frame_emit_store): Strengthen return type from
23615         rtx to rtx_insn *.
23616         (frame_emit_load): Likewise.
23617         (frame_emit_add_imm): Likewise, also for local "insn".
23618         (spu_expand_prologue): Likewise for local "insn".
23619         (struct spu_bb_info): Likewise for field "prop_jump".
23620         (emit_nop_for_insn): Likewise for param "insn" and local
23621         "new_insn".
23622         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
23623         "hbr_insn".
23624         (spu_emit_branch_hint): Likewise for params "before", "branch" and
23625         locals "hint", "insn".
23626         (get_branch_target): Likewise for param "branch".
23627         (insn_clobbers_hbr): Likewise for param "insn".
23628         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
23629         locals "insn", "before_4", "before_16".
23630         (insert_hbrp): Likewise for local "insn".
23631         (spu_machine_dependent_reorg): Likewise for locals "branch",
23632         "insn", "next", "bbend".
23633         (uses_ls_unit): Likewise for param "insn".
23634         (get_pipe): Likewise.
23635         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
23636         introducing a checked cast.
23637         (spu_sched_adjust_cost): Likewise for params "insn" and
23638         "dep_insn".
23639         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
23640         (spu_sms_res_mii): Likewise.
23641
23642 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23643
23644         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
23645         from rtx to rtx_insn *.
23646         (output_cbranch): Likewise for param 6.
23647         (output_return): Likewise for param 1.
23648         (output_sibcall): Likewise.
23649         (output_v8plus_shift): Likewise.
23650         (output_v8plus_mult): Likewise.
23651         (output_v9branch): Likewise for param 7.
23652         (output_cbcond):  Likewise for param 3.
23653
23654         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
23655         for local "insn".
23656         (sparc_legitimize_pic_address): Likewise.
23657         (sparc_emit_call_insn): Likewise.
23658         (emit_save_or_restore_regs): Likewise.
23659         (emit_window_save): Likewise for return type and local "insn".
23660         (sparc_expand_prologue): Likewise for local "insn".
23661         (sparc_flat_expand_prologue): Likewise.
23662         (output_return): Likewise for param "insn".
23663         (output_sibcall): Likewise for param "insn" and local "delay".
23664         (output_ubranch): Likewise for param "insn".
23665         (output_cbranch): Likewise.
23666         (output_cbcond): Likewise.
23667         (output_v9branch): Likewise.
23668         (output_v8plus_shift): Likewise.
23669         (sparc_output_mi_thunk): Likewise for local "insn".
23670         (get_some_local_dynamic_name): Likewise.
23671         (output_v8plus_mult): Likewise for param "insn".
23672
23673 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23674
23675         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
23676         from rtx to rtx_insn *.
23677         (output_branchy_insn): Likewise for param 3.
23678         (output_far_jump): Likewise for param 1.
23679         (final_prescan_insn): Likewise.
23680         (sh_insn_length_adjustment): Likewise for sole param.
23681
23682         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
23683         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
23684         rtx_code_label *.
23685         (sh_emit_compare_and_set): Likewise for local "lab".
23686         (output_far_jump): Strengthen param "insn" and local "prev" from
23687         rtx to rtx_insn *.
23688         (output_branchy_insn): Likewise for param "insn" and local
23689         "next_insn".
23690         (output_ieee_ccmpeq): Likewise for param "insn".
23691         (struct label_ref_list_d): Strengthen field "label" from rtx to
23692         rtx_code_label *.
23693         (pool_node): Likewise.
23694         (pool_window_label): Likewise for this global.
23695         (add_constant): Likewise for return type and locals "lab", "new_rtx".
23696         (dump_table): Strengthen params "start", "barrier" and local
23697         "scan" from rtx to rtx_insn *.
23698         (broken_move): Likewise for param "insn".
23699         (untangle_mova): Likewise for params "first_mova" and "new_mova".
23700         Strengthen param "first_mova" from rtx * to rtx_insn **.
23701         (mova_p): Likewise for param "insn".
23702         (fixup_mova): Likewise for param "mova".
23703         (find_barrier): Likewise for return type, params "mova" and
23704         "from", and locals "barrier_before_mova", "found_barrier",
23705         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
23706         "label" from rtx to rtx_code_label *.
23707         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
23708         rtx to rtx_insn *.
23709         (sh_reorg): Likewise for locals "link", "scan", "barrier".
23710         (split_branches): Likewise for param "first" and local "insn".
23711         (final_prescan_insn): Likewise for param "insn".
23712         (sequence_insn_p): Likewise for locals "prev", "next".
23713         (sh_insn_length_adjustment): Likewise for param "insn".
23714         (sh_can_redirect_branch): Likewise for local "insn".
23715         (find_r0_life_regions): Likewise for locals "end", "insn".
23716         (sh_output_mi_thunk): Likewise for local "insns".
23717
23718 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23719
23720         * config/score/score.c (score_output_mi_thunk): Strengthen local
23721         "insn" from rtx to rtx_insn *.
23722         (score_prologue): Likewise.
23723
23724 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23725
23726         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
23727         1 from rtx to rtx_insn *.
23728         (s390_emit_jump): Likewise for return type.
23729         (s390_emit_call): Likewise.
23730         (s390_load_got): Likewise.
23731
23732         * config/s390/s390.c (last_scheduled_insn): Likewise for this
23733         variable.
23734         (s390_match_ccmode): Likewise for param "insn".
23735         (s390_emit_jump): Likewise for return type.
23736         (s390_split_branches): Likewise for local "label".
23737         (struct constant): Strengthen field "label" from rtx to
23738         rtx_code_label *.
23739         (struct constant_pool): Likewise for field "label".  Strengthen
23740         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
23741         rtx_insn *.
23742         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
23743         insns.
23744         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
23745         (s390_end_pool): Likewise.
23746         (s390_dump_pool): Likewise for local "insn".
23747         (s390_mainpool_start): Likewise.
23748         (s390_chunkify_start): Likewise.
23749         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
23750         with insns.  Strengthen locals "label", "jump", "barrier", "next",
23751         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
23752         (s390_chunkify_finish): Strengthen local "insn" from rtx to
23753         rtx_insn *.
23754         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
23755         "jump", "label", "next_insn".
23756         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
23757         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
23758         "tbegin_insn".
23759         (s390_load_got): Likewise for return type and local "insns".
23760         (s390_save_gprs_to_fprs): Likewise for local "insn".
23761         (s390_restore_gprs_from_fprs): Likewise.
23762         (pass_s390_early_mach::execute): Likewise.
23763         (s390_emit_prologue): Likewise for local "insns".
23764         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
23765         rtx_code_label *.
23766         (s390_emit_call): Strengthen return type and local "insn" from
23767         rtx to rtx_insn *.
23768         (s390_emit_tpf_eh_return): Likewise for local "insn".
23769         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
23770         "next_insn", introducing locals "s_pat", "rpat" to allow this.
23771         (s390_fix_long_loop_prediction): Likewise for param "insn" and
23772         local "cur_insn".
23773         (s390_non_addr_reg_read_p): Likewise for param "insn".
23774         (find_cond_jump): Likewise for return type and param "insn".
23775         (s390_swap_cmp): Likewise for param "insn".
23776         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
23777         "prev_insn", "next_insn".
23778         (s390_reorg): Likewise for locals "insn", "target".
23779         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
23780         (s390_sched_variable_issue): For now, rename param "insn" to
23781         "uncast_insn", introducing a checked cast.
23782         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
23783         insn.
23784         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
23785         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
23786
23787 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23788
23789         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
23790         param from rtx to rtx_insn *.
23791         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
23792
23793 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23794
23795         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
23796         4 from rtx to rtx_insn *.
23797         (rs6000_final_prescan_insn): Likewise for first param.
23798         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
23799         local "insn".
23800         (rs6000_get_some_local_dynamic_name): Likewise.
23801         (output_cbranch): Likewise for param "insn".
23802         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
23803         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
23804         (rs6000_emit_allocate_stack): Likewise for local "insn".
23805         (load_cr_save): Likewise.
23806         (restore_saved_cr): Likewise.
23807         (restore_saved_lr): Likewise.
23808         (emit_cfa_restores): Likewise.
23809         (rs6000_output_function_epilogue): Likewise for locals "insn" and
23810         "deleted_debug_label".
23811         (rs6000_output_mi_thunk): Likewise for local "insn".
23812         (rs6000_final_prescan_insn): Likewise for param "insn".
23813
23814 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23815
23816         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
23817         Strengthen param "insn" from rtx to rtx_insn *.
23818         * config/picochip/picochip.c (picochip_current_prescan_insn):
23819         Likewise for this variable.
23820         (picochip_final_prescan_insn): Likewise for param "insn".
23821
23822 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23823
23824         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
23825         from rtx to rtx_insn *.
23826         (pa_output_indirect_call): Likewise.
23827         (pa_adjust_insn_length): Likewise.
23828         (pa_attr_length_millicode_call): Likewise.
23829         (pa_attr_length_call): Likewise.
23830         (pa_attr_length_indirect_call): Likewise.
23831
23832         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
23833         "insn".
23834         (pa_attr_length_millicode_call): Likewise.
23835         (pa_attr_length_call): Likewise.
23836         (pa_output_call): Likewise.
23837         (pa_attr_length_indirect_call): Likewise.
23838         (pa_output_indirect_call): Likewise.
23839
23840 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23841
23842         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
23843         Strengthen first param from rtx to rtx_insn *.
23844         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
23845         param "insn".
23846
23847 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23848
23849         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
23850         type from rtx to rtx_insn *.
23851         (mips_expand_call): Likewise.
23852         (mips_adjust_insn_length): Likewise for first param.
23853         (mips_output_conditional_branch): Likewise.
23854         (mips_output_order_conditional_branch): Likewise.
23855         (mips_final_prescan_insn): Likewise.
23856
23857         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
23858         rtx_insn * for the SEQUENCE case.
23859         (SEQ_END): Likewise.
23860         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
23861         (mips_emit_call_insn): Likewise, also for local "insn".
23862         (mips16_gp_pseudo_reg): Likewise for local "scan".
23863         (mips16_build_call_stub): Likewise for return type and for local
23864         "insn".  Introduce a new local "pattern" so that "insn" can indeed
23865         be an insn.
23866         (mips_expand_call): Strengthen return type and local "insn" from
23867         rtx to rtx_insn *.
23868         (mips_block_move_loop): Strengthen local "label" from rtx to
23869         rtx_code_label *.
23870         (mips_expand_synci_loop): Likewise for locals "label",
23871         "end_label".
23872         (mips_set_frame_expr): Strengthen local "insn" from rtx to
23873         rtx_insn *.
23874         (mips16e_collect_argument_saves): Likewise for locals "insn",
23875         "next".
23876         (mips_find_gp_ref): Likewise for param of callback for "pred"
23877         param, and for local "insn".
23878         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
23879         (mips_insn_has_flexible_gp_ref_p): Likewise.
23880         (mips_epilogue_emit_cfa_restores): Likewise for return type and
23881         local "insn".
23882         (mips_epilogue_set_cfa): Likewise for local "insn".
23883         (mips_expand_epilogue): Likewise.
23884         (mips_adjust_insn_length): Likewise for param "insn".
23885         (mips_output_conditional_branch): Likewise.
23886         (mips_output_order_conditional_branch): Likewise.
23887         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
23888         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
23889         "falu2_turn_enabled_insn".
23890         (mips_builtin_branch_and_move): Strengthen locals "true_label",
23891         "done_label" from rtx to rtx_code_label *.
23892         (struct mips16_constant): Likewise for field "label".
23893         (mips16_add_constant): Likewise for return type.
23894         (mips16_emit_constants_1): Strengthen return type and param "insn"
23895         from rtx to rtx_insn *.
23896         (mips16_emit_constants): Likewise for param "insn".
23897         (mips16_insn_length): Likewise.
23898         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
23899         to rtx_code_label *.
23900         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
23901         from rtx to rtx_insn *.
23902         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
23903         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
23904         (r10k_simplify_address): Strengthen param "insn" and local
23905         "def_insn" from rtx to rtx_insn *.
23906         (r10k_safe_address_p): Strengthen param "insn" from rtx to
23907         rtx_insn *.
23908         (r10k_needs_protection_p_1): Update target type of cast of data
23909         from to rtx to rtx_insn *.
23910         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
23911         rtx * to rtx_insn **.
23912         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
23913         rtx_insn *.
23914         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
23915         (mips_call_expr_from_insn): Likewise for param "insn".
23916         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
23917         (mips_find_pic_call_symbol): Likewise for param "insn".
23918         (mips_annotate_pic_calls): Likewise for local "insn".
23919         (mips_sim_insn): Likewise for this variable.
23920         (struct mips_sim): Likewise for field "insn" within elements of
23921         last_set array.
23922         (mips_sim_wait_reg): Likewise for param "insn".
23923         (mips_sim_wait_regs): Likewise.
23924         (mips_sim_wait_units): Likewise.
23925         (mips_sim_wait_insn): Likewise.
23926         (mips_sim_issue_insn): Likewise.
23927         (mips_sim_finish_insn): Likewise.
23928         (mips_seq_time): Likewise for param "seq" and local "insn".
23929         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
23930         locals "first", "second".
23931         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
23932         "last", "last2", "next".
23933         (mips_avoid_hazard): Likewise for params "after", "insn".
23934         (mips_reorg_process_insns): Likewise for locals "insn",
23935         "last_insn", "subinsn", "next_insn".
23936         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
23937         (mips16_split_long_branches): Likewise for locals "insn" "jump",
23938         "jump_sequence".
23939         (mips_output_mi_thunk): Likewise for local "insn".
23940         (mips_final_prescan_insn): Likewise for param "insn".
23941
23942 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23943
23944         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
23945         Strengthen return type and local "insns" from rtx to rtx_insn *.
23946         (microblaze_legitimize_tls_address): Likewise for local "insns".
23947         (microblaze_block_move_loop): Strengthen local "label" from rtx
23948         to rtx_code_label *.
23949         (microblaze_expand_prologue): Strengthen two locals named "insn"
23950         from rtx to rtx_insn *.
23951         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
23952         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
23953         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
23954         to rtx_code_label *.
23955
23956 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23957
23958         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
23959         param from rtx to rtx_insn *.
23960         (mep_reuse_lo): Likewise for third param.
23961         (mep_use_post_modify_p): Likewise for first param.
23962         (mep_core_address_length): Likewise.
23963         (mep_cop_address_length): Likewise.
23964         (mep_final_prescan_insn): Likewise.
23965         (mep_store_data_bypass_p): Likewise for both params.
23966         (mep_mul_hilo_bypass_p): Likewise.
23967         (mep_ipipe_ldc_p): Likewise for param.
23968
23969         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
23970         (mep_rewrite_mult): Likewise.
23971         (mep_rewrite_mulsi3): Likewise.
23972         (mep_rewrite_maddsi3): Likewise.
23973         (mep_reuse_lo_p_1): Likewise.
23974         (mep_reuse_lo_p): Likewise.
23975         (mep_frame_expr): Likewise.
23976         (mep_make_parallel): Likewise for both params.
23977         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
23978         local "insn".
23979         (mep_use_post_modify_p): Likewise for param "insn".
23980         (mep_core_address_length): Likewise.
23981         (mep_cop_address_length): Likewise.
23982         (mep_reg_set_in_function): Likewise for local "insn".
23983         (mep_asm_without_operands_p): Likewise.
23984         (F): Likewise for return type and param "x".
23985         (add_constant): Likewise for local "insn".
23986         (maybe_dead_move): Likewise for return type and local "insn".
23987         (mep_expand_prologue): Likewise for local "insn".
23988         (mep_final_prescan_insn): Likewise for param "insn".
23989         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
23990         "next", "follow", "x".
23991         (mep_insert_repeat_label_last): Likewise for return type, param
23992         "last_insn", and locals "next", "prev".  Strengthen param "label"
23993         from rtx to rtx_code_label *.
23994         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
23995         rtx_insn *.
23996         (struct mep_doloop_end): Likewise for fields "insn" and
23997         "fallthrough".
23998         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
23999         Strengthen local "repeat_label" from rtx to rtx_code_label *.
24000         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
24001         rtx_insn *.
24002         (mep_invert_branch): Likewise for params "insn" and "after".
24003         (mep_reorg_erepeat): Likewise for param "insns" and locals
24004         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
24005         "l" from rtx to rtx_code_label *.
24006         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
24007         from rtx to rtx_insn *.
24008         (mep_reorg_addcombine): Likewise for param "insns" and locals
24009         "i", "n".
24010         (add_sp_insn_p): Likewise for param "insn".
24011         (mep_reorg_noframe): Likewise for param "insns" and locals
24012         "start_frame_insn", "end_frame_insn", "next".
24013         (mep_reorg): Likewise for local "insns".
24014         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
24015         cast.
24016         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
24017         (mep_mul_hilo_bypass_p): Likewise.
24018         (mep_ipipe_ldc_p): Likewise for param "insn".
24019         (mep_make_bundle): Likewise for return type, param "cop" and local
24020         "insn", splitting out the latter into a new local "seq" for when it
24021         is a SEQUENCE rather than an insn.
24022         (core_insn_p): Likewise for param "insn".
24023         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
24024         "last", "first", "note", "prev", "core_insn".
24025
24026 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24027
24028         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
24029         rtx to rtx_insn *.
24030         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
24031         (m68k_final_prescan_insn): Likewise for first param.
24032
24033         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
24034         (m68k_set_frame_related): Likewise for param "insn".
24035         (output_btst): Likewise for param "insn".
24036         (m68k_final_prescan_insn): Likewise.
24037         (m68k_move_to_reg): Likewise for local "insn".
24038         (m68k_call_tls_get_addr): Likewise for local "insns".
24039         (m68k_call_m68k_read_tp): Likewise.
24040         (strict_low_part_peephole_ok): Likewise for param "first_insn".
24041         (m68k_output_mi_thunk): Likewise for local "insn".
24042
24043 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24044
24045         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
24046         first param from rtx to rtx_insn *.
24047         (iq2000_adjust_insn_length): Likewise.
24048         (iq2000_output_conditional_branch): Likewise.
24049         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
24050         "insn" and local "nop_insn".
24051         (iq2000_annotate_frame_insn): Likewise for param "insn".
24052         (iq2000_expand_prologue): Likewise for both locals "insn".
24053         (iq2000_adjust_insn_length): Likewise for param "insn".
24054         (iq2000_output_conditional_branch): Likewise.
24055
24056 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24057
24058         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
24059         "insns" from rtx to rtx_insn *.
24060         (ia64_emit_cond_move): Likewise for locals "insn", "first".
24061         (struct spill_fill_data): Likewise for field "init_after" and for
24062         elements of array field "prev_insn".
24063         (spill_restore_mem): Likewise for locals "insn", "first".
24064         (do_spill): Likewise for local "insn".
24065         (do_restore): Likewise.
24066         (ia64_expand_prologue): Likewise.
24067         (ia64_expand_epilogue): Likewise.
24068         (emit_insn_group_barriers): Likewise for locals "insn",
24069         "last_label".
24070         (emit_all_insn_group_barriers): Likewise for locals "insn",
24071         "last".
24072         (dfa_stop_insn): Likewise for this global.
24073         (dfa_pre_cycle_insn): Likewise.
24074         (ia64_nop): Likewise.
24075         (final_emit_insn_group_barriers): Likewise for locals "insn",
24076         "last".
24077         (emit_predicate_relation_info): Likewise for locals "head", "n",
24078         "insn", "b", "a".
24079         (ia64_reorg): Likewise for local "insn".
24080         (ia64_output_mi_thunk): Likewise.
24081         (expand_vec_perm_interleave_2): Likewise for local "seq".
24082
24083 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24084
24085         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
24086         param 1 "insn" from rtx to rtx_insn *.
24087         (ix86_use_lea_for_mov): Likewise.
24088         (ix86_avoid_lea_for_addr): Likewise.
24089         (ix86_split_lea_for_addr): Likewise.
24090         (ix86_lea_for_add_ok): Likewise.
24091         (ix86_output_call_insn): Likewise.
24092
24093         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
24094         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
24095         (ix86_output_function_epilogue): Likewise for locals "insn",
24096         "deleted_debug_label".
24097         (legitimize_tls_address): Likewise for local "insn".
24098         (get_some_local_dynamic_name): Likewise.
24099         (increase_distance): Likewise for params "prev", "next".
24100         (distance_non_agu_define_in_bb): Likewise for params "insn",
24101         "start" and locals "prev", "next".
24102         (distance_non_agu_define): Likewise for param "insn".
24103         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
24104         locals "next", "prev".
24105         (distance_agu_use): Likewise for param "insn".
24106         (ix86_lea_outperforms): Likewise.
24107         (ix86_ok_to_clobber_flags): Likewise.
24108         (ix86_avoid_lea_for_add): Likewise.
24109         (ix86_use_lea_for_mov): Likewise.
24110         (ix86_avoid_lea_for_addr): Likewise.
24111         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
24112         (ix86_split_lea_for_addr): Likewise for param "insn".
24113         (ix86_lea_for_add_ok): Likewise for param "insn".
24114         (ix86_expand_carry_flag_compare): Likewise for local
24115         "compare_seq".
24116         (ix86_expand_int_movcc): Likewise.
24117         (ix86_output_call_insn): Likewise for param "insn".
24118         (ix86_output_call_insn): Likewise for local "i".
24119         (x86_output_mi_thunk): Introduce local "insn", using it in place
24120         of "tmp" when dealing with insns.
24121         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
24122         "start".
24123         (ix86_pad_returns): Likewise for locals "ret", "prev".
24124         (ix86_count_insn_bb): Likewise for local "insn".
24125         (ix86_pad_short_function): Likewise for locals "ret", "insn".
24126         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
24127         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
24128         (expand_vec_perm_interleave2): Likewise for local "seq".
24129         (expand_vec_perm_vperm2f128_vblend): Likewise.
24130         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
24131         call to for_each_rtx with for_each_rtx_in_insn.
24132
24133 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24134
24135         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
24136         "label" from rtx to rtx_code_label *.
24137         (ix86_expand_prologue): Likewise.
24138         (ix86_expand_split_stack_prologue): Likewise for locals "label",
24139         "varargs_label".
24140         (ix86_split_idivmod): Likewise for locals "end_label" and
24141         "qimode_label".
24142         (ix86_expand_branch): Likewise for local "label2".
24143         (ix86_expand_aligntest): Likewise for return type and local "label".
24144         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
24145         "top_label".
24146         (expand_movmem_epilogue): Likewise for the various locals named
24147         "label".
24148         (expand_setmem_epilogue): Likewise.
24149         (expand_small_movmem_or_setmem): Likewise for local "label".
24150         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24151         Strengthen param "done_label" from rtx * to rtx_code_label **.
24152         Strengthen locals "loop_label" and "label" from rtx to
24153         rtx_code_label *.
24154         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24155         Likewise for locals "loop_label", "label".
24156         (ix86_expand_set_or_movmem): Likewise for locals "label",
24157         "jump_around_label", "hot_label".
24158         (ix86_expand_strlensi_unroll_1): Likewise for locals
24159         "align_2_label", align_3_label", "align_4_label", "end_0_label",
24160         "end_2_label".
24161         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
24162         (void ix86_emit_i387_log1p): Likewise for locals "label1",
24163         "label2", "jump_label".
24164         (ix86_expand_sse_compare_and_jump): Likewise for return type and
24165         local "label".
24166         (ix86_expand_lfloorceil): Likewise for local "label".
24167         (ix86_expand_rint): Likewise.
24168         (ix86_expand_floorceildf_32): Likewise.
24169         (ix86_expand_floorceil): Likewise.
24170         (ix86_expand_rounddf_32): Likewise.
24171         (ix86_expand_trunc): Likewise.
24172         (ix86_expand_truncdf_32): Likewise.
24173         (ix86_expand_round): Likewise.
24174
24175 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24176
24177         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
24178         first param from rtx to rtx_insn *.
24179         (h8300_insn_length_from_table): Likewise.
24180         * config/h8300/h8300.c (F): Likewise for return type and param
24181         "x".
24182         (Fpa): Add a checked cast to rtx_insn *.
24183         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
24184         rtx_insn *.
24185         (final_prescan_insn): Likewise for param "insn".
24186         (h8300_binary_length): Likewise.
24187         (h8300_insn_length_from_table): Likewise.
24188
24189 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24190
24191         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
24192         Strengthen first param "insn" from rtx to rtx_insn *.
24193
24194         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
24195         Likewise.
24196         (frame_insn): Likewise for return type.  Introduce local "insn"
24197         for use in place of local "x" for use as an rtx_insn *.
24198         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
24199         (epiphany_expand_prologue): Likewise for local "insn".
24200         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
24201         * config/epiphany/resolve-sw-modes.c
24202         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
24203         "seq".
24204
24205 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24206
24207         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
24208         param from rtx to rtx_insn *.
24209         (c6x_final_prescan_insn): Likewise for first param.
24210
24211         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
24212         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
24213         (c6x_expand_compare): Strengthen local "insns" from rtx to
24214         rtx_insn *.
24215         (c6x_get_unit_specifier): Likewise for param "insn".
24216         (c6x_print_unit_specifier_field): Likewise.
24217         (c6x_final_prescan_insn): Likewise.
24218         (emit_add_sp_const): Likewise for local "insn".
24219         (c6x_expand_prologue): Likewise.
24220
24221 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24222
24223         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
24224         param 1 from rtx to rtx_insn *.
24225         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
24226         the various locals named "insn".
24227         (expand_epilogue_reg_restore): Likewise.
24228         (frame_related_constant_load): Likewise.
24229         (add_to_reg): Likewise.
24230         (emit_link_insn): Likewise.
24231         (do_link): Likewise.
24232         (expand_interrupt_handler_prologue): Likewise.
24233         (branch_dest): Likewise for param "branch".
24234         (asm_conditional_branch): Likewise for param "insn".
24235         (gen_one_bundle): Likewise for elements of param "slot" and local
24236         "t".
24237         (bfin_gen_bundles): Likewise for locals "insn", "next" and
24238         elements of local "slot".
24239         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24240         "queue", "next_queue", "prev".
24241         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
24242         (add_sched_insns_for_speculation): Likewise for local "insn".
24243
24244 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24245
24246         * config/avr/avr-protos.h (output_movqi): Strengthen first param
24247         from rtx to rtx_insn *.
24248         (output_movhi): Likewise.
24249         (output_movsisf): Likewise.
24250         (avr_out_tstsi): Likewise.
24251         (avr_out_tsthi): Likewise.
24252         (avr_out_tstpsi): Likewise.
24253         (avr_out_compare): Likewise.
24254         (avr_out_compare64): Likewise.
24255         (avr_out_movpsi): Likewise.
24256         (ashlqi3_out): Likewise.
24257         (ashlhi3_out): Likewise.
24258         (ashlsi3_out): Likewise.
24259         (ashrqi3_out): Likewise.
24260         (ashrhi3_out): Likewise.
24261         (ashrsi3_out): Likewise.
24262         (lshrqi3_out): Likewise.
24263         (lshrhi3_out): Likewise.
24264         (lshrsi3_out): Likewise.
24265         (avr_out_ashlpsi3): Likewise.
24266         (avr_out_ashrpsi3): Likewise.
24267         (avr_out_lshrpsi3): Likewise.
24268         (avr_out_fract): Likewise.
24269         (avr_out_sbxx_branch): Likewise.
24270         (avr_out_round): Likewise.
24271         (avr_out_xload): Likewise.
24272         (avr_out_movmem): Likewise.
24273         (adjust_insn_length): Likewise.
24274         (avr_out_lpm): Likewise.
24275         (reg_unused_after): Likewise.
24276         (_reg_unused_after): Likewise.
24277         (avr_jump_mode): Likewise for second param.
24278         (jump_over_one_insn): Likewise for first param.
24279         (avr_final_prescan_insn): Likewise.
24280         (out_shift_with_cnt): Likewise for second param.
24281
24282         * config/avr/avr.c (get_sequence_length): Likewise for param
24283         "insns" and local "insn".
24284         (emit_push_byte): Likewise for local "insn".
24285         (emit_push_sfr): Likewise.
24286         (avr_prologue_setup_frame): Likewise for locals "insn",
24287         "fp_plus_insns", "sp_plus_insns".
24288         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
24289         "sp_plus_insns".
24290         (avr_jump_mode): Likewise for param "insn".
24291         (avr_final_prescan_insn): Likewise.
24292         (avr_find_unused_d_reg): Likewise.
24293         (avr_out_lpm_no_lpmx): Likewise.
24294         (avr_out_lpm): Likewise.
24295         (avr_out_xload): Likewise.
24296         (output_movqi): Likewise.
24297         (output_movhi): Likewise.
24298         (out_movqi_r_mr): Likewise.
24299         (out_movhi_r_mr): Likewise.
24300         (out_movsi_r_mr): Likewise.
24301         (out_movsi_mr_r): Likewise.
24302         (output_movsisf): Likewise.
24303         (avr_out_load_psi): Likewise.
24304         (avr_out_store_psi): Likewise.
24305         (avr_out_movpsi): Likewise.
24306         (out_movqi_mr_r): Likewise.
24307         (avr_out_movhi_mr_r_xmega): Likewise.
24308         (out_movhi_mr_r): Likewise.
24309         (compare_condition): Likewise for param "insn" and local "next".
24310         (compare_sign_p): Likewise for param "insn".
24311         (compare_diff_p): Likewise.
24312         (compare_eq_p): Likewise.
24313         (avr_out_compare): Likewise.
24314         (avr_out_compare64): Likewise.
24315         (avr_out_tsthi): Likewise.
24316         (avr_out_tstpsi): Likewise.
24317         (avr_out_tstsi): Likewise.
24318         (out_shift_with_cnt): Likewise.
24319         (ashlqi3_out): Likewise.
24320         (ashlhi3_out): Likewise.
24321         (avr_out_ashlpsi3): Likewise.
24322         (ashlsi3_out): Likewise.
24323         (ashrqi3_out): Likewise.
24324         (ashrhi3_out): Likewise.
24325         (avr_out_ashrpsi3): Likewise.
24326         (ashrsi3_out): Likewise.
24327         (lshrqi3_out): Likewise.
24328         (lshrhi3_out): Likewise.
24329         (avr_out_lshrpsi3): Likewise.
24330         (lshrsi3_out): Likewise.
24331         (avr_out_fract): Likewise.
24332         (avr_out_round): Likewise.
24333         (avr_adjust_insn_length): Likewise.
24334         (reg_unused_after): Likewise.
24335         (_reg_unused_after): Likewise.
24336         (avr_compare_pattern): Likewise.
24337         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24338         and locals "branch1", "branch2", "insn2", "jump".
24339         (avr_reorg): Likewise for local "insn".
24340         (avr_2word_insn_p): Likewise for param "insn".
24341         (jump_over_one_insn_p): Likewise.
24342         (avr_out_sbxx_branch): Likewise.
24343         (avr_out_movmem): Likewise.
24344
24345 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24346
24347         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24348         param from rtx to rtx_insn *.
24349         (thumb1_final_prescan_insn): Likewise.
24350         (thumb2_final_prescan_insn): Likewise.
24351
24352         * config/arm/arm.c (emit_set_insn): Strengthen return type from
24353         rtx to rtx_insn *.
24354         (struct minipool_node): Likewise for field "insn".
24355         (dump_minipool): Likewise for param "scan".
24356         (create_fix_barrier): Likewise for local "from".  Strengthen local
24357         "label" from rtx to rtx_code_label *.
24358         (push_minipool_barrier): Strengthen param "insn" from rtx to
24359         rtx_insn *.
24360         (push_minipool_fix): Likewise.
24361         (note_invalid_constants): Likewise.
24362         (thumb2_reorg): Likewise for local "insn".
24363         (arm_reorg): Likewise.
24364         (thumb2_final_prescan_insn): Likewise for param
24365         "insn" and local "first_insn".
24366         (arm_final_prescan_insn): Likewise for param "insn" and locals
24367         "start_insn", "this_insn".
24368         (arm_debugger_arg_offset): Likewise for param "insn".
24369         (thumb1_emit_multi_reg_push): Likewise for return type and local
24370         "insn".
24371         (thumb1_final_prescan_insn): Likewise for param "insn".
24372         (thumb_far_jump_used_p): Likewise for local "insn".
24373         (thumb1_expand_prologue): Likewise.
24374         (arm_expand_epilogue_apcs_frame): Likewise.
24375         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24376         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24377         from rtx to rtx_code_label *.
24378         (arm_split_atomic_op): Likewise for local "label".
24379         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24380
24381 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24382
24383         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24384         first param from rtx to rtx_insn *.
24385         (arc_verify_short): Likewise.
24386         (arc_short_long): Likewise.
24387         (arc_need_delay): Likewise.
24388
24389         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24390         "target_insn".
24391         (arc_ccfsm_advance): Likewise for param "insn" and locals
24392         "start_insn", "this_insn".
24393         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24394         (arc_ccfsm_post_advance): Likewise for param "insn".
24395         (arc_next_active_insn): Likewise for return type and param "insn".
24396         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
24397         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
24398         (output_short_suffix): Likewise for local "insn".
24399         (arc_final_prescan_insn): Likewise for param "insn".  Remove
24400         now-redundant checked cast.
24401         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
24402         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
24403         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
24404         for use where lc_set became an insn.
24405         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
24406         rtx to rtx_insn *.
24407         (arc_get_insn_variants): Likewise for local "prev".
24408         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
24409         "next".
24410         (arc_predicate_delay_insns): Likewise for local "insn".
24411         (arc_pad_return): Likewise for local "prev".  For now, add a
24412         checked cast when extracting the insn from "final_sequence".
24413         (arc_short_long): Likewise for param "insn".
24414         (arc_need_delay): Likewise for param "insn" and local "next".
24415         (arc_label_align): Likewise for locals "prev", "next".
24416
24417 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24418
24419         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
24420         "insn" from rtx to rtx_insn *.
24421         (alpha_gp_save_rtx): Likewise for local "seq".
24422         (alpha_instantiate_decls): Likewise for local "top".
24423         (get_some_local_dynamic_name): Likewise for local "insn".
24424         (alpha_does_function_need_gp): Likewise.
24425         (set_frame_related_p): Likewise for return type and for locals
24426         "seq" and "insn".
24427         (emit_frame_store_1): Likewise for local "insn".
24428         (alpha_expand_prologue): Likewise for locals "insn", "seq".
24429         (alpha_end_function): Likewise for local "insn".
24430         (alpha_output_mi_thunk_osf): Likewise.
24431         (alphaev4_insn_pipe): Likewise for param "insn".
24432         (alphaev5_insn_pipe): Likewise.
24433         (alphaev4_next_group): Likewise for return type and param 1
24434         "insn".
24435         (alphaev5_next_group): Likewise.
24436         (alpha_align_insns_1): Likewise for return type and param 1 of
24437         callback param "next_group", and for locals "i", "next", "prev",
24438         "where", "where2", "insn".
24439
24440 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
24441
24442         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
24443         rather than modifying the stmt.
24444
24445 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24446
24447         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
24448         cgraph_state conversion.
24449
24450 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24451
24452         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24453         Strengthen local "insns" from rtx to rtx_insn *.
24454         (aarch64_set_frame_expr): Likewise for local "insn".
24455         (aarch64_save_or_restore_fprs): Likewise.
24456         (aarch64_save_or_restore_callee_save_registers): Likewise.
24457         (aarch64_expand_prologue): Likewise.
24458         (aarch64_expand_epilogue): Likewise.
24459         (aarch64_output_mi_thunk): Likewise.
24460         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
24461         "label2" from rtx to rtx_code_label *.
24462         (aarch64_split_atomic_op): Likewise for local "label".
24463
24464 2014-08-25  Martin Liska  <mliska@suse.cz>
24465
24466         * cgraph.h (symtab_node):
24467         (bool needed_p (void)): created from decide_is_symbol_needed
24468         (bool referred_to_p (void)): created from referred_to_p
24469         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
24470         * cgraph.h (cgraph_node):
24471         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
24472         (void expand (void)): created from expand_function
24473         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
24474         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
24475         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
24476         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
24477         * cgraph.h (varpool_node):
24478         (static void add (tree decl): created from varpool_add_new_variable
24479         * cgraph.h (cgraph_edge):
24480         void remove (void);
24481         (void remove_caller (void)): created from cgraph_edge_remove_caller
24482         (void remove_callee (void)): created from cgraph_edge_remove_callee
24483         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
24484           created from cgraph_set_call_stmt
24485         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
24486         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
24487         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
24488           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
24489         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
24490           created from cgraph_speculative_call_info
24491         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
24492           int freq_scale, bool update_original)): created from cgraph_clone_edge
24493         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
24494         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
24495         (bool recursive_p (void)): created from cgraph_edge_recursive_p
24496         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
24497         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
24498         (static void rebuild_references (void)): created from cgraph_rebuild_references
24499         * cgraph.h (symbol_table):
24500         (create_reference): renamed from add_reference
24501         (maybe_create_reference): renamed from maybe_add_reference
24502         (void register_symbol (symtab_node *node)): new function
24503         (void clear_asm_symbols (void)): new function
24504         (void unregister (symtab_node *node)): new function
24505         (void release_symbol (cgraph_node *node, int uid)): new function
24506         (cgraph_node * allocate_cgraph_symbol (void)): new function
24507         (void initialize (void)): created from cgraph_init
24508         (symtab_node *first_symbol (void)):new function
24509         (asm_node *first_asm_symbol (void)):new function
24510         (symtab_node *first_defined_symbol (void)):new function
24511         (varpool_node *first_variable (void)):new function
24512         (varpool_node *next_variable (varpool_node *node)):new function
24513         (varpool_node *first_static_initializer (void)):new function
24514         (varpool_node *next_static_initializer (varpool_node *node)):new function
24515         (varpool_node *first_defined_variable (void)):new function
24516         (varpool_node *next_defined_variable (varpool_node *node)):new function
24517         (cgraph_node *first_defined_function (void)):new function
24518         (cgraph_node *next_defined_function (cgraph_node *node)):new function
24519         (cgraph_node *first_function (void)):new function
24520         (cgraph_node *next_function (cgraph_node *node)):new function
24521         (cgraph_node *first_function_with_gimple_body (void)):new function
24522         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
24523         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
24524           created from symtab_remove_unreachable_nodes
24525         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
24526         (void process_new_functions (void)): created from cgraph_process_new_functions
24527         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
24528         (bool output_variables (void)): created from varpool_node::output_variables
24529         (void output_asm_statements (void)): created from output_asm_statements
24530         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
24531         (void compile (void)): created from compile
24532         (void output_weakrefs (void)): created from output_weakrefs
24533         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
24534         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
24535           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
24536         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
24537         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
24538           created from cgraph_next_function_with_gimple_body
24539         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
24540           created from cgraph_remove_edge_removal_hook
24541         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
24542           created from cgraph_add_node_removal_hook
24543         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
24544           created from cgraph_remove_node_removal_hook
24545         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
24546           created from varpool_add_node_removal_hook
24547         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
24548           created from varpool_remove_node_removal_hook
24549         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
24550           created from cgraph_add_function_insertion_hook
24551         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
24552           created from cgraph_remove_function_insertion_hook
24553         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
24554           created from varpool_add_variable_insertion_hook
24555         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
24556           created from varpool_remove_variable_insertion_hook
24557         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
24558           created from cgraph_add_edge_duplication_hook
24559         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
24560           created from cgraph_remove_edge_duplication_hook
24561         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
24562           created from cgraph_add_node_duplication_hook
24563         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
24564           created from cgraph_remove_node_duplication_hook
24565         (void call_edge_removal_hooks (cgraph_edge *e)):
24566           created from cgraph_call_edge_removal_hooks
24567         (void call_cgraph_insertion_hooks (cgraph_node *node)):
24568           created from call_function_insertion_hooks
24569         (void call_cgraph_removal_hooks (cgraph_node *node)):
24570           created from cgraph_call_node_removal_hooks
24571         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
24572           created from cgraph_node::call_duplication_hooks
24573         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
24574           created from cgraph_call_edge_duplication_hooks
24575         (void call_varpool_removal_hooks (varpool_node *node)):
24576           created from varpool_call_node_removal_hooks
24577         (void call_varpool_insertion_hooks (varpool_node *node)):
24578           created from varpool_call_variable_insertion_hooks
24579         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
24580           created from insert_to_assembler_name_hash
24581         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
24582           created from unlink_from_assembler_name_hash
24583         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
24584           created from symtab_prevail_in_asm_name_hash
24585         (void symtab_initialize_asm_name_hash (void)):
24586           created from symtab_initialize_asm_name_hash
24587         (void change_decl_assembler_name (tree decl, tree name)):
24588           created from change_decl_assembler_name
24589         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
24590         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
24591           created from decl_assembler_name_hash
24592         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
24593           created from decl_assembler_name_equal
24594         (static hashval_t hash_node_by_assembler_name (const void *p)):
24595           created from hash_node_by_assembler_name
24596         (static int eq_assembler_name (const void *p1, const void *p2)):
24597           created from eq_assembler_name
24598
24599 2014-08-25  Marek Polacek  <polacek@redhat.com>
24600
24601         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
24602
24603 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
24604
24605         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
24606         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
24607         SWI1248_AVX512BW mode iterator.
24608
24609 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
24610
24611         PR target/62111
24612         * config/sh/predicates.md (general_extend_operand): Disable
24613         TRUNCATE before reload completes.
24614
24615 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
24616
24617         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
24618
24619 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
24620
24621         PR target/61996
24622         * config/sh/sh.opt (musermode): Allow negative form.
24623         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
24624         targets that don't support it.
24625         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
24626         Document -mno-usermode option.
24627
24628 2014-08-24  Kito Cheng  <kito@0xlab.org>
24629
24630         * system.h (CALLER_SAVE_PROFITABLE): Poison.
24631         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
24632         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
24633         * doc/tm.texi: Regenerate.
24634
24635 2014-08-24  Kito Cheng  <kito@0xlab.org>
24636
24637         * ira.c: Fix typo in comment.
24638
24639 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
24640
24641         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
24642         Deprecate c++1y. Change language to reflect greater confidence in C++14.
24643
24644 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
24645
24646         PR target/62038
24647         * config/pa/pa.c (pa_output_function_epilogue): Don't set
24648         last_address when the current function is a thunk.
24649         (pa_asm_output_mi_thunk): When we don't have named sections or they
24650         are not being used, check that thunk can reach the stub table with a
24651         short branch.
24652
24653 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24654
24655         * web.c (union_match_dups): Strengthen param "insn" from rtx to
24656         rtx_insn *.
24657         (pass_web::execute): Likewise for local "insn".
24658
24659 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24660
24661         * var-tracking.c (struct micro_operation_def): Strengthen field
24662         "insn" from rtx to rtx_insn *.
24663         (struct emit_note_data_def): Likewise.
24664         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
24665         (vt_stack_adjustments): Likewise for local "insn".
24666         (adjust_insn): Likewise for param "insn".
24667         (val_store): Likewise.
24668         (val_resolve): Likewise.
24669         (struct count_use_info): Likewise for field "insn".
24670         (log_op_type): Likewise for param "insn".
24671         (reverse_op): Likewise.
24672         (prepare_call_arguments): Likewise.
24673         (add_with_sets):  The initial param takes an insn, but we can't
24674         yet strengthen it from rtx to rtx_insn * since it's used as a
24675         cselib_record_sets_hook callback.  For now rename initial param
24676         from "insn" to "uncast_insn", and introduce a local "insn" of
24677         the stronger rtx_insn * type, with a checked cast.
24678         (compute_bb_dataflow): Strengthen local "insn" from rtx to
24679         rtx_insn *.
24680         (emit_note_insn_var_location): Likewise.
24681         (emit_notes_for_changes): Likewise.
24682         (emit_notes_for_differences): Likewise.
24683         (next_non_note_insn_var_location): Likewise for return type and
24684         for param "insn".
24685         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
24686         (vt_initialize): Likewise for local "insn".
24687         (delete_debug_insns): Likewise for locals "insn" and "next".
24688
24689 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24690
24691         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
24692         rtx_insn *.
24693         (mark_constant_pool): Likewise for local "insn".
24694
24695 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24696
24697         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
24698         rtx to rtx_insn *.
24699         (dead_debug_promote_uses): Likewise.
24700         (dead_debug_insert_temp): Likewise.
24701
24702 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24703
24704         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
24705         from const_rtx to const rtx_insn *.
24706         (store_killed_after): Likewise.  Strengthen locals "last", "act"
24707         from rtx to rtx_insn *.
24708         (store_killed_before): Strengthen param "insn" from const_rtx to
24709         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
24710         (find_moveable_store): Strengthen param "insn" from rtx to
24711         rtx_insn *.
24712         (compute_store_table): Likewise for local "insn".
24713         (insert_insn_start_basic_block): Likewise for param "insn" and
24714         locals "prev", "before", "insn".
24715         (insert_store): For now, add a checked cast to rtx_insn * on the
24716         result of gen_move_insn.
24717         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
24718         to rtx_insn *.
24719         (replace_store_insn): Likewise.  For now, add a checked cast to
24720         rtx_insn * on the result of gen_move_insn.
24721
24722 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24723
24724         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
24725         rtx_insn *.
24726         (expand_sjlj_dispatch_table): Likewise.
24727
24728 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24729
24730         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
24731         "insn" from rtx to rtx_insn *.
24732
24733 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24734
24735         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
24736         "insn" from rtx to rtx_insn *.
24737         (dup_block_and_redirect): Likewise for param 3 "before".
24738
24739         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
24740         from rtx to rtx_insn *.
24741         (move_insn_for_shrink_wrap): Likewise.
24742         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
24743         (dup_block_and_redirect): Likewise for param "before" and local
24744         "insn".
24745         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
24746         "end".
24747         (convert_to_simple_return): Likewise for local "start".
24748
24749         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
24750         Strengthen local "insn" from rtx to rtx_insn *, for use when
24751         invoking requires_stack_frame_p.
24752
24753 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24754
24755         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
24756         rtx_insn *.
24757         (speculate_expr): Likewise for locals "orig_insn_rtx",
24758         "spec_insn_rtx".
24759         (eq_transformed_insns): Likewise for locals "i1", "i2".
24760         (check_for_new_jump): Likewise for return type and local "end".
24761         (find_new_jump): Likewise for return type and local "jump".
24762         (sel_split_edge): Likewise for local "jump".
24763         (sel_create_recovery_block): Likewise.
24764         (sel_redirect_edge_and_branch_force): Likewise.
24765         (sel_redirect_edge_and_branch): Likewise.
24766
24767 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24768
24769         * sel-sched.c (substitute_reg_in_expr): Strengthen local
24770         "new_insn" from rtx to rtx_insn *.
24771         (create_insn_rtx_with_rhs): Likewise for return type and for local
24772         "insn_rtx".
24773         (create_insn_rtx_with_lhs): Likewise.
24774         (create_speculation_check): Likewise for local "insn_rtx".
24775         (implicit_clobber_conflict_p): Likewise for local "insn".
24776         (get_expr_cost): Likewise.
24777         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
24778         (move_cond_jump): Likewise for locals "next", "prev", "link",
24779         "head", "from", "to".
24780
24781 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24782
24783         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
24784         "next" from rtx to rtx_insn *.
24785         (find_conditional_protection): Likewise for local "next".
24786         (is_conditionally_protected): Likewise for local "insn1".
24787         (is_pfree): Likewise for locals "insn1", "insn2".
24788
24789 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24790
24791         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
24792         from rtx to rtx_insn *.
24793
24794         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
24795         locals "insn1", "insn2" from rtx to rtx_insn *.
24796         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
24797         locals "insn", "prev", "last_jump", "next_tail".
24798         (schedule_ebb): Likewise for params "head", "tail".
24799         (schedule_ebbs): Likewise for locals "tail", "head".
24800
24801         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
24802         to rtx_insn on "last_insn" in one of the invocations of
24803         schedule_ebb.
24804
24805 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24806
24807         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
24808         "elem", "insn" from rtx to rtx_insn *.
24809         (change_spec_dep_to_hard): Likewise.
24810         (get_back_and_forw_lists): Likewise for local "con".
24811         (sd_add_dep): Likewise for locals "elem", "insn".
24812         (sd_resolve_dep): Likewise for locals "pro", "con".
24813         (sd_unresolve_dep): Likewise.
24814         (sd_delete_dep): Likewise.
24815         (chain_to_prev_insn): Likewise for local "pro".
24816         (find_inc): Likewise for locals "pro", "con".
24817
24818 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24819
24820         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
24821         to rtx_insn *.
24822         (reg_set_between_p): Strengthen local "insn" from const_rtx to
24823         const rtx_insn *.
24824         (modified_between_p): Strengthen local "insn" from rtx to
24825         rtx_insn *.
24826         (remove_reg_equal_equiv_notes_for_regno): Likewise.
24827         (keep_with_call_p): Strengthen local "i2" from const_rtx to
24828         const rtx_insn *.
24829
24830 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24831
24832         * resource.c (next_insn_no_annul): Strengthen local "next" from
24833         rtx to rtx_insn *.
24834         (mark_referenced_resources): Likewise for local "insn".
24835
24836 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24837
24838         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
24839         to rtx_insn *.
24840         (find_reloads): Likewise for param 1.
24841         (subst_reloads): Likewise for sole param.
24842         (find_equiv_reg): Likwise for param 2.
24843         (regno_clobbered_p): Likwise for param 2.
24844         (reload): Likewise for param 1.
24845
24846         * caller-save.c (save_call_clobbered_regs): Strengthen local
24847         "insn" from rtx to rtx_insn *.
24848         (insert_one_insn): Likewise for local "insn".
24849
24850         * reload.c (this_insn): Likewise for this global.
24851         (find_reloads): Likewise for param "insn".
24852         (find_reloads_toplev): Likewise.
24853         (find_reloads_address): Likewise.
24854         (subst_reg_equivs): Likewise.
24855         (update_auto_inc_notes): Likewise.
24856         (find_reloads_address_1): Likewise.
24857         (find_reloads_subreg_address): Likewise.
24858         (subst_reloads): Likewise.
24859         (find_equiv_reg): Likewise, also for local "p".
24860         (regno_clobbered_p): Likewise for param "insn".
24861
24862         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
24863         array.
24864         (spill_reg_store): Likewise for the elements of this array.
24865         (remove_init_insns): Likewise for local "equiv_insn".
24866         (will_delete_init_insn_p): Likewise for param "insn".
24867         (reload): Likewise for param ""first" and local "insn".
24868         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
24869         rtx_insn *.
24870         (calculate_elim_costs_all_insns): Likewise.
24871         (delete_caller_save_insns): Likewise.
24872         (spill_failure): Likewise for param "insn".
24873         (delete_dead_insn): Likewise.
24874         (set_label_offsets): Likewise.
24875         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
24876         "prev_insn".
24877         (elimination_costs_in_insn): Likewise for param "insn".
24878         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
24879         when referring to an insn.
24880         (set_initial_label_offsets): Likewise.
24881         (set_offsets_for_label): Strengthen param "insn" from rtx to
24882         rtx_insn *.
24883         (init_eliminable_invariants): Likewise for param "first" and local
24884         "insn".
24885         (fixup_eh_region_note): Likewise for param "insn".
24886         (reload_as_needed): Likewise for locals "prev", "insn",
24887         "old_next", "old_prev", "next".
24888         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
24889         "last".
24890         (reload_inheritance_insn): Strengthen elements of this array from
24891         rtx to rtx_insn *.
24892         (failed_reload): Likewise for param "insn".
24893         (choose_reload_regs): Likewise for local "insn".  Replace use of
24894         NULL_RTX with NULL when referring to an insn.
24895         (input_reload_insns): Strengthen elements of this array from rtx
24896         to rtx_insn *.
24897         (other_input_address_reload_insns): Likewise for this global.
24898         (other_input_reload_insns): Likewise for this global.
24899         (input_address_reload_insns): Likwise for the elements of this
24900         array.
24901         (inpaddr_address_reload_insns): Likwise for the elements of this
24902         array.
24903         (output_reload_insns): Likewise for the elements of this array.
24904         (output_address_reload_insns): Likewise for the elements of this
24905         array.
24906         (outaddr_address_reload_insns): Likewise for the elements of this
24907         array.
24908         (operand_reload_insns): Likewise for this global.
24909         (other_operand_reload_insns): Likewise for this global.
24910         (other_output_reload_insns): Likewise for the elements of this
24911         array.
24912         (new_spill_reg_store): Likewise for the elements of this
24913         array.
24914         (emit_input_reload_insns): Likewise for locals "insn", "temp".
24915         Strengthen local "where" from rtx * to rtx_insn **.
24916         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
24917         from rtx to rtx_insn *.
24918         (do_input_reload): Likewise for local "insn".
24919         (do_output_reload): Likewise for local "insn".
24920         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
24921         (emit_insn_if_valid_for_reload): Likewise for return type and local
24922         "last".  Add checked cast to rtx_insn when returning "insn" since
24923         this has been through emit_insn.
24924         (gen_reload): Strengthen return type and locals "last", "insn", "set"
24925         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
24926         returning "insn" since it's been through
24927         emit_insn_if_valid_for_reload at this point.
24928         (delete_output_reload): Strengthen param "insn" and locals
24929         "output_reload_insn", "i2" from rtx to rtx_insn *.
24930         (delete_address_reloads): Likewise for params "dead_insn",
24931         "current_insn" and locals "prev", "next".
24932         (delete_address_reloads_1): Likewise for params "dead_insn",
24933         "current_insn" and locals "prev", "i2".
24934         (inc_for_reload): Likewise for locals "last", "add_insn".
24935         (add_auto_inc_notes): Strengthen param "insn" from rtx to
24936         rtx_insn *.
24937
24938         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
24939         param of this duplicate of the prototype from reload.h
24940
24941 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24942
24943         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
24944         rtx to rtx_insn *.
24945         (regstat_bb_compute_calls_crossed): Likewise.
24946
24947 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24948
24949         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
24950         to rtx_insn *.
24951         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
24952         with an insn.
24953         (regrename_analyze): Strengthen local "insn" from rtx to
24954         rtx_insn *.
24955         (scan_rtx_reg): Likewise for param "insn".
24956         (scan_rtx_address): Likewise.
24957         (scan_rtx): Likewise.
24958         (restore_operands): Likewise.
24959         (record_out_operands): Likewise.
24960         (build_def_use): Likewise for local "insn".  Replace use of
24961         NULL_RTX with NULL when dealing with an insn.
24962
24963 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24964
24965         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
24966         * reginfo.c (reg_scan): Likewise, also for local "insn".
24967         (reg_scan_mark_refs): Likewise for param "insn".
24968         (init_subregs_of_mode): Likewise for local "insn".
24969
24970 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24971
24972         * regcprop.c (struct queued_debug_insn_change): Strengthen field
24973         "insn" from rtx to rtx_insn *.
24974         (replace_oldest_value_reg): Likewise for param "insn".
24975         (replace_oldest_value_addr): Likewise.
24976         (replace_oldest_value_mem): Likewise.
24977         (apply_debug_insn_changes): Likewise for local "last_insn".
24978         (copyprop_hardreg_forward_1): Likewise for local "insn".
24979
24980 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24981
24982         * reg-stack.c (next_flags_user): Strengthen return type and param
24983         "insn" from rtx to rtx_insn *.
24984         (straighten_stack): Likewise for param "insn".
24985         (check_asm_stack_operands): Likewise.
24986         (remove_regno_note): Likewise.
24987         (emit_pop_insn): Likewise for return type, param "insn", local
24988         "pop_insn".
24989         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
24990         "limit" from rtx to rtx_insn *.
24991         (swap_to_top): Likewise for param "insn".
24992         (move_for_stack_reg): Likewise.
24993         (move_nan_for_stack_reg): Likewise.
24994         (swap_rtx_condition): Likewise.
24995         (compare_for_stack_reg): Likewise.
24996         (subst_all_stack_regs_in_debug_insn): Likewise.
24997         (subst_stack_regs_pat): Likewise, and local "insn2".
24998         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
24999         rtx_insn *.
25000         (subst_stack_regs): Likewise.
25001         (change_stack): Likewise.
25002         (convert_regs_1): Likewise for locals "insn", "next".
25003
25004 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25005
25006         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
25007         rtx_insn *.
25008         (combine_set_extension): Likewise for param "curr_insn".
25009         (transform_ifelse): Likewise for param "def_insn".
25010         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
25011         from vec<rtx> * to vec<rtx_insn *> *.
25012         (is_cond_copy_insn): Likewise for param "insn".
25013         (struct ext_state): Strengthen the four vec fields from vec<rtx>
25014         to vec<rtx_insn *>.
25015         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
25016         local "def_insn" from rtx to rtx_insn *.
25017         (get_sub_rtx): Likewise for param "def_insn".
25018         (merge_def_and_ext): Likewise.
25019         (combine_reaching_defs): Likewise.
25020         (add_removable_extension): Likewise for param "insn".
25021         (find_removable_extensions): Likewise for local "insn".
25022         (find_and_remove_re): Likewise for locals "curr_insn" and
25023         "def_insn".  Strengthen locals "reinsn_del_list" and
25024         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
25025
25026 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25027
25028         * recog.c (split_insn): Strengthen param "insn" and locals
25029         "first", "last" from rtx to rtx_insn *.
25030         (split_all_insns): Likewise for locals "insn", "next".
25031         (split_all_insns_noflow): Likewise.
25032
25033 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25034
25035         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
25036         const rtx_insn *.
25037         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25038         (debug_rtx_find): Likewise for param 1 "x".
25039
25040         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
25041         const_rtx to const rtx_insn *.  Likewise for local "insn".
25042         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
25043         (debug_rtx_find): Likewise for param 1 "x".
25044         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
25045         from const_rtx to const rtx_insn * within the appropriate cases of
25046         the switch statement.
25047
25048         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
25049         Strengthen local "insns" from rtx to rtx_insn * since this is
25050         passed to a call to debug_rtx_list.
25051
25052 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25053
25054         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
25055         to rtx_insn *.
25056
25057         * function.c (stack_protect_epilogue): Add checked cast to
25058         rtx_insn for now when invoking predict_insn_def.
25059
25060         * predict.c (predict_insn): Strengthen param "insn" from rtx to
25061         rtx_insn *.
25062         (predict_insn_def): Likewise.
25063         (rtl_predict_edge): Likewise for local "last_insn".
25064         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
25065         const rtx_insn *.
25066         (combine_predictions_for_insn): Strengthen param "insn" from rtx
25067         to rtx_insn *.
25068         (bb_estimate_probability_locally): Likewise for local "last_insn".
25069         (expensive_function_p): Likewise for local "insn".
25070
25071         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
25072         local "jmp", since this is used when invoking predict_insn_def.
25073
25074 2014-08-22  Marek Polacek  <polacek@redhat.com>
25075
25076         PR c++/62199
25077         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
25078
25079 2014-08-22  Marek Polacek  <polacek@redhat.com>
25080
25081         PR c/61271
25082         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
25083         a comparison in parens.
25084         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
25085         in parens.
25086
25087 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25088
25089         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
25090         rtx_insn *.
25091
25092         * cprop.c (fis_get_condition): Likewise.
25093
25094         * postreload.c (reload_cse_regs): Likewise for param "first".
25095         (reload_cse_simplify): Likewise for param "insn".
25096         (reload_cse_regs_1): Likewise for local "insn".
25097         (reload_cse_simplify_set): Likewise for param "insn".
25098         (reload_cse_simplify_operands): Likewise.
25099         (struct reg_use): Likewise for field "insn".
25100         (reload_combine_purge_insn_uses): Likewise for param "insn".
25101         (fixup_debug_insns): Likewise for params "from", "to" and local
25102         "insn".
25103         (try_replace_in_use): Likewise for local "use_insn".
25104         (reload_combine_recognize_const_pattern): Likewise for param
25105         "insn" and locals "add_moved_after_insn", "use_insn".
25106         (reload_combine_recognize_pattern): Likewise for param "insn" and
25107         local "prev".
25108         (reload_combine): Likewise for locals "insn", "prev".
25109         (reload_combine_note_use): Likewise for param "insn".
25110         (move2add_use_add2_insn): Likewise.
25111         (move2add_use_add3_insn): Likewise.
25112         (reload_cse_move2add): Likewise, also for local "next".
25113         (move2add_note_store): Likewise for local "insn".
25114
25115 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25116
25117         * postreload-gcse.c (struct occr): Strengthen field "insn" from
25118         rtx to rtx_insn *.
25119         (struct unoccr): Likewise.
25120         (struct modifies_mem): Likewise.
25121         (alloc_mem): Likewise for local "insn".
25122         (insert_expr_in_table): Likewise for param "insn".
25123         (dump_expr_hash_table_entry): Likewise for local "insn".
25124         (oprs_unchanged_p): Likewise for param "insn".
25125         (load_killed_in_block_p): Likewise for local "setter".
25126         (record_last_reg_set_info): Likewise for param "insn".
25127         (record_last_reg_set_info_regno): Likewise.
25128         (record_last_mem_set_info): Likewise.
25129         (record_last_set_info): Likewise for local "last_set_insn".
25130         (record_opr_changes): Likewise for param "insn".
25131         (hash_scan_set): Likewise.
25132         (compute_hash_table): Likewise for local "insn".
25133         (get_avail_load_store_reg): Likewise for param "insn".
25134         (eliminate_partially_redundant_load): Likewise, also for locals
25135         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
25136         RTX for insns.
25137         (eliminate_partially_redundant_loads): Likewise for local "insn".
25138
25139 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25140
25141         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
25142         rtx to rtx_insn *.
25143         (expand_binop): Likewise for locals "entry_last", "last", "insns"
25144         (expand_twoval_unop): Likewise for locals entry_last", "last".
25145         (expand_twoval_binop): Likewise.
25146         (expand_twoval_binop_libfunc): Likewise for local "insns".
25147         (widen_leading): Likewise for local "last".
25148         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
25149         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
25150         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
25151         (expand_parity): Likewise for locals "last" and "seq".
25152         (expand_ffs): Likewise for local "seq".  Strengthen local
25153         "nonzero_label" from rtx to rtx_code_label *.
25154         (expand_absneg_bit): Strengthen local "insns" from rtx to
25155         rtx_insn *.
25156         (expand_unop_direct): Likewise for local "last".
25157         (expand_unop): Likewise for locals "last", "insns".
25158         (expand_abs_nojump): Likewise for local "last".
25159         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
25160         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
25161         rtx_insn *.
25162         (expand_copysign_absneg): Strengthen local "label" from rtx to
25163         rtx_code_label *.
25164         (expand_copysign_bit): Strengthen local "insns" from rtx to
25165         rtx_insn *.
25166         (struct no_conflict_data): Likewise for fields "first", "insn".
25167         (emit_libcall_block_1): Likewise for param "insns" and locals
25168         "next", "last", "insn".
25169         (emit_libcall_block): For now, add a checked cast to rtx_insn *
25170         on "insns" when invoking emit_libcall_block_1.  Ultimately we
25171         want to strengthen insns itself.
25172         (prepare_cmp_insn): Strengthen local "last" from rtx to
25173         rtx_insn *.
25174         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
25175         (prepare_float_lib_cmp): Likewise for local "insns".
25176         (emit_conditional_move): Likewise for local "last".
25177         (emit_conditional_add): Likewise.
25178         (have_sub2_insn): Likewise for local "seq".
25179         (expand_float): Likewise for local "insns".  Strengthen locals
25180         "label", "neglabel" from rtx to rtx_code_label *.
25181         (expand_fix): Likewise for locals "last", "insn", "insns" (to
25182         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
25183         (expand_fixed_convert): Likewise for local "insns" (to
25184         rtx_insn *).
25185         (expand_sfix_optab): Likewise for local "last".
25186         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
25187         to rtx_code_label *.
25188         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
25189         from rtx to rtx_insn *.
25190         (expand_atomic_fetch_op): Likewise for local "insn".
25191         (maybe_legitimize_operand_same_code): Likewise for local "last".
25192         (maybe_legitimize_operands): Likewise.
25193
25194 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25195
25196         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
25197         "insn" from rtx to rtx_insn *.
25198         (ps_rtl_insn): Likewise for return type.
25199         (doloop_register_get): Likewise for params "head", "tail" and
25200         locals "insn", "first_insn_not_to_check".
25201         (schedule_reg_move): Likewise for local "this_insn".
25202         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
25203         of gen_move_insn for now.
25204         (reset_sched_times): Strengthen local "insn" from rtx to
25205         rtx_insn *.
25206         (permute_partial_schedule): Likewise.
25207         (duplicate_insns_of_cycles): Likewise for local "u_insn".
25208         (dump_insn_location): Likewise for param "insn".
25209         (loop_canon_p): Likewise for local "insn".
25210         (sms_schedule): Likewise.
25211         (print_partial_schedule): Likewise.
25212         (ps_has_conflicts): Likewise.
25213
25214 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25215
25216         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
25217         "tailp" from rtx * to rtx_insn **.
25218
25219         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
25220         from rtx to rtx_insn *.
25221         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
25222         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
25223         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
25224         rtx to rtx_insn *.
25225         * modulo-sched.c (const_iteration_count): Strengthen return type
25226         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
25227         use of NULL_RTX with NULL when working with insns.
25228         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
25229         to rtx_insn *.
25230         (sms_schedule): Likewise.
25231         * sched-rgn.c (init_ready_list): Likewise, also for locals
25232         "src_head" and "src_next_tail".
25233         (compute_block_dependences): Likewise.
25234         (free_block_dependencies): Likewise.
25235         (debug_rgn_dependencies): Likewise.
25236         (free_rgn_deps): Likewise.
25237         (compute_priorities): Likewise.
25238         (schedule_region): Likewise.
25239         * sel-sched.c (find_ebb_boundaries): Likewise.
25240
25241         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
25242         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
25243
25244 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25245
25246         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
25247         from rtx to rtx_insn *.
25248         (new_seginfo): Likewise for param "insn".
25249         (create_pre_exit): Likewise for locals "last_insn",
25250         "before_return_copy", "return_copy".
25251         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
25252         "mode_set".
25253
25254 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25255
25256         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
25257         from rtx to rtx_insn *.
25258         (lra_push_insn): Likewise for 1st param.
25259         (lra_push_insn_and_update_insn_regno_info): Likewise.
25260         (lra_pop_insn): Likewise for return type.
25261         (lra_invalidate_insn_data): Likewise for 1st param.
25262         (lra_set_insn_deleted): Likewise.
25263         (lra_delete_dead_insn): Likewise.
25264         (lra_process_new_insns): Likewise for first 3 params.
25265         (lra_set_insn_recog_data): Likewise for 1st param.
25266         (lra_update_insn_recog_data): Likewise.
25267         (lra_set_used_insn_alternative): Likewise.
25268         (lra_invalidate_insn_regno_info): Likewise.
25269         (lra_update_insn_regno_info): Likewise.
25270         (lra_former_scratch_operand_p): Likewise.
25271         (lra_eliminate_regs_1): Likewise.
25272         (lra_get_insn_recog_data): Likewise.
25273
25274         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
25275         rtx to rtx_insn *.
25276
25277         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
25278         "mv1" and "mv2".
25279         (substitute_within_insn): New.
25280         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
25281         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
25282         Replace call to "substitute" with call to substitute_within_insn.
25283
25284         * lra-constraints.c (curr_insn): Strengthen from rtx to
25285         rtx_insn *.
25286         (get_equiv_with_elimination): Likewise for param "insn".
25287         (match_reload): Strengthen params "before" and "after" from rtx *
25288         to rtx_insn **.
25289         (emit_spill_move): Likewise for return type.  Add a checked cast
25290         to rtx_insn * on result of gen_move_insn for now.
25291         (check_and_process_move): Likewise for local "before".  Replace
25292         NULL_RTX with NULL when referring to insns.
25293         (process_addr_reg): Strengthen params "before" and "after" from
25294         rtx * to rtx_insn **.
25295         (insert_move_for_subreg): Likewise.
25296         (simplify_operand_subreg): Strengthen locals "before" and "after"
25297         from rtx to rtx_insn *.
25298         (process_address_1): Strengthen params "before" and "after" from
25299         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
25300         rtx to rtx_insn *.
25301         (process_address): Strengthen params "before" and "after" from
25302         rtx * to rtx_insn **.
25303         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
25304         (curr_insn_transform): Strengthen locals "before" and "after"
25305         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
25306         to insns.
25307         (loc_equivalence_callback): Update cast of "data", changing
25308         resulting type from rtx to rtx_insn *.
25309         (substitute_pseudo_within_insn): New.
25310         (inherit_reload_reg): Strengthen param "insn" from rtx to
25311         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
25312         NULL when referring to insns.  Add a checked cast to rtx_insn *
25313         when using usage_insn to invoke lra_update_insn_regno_info.
25314         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
25315         likewise for locals "restore", "save".  Add checked casts to
25316         rtx_insn * when using usage_insn to invoke
25317         lra_update_insn_regno_info and lra_process_new_insns.  Replace
25318         NULL_RTX with NULL when referring to insns.
25319         (split_if_necessary): Strengthen param "insn" from rtx to
25320         rtx_insn *.
25321         (update_ebb_live_info): Likewise for params "head", "tail" and local
25322         "prev_insn".
25323         (get_last_insertion_point): Likewise for return type and local "insn".
25324         (get_live_on_other_edges): Likewise for local "last".
25325         (inherit_in_ebb): Likewise for params "head", "tail" and locals
25326         "prev_insn", "next_insn", "restore".
25327         (remove_inheritance_pseudos): Likewise for local "prev_insn".
25328         (undo_optional_reloads): Likewise for local "insn".
25329
25330         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25331         "insn".
25332         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25333         insns.
25334         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25335         rtx_insn *.
25336         (spill_pseudos): Likewise for local "insn".
25337         (init_elimination): Likewise.
25338         (process_insn_for_elimination): Likewise for param "insn".
25339
25340         * lra-lives.c (curr_insn): Likewise.;
25341
25342         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25343         (remove_pseudos): Likewise for param "insn".
25344         (spill_pseudos): Likewise for local "insn".
25345         (lra_final_code_change): Likewise for locals "insn", "curr".
25346
25347         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25348         (lra_set_insn_deleted): Likewise.
25349         (lra_delete_dead_insn): Likewise, and for local "prev".
25350         (new_insn_reg): Likewise for param "insn".
25351         (lra_set_insn_recog_data): Likewise.
25352         (lra_update_insn_recog_data): Likewise.
25353         (lra_set_used_insn_alternative): Likewise.
25354         (get_insn_freq): Likewise.
25355         (invalidate_insn_data_regno_info): Likewise.
25356         (lra_invalidate_insn_regno_info): Likewise.
25357         (lra_update_insn_regno_info): Likewise.
25358         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25359         vec<rtx_insn *>.
25360         (lra_push_insn_1): Strengthen param "insn" from rtx to
25361         rtx_insn *.
25362         (lra_push_insn): Likewise.
25363         (lra_push_insn_and_update_insn_regno_info): Likewise.
25364         (lra_pop_insn): Likewise for return type and local "insn".
25365         (push_insns): Likewise for params "from", "to", and local "insn".
25366         (setup_sp_offset): Likewise for params "from", "last" and locals
25367         "before", "insn".
25368         (lra_process_new_insns): Likewise for params "insn", "before",
25369         "after" and local "last".
25370         (struct sloc): Likewise for field "insn".
25371         (lra_former_scratch_operand_p): Likewise for param "insn".
25372         (remove_scratches): Likewise for locals "insn", "last".
25373         (check_rtl): Likewise for local "insn".
25374         (add_auto_inc_notes): Likewise for param "insn".
25375         (update_inc_notes): Likewise for local "insn".
25376         (lra): Replace NULL_RTX with NULL when referring to insn.
25377
25378 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25379
25380         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
25381         to rtx_insn *.
25382         (resolve_reg_notes): Likewise.
25383         (resolve_simple_move): Likewise for return type, param "insn", and
25384         locals "insns", "minsn".
25385         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
25386         (resolve_use): Likewise.
25387         (resolve_debug): Likewise.
25388         (find_decomposable_shift_zext): Likewise.
25389         (resolve_shift_zext): Likewise for return type, param "insn", and
25390         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
25391         (decompose_multiword_subregs): Likewise for local "insn",
25392         "orig_insn", "decomposed_shift", "end".
25393
25394 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25395
25396         * basic-block.h (basic_block split_edge_and_insert): Strengthen
25397         param "insns" from rtx to rtx_insn *.
25398
25399         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
25400         rtx to rtx_insn *.
25401         (struct iv_to_split): Likewise.
25402         (loop_exit_at_end_p): Likewise for local "insn".
25403         (split_edge_and_insert): Likewise for param "insns".
25404         (compare_and_jump_seq): Likewise for return type, param "cinsn",
25405         and locals "seq", "jump".
25406         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
25407         "branch_code"; update invocations of compare_and_jump_seq to
25408         eliminate NULL_RTX in favor of NULL.
25409         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
25410         rtx to rtx_insn *.
25411         (reset_debug_uses_in_loop): Likewise.
25412         (analyze_insn_to_expand_var): Likewise for param "insn".
25413         (analyze_iv_to_split_insn): Likewise.
25414         (analyze_insns_in_loop): Likewise for local "insn".
25415         (insert_base_initialization): Likewise for param
25416         "insn" and local "seq".
25417         (split_iv): Likewise for param "insn" and local "seq".
25418         (expand_var_during_unrolling): Likewise for param "insn".
25419         (insert_var_expansion_initialization): Likewise for local "seq".
25420         (combine_var_copies_in_loop_exit): Likewise.
25421         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
25422         "insn".
25423         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
25424         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
25425         "next".
25426
25427 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25428
25429         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
25430         rtx_insn *.
25431         (iv_analyze_result): Likewise.
25432         (iv_analyze_expr): Likewise.
25433         (biv_p): Likewise.
25434
25435         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
25436         local "def_insn" from rtx to rtx_insn *.
25437         (get_biv_step_1): Likewise for local "insn".
25438         (iv_analyze_expr): Likewise for param "insn".
25439         (iv_analyze_def): Likewise for local "insn".
25440         (iv_analyze_op): Likewise for param "insn".
25441         (iv_analyze): Likewise.
25442         (iv_analyze_result): Likewise.
25443         (biv_p): Likewise.
25444         (suitable_set_for_replacement): Likewise.
25445         (simplify_using_initial_values): Likewise for local "insn".
25446         (iv_number_of_iterations): Likewise for param "insn".
25447         (check_simple_exit): Add checked cast to rtx_insn when invoking
25448         iv_number_of_iterations for now (until get_condition is
25449         strengthened).
25450
25451         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
25452         "insn" from rtx to rtx_insn *.
25453         (analyze_insns_in_loop): Likewise for local "insn".
25454
25455 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25456
25457         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
25458         to rtx_insn *.
25459         (struct invariant): Likewise.
25460         (hash_invariant_expr_1): Likewise for param "insn".
25461         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
25462         (find_exits): Likewise for local "insn".
25463         (create_new_invariant): Likewise for param "insn".
25464         (check_dependencies): Likewise.
25465         (find_invariant_insn): Likewise.
25466         (record_uses): Likewise.
25467         (find_invariants_insn): Likewise.
25468         (find_invariants_bb): Likewise for local "insn".
25469         (get_pressure_class_and_nregs): Likewise for param "insn".
25470         (calculate_loop_reg_pressure): Likewise for local "insn".
25471
25472 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25473
25474         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
25475         to rtx_insn *.
25476         (add_test): Likewise for locals "seq", "jump".
25477         (doloop_modify): Likewise for locals "sequence", "jump_insn".
25478
25479 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25480
25481         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
25482         rtx_insn *.
25483         (rebuild_jump_labels_chain): Likewise for param "chain".
25484
25485         * cfgexpand.c (pass_expand::execute): Add checked cast to
25486         rtx_insn * when calling rebuild_jump_labels_chain in region where
25487         we know e->insns.r is non-NULL.
25488
25489         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
25490         rtx_insn *.
25491         (rebuild_jump_labels): Likewise.
25492         (rebuild_jump_labels_chain): Likewise for param "chain".
25493         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
25494         (init_label_info): Likewise for param "f".
25495         (maybe_propagate_label_ref): Likewise for params "jump_insn",
25496         "prev_nonjump_insn".
25497         (mark_all_labels): Likewise for param "f" and locals "insn",
25498         "prev_nonjump_insn".
25499
25500 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25501
25502         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
25503         from rtx to rtx_insn *insn.
25504         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
25505         (ira_add_allocno_copy): Likewise.
25506         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
25507         rtx to rtx_insn *.
25508         (ira_create_copy): Likewise.
25509         (ira_add_allocno_copy): Likewise.
25510         (create_bb_allocnos): Likewise for local "insn".
25511         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
25512         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
25513         process_regs_for_copy for rtx_insn * param.
25514         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
25515         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
25516         process_regs_for_copy for rtx_insn * param.
25517         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
25518         * ira-costs.c (record_reg_classes): Likewise for param "insn".
25519         (record_operand_costs): Likewise.
25520         (scan_one_insn): Likewise for return type, and for param "insn".
25521         (process_bb_for_costs): Likewise for local "insn".
25522         (process_bb_node_for_hard_reg_moves): Likewise.
25523         * ira-emit.c (struct move): Likewise for field "insn".
25524         (create_move): Eliminate use of NULL_RTX when dealing with an
25525         rtx_insn *.
25526         (emit_move_list): Strengthen return type and locals "result",
25527         "insn" from rtx to rtx_insn *insn.
25528         (emit_moves): Likewise for locals "insns", "tmp".
25529         (ira_emit): Likewise for local "insn".
25530         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
25531         "insn".
25532         (find_call_crossed_cheap_reg): Likewise.
25533         (process_bb_node_lives): Likewise for local "insn".
25534         * ira.c (decrease_live_ranges_number): Likewise.
25535         (compute_regs_asm_clobbered): Likewise.
25536         (build_insn_chain): Likewise.
25537         (find_moveable_pseudos): Likewise, also locals "def_insn",
25538         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
25539         to rtx_insn **.  Add a checked cast when assigning from
25540         "closest_use" into closest_uses array in a region where we know
25541         it's a non-NULL insn.
25542         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
25543         to rtx_insn *.
25544         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
25545         "last_interesting_insn", "uin".
25546         (move_unallocated_pseudos): Likewise for locals "def_insn",
25547         "move_insn", "newinsn".
25548
25549 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25550
25551         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
25552         Strengthen locals "done_label", "do_error" from rtx to
25553         rtx_code_label *.
25554         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
25555         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
25556         rtx_code_label *.
25557         (ubsan_expand_si_overflow_neg_check): Likewise for locals
25558         "done_label", "do_error" to rtx_code_label * and local  "last" to
25559         rtx_insn *.
25560         (ubsan_expand_si_overflow_mul_check): Likewise for locals
25561         "done_label", "do_error", "large_op0", "small_op0_large_op1",
25562         "one_small_one_large", "both_ops_large", "after_hipart_neg",
25563         "after_lopart_neg", "do_overflow", "hipart_different"  to
25564         rtx_code_label * and local  "last" to rtx_insn *.
25565
25566 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25567
25568         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
25569         "insn" and "move_insn" from rtx to rtx_insn *.
25570
25571 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25572
25573         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
25574         rtx_insn *.
25575         (cheap_bb_rtx_cost_p): Likewise.
25576         (first_active_insn): Likewise for return type and local "insn".
25577         (last_active_insn):  Likewise for return type and locals "insn",
25578         "head".
25579         (struct noce_if_info): Likewise for fields "jump", "insn_a",
25580         "insn_b".
25581         (end_ifcvt_sequence): Likewise for return type and locals "insn",
25582         "seq".
25583         (noce_try_move): Likewise for local "seq".
25584         (noce_try_store_flag): Likewise.
25585         (noce_try_store_flag_constants): Likewise.
25586         (noce_try_addcc): Likewise.
25587         (noce_try_store_flag_mask): Likewise.
25588         (noce_try_cmove): Likewise.
25589         (noce_try_minmax): Likewise.
25590         (noce_try_abs): Likewise.
25591         (noce_try_sign_mask): Likewise.
25592         (noce_try_bitop): Likewise.
25593         (noce_can_store_speculate_p): Likewise for local "insn".
25594         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
25595         seq".
25596         (check_cond_move_block): Likewise for local "insn".
25597         (cond_move_convert_if_block): Likewise.
25598         (cond_move_process_if_block): Likewise for locals "seq",
25599         "loc_insn".
25600         (noce_find_if_block): Likewise for local "jump".
25601         (merge_if_block): Likewise for local "last".
25602         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
25603         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
25604         (block_has_only_trap): Likewise for return type and local "trap".
25605         (find_if_case_1): Likewise for local "jump".
25606         (dead_or_predicable): Likewise for locals "head", "end", "jump",
25607         "insn".
25608
25609 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25610
25611         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
25612         "last_insn", "loop_end" from rtx to rtx_insn *.
25613
25614         * hw-doloop.c (scan_loop): Likewise for local "insn".
25615         (discover_loop): Likewise for param "tail_insn".
25616         (discover_loops): Likewise for local "tail".
25617
25618         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
25619         cast to rtx_insn * when assigning from an rtx local to a
25620         hwloop_info's "last_insn" field.
25621
25622 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25623
25624         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
25625         (add_delay_dependencies): Strengthen local "pro" from rtx to
25626         rtx_insn *.
25627         (recompute_todo_spec): Likewise.
25628         (dep_cost_1): Likewise for locals "insn", "used".
25629         (schedule_insn): Likewise for local "dbg".
25630         (schedule_insn): Likewise for locals "pro", "next".
25631         (unschedule_insns_until): Likewise for local "con".
25632         (restore_pattern): Likewise for local "next".
25633         (estimate_insn_tick): Likewise for local "pro".
25634         (resolve_dependencies): Likewise for local "next".
25635         (fix_inter_tick): Likewise.
25636         (fix_tick_ready): Likewise for local "pro".
25637         (add_to_speculative_block): Likewise for locals "check", "twin",
25638         "pro".
25639         (sched_extend_bb): Likewise for locals "end", "insn".
25640         (init_before_recovery): Likewise for local "x".
25641         (sched_create_recovery_block): Likewise for local "barrier".
25642         (create_check_block_twin): Likewise for local "pro".
25643         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
25644         "consumer".
25645         (unlink_bb_notes): Update for change to type of bb_header.
25646         Strengthen locals "prev", "label", "note", "next" from rtx to
25647         rtx_insn *.
25648         (clear_priorities): Likewise for local "pro".
25649
25650 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25651
25652         * gcse.c (struct occr): Strengthen field "insn" from rtx to
25653         rtx_insn *.
25654         (test_insn): Likewise for this global.
25655         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
25656         const rtx_insn *.
25657         (oprs_anticipatable_p): Likewise.
25658         (oprs_available_p): Likewise.
25659         (insert_expr_in_table): Strengthen param "insn" from  rtx to
25660         rtx_insn *.
25661         (hash_scan_set): Likewise.
25662         (hash_scan_clobber): Likewise.
25663         (hash_scan_call): Likewise.
25664         (hash_scan_insn): Likewise.
25665         (compute_hash_table_work): Likewise for local "insn".
25666         (process_insert_insn): Likewise for return type and local "pat".
25667         (insert_insn_end_basic_block): Likewise for locals "new_insn",
25668         "pat", "pat_end", "maybe_cc0_setter".
25669         (pre_edge_insert): Likewise for local "insn".
25670         (pre_insert_copy_insn): Likewise for param "insn".
25671         (pre_insert_copies): Likewise for local "insn".
25672         (struct set_data): Likewise for field "insn".
25673         (single_set_gcse): Likewise for param "insn".
25674         (gcse_emit_move_after): Likewise.
25675         (pre_delete): Likewise for local "insn".
25676         (update_bb_reg_pressure): Likewise for param "from" and local
25677         "insn".
25678         (should_hoist_expr_to_dom): Likewise for param "from".
25679         (hoist_code): Likewise for local "insn".
25680         (get_pressure_class_and_nregs): Likewise for param "insn".
25681         (calculate_bb_reg_pressure): Likewise for local "insn".
25682         (compute_ld_motion_mems): Likewise.
25683
25684 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25685
25686         * genpeep.c (main): Rename param back from "uncast_ins1" to
25687         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
25688         checked cast.
25689
25690         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
25691
25692 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
25693
25694         PR target/62195
25695         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
25696         documentation to state it is only for VSX operations.
25697
25698         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
25699         constraint only active if VSX.
25700
25701         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
25702         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
25703         (lfiwzx): Likewise.
25704
25705 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25706
25707         * fwprop.c (single_def_use_dom_walker::before_dom_children):
25708         Strengthen local "insn" from rtx to rtx_insn *.
25709         (use_killed_between): Likewise for param "target_insn".
25710         (all_uses_available_at): Likewise for param "target_insn" and
25711         local "next".
25712         (update_df_init): Likewise for params "def_insn", "insn".
25713         (update_df): Likewise for param "insn".
25714         (try_fwprop_subst): Likewise for param "def_insn" and local
25715         "insn".
25716         (free_load_extend): Likewise for param "insn".
25717         (forward_propagate_subreg): Likewise for param "def_insn" and
25718         local "use_insn".
25719         (forward_propagate_asm): Likewise for param "def_insn" and local
25720         "use_insn".
25721         (forward_propagate_and_simplify): Likewise for param "def_insn"
25722         and local "use_insn".
25723         (forward_propagate_into): Likewise for locals "def_insn" and
25724         "use_insn".
25725
25726 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25727
25728         * function.c (emit_initial_value_sets): Strengthen local "seq"
25729         from rtx to rtx_insn *.
25730         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
25731         local "seq".
25732         (instantiate_virtual_regs): Likewise for local "insn".
25733         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
25734         (reorder_blocks_1): Likewise for param "insns" and local "insn".
25735         (expand_function_end): Likewise for locals "insn" and "seq".
25736         (epilogue_done): Likewise for local "insn".
25737         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
25738         "last", "trial".
25739         (reposition_prologue_and_epilogue_notes): Likewise for locals
25740         "insn", "last", "note", "first".
25741         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
25742         (pass_match_asm_constraints::execute): Likewise for local "insn".
25743
25744 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25745
25746         * output.h (final_scan_insn): Strengthen return type from rtx to
25747         rtx_insn *.
25748         (final_forward_branch_p): Likewise for param.
25749         (current_output_insn): Likewise for this global.
25750
25751         * final.c (rtx debug_insn): Likewise for this variable.
25752         (current_output_insn): Likewise.
25753         (get_attr_length_1): Rename param "insn" to "uncast_insn",
25754         adding "insn" back in as an rtx_insn * with a checked cast, so
25755         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
25756         first param.
25757         (compute_alignments): Strengthen local "label" from rtx to
25758         rtx_insn *.
25759         (shorten_branches): 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 locals "insn", "seq",
25763         "next", "label" from rtx to rtx_insn *.
25764         (change_scope): Strengthen param "orig_insn" and local "insn" from
25765         rtx to rtx_insn *.
25766         (final_start_function): 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 local "insn" from rtx to
25770         rtx_insn *.
25771         (dump_basic_block_info): Strengthen param "insn" from rtx to
25772         rtx_insn *.
25773         (final): Rename param from "first" to "uncast_first",
25774         introducing a new local rtx_insn * "first" using a checked cast to
25775         effectively strengthen "first" from rtx to rtx_insn * without
25776         affecting the type signature.  Strengthen locals "insn", "next"
25777         from rtx to rtx_insn *.
25778         (output_alternate_entry_point): Strengthen param "insn" from rtx to
25779         rtx_insn *.
25780         (call_from_call_insn): Strengthen param "insn" from rtx to
25781         rtx_call_insn *.
25782         (final_scan_insn): Rename param from "insn" to "uncast_insn",
25783         introducing a new local rtx_insn * "insn" using a checked cast to
25784         effectively strengthen "insn" from rtx to rtx_insn * without
25785         affecting the type signature.  Strengthen return type and locals
25786         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
25787         now-redundant checked cast to rtx_insn * from both invocations of
25788         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
25789         introducing a local "call_insn" for use when invoking
25790         call_from_call_insn.
25791         (notice_source_line): Strengthen param "insn" from rtx to
25792         rtx_insn *.
25793         (leaf_function_p): Likewise for local "insn".
25794         (final_forward_branch_p): Likewise.
25795         (leaf_renumber_regs): Likewise for param "first".
25796         (rest_of_clean_state): Likewise for locals "insn" and "next".
25797         (self_recursive_call_p): Likewise for param "insn".
25798         (collect_fn_hard_reg_usage): Likewise for local "insn".
25799         (get_call_fndecl): Likewise for param "insn".
25800         (get_call_cgraph_rtl_info): Likewise.
25801         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
25802         introducing a new local rtx_insn * "insn" using a checked cast to
25803         effectively strengthen "insn" from rtx to rtx_insn * without
25804         affecting the type signature.
25805
25806         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
25807         cast when assigning from param "insn" to current_output_insn.
25808         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
25809         so that we can assign it back to current_output_insn.
25810
25811 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25812
25813         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
25814         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
25815         atmxt540s and atmxt540sreva devices.
25816         * config/avr/avr-tables.opt: Regenerate.
25817         * config/avr/t-multilib: Regenerate.
25818         * doc/avr-mmcu.texi: Regenerate.
25819
25820 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25821
25822         * expr.c (convert_move): Strengthen local "insns" from rtx to
25823         rtx_insn *.
25824         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
25825         "top_label" from rtx to rtx_code_label *.
25826         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
25827         rtx_insn *.
25828         (emit_single_push_insn): Likewise for locals "prev", "last".
25829         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
25830         to rtx_code_label *.
25831         (store_constructor): Likewise for locals "loop_start", "loop_end".
25832         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
25833         rtx_insn *.
25834         (expand_expr_real_2): Likewise.
25835         (expand_expr_real_1): Strengthen local "label" from rtx to
25836         rtx_code_label *.
25837
25838 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25839
25840         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
25841         from rtx to rtx_insn *.
25842         (store_bit_field_1): Likewise.
25843         (extract_bit_field_1): Likewise.
25844         (expand_mult_const): Likewise for local "insns".
25845         (expmed_mult_highpart): Strengthen local "label" from rtx to
25846         rtx_code_label *.
25847         (expand_smod_pow2): Likewise.
25848         (expand_sdiv_pow2): Likewise.
25849         (expand_divmod): Strengthen locals "last", "insn" from rtx to
25850         rtx_insn *.  Strengthen locals "label", "label1", "label2",
25851         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
25852         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
25853         (emit_store_flag): Likewise.
25854         (emit_store_flag_force): Strengthen local "label" from rtx to
25855         rtx_code_label *.
25856         (do_cmp_and_jump): Likewise for param "label".
25857
25858 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25859
25860         * explow.c (force_reg): Strengthen local "insn" from rtx to
25861         rtx_insn *.
25862         (adjust_stack_1): Likewise.
25863         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
25864         "final_label", "available_label", "space_available" from rtx to
25865         rtx_code_label *.
25866         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
25867         (anti_adjust_stack_and_probe): Likewise.
25868
25869 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25870
25871         * except.h (sjlj_emit_function_exit_after): Strengthen param
25872         "after" from rtx to rtx_insn *.  This is only called with
25873         result of get_last_insn (in function.c) so type-change should be
25874         self-contained.
25875
25876         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
25877         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
25878         to rtx_insn *.  These fields are only used from except.c so this
25879         type-change should be self-contained to this patch.
25880
25881         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
25882         local "last" from rtx to rtx_insn *.
25883         (dw2_build_landing_pads): Likewise for local "seq".
25884         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
25885         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
25886         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
25887         rtx to rtx_insn *.
25888         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
25889         to rtx_insn *.
25890         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
25891         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
25892         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
25893         referring to an insn.  Strengthen local "dispatch_label" from
25894         rtx to rtx_code_label *.
25895         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
25896         rtx_insn *.
25897         (expand_eh_return): Strengthen local "around_label" from
25898         rtx to rtx_code_label *.
25899         (convert_to_eh_region_ranges): Strengthen locals "iter",
25900         "last_action_insn", "first_no_action_insn",
25901         "first_no_action_insn_before_switch",
25902         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
25903
25904 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25905
25906         * dwarf2out.c (last_var_location_insn): Strengthen this variable
25907         from rtx to rtx_insn *.
25908         (cached_next_real_insn): Likewise.
25909         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
25910         working with insns.
25911         (dwarf2out_var_location): Strengthen locals "next_real",
25912         "next_note", "expected_next_loc_note", "last_start", "insn" from
25913         rtx to rtx_insn *.
25914
25915 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25916
25917         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
25918         from rtx to rtx_insn *.
25919         (create_pseudo_cfg): Likewise for local "insn".
25920
25921 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25922
25923         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
25924         from rtx to rtx_insn *.
25925         (df_bb_regno_last_def_find): Likewise.
25926
25927         * df-problems.c (df_rd_bb_local_compute): Likewise.
25928         (df_lr_bb_local_compute): Likewise.
25929         (df_live_bb_local_compute): Likewise.
25930         (df_chain_remove_problem): Likewise.
25931         (df_chain_create_bb): Likewise.
25932         (df_word_lr_bb_local_compute): Likewise.
25933         (df_remove_dead_eq_notes): Likewise for param "insn".
25934         (df_note_bb_compute): Likewise for local "insn".
25935         (simulate_backwards_to_point): Likewise.
25936         (df_md_bb_local_compute): Likewise.
25937
25938         * df-scan.c (df_scan_free_bb_info): Likewise.
25939         (df_scan_start_dump): Likewise.
25940         (df_scan_start_block): Likewise.
25941         (df_install_ref_incremental): Likewise for local "insn".
25942         (df_insn_rescan_all): Likewise.
25943         (df_reorganize_refs_by_reg_by_insn): Likewise.
25944         (df_reorganize_refs_by_insn_bb): Likewise.
25945         (df_recompute_luids): Likewise.
25946         (df_bb_refs_record): Likewise.
25947         (df_update_entry_exit_and_calls): Likewise.
25948         (df_bb_verify): Likewise.
25949
25950 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25951
25952         * ddg.h (struct ddg_node): Strengthen fields "insn" and
25953         "first_note" from rtx to rtx_insn *.
25954         (get_node_of_insn): Likewise for param 2 "insn".
25955         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25956
25957         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
25958         rtx_insn *.
25959         (mem_write_insn_p): Likewise.
25960         (mem_access_insn_p): Likewise.
25961         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25962         (def_has_ccmode_p): Likewise for param "insn".
25963         (add_cross_iteration_register_deps): Likewise for locals
25964         "def_insn" and "use_insn".
25965         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
25966         (build_intra_loop_deps): Likewise for local "src_insn".
25967         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
25968         to rtx_insn *.
25969         (get_node_of_insn): Likewise for param "insn".
25970
25971 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25972
25973         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
25974         (deletable_insn_p): Strengthen param "insn" from rtx to
25975         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
25976         find_call_stack_args, since this is guarded by CALL_P (insn).
25977         (marked_insn_p): Strengthen param "insn" from rtx to
25978         rtx_insn *.
25979         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
25980         invoking find_call_stack_args, since this is guarded by
25981         CALL_P (insn).
25982         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
25983         rtx_insn *; we know this is an insn since this was called by
25984         mark_nonreg_stores.
25985         (mark_nonreg_stores_2): Likewise.
25986         (mark_nonreg_stores): Strengthen param "insn" from rtx to
25987         rtx_insn *.
25988         (find_call_stack_args): Strengthen param "call_insn" from rtx to
25989         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
25990         to rtx_insn *.
25991         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
25992         from rtx to rtx_insn *.
25993         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
25994         "next", "ref_insn".
25995         (delete_unmarked_insns): Likewise for locals "insn", "next".
25996         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
25997         (mark_reg_dependencies): Likewise for param "insn".
25998         (rest_of_handle_ud_dce): Likewise for local "insn".
25999         (word_dce_process_block): Likewise.
26000         (dce_process_block): Likewise.
26001
26002 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26003
26004         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
26005         from rtx to rtx_insn *.
26006         (struct change_cc_mode_args): Likewise for field "insn".
26007         (this_insn): Strengthen from rtx to rtx_insn *.
26008         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
26009         with insn.
26010         (validate_canon_reg): Strengthen param "insn" from rtx to
26011         rtx_insn *.
26012         (canon_reg): Likewise.
26013         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
26014         dealing with insn.
26015         (record_jump_equiv): Strengthen param "insn" from rtx to
26016         rtx_insn *.
26017         (try_back_substitute_reg): Likewise, also for locals "prev",
26018         "bb_head".
26019         (find_sets_in_insn): Likewise for param "insn".
26020         (canonicalize_insn): Likewise.
26021         (cse_insn): Likewise.  Add a checked cast.
26022         (invalidate_from_clobbers): Likewise for param "insn".
26023         (invalidate_from_sets_and_clobbers): Likewise.
26024         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
26025         dealing with insn.
26026         (cse_prescan_path): Strengthen local "insn" from rtx to
26027         rtx_insn *.
26028         (cse_extended_basic_block): Likewise for locals "insn" and
26029         "prev_insn".
26030         (cse_main): Likewise for param "f".
26031         (check_for_label_ref): Likewise for local "insn".
26032         (set_live_p): Likewise for second param ("insn").
26033         (insn_live_p): Likewise for first param ("insn") and for local
26034         "next".
26035         (cse_change_cc_mode_insn): Likewise for first param "insn".
26036         (cse_change_cc_mode_insns): Likewise for first and second params
26037         "start" and "end".
26038         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
26039         and "end".
26040         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
26041         "cc_src_insn".
26042
26043 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26044             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26045             Anna Tikhonova  <anna.tikhonova@intel.com>
26046             Ilya Tocar  <ilya.tocar@intel.com>
26047             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26048             Ilya Verbin  <ilya.verbin@intel.com>
26049             Kirill Yukhin  <kirill.yukhin@intel.com>
26050             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26051
26052         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
26053         New.
26054         * config/i386/sse.md
26055         (define_mode_iterator VI248_AVX2): Delete.
26056         (define_mode_iterator VI2_AVX2_AVX512BW): New.
26057         (define_mode_iterator VI48_AVX2): Ditto.
26058         (define_insn <shift_insn><mode>3): Delete.
26059         (define_insn "<shift_insn><mode>3<mask_name>" with
26060         VI2_AVX2_AVX512BW): New.
26061         (define_insn "<shift_insn><mode>3<mask_name>" with
26062         VI48_AVX2): Ditto.
26063
26064 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26065             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26066             Anna Tikhonova  <anna.tikhonova@intel.com>
26067             Ilya Tocar  <ilya.tocar@intel.com>
26068             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26069             Ilya Verbin  <ilya.verbin@intel.com>
26070             Kirill Yukhin  <kirill.yukhin@intel.com>
26071             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26072
26073         * config/i386/sse.md
26074         (define_mode_iterator VI4F_BRCST32x2): New.
26075         (define_mode_attr 64x2_mode): Ditto.
26076         (define_mode_attr 32x2mode): Ditto.
26077         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
26078         with VI4F_BRCST32x2): Ditto.
26079         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
26080         with V16FI mode iterator): Ditto.
26081         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26082         with V16FI): Ditto.
26083         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26084         with VI8F_BRCST64x2): Ditto.
26085
26086 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26087             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26088             Anna Tikhonova  <anna.tikhonova@intel.com>
26089             Ilya Tocar  <ilya.tocar@intel.com>
26090             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26091             Ilya Verbin  <ilya.verbin@intel.com>
26092             Kirill Yukhin  <kirill.yukhin@intel.com>
26093             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26094
26095         * config/i386/sse.md
26096         (define_mode_iterator VI8_AVX512VL): New.
26097         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
26098
26099 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
26100
26101         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
26102         (define_mode_iterator V48_AVX512VL): New.
26103         (define_mode_iterator V12_AVX512VL): Ditto.
26104         (define_insn <avx512>_load<mode>_mask): Split into two similar
26105         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
26106         Refactor output template.
26107         (define_insn "<avx512>_store<mode>_mask"): Ditto.
26108
26109 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26110
26111         * cprop.c (struct occr): Strengthen field "insn" from rtx to
26112         rtx_insn *.
26113         (reg_available_p): Likewise for param "insn".
26114         (insert_set_in_table): Likewise.
26115         (hash_scan_set): Likewise.
26116         (hash_scan_insn): Likewise.
26117         (make_set_regs_unavailable): Likewise.
26118         (compute_hash_table_work): Likewise for local "insn".
26119         (reg_not_set_p): Strengthen param "insn" from const_rtx to
26120         const rtx_insn *.
26121         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
26122         (try_replace_reg): Likewise.
26123         (find_avail_set): Likewise.
26124         (cprop_jump): Likewise for params "setcc", "jump".
26125         (constprop_register): Likewise for param "insn".
26126         (cprop_insn): Likewise.
26127         (do_local_cprop): Likewise.
26128         (local_cprop_pass): Likewise for local "insn".
26129         (bypass_block): Likewise for params "setcc" and "jump".
26130         (bypass_conditional_jumps): Likewise for locals "setcc" and
26131         "insn".
26132         (one_cprop_pass): Likewise for local "insn".
26133
26134 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26135
26136         * compare-elim.c (struct comparison_use): Strengthen field "insn"
26137         from rtx to rtx_insn *.
26138         (struct comparison): Likewise, also for field "prev_clobber".
26139         (conforming_compare): Likewise for param "insn".
26140         (arithmetic_flags_clobber_p): Likewise.
26141         (find_flags_uses_in_insn): Likewise.
26142         (find_comparison_dom_walker::before_dom_children): Likewise for
26143         locals "insn", "next", "last_clobber".
26144         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
26145
26146 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26147
26148         * combine-stack-adj.c (struct csa_reflist): Strengthen field
26149         "insn" from rtx to rtx_insn *.
26150         (single_set_for_csa): Likewise for param "insn".
26151         (record_one_stack_ref): Likewise.
26152         (try_apply_stack_adjustment): Likewise.
26153         (struct record_stack_refs_data): Likewise for field "insn".
26154         (maybe_move_args_size_note): Likewise for params "last" and "insn".
26155         (prev_active_insn_bb): Likewise for return type and param "insn".
26156         (next_active_insn_bb): Likewise.
26157         (force_move_args_size_note): Likewise for params "prev" and "last"
26158         and locals "test", "next_candidate", "prev_candidate".
26159         (combine_stack_adjustments_for_block): Strengthen locals
26160         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
26161         rtx_insn *.
26162
26163 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26164
26165         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
26166         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
26167         (subst_insn): Likewise for this variable.
26168         (added_links_insn): Likewise.
26169         (struct insn_link): Likewise for field "insn".
26170         (alloc_insn_link): Likewise for param "insn".
26171         (struct undobuf): Likewise for field "other_insn".
26172         (find_single_use): Likewise for param "insn" and local "next".
26173         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
26174         (delete_noop_moves): Likewise for locals "insn", "next".
26175         (create_log_links): Likewise for locals "insn", "use_insn".
26176         Strengthen local "next_use" from rtx * to rtx_insn **.
26177         (insn_a_feeds_b): Likewise for params "a", "b".
26178         (combine_instructions): Likewise for param "f" and locals "insn",
26179         "next", "prev", "first", "last_combined_insn", "link", "link1",
26180         "temp".  Replace use of NULL_RTX with NULL when referring to
26181         insns.
26182         (setup_incoming_promotions): Likewise for param "first"
26183         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
26184         (can_combine_p): Likewise for params "insn", "i3", "pred",
26185         "pred2", "succ", "succ2" and for local "p".
26186         (combinable_i3pat): Likewise for param "i3".
26187         (cant_combine_insn_p): Likewise for param "insn".
26188         (likely_spilled_retval_p): Likewise.
26189         (adjust_for_new_dest): Likewise.
26190         (update_cfg_for_uncondjump): Likewise, also for local "insn".
26191         (try_combine): Likewise for return type and for params "i3", "i2",
26192         "i1", "i0", "last_combined_insn", and for locals "insn",
26193         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
26194         "i0_insn".  Eliminate local "tem" in favor of new locals
26195         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
26196         checked cast for now to rtx_insn * on the return type of
26197         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
26198         insns.
26199         (find_split_point): Strengthen param "insn" from rtx to
26200         rtx_insn *.
26201         (simplify_set): Likewise for local "other_insn".
26202         (recog_for_combine): Likewise for param "insn".
26203         (record_value_for_reg): Likewise.
26204         (record_dead_and_set_regs_1): Likewise for local
26205         "record_dead_insn".
26206         (record_dead_and_set_regs): Likewise for param "insn".
26207         (record_promoted_value): Likewise.
26208         (check_promoted_subreg): Likewise.
26209         (get_last_value_validate): Likewise.
26210         (reg_dead_at_p): Likewise.
26211         (move_deaths): Likewise for param "to_insn".
26212         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
26213         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
26214         in favor of new locals "tem_note" and "tem_insn", the latter being
26215         an rtx_insn *.
26216         (distribute_links): Strengthen locals "place", "insn" from rtx to
26217         rtx_insn *.
26218
26219 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26220
26221         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
26222         than a const_rtx.
26223         (can_delete_label_p): Require a const rtx_code_label * rather than
26224         a const_rtx.
26225         (delete_insn): Add checked cast to rtx_code_label * when we know
26226         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
26227         rtx to rtx_insn *.
26228         (delete_insn_chain): Strengthen locals "prev" and "current" from
26229         rtx to rtx_insn *.  Add a checked cast when assigning from
26230         "finish" (strengthening the params will come later).  Add a
26231         checked cast to rtx_note * in region where we know
26232         NOTE_P (current).
26233         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
26234         rtx_insn *.
26235         (compute_bb_for_insn): Likewise.
26236         (free_bb_for_insn): Likewise for local "insn".
26237         (compute_bb_for_insn): Likewise.
26238         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
26239         local "insn" from rtx to rtx_insn *
26240         (flow_active_insn_p): Require a const rtx_insn * rather than a
26241         const_rtx.
26242         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
26243         rtx_insn *.
26244         (can_fallthru): Likewise for locals "insn" and "insn2".
26245         (bb_note): Likewise for local "note".
26246         (first_insn_after_basic_block_note): Likewise for local "note" and
26247         for return type.
26248         (rtl_split_block): Likewise for locals "insn" and "next".
26249         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
26250         "end".
26251         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
26252         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
26253         "prev", "tmp".
26254         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
26255         them), "kill_from", "barrier", "new_insn".
26256         (patch_jump_insn): Likewise for params "insn", "old_label".
26257         (redirect_branch_edge): Likewise for locals "old_label", "insn".
26258         (force_nonfallthru_and_redirect): Likewise for locals "insn",
26259         "old_label", "new_label".
26260         (rtl_tidy_fallthru_edge): Likewise for local "q".
26261         (rtl_split_edge): Likewise for locals "before", "last".
26262         (commit_one_edge_insertion): Likewise for locals "before",
26263         "after", "insns", "tmp", "last", adding a checked cast where
26264         currently necessary.
26265         (commit_edge_insertions): Likewise.
26266         (rtl_dump_bb): Likewise for locals "insn", "last".
26267         (print_rtl_with_bb): Likewise for local "x".
26268         (rtl_verify_bb_insns): Likewise for local "x".
26269         (rtl_verify_bb_pointers): Likewise for local "insn".
26270         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
26271         "head", "end".
26272         (rtl_verify_fallthru): Likewise for local "insn".
26273         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
26274         (purge_dead_edges): Likewise for local "insn".
26275         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
26276         (skip_insns_after_block): Likewise for return type and for locals
26277         "insn", "last_insn", "next_head", "prev".
26278         (record_effective_endpoints): Likewise for locals "next_insn",
26279         "insn", "end".
26280         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
26281         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
26282         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
26283         (duplicate_insn_chain): For now, add checked cast from rtx to
26284         rtx_insn * when returning insn.
26285         (cfg_layout_duplicate_bb): Likewise for local "insn".
26286         (cfg_layout_delete_block): Likewise for locals "insn", "next",
26287         "prev", "remaints".
26288         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
26289         (rtl_block_empty_p): Likewise.
26290         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
26291         "split_point", "last".
26292         (rtl_block_ends_with_call_p): Likewise for local "insn".
26293         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
26294         const rtx_insn *.
26295         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
26296         "split_at_insn" from rtx to rtx_insn *.
26297         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
26298         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
26299         to const rtx_insn *.
26300         (rtl_account_profile_record): Likewise.
26301
26302 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26303
26304         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
26305         rtx to rtx_insn *.
26306         (average_num_loop_insns): Likewise.
26307         (init_set_costs): Likewise for local "seq".
26308         (seq_cost): Likewise for param "seq", from const_rtx to const
26309         rtx_insn *.
26310
26311 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26312
26313         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
26314         rtx to rtx_insn *.
26315
26316 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26317
26318         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
26319         "f1" and "f2" from rtx * to rtx_insn **.
26320         (flow_find_head_matching_sequence): Likewise.
26321
26322         * cfgcleanup.c (try_simplify_condjump): Strengthen local
26323         "cbranch_insn" from rtx to rtx_insn *.
26324         (thread_jump): Likewise for local "insn".
26325         (try_forward_edges): Likewise for local "last".
26326         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26327         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26328         "real_b_end".
26329         (can_replace_by): Likewise for params "i1", "i2".
26330         (old_insns_match_p): Likewise.
26331         (merge_notes): Likewise.
26332         (walk_to_nondebug_insn): Likewise for param "i1".
26333         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26334         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
26335         "afterlast1", "afterlast2" from rtx to rtx_insn *.
26336         (flow_find_head_matching_sequence): Strengthen params "f1" and
26337         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
26338         "last1", "last2", "beforelast1", "beforelast2" from rtx to
26339         rtx_insn *.
26340         (outgoing_edges_match): Likewise for locals "last1", "last2".
26341         (try_crossjump_to_edge): Likewise for local "insn".
26342         Replace call to for_each_rtx with for_each_rtx_in_insn.
26343
26344         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26345         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26346         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
26347         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26348         (try_optimize_cfg): Strengthen local "last" from rtx to
26349         rtx_insn *.
26350         (delete_dead_jumptables): Likewise for locals "insn", "next",
26351         "label".
26352
26353         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26354         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26355         "rtx else_first_tail", to reflect the basic-block.h changes above.
26356
26357 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26358
26359         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26360         rtx_insn *.
26361         (purge_dead_tablejump_edges): Likewise.
26362         (find_bb_boundaries): Likewise for locals "insn", "end",
26363         "flow_transfer_insn".
26364
26365 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26366
26367         * caller-save.c (save_call_clobbered_regs): Strengthen locals
26368         "ins" and "prev" from rtx to rtx_insn *.
26369
26370 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26371
26372         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26373         rtx_insn *.
26374         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
26375         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
26376         "scan_start".
26377         (load_register_parameters): Likewise for local "before_arg".
26378         (check_sibcall_argument_overlap): Likewise for param "insn".
26379         (expand_call): Likewise for locals "normal_call_insns",
26380         "tail_call_insns", "insns", "before_call", "after_args",
26381         "before_arg", "last", "prev".  Strengthen one of the "last" from
26382         rtx to rtx_call_insn *.
26383         (fixup_tail_calls): Strengthen local "insn" from rtx to
26384         rtx_insn *.
26385         (emit_library_call_value_1): Likewise for locals "before_call" and
26386         "last".
26387
26388 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26389
26390         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
26391         and "last" from rtx to rtx_insn *.
26392         (expand_builtin_nonlocal_goto): Likewise for local "insn".
26393         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
26394         rtx_call_insn *.
26395         (expand_errno_check): Strengthen local "lab" from rtx to
26396         rtx_code_label *.
26397         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
26398         rtx_insn *.
26399         (expand_builtin_mathfn_2): Likewise.
26400         (expand_builtin_mathfn_ternary): Likewise.
26401         (expand_builtin_mathfn_3): Likewise.
26402         (expand_builtin_interclass_mathfn): Likewise for local "last".
26403         (expand_builtin_int_roundingfn): Likewise for local "insns".
26404         (expand_builtin_int_roundingfn_2): Likewise.
26405         (expand_builtin_strlen): Likewise for local "before_strlen".
26406         (expand_builtin_strncmp): Likewise for local "seq".
26407         (expand_builtin_signbit): Likewise for local "last".
26408         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
26409         from rtx to rtx_code_label *.
26410         (expand_stack_restore):  Strengthen local "prev" from rtx to
26411         rtx_insn *.
26412
26413 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26414
26415         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
26416         to rtx_insn *.
26417         (struct btr_def_s): Likewise.
26418         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
26419         const rtx_insn *.
26420         (add_btr_def): Likewise.
26421         (new_btr_user): Likewise.
26422         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
26423         rtx to rtx_insn *.
26424         (link_btr_uses): Likewise.
26425         (move_btr_def): Likewise for locals "insp", "old_insn",
26426         "new_insn".  Add checked cast to rtx_insn * for now on result of
26427         gen_move_insn.
26428         (can_move_up): Strengthen param "insn" from const_rtx to
26429         const rtx_insn *.
26430
26431 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26432
26433         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
26434         rtx_insn *.
26435         (get_uncond_jump_length): Likewise for locals "label", "jump".
26436         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
26437         "jump", "insn".
26438         (add_labels_and_missing_jumps): Likewise for local "new_jump".
26439         (fix_up_fall_thru_edges): Likewise for local "old_jump".
26440         (find_jump_block): Likewise for local "insn".
26441         (fix_crossing_conditional_branches): Likewise for locals
26442         "old_jump", "new_jump".
26443         (fix_crossing_unconditional_branches): Likewise for locals
26444         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
26445         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
26446
26447 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26448
26449         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
26450         rtx to rtx_insn *.
26451         (struct mem_insn): Likewise for field "insn".
26452         (reg_next_use): Strengthen from rtx * to rtx_insn **.
26453         (reg_next_inc_use): Likewise.
26454         (reg_next_def): Likewise.
26455         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
26456         from rtx to rtx_insn *.
26457         (move_insn_before): Likewise for param "next_insn" and local "insns".
26458         (attempt_change): Likewise for local "mov_insn".
26459         (try_merge): Likewise for param "last_insn".
26460         (get_next_ref): Likewise for return type and local "insn".
26461         Strengthen param "next_array" from rtx * to rtx_insn **.
26462         (parse_add_or_inc): Strengthen param "insn" from rtx to
26463         rtx_insn *.
26464         (find_inc): Likewise for locals "insn" and "other_insn" (three of
26465         the latter).
26466         (merge_in_block): Likewise for locals "insn", "curr",
26467         "other_insn".
26468         (pass_inc_dec::execute): Update allocations of the arrays to
26469         reflect the stronger types.
26470
26471 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26472
26473         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
26474         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
26475         from rtx to rtx_code_label *.
26476
26477 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26478
26479         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
26480         to rtx_insn *.
26481
26482 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26483
26484         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
26485         generated a warning and prevented bootstrapping the compiler.
26486
26487 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26488
26489         * rtl.h (delete_related_insns): Strengthen return type from rtx to
26490         rtx_insn *.
26491
26492         * jump.c (delete_related_insns): Likewise, also for locals "next"
26493         and "prev".
26494
26495 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26496
26497         * genautomata.c (output_internal_insn_latency_func): When writing
26498         the function "internal_insn_latency" to insn-automata.c,
26499         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
26500         allowing the optional guard function of (define_bypass) clauses to
26501         expect a pair of rtx_insn *, rather than a pair of rtx.
26502         (output_insn_latency_func): When writing the function
26503         "insn_latency", add an "uncast_" prefix to params "insn" and
26504         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
26505         using checked casts from the params, thus enabling the above
26506         change to the generated "internal_insn_latency" function.
26507
26508 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
26509
26510         PR tree-optimization/62091
26511         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
26512         handle correctly arrays.
26513         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
26514         inheritance binfos.
26515         (record_known_type): Walk into inner type.
26516         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
26517         condition on no type changes.
26518
26519 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26520
26521         * genattrtab.c (write_attr_get): Within the generated get_attr_
26522         functions, rename param "insn" to "uncast_insn" and reintroduce
26523         "insn" as an local rtx_insn * using a checked cast, so that "insn"
26524         is an rtx_insn * within insn-attrtab.c
26525
26526 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26527
26528         * output.h (peephole): Strengthen return type from rtx to
26529         rtx_insn *.
26530         * rtl.h (delete_for_peephole): Likewise for both params.
26531         * genpeep.c (main): In generated "peephole" function, strengthen
26532         return type and local "insn" from rtx to rtx_insn *.  For now,
26533         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
26534         rtx_insn *, with a checked cast.
26535         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
26536         locals "insn", "next", "prev" from rtx to rtx_insn *.
26537
26538 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
26539
26540         PR tree-optimization/62112
26541         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
26542         * gimple-iterator.h (gsi_replace): Return bool.
26543         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
26544         moved from ref_may_alias_global_p.
26545         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
26546         New overloads.
26547         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
26548         (stmt_kills_ref_p_1): Rename...
26549         (stmt_kills_ref_p): ... to this.
26550         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
26551         stmt_kills_ref_p): Declare.
26552         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
26553         Move the self-assignment case...
26554         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
26555
26556 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26557
26558         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
26559
26560         * emit-rtl.c (try_split): Likewise, also for locals "before" and
26561         "after".  For now, don't strengthen param "trial", which requires
26562         adding checked casts when returning it.
26563
26564 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26565
26566         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
26567         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
26568         "var_location" hook from rtx to rtx_insn *.
26569         (debug_nothing_rtx): Delete in favor of...
26570         (debug_nothing_rtx_code_label): New prototype.
26571         (debug_nothing_rtx_rtx): Delete unused prototype.
26572         (debug_nothing_rtx_insn): New prototype.
26573
26574         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
26575         invoking debug_hooks->var_location (in two places, one in a NOTE
26576         case of a switch statement, the other guarded by a CALL_P
26577         conditional.  Add checked cast to rtx_code_label * when invoking
26578         debug_hooks->label (within CODE_LABEL case of switch statement).
26579
26580         * dbxout.c (dbx_debug_hooks): Update "label" hook from
26581         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26582         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
26583         (xcoff_debug_hooks): Likewise.
26584         * debug.c (do_nothing_debug_hooks): Likewise.
26585         (debug_nothing_rtx): Delete in favor of...
26586         (debug_nothing_rtx_insn): New function.
26587         (debug_nothing_rtx_rtx): Delete unused function.
26588         (debug_nothing_rtx_code_label): New function.
26589         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
26590         debug_nothing_rtx to debug_nothing_rtx_code_label.
26591         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
26592         to rtx_insn *.
26593         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
26594         debug_nothing_rtx to debug_nothing_rtx_insn.
26595         (sdbout_label): Strengthen param "insn" from rtx to
26596         rtx_code_label *.
26597         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
26598         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26599         "var_location" hook from debug_nothing_rtx to
26600         debug_nothing_rtx_insn.
26601
26602 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26603
26604         * recog.h (insn_output_fn): Update this function typedef to match
26605         the changes below to the generated output functions, strengthening
26606         the 2nd param from rtx to rtx_insn *.
26607
26608         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
26609         insn when invoking an output function, to match the new signature
26610         of insn_output_fn with a stronger second param.
26611
26612         * genconditions.c (write_header): In the generated code for
26613         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
26614         to match the other changes in this patch.
26615
26616         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
26617         the generated "gen_" functions from rtx to rtx_insn * within their
26618         implementations.
26619
26620         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
26621         the subfunctions within the generated "recog_", "split", "peephole2"
26622         function trees from rtx to rtx_insn *.  For now, the top-level
26623         generated functions ("recog", "split", "peephole2") continue to
26624         take a plain rtx for "insn", to avoid introducing dependencies on
26625         other patches.  Rename this 2nd param from "insn" to
26626         "uncast_insn", and reintroduce "insn" as a local variable of type
26627         rtx_insn *, initialized at the top of the generated function with
26628         a checked cast on "uncast_insn".
26629         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
26630         the generated "gen_" functions from rtx to rtx_insn * within their
26631         prototypes.
26632
26633         * genoutput.c (process_template): Strengthen the 2nd param within
26634         the generated "output_" functions "insn" from rtx to rtx_insn *.
26635
26636 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26637
26638         * tree-profile.c (tree_profiling): Skip external functions
26639         when doing coverage instrumentation.
26640         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
26641
26642 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26643
26644         * config/rs6000/altivec.h (vec_cpsgn): New #define.
26645         (vec_mergee): Likewise.
26646         (vec_mergeo): Likewise.
26647         (vec_cntlz): Likewise.
26648         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
26649         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
26650         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
26651         VMRGEW, and VMRGOW.
26652         * doc/extend.texi: Document various forms of vec_cpsgn,
26653         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
26654         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
26655         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
26656         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
26657         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
26658
26659 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26660
26661         * config/rs6000/rs6000.c (context.h): New include.
26662         (tree-pass.h): Likewise.
26663         (make_pass_analyze_swaps): New decl.
26664         (rs6000_option_override): Register pass_analyze_swaps.
26665         (swap_web_entry): New subsclass of web_entry_base (df.h).
26666         (special_handling_values): New enum.
26667         (union_defs): New function.
26668         (union_uses): Likewise.
26669         (insn_is_load_p): Likewise.
26670         (insn_is_store_p): Likewise.
26671         (insn_is_swap_p): Likewise.
26672         (rtx_is_swappable_p): Likewise.
26673         (insn_is_swappable_p): Likewise.
26674         (chain_purpose): New enum.
26675         (chain_contains_only_swaps): New function.
26676         (mark_swaps_for_removal): Likewise.
26677         (swap_const_vector_halves): Likewise.
26678         (adjust_subreg_index): Likewise.
26679         (permute_load): Likewise.
26680         (permute_store): Likewise.
26681         (handle_special_swappables): Likewise.
26682         (replace_swap_with_copy): Likewise.
26683         (dump_swap_insn_table): Likewise.
26684         (rs6000_analyze_swaps): Likewise.
26685         (pass_data_analyze_swaps): New pass_data.
26686         (pass_analyze_swaps): New rtl_opt_pass.
26687         (make_pass_analyze_swaps): New function.
26688         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
26689
26690 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26691
26692         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
26693         type from rtx to rtx_insn *.
26694         (create_copy_of_insn_rtx): Likewise.
26695         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
26696         (create_copy_of_insn_rtx): Likewise, also for local "res".
26697
26698 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26699
26700         * rtl.h (find_first_parameter_load): Strengthen return type from
26701         rtx to rtx_insn *.
26702         * rtlanal.c (find_first_parameter_load): Strengthen return type
26703         from rtx to rtx_insn *.  Add checked cast for now, to postpone
26704         strengthening the params.
26705
26706 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26707
26708         PR fortran/44054
26709         * diagnostic.c: Set default caret.
26710         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
26711         line is needed.
26712         * diagnostic.h (struct diagnostic_context):
26713
26714 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26715
26716         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
26717         (sel_bb_head): Strengthen return type insn_t (currently just an
26718         rtx) to rtx_insn *.
26719         (sel_bb_end): Likewise.
26720
26721         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
26722         (sel_bb_head): Strengthen return type and local "head" from
26723         insn_t (currently just an rtx) to rtx_insn *.
26724         (sel_bb_end): Likewise for return type.
26725         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
26726         working with insn.
26727
26728 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26729
26730         * basic-block.h (get_last_bb_insn): Strengthen return type from
26731         rtx to rtx_insn *.
26732         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
26733         end".
26734
26735 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26736
26737         PR fortran/44054
26738         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
26739         to here ...
26740         (diagnostic_report_diagnostic): ... from here.
26741         * toplev.c (general_init): Move code to c-family.
26742
26743 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26744
26745         * df.h (web_entry_base): Replace existing struct web_entry with a
26746         new class web_entry_base with only the predecessor member.
26747         (unionfind_root): Remove declaration and move to class member.
26748         (unionfind_union): Remove declaration and move to friend
26749         function.
26750         (union_defs): Remove declaration.
26751         * web.c (web_entry_base::unionfind_root): Modify to be member
26752         function and adjust accessors.
26753         (unionfind_union): Modify to be friend function and adjust
26754         accessors.
26755         (web_entry): New subclass of web_entry_base containing the reg
26756         member.
26757         (union_match_dups): Modify for struct -> class changes.
26758         (union_defs): Likewise.
26759         (entry_register): Likewise.
26760         (pass_web::execute): Likewise.
26761
26762 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
26763
26764         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
26765         builtin define __VEC_ELEMENT_REG_ORDER__.
26766
26767 2014-08-20  Martin Jambor  <mjambor@suse.cz>
26768             Wei Mi  <wmi@google.com>
26769
26770         PR ipa/60449
26771         PR middle-end/61776
26772         * tree-ssa-operands.c (update_stmt_operands): Remove
26773         MODIFIED_NORETURN_CALLS.
26774         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
26775         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
26776         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
26777         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
26778         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
26779         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
26780         (gimple_call_set_ctrl_altering): New func.
26781         (gimple_call_ctrl_altering_p): Ditto.
26782         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
26783         (make_blocks): Use gimple_call_initialize_ctrl_altering.
26784         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
26785         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
26786         remove MODIFIED_NORETURN_CALLS.
26787
26788 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26789
26790         * coverage.c (coverage_compute_profile_id): Return non-0;
26791         also handle symbols with unique name.
26792         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
26793
26794 2014-08-20  Steve Ellcey  <sellcey@mips.com>
26795
26796         PR middle-end/49191
26797         * doc/sourcebuild.texi (non_strict_align): New.
26798
26799 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26800
26801         * cgraphunit.c (ipa_passes, compile): Reshedule
26802         symtab_remove_unreachable_nodes passes; update comments.
26803         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
26804         TODO_remove_functions before the pass; the functions ought to be
26805         already removed.
26806         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
26807         TODO_remove_functions.
26808         * passes.c (pass_data_early_local_passes): Do not schedule function
26809         removal.
26810         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
26811
26812 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26813
26814         PR c/59304
26815         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
26816         before setting the option.
26817         * diagnostic.c (diagnostic_classify_diagnostic): Record
26818         command-line status.
26819
26820 2014-08-20  Richard Biener  <rguenther@suse.de>
26821
26822         PR lto/62190
26823         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
26824         to build uint{16,32,64}_type_node.
26825
26826 2014-08-20  Terry Guo  <terry.guo@arm.com>
26827
26828         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
26829         with immediate_operand.
26830
26831 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
26832
26833         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
26834         "insn" from an as_a to a safe_as_a, for the case when "insn" is
26835         NULL.
26836
26837 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26838
26839         PR preprocessor/51303
26840         * incpath.c (remove_duplicates): Use cpp_warning.
26841
26842 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26843
26844         PR c/60975
26845         PR c/53063
26846         * doc/options.texi (CPP): Document it.
26847         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
26848         * optc-gen.awk: Handle CPP.
26849         * opth-gen.awk: Likewise.
26850
26851 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26852
26853         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
26854         rtx_insn *.
26855         (duplicate_insn_chain): Likewise.
26856         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
26857         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
26858         checked cast for now (until we can strengthen the params in the
26859         same way).
26860         (duplicate_insn_chain): Likewise.
26861
26862 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26863
26864         * rtl.h (next_cc0_user): Strengthen return type from rtx to
26865         rtx_insn *.
26866         (prev_cc0_setter): Likewise.
26867
26868         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
26869         rtx_insn *, adding checked casts for now as necessary.
26870         (prev_cc0_setter): Likewise.
26871
26872 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26873
26874         * expr.h (emit_move_insn): Strengthen return type from rtx to
26875         rtx_insn *.
26876         (emit_move_insn_1): Likewise.
26877         (emit_move_complex_push): Likewise.
26878         (emit_move_complex_parts): Likewise.
26879
26880         * expr.c (emit_move_via_integer): Strengthen return type from rtx
26881         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
26882         with insns.
26883         (emit_move_complex_push): Strengthen return type from rtx to
26884         rtx_insn *.
26885         (emit_move_complex): Likewise, also for local "ret".
26886         (emit_move_ccmode): Likewise.
26887         (emit_move_multi_word): Likewise for return type and locals
26888         "last_insn", "seq".
26889         (emit_move_insn_1): Likewise for return type and locals "result",
26890         "ret".
26891         (emit_move_insn): Likewise for return type and local "last_insn".
26892         (compress_float_constant): Likewise.
26893
26894 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26895
26896         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
26897         from rtx to rtx_insn *.
26898
26899         * rtl.h (emit_insn_before): Likewise.
26900         (emit_insn_before_noloc): Likewise.
26901         (emit_insn_before_setloc): Likewise.
26902         (emit_jump_insn_before): Likewise.
26903         (emit_jump_insn_before_noloc): Likewise.
26904         (emit_jump_insn_before_setloc): Likewise.
26905         (emit_call_insn_before): Likewise.
26906         (emit_call_insn_before_noloc): Likewise.
26907         (emit_call_insn_before_setloc): Likewise.
26908         (emit_debug_insn_before): Likewise.
26909         (emit_debug_insn_before_noloc): Likewise.
26910         (emit_debug_insn_before_setloc): Likewise.
26911         (emit_label_before): Likewise.
26912         (emit_insn_after): Likewise.
26913         (emit_insn_after_noloc): Likewise.
26914         (emit_insn_after_setloc): Likewise.
26915         (emit_jump_insn_after): Likewise.
26916         (emit_jump_insn_after_noloc): Likewise.
26917         (emit_jump_insn_after_setloc): Likewise.
26918         (emit_call_insn_after): Likewise.
26919         (emit_call_insn_after_noloc): Likewise.
26920         (emit_call_insn_after_setloc): Likewise.
26921         (emit_debug_insn_after): Likewise.
26922         (emit_debug_insn_after_noloc): Likewise.
26923         (emit_debug_insn_after_setloc): Likewise.
26924         (emit_label_after): Likewise.
26925         (emit_insn): Likewise.
26926         (emit_debug_insn): Likewise.
26927         (emit_jump_insn): Likewise.
26928         (emit_call_insn): Likewise.
26929         (emit_label): Likewise.
26930         (gen_clobber): Likewise.
26931         (emit_clobber): Likewise.
26932         (gen_use): Likewise.
26933         (emit_use): Likewise.
26934         (emit): Likewise.
26935
26936         (emit_barrier_before): Strengthen return type from rtx to
26937         rtx_barrier *.
26938         (emit_barrier_after): Likewise.
26939         (emit_barrier): Likewise.
26940
26941         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
26942         from rtx to rtx_insn *.  Add checked casts for now when converting
26943         "last" from rtx to rtx_insn *.
26944         (emit_insn_before_noloc): Likewise for return type.
26945         (emit_jump_insn_before_noloc): Likewise.
26946         (emit_call_insn_before_noloc): Likewise.
26947         (emit_debug_insn_before_noloc): Likewise.
26948         (emit_barrier_before): Strengthen return type and local "insn"
26949         from rtx to rtx_barrier *.
26950         (emit_label_before): Strengthen return type from rtx to
26951         rtx_insn *.  Add checked cast for now when returning param
26952         (emit_pattern_after_noloc): Strengthen return type from rtx to
26953         rtx_insn *.  Add checked casts for now when converting "last" from
26954         rtx to rtx_insn *.
26955         (emit_insn_after_noloc): Strengthen return type from rtx to
26956         rtx_insn *.
26957         (emit_jump_insn_after_noloc): Likewise.
26958         (emit_call_insn_after_noloc): Likewise.
26959         (emit_debug_insn_after_noloc): Likewise.
26960         (emit_barrier_after): Strengthen return type from rtx to
26961         rtx_barrier *.
26962         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
26963         Add checked cast for now when converting "label" from rtx to
26964         rtx_insn *.
26965         (emit_pattern_after_setloc): Strengthen return type from rtx to
26966         rtx_insn *.  Add checked casts for now when converting "last" from
26967         rtx to rtx_insn *.
26968         (emit_pattern_after): Strengthen return type from rtx to
26969         rtx_insn *.
26970         (emit_insn_after_setloc): Likewise.
26971         (emit_insn_after): Likewise.
26972         (emit_jump_insn_after_setloc): Likewise.
26973         (emit_jump_insn_after): Likewise.
26974         (emit_call_insn_after_setloc): Likewise.
26975         (emit_call_insn_after): Likewise.
26976         (emit_debug_insn_after_setloc): Likewise.
26977         (emit_debug_insn_after): Likewise.
26978         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
26979         when converting "last" from rtx to rtx_insn *.
26980         (emit_pattern_before): Strengthen return type from rtx to
26981         rtx_insn *.
26982         (emit_insn_before_setloc): Likewise.
26983         (emit_insn_before): Likewise.
26984         (emit_jump_insn_before_setloc): Likewise.
26985         (emit_jump_insn_before): Likewise.
26986         (emit_call_insn_before_setloc): Likewise.
26987         (emit_call_insn_before): Likewise.
26988         (emit_debug_insn_before_setloc): Likewise.
26989         (emit_debug_insn_before): Likewise.
26990         (emit_insn): Strengthen return type and locals "last", "insn",
26991         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
26992         within cases where we know we have an insn.
26993         (emit_debug_insn): Likewise.
26994         (emit_jump_insn): Likewise.
26995         (emit_call_insn): Strengthen return type and local "insn" from rtx
26996         to rtx_insn *.
26997         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
26998         a checked cast to rtx_insn * for now on "label".
26999         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
27000         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
27001         (emit_use): Likewise.
27002         (gen_use): Likewise, also for local "seq".
27003         (emit): Likewise for return type and local "insn".
27004         (rtx_insn): Likewise for return type and local "new_rtx".
27005
27006         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
27007         from rtx to rtx_barrier *.
27008
27009         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
27010         changed return type from rtx to rtx_insn *, we must update
27011         "emit_fn" type, and this in turn means updating...
27012         (frame_insn): ...this.  Strengthen return type from rtx to
27013         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
27014
27015 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27016
27017         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
27018         rtx to rtx_jump_table_data *.  Also for local.
27019         * rtl.h (emit_jump_table_data): Likewise.
27020
27021 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27022
27023         * basic-block.h (create_basic_block_structure): Strengthen third
27024         param "bb_note" from rtx to rtx_note *.
27025         * rtl.h (emit_note_before): Strengthen return type from rtx to
27026         rtx_note *.
27027         (emit_note_after): Likewise.
27028         (emit_note): Likewise.
27029         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27030         * function.h (struct rtl_data): Strengthen field
27031         "x_stack_check_probe_note" from rtx to rtx_note *.
27032
27033         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
27034         from rtx to rtx_note *.
27035         * cfgrtl.c (create_basic_block_structure): Strengthen third param
27036         "bb_note" from rtx to rtx_note *.
27037         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
27038         when calling emit_note_copy.
27039         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
27040         rtx_note *.
27041         (emit_note_after): Likewise.
27042         (emit_note_before): Likewise.
27043         (emit_note_copy): Likewise.  Also, strengthen param similarly.
27044         (emit_note): Likewise.
27045         * except.c (emit_note_eh_region_end): Likewise for return type.
27046         Strengthen local "next" from rtx to rtx_insn *.
27047         (convert_to_eh_region_ranges): Strengthen local "note"
27048         from rtx to rtx_note *.
27049         * final.c (change_scope): Likewise.
27050         (reemit_insn_block_notes): Likewise, for both locals named "note".
27051         Also, strengthen local "insn" from rtx to rtx_insn *.
27052         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
27053         rtx to rtx_note *.
27054         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
27055         strengthen local "seq" from rtx to rtx_insn *.
27056         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
27057         to rtx_note *.
27058         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
27059         vec<rtx_note *>.
27060         (get_bb_note_from_pool): Strengthen return type from rtx to
27061         rtx_note *.
27062         (sel_create_basic_block): Strengthen local "new_bb_note" from
27063         insn_t to rtx_note *.
27064         * var-tracking.c (emit_note_insn_var_location): Strengthen local
27065         "note" from rtx to rtx_note *.
27066         (emit_notes_in_bb): Likewise.
27067
27068 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27069
27070         * function.h (struct rtl_data): Strengthen field
27071         "x_parm_birth_insn" from rtx to rtx_insn *.
27072         * function.c (struct assign_parm_data_all): Strengthen fields
27073         "first_conversion_insn" and "last_conversion_insn" from rtx to
27074         rtx_insn *.
27075
27076 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27077
27078         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
27079         to rtx_insn *; also for local "var_end_seq".
27080         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
27081         (maybe_cleanup_end_of_block): Likewise for param "last" and local
27082         "insn".
27083         (expand_gimple_cond): Likewise for locals "last2" and "last".
27084         (mark_transaction_restart_calls): Likewise for local "insn".
27085         (expand_gimple_stmt): Likewise for return type and locals "last"
27086         and "insn".
27087         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
27088         (avoid_complex_debug_insns): Likewise for param "insn".
27089         (expand_debug_locations): Likewise for locals "insn", "last",
27090         "prev_insn" and "insn2".
27091         (expand_gimple_basic_block): Likewise for local "last".
27092         (construct_exit_block): Likewise for locals "head", "end",
27093         "orig_end".
27094         (pass_expand::execute): Likewise for locals "var_seq",
27095         "var_ret_seq", "next".
27096
27097 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27098
27099         * asan.h (asan_emit_stack_protection): Strengthen return type from
27100         rtx to rtx_insn *.
27101         * asan.c (asan_emit_stack_protection): Likewise.  Add local
27102         "insns" to hold the return value.
27103
27104 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27105
27106         * basic-block.h (bb_note): Strengthen return type from rtx to
27107         rtx_note *.
27108         * sched-int.h (bb_note): Likewise.
27109         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
27110
27111 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27112
27113         * rtl.h (make_insn_raw): Strengthen return type from rtx to
27114         rtx_insn *.
27115
27116         * emit-rtl.c (make_insn_raw): Strengthen return type and local
27117         "insn" from rtx to rtx_insn *.
27118         (make_debug_insn_raw): Strengthen return type from rtx to
27119         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
27120         (make_jump_insn_raw):  Strengthen return type from rtx to
27121         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
27122         (make_call_insn_raw):  Strengthen return type from rtx to
27123         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
27124         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
27125         callback from rtx to rtx_insn *; likewise for local "insn" and
27126         "next", adding a checked cast to rtx_insn in the relevant cases of
27127         the switch statement.
27128         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
27129         callback from rtx to rtx_insn *.
27130         (emit_pattern_after_setloc): Likewise.
27131         (emit_pattern_after): Likewise.
27132         (emit_pattern_before_setloc): Likewise.
27133         (emit_pattern_before): Likewise.
27134
27135 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27136
27137         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
27138         rtx_call_insn *.
27139         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
27140         accepting an rtx_insn *.
27141         (last_call_insn): Strengthen return type from rtx to
27142         rtx_call_insn *.
27143
27144 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27145
27146         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
27147         "insns" from rtx to rtx_insn *.
27148         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
27149         locals "insn" and "prev".
27150
27151 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27152
27153         * rtl.h (tablejump_p): Strengthen third param from rtx * to
27154         rtx_jump_table_data **.
27155
27156         * cfgbuild.c (make_edges): Introduce local "table", using it in
27157         place of "tmp" for jump table data.
27158         (find_bb_boundaries): Strengthen local "table" from rtx to
27159         rtx_jump_table_data *.
27160         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27161         (outgoing_edges_match): Likewise for locals "table1" and "table2".
27162         (try_crossjump_to_edge): Likewise.
27163         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
27164         "table".
27165         (patch_jump_insn): Introduce local "table", using it in place of
27166         "tmp" for jump table data.
27167         (force_nonfallthru_and_redirect): Introduce local "table", so that
27168         call to tablejump_p can receive an rtx_jump_table_data **.  Update
27169         logic around the call to overwrite "note" appropriately if
27170         tablejump_p returns non-zero.
27171         (get_last_bb_insn): Introduce local "table", using it in place of
27172         "tmp" for jump table data.
27173         * dwarf2cfi.c (create_trace_edges): Likewise.
27174
27175         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
27176         from rtx to rtx_jump_table_data *.
27177         (create_fix_barrier): Strengthen local "tmp" from rtx to
27178         rtx_jump_table_data *.
27179         (arm_reorg): Likewise for local "table".
27180
27181         * config/s390/s390.c (s390_chunkify_start): Likewise.
27182
27183         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
27184
27185         * jump.c (delete_related_insns): Strengthen local "lab_next" from
27186         rtx to rtx_jump_table_data *.
27187
27188         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
27189         rtx_jump_table_data **.  Add a checked cast when writing through
27190         the pointer: we know there that local "table" is non-NULL and that
27191         JUMP_TABLE_DATA_P (table) holds.
27192         (label_is_jump_target_p): Introduce local "table", using it in
27193         place of "tmp" for jump table data.
27194
27195 2014-08-19  Marek Polacek  <polacek@redhat.com>
27196
27197         PR c++/62153
27198         * doc/invoke.texi: Document -Wbool-compare.
27199
27200 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27201
27202         * rtl.h (entry_of_function): Strengthen return type from rtx to
27203         rtx_insn *.
27204         * cfgrtl.c (entry_of_function): Likewise.
27205
27206 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27207
27208         * emit-rtl.h (get_insns): Strengthen return type from rtx to
27209         rtx_insn *, adding a checked cast for now.
27210         (get_last_insn): Likewise.
27211
27212 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27213
27214         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
27215         rtx_code_label *.
27216
27217         * emit-rtl.c (gen_label_rtx): Likewise.
27218
27219 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27220
27221         * rtl.h (previous_insn): Strengthen return type from rtx to
27222         rtx_insn *.
27223         (next_insn): Likewise.
27224         (prev_nonnote_insn): Likewise.
27225         (prev_nonnote_insn_bb): Likewise.
27226         (next_nonnote_insn): Likewise.
27227         (next_nonnote_insn_bb): Likewise.
27228         (prev_nondebug_insn): Likewise.
27229         (next_nondebug_insn): Likewise.
27230         (prev_nonnote_nondebug_insn): Likewise.
27231         (next_nonnote_nondebug_insn): Likewise.
27232         (prev_real_insn): Likewise.
27233         (next_real_insn): Likewise.
27234         (prev_active_insn): Likewise.
27235         (next_active_insn): Likewise.
27236
27237         * emit-rtl.c (next_insn): Strengthen return type from rtx to
27238         rtx_insn *, adding a checked cast.
27239         (previous_insn): Likewise.
27240         (next_nonnote_insn): Likewise.
27241         (next_nonnote_insn_bb): Likewise.
27242         (prev_nonnote_insn): Likewise.
27243         (prev_nonnote_insn_bb): Likewise.
27244         (next_nondebug_insn): Likewise.
27245         (prev_nondebug_insn): Likewise.
27246         (next_nonnote_nondebug_insn): Likewise.
27247         (prev_nonnote_nondebug_insn): Likewise.
27248         (next_real_insn): Likewise.
27249         (prev_real_insn): Likewise.
27250         (next_active_insn): Likewise.
27251         (prev_active_insn): Likewise.
27252
27253         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
27254         param "stepfunc" so that it returns an rtx_insn * rather than an
27255         rtx, to track the change to prev_nonnote_insn_bb, which is the
27256         only function this is called with.
27257         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
27258
27259 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
27260
27261         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
27262         assert.
27263
27264 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27265
27266         * coretypes.h (class rtx_debug_insn): Add forward declaration.
27267         (class rtx_nonjump_insn): Likewise.
27268         (class rtx_jump_insn): Likewise.
27269         (class rtx_call_insn): Likewise.
27270         (class rtx_jump_table_data): Likewise.
27271         (class rtx_barrier): Likewise.
27272         (class rtx_code_label): Likewise.
27273         (class rtx_note): Likewise.
27274
27275         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
27276         adding the invariant DEBUG_INSN_P (X).
27277         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
27278         the invariant NONJUMP_INSN_P (X).
27279         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
27280         the invariant JUMP_P (X).
27281         (class rtx_call_insn): New, a subclass of rtx_insn, adding
27282         the invariant CALL_P (X).
27283         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
27284         invariant JUMP_TABLE_DATA_P (X).
27285         (class rtx_barrier): New, a subclass of rtx_insn, adding the
27286         invariant BARRIER_P (X).
27287         (class rtx_code_label): New, a subclass of rtx_insn, adding
27288         the invariant LABEL_P (X).
27289         (class rtx_note): New, a subclass of rtx_insn, adding
27290         the invariant NOTE_P(X).
27291         (is_a_helper <rtx_debug_insn *>::test): New.
27292         (is_a_helper <rtx_nonjump_insn *>::test): New.
27293         (is_a_helper <rtx_jump_insn *>::test): New.
27294         (is_a_helper <rtx_call_insn *>::test): New.
27295         (is_a_helper <rtx_jump_table_data *>::test): New functions,
27296         overloaded for both rtx and rtx_insn *.
27297         (is_a_helper <rtx_barrier *>::test): New.
27298         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
27299         for both rtx and rtx_insn *.
27300         (is_a_helper <rtx_note *>::test): New.
27301
27302 2014-08-19  Marek Polacek  <polacek@redhat.com>
27303
27304         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
27305         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27306         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
27307         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27308
27309 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27310
27311         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
27312         rtx_insn *.  To help with transition, for now, convert from an
27313         access macro into a pair of functions: BND_TO, returning an
27314         rtx_insn *, and...
27315         (SET_BND_TO): New function, for use where BND_TO is used as an
27316         lvalue.
27317
27318         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
27319         SET_BND_TO.
27320         (BND_TO): New function, adding a checked cast.
27321         (SET_BND_TO): New function.
27322
27323         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27324         SET_BND_TO.
27325         (compute_av_set_on_boundaries): Likewise.
27326
27327 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27328
27329         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27330         destination if it is used in source.
27331         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27332         (*popcount<mode>2_falsedep_1): Likewise.
27333
27334 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27335
27336         PR other/62168
27337         * configure.ac: Set install_gold_as_default to no first.
27338         * configure: Regenerated.
27339
27340 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27341
27342         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27343         "note_list" field will eventually be an rtx_insn *.  To help with
27344         transition, for now, convert from an access macro into a pair of
27345         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27346         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27347         used as an lvalue.
27348
27349         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27350         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27351
27352         * sel-sched-ir.c (init_bb): Likewise.
27353         (sel_restore_notes): Likewise.
27354         (move_bb_info): Likewise.
27355         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27356         (SET_BB_NOTE_LIST): New function.
27357
27358 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27359
27360         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27361         field will eventually be an rtx_insn *.  To help with transition,
27362         for now, convert from an access macro into a pair of functions:
27363         VINSN_INSN_RTX, returning an rtx_insn *, and...
27364         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27365         is used as an lvalue.
27366
27367         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27368         SET_VINSN_INSN_RTX where it's used as an lvalue.
27369         (VINSN_INSN_RTX): New function.
27370         (SET_VINSN_INSN_RTX): New function.
27371
27372 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27373
27374         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
27375         eventually be rtx_insn *, but to help with transition, for now,
27376         convert from an access macro into a pair of functions: DEP_PRO
27377         returning an rtx_insn * and...
27378         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
27379         lvalue, returning an rtx&.
27380         (DEP_CON): Analogous changes to DEP_PRO above.
27381         (SET_DEP_CON): Likewise.
27382
27383         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
27384         an lvalue to SET_DEP_CON.
27385         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
27386         (sd_copy_back_deps): Likewise for DEP_CON.
27387         (DEP_PRO): New function, adding a checked cast for now.
27388         (DEP_CON): Likewise.
27389         (SET_DEP_PRO): New function.
27390         (SET_DEP_CON): Likewise.
27391
27392 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27393
27394         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
27395         (extra_options): Add i386/cygwin.opt.
27396         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
27397         (CPP_SPEC): Accept -pthread.
27398         (LINK_SPEC): Ditto.
27399         (GOMP_SELF_SPECS): Update comment.
27400         * config/i386/cygwin.opt: New file for -pthread flag.
27401
27402 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27403
27404         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
27405         * df.h (DF_REF_INSN): Convert from a macro to a function, so
27406         that we can return an rtx_insn *.
27407
27408 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27409
27410         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
27411         when building executables, not DLLs.  Add --large-address-aware
27412         under the same conditions.
27413         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
27414         when building executables, not DLLs.  Add --large-address-aware
27415         under the same conditions when using -m32.
27416
27417         * config/i386/cygwin-stdint.h: Throughout, make type
27418         definitions dependent on target architecture, not host.
27419
27420 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27421
27422         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
27423         the return type from rtx to rtx_insn *,  which will enable various
27424         conversions in followup patches.  For now this is is done by a
27425         checked cast.
27426         (NEXT_INSN): Likewise.
27427         (SET_PREV_INSN): Convert to an inline function.  This is intended
27428         for use as an lvalue, and so returns an rtx& to allow in-place
27429         modification.
27430         (SET_NEXT_INSN): Likewise.
27431
27432 2014-07-08  Mark Wielaard  <mjw@redhat.com>
27433
27434         PR debug/59051
27435         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
27436
27437 2014-08-19  Marek Polacek  <polacek@redhat.com>
27438
27439         PR c/61271
27440         * cgraphunit.c (handle_alias_pairs): Fix condition.
27441
27442 2014-08-19  Richard Biener  <rguenther@suse.de>
27443
27444         * gimple-fold.c (fold_gimple_assign): Properly build a
27445         null-pointer constant when devirtualizing addresses.
27446
27447 2014-07-07  Mark Wielaard  <mjw@redhat.com>
27448
27449         * dwarf2out.c (decl_quals): New function.
27450         (modified_type_die): Take one cv_quals argument instead of two,
27451         one for const and one for volatile.
27452         (add_type_attribute): Likewise.
27453         (generic_parameter_die): Call add_type_attribute with one modifier
27454         argument.
27455         (base_type_for_mode): Likewise.
27456         (add_bounds_info): Likewise.
27457         (add_subscript_info): Likewise.
27458         (gen_array_type_die): Likewise.
27459         (gen_descr_array_type_die): Likewise.
27460         (gen_entry_point_die): Likewise.
27461         (gen_enumeration_type_die): Likewise.
27462         (gen_formal_parameter_die): Likewise.
27463         (gen_subprogram_die): Likewise.
27464         (gen_variable_die): Likewise.
27465         (gen_const_die): Likewise.
27466         (gen_field_die): Likewise.
27467         (gen_pointer_type_die): Likewise.
27468         (gen_reference_type_die): Likewise.
27469         (gen_ptr_to_mbr_type_die): Likewise.
27470         (gen_inheritance_die): Likewise.
27471         (gen_subroutine_type_die): Likewise.
27472         (gen_typedef_die): Likewise.
27473         (force_type_die): Likewise.
27474
27475 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27476
27477         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
27478         if unset.
27479         * configure: Regenerate.
27480
27481 2014-08-19  Richard Biener  <rguenther@suse.de>
27482
27483         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
27484         DECL_EXTERNALs in BLOCKs as non-references.
27485         * tree-streamer-out.c (streamer_write_chain): Likewise.
27486
27487 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27488             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27489             Anna Tikhonova  <anna.tikhonova@intel.com>
27490             Ilya Tocar  <ilya.tocar@intel.com>
27491             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27492             Ilya Verbin  <ilya.verbin@intel.com>
27493             Kirill Yukhin  <kirill.yukhin@intel.com>
27494             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27495
27496         * config/i386/sse.md
27497         (define_mode_iterator VI48_AVX512F): Delete.
27498         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
27499         (define_mode_iterator VI2_AVX512VL): Ditto.
27500         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
27501         Delete.
27502         (define_insn
27503         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
27504         New.
27505         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
27506         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
27507         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27508         with VI48_AVX512F_AVX512VL): New.
27509         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27510         with VI2_AVX512VL): Ditto.
27511
27512 2014-08-19  Marek Polacek  <polacek@redhat.com>
27513
27514         * doc/invoke.texi: Document -Wc99-c11-compat.
27515
27516 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27517
27518         * rtl.h (PREV_INSN): Split macro in two: the existing one,
27519         for rvalues, and...
27520         (SET_PREV_INSN): New macro, for use as an lvalue.
27521         (NEXT_INSN, SET_NEXT_INSN): Likewise.
27522
27523         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
27524         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
27525         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
27526         (fixup_abnormal_edges): Likewise.
27527         (unlink_insn_chain): Likewise.
27528         (fixup_reorder_chain): Likewise.
27529         (cfg_layout_delete_block): Likewise.
27530         (cfg_layout_merge_blocks): Likewise.
27531         * combine.c (update_cfg_for_uncondjump): Likewise.
27532         * emit-rtl.c (link_insn_into_chain): Likewise.
27533         (remove_insn): Likewise.
27534         (delete_insns_since): Likewise.
27535         (reorder_insns_nobb): Likewise.
27536         (emit_insn_after_1): Likewise.
27537         * final.c (rest_of_clean_state): Likewise.
27538         (final_scan_insn): Likewise.
27539         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
27540         * haifa-sched.c (concat_note_lists): Likewise.
27541         (remove_notes): Likewise.
27542         (restore_other_notes): Likewise.
27543         (move_insn): Likewise.
27544         (unlink_bb_notes): Likewise.
27545         (restore_bb_notes): Likewise.
27546         * jump.c (delete_for_peephole): Likewise.
27547         * optabs.c (emit_libcall_block_1): Likewise.
27548         * reorg.c (emit_delay_sequence): Likewise.
27549         (fill_simple_delay_slots): Likewise.
27550         * sel-sched-ir.c (sel_move_insn): Likewise.
27551         (sel_remove_insn): Likewise.
27552         (get_bb_note_from_pool): Likewise.
27553         * sel-sched.c (move_nop_to_previous_block): Likewise.
27554
27555         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
27556         * config/c6x/c6x.c (gen_one_bundle): Likewise.
27557         (c6x_gen_bundles): Likewise.
27558         (hwloop_optimize): Likewise.
27559         * config/frv/frv.c (frv_function_prologue): Likewise.
27560         (frv_register_nop): Likewise.
27561         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
27562         (ia64_reorg): Likewise.
27563         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
27564         (mep_make_bundle): Likewise.
27565         (mep_bundle_insns): Likewise.
27566         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
27567         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
27568         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
27569
27570 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27571
27572         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
27573         return type from rtx to rtx_insn *.
27574         (BB_END): Likewise.
27575         (BB_HEADER): Likewise.
27576         (BB_FOOTER): Likewise.
27577         (SET_BB_HEAD): Convert to a function.
27578         (SET_BB_END): Likewise.
27579         (SET_BB_HEADER): Likewise.
27580         (SET_BB_FOOTER): Likewise.
27581
27582         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
27583         Strengthen the return type from rtx to rtx_insn *.  For now, this
27584         is done by adding a checked cast, but this will eventually
27585         become a field lookup.
27586         (BB_END): Likewise.
27587         (BB_HEADER): Likewise.
27588         (BB_FOOTER): Likewise.
27589         (SET_BB_HEAD): New function, from macro of same name.  This is
27590         intended for use as an lvalue, and so returns an rtx& to allow
27591         in-place modification.
27592         (SET_BB_END): Likewise.
27593         (SET_BB_HEADER): Likewise.
27594         (SET_BB_FOOTER): Likewise.
27595
27596 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27597
27598         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
27599         for rvalues, and...
27600         (SET_BB_HEAD): New macro, for use as a lvalue.
27601         (BB_END, SET_BB_END): Likewise.
27602         (BB_HEADER, SET_BB_HEADER): Likewise.
27603         (BB_FOOTER, SET_BB_FOOTER): Likewise.
27604
27605         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
27606         of BB_* macros into SET_BB_* macros.
27607         (fix_crossing_unconditional_branches): Likewise.
27608         * caller-save.c (save_call_clobbered_regs): Likewise.
27609         (insert_one_insn): Likewise.
27610         * cfgbuild.c (find_bb_boundaries): Likewise.
27611         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27612         (outgoing_edges_match): Likewise.
27613         (try_optimize_cfg): Likewise.
27614         * cfgexpand.c (expand_gimple_cond): Likewise.
27615         (expand_gimple_tailcall): Likewise.
27616         (expand_gimple_basic_block): Likewise.
27617         (construct_exit_block): Likewise.
27618         * cfgrtl.c (delete_insn): Likewise.
27619         (create_basic_block_structure): Likewise.
27620         (rtl_delete_block): Likewise.
27621         (rtl_split_block): Likewise.
27622         (emit_nop_for_unique_locus_between): Likewise.
27623         (rtl_merge_blocks): Likewise.
27624         (block_label): Likewise.
27625         (try_redirect_by_replacing_jump): Likewise.
27626         (emit_barrier_after_bb): Likewise.
27627         (fixup_abnormal_edges): Likewise.
27628         (record_effective_endpoints): Likewise.
27629         (relink_block_chain): Likewise.
27630         (fixup_reorder_chain): Likewise.
27631         (fixup_fallthru_exit_predecessor): Likewise.
27632         (cfg_layout_duplicate_bb): Likewise.
27633         (cfg_layout_split_block): Likewise.
27634         (cfg_layout_delete_block): Likewise.
27635         (cfg_layout_merge_blocks): Likewise.
27636         * combine.c (update_cfg_for_uncondjump): Likewise.
27637         * emit-rtl.c (add_insn_after): Likewise.
27638         (remove_insn): Likewise.
27639         (reorder_insns): Likewise.
27640         (emit_insn_after_1): Likewise.
27641         * haifa-sched.c (get_ebb_head_tail): Likewise.
27642         (restore_other_notes): Likewise.
27643         (move_insn): Likewise.
27644         (sched_extend_bb): Likewise.
27645         (fix_jump_move): Likewise.
27646         * ifcvt.c (noce_process_if_block): Likewise.
27647         (dead_or_predicable): Likewise.
27648         * ira.c (update_equiv_regs): Likewise.
27649         * reg-stack.c (change_stack): Likewise.
27650         * sel-sched-ir.c (sel_move_insn): Likewise.
27651         * sel-sched.c (move_nop_to_previous_block): Likewise.
27652
27653         * config/c6x/c6x.c (hwloop_optimize): Likewise.
27654         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
27655
27656 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27657
27658         * rtl.h (for_each_rtx_in_insn): New function.
27659         * rtlanal.c (for_each_rtx_in_insn): Likewise.
27660
27661 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27662
27663         * coretypes.h (class rtx_insn): Add forward declaration.
27664
27665         * rtl.h: Include is-a.h.
27666         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
27667         workaround to ensure gengtype knows inheritance is occurring,
27668         whilst continuing to use the pre-existing special-casing for
27669         rtx_def.
27670         (class rtx_insn): New subclass of rtx_def, adding the
27671         invariant that we're dealing with something we can sanely use
27672         INSN_UID, NEXT_INSN, PREV_INSN on.
27673         (is_a_helper <rtx_insn *>::test): New.
27674         (is_a_helper <const rtx_insn *>::test): New.
27675
27676 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27677
27678         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
27679
27680 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27681
27682         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
27683         comdats as extern.
27684
27685 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27686
27687         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
27688         to BUILT_IN_UNREACHABLE.
27689
27690 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
27691
27692         PR target/62011
27693         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
27694         New tune flag.
27695         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
27696         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
27697         (ffs<mode>2): Do not expand with tzcnt for
27698         TARGET_AVOID_FALSE_DEP_FOR_BMI.
27699         (ffssi2_no_cmove): Ditto.
27700         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
27701         (ctz<mode>2): New expander.
27702         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
27703         (*ctz<mode>2_falsedep): New insn.
27704         (*ctz<mode>2): Rename from ctz<mode>2.
27705         (clz<mode>2_lzcnt): New expander.
27706         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
27707         (*clz<mode>2_lzcnt_falsedep): New insn.
27708         (*clz<mode>2): Rename from ctz<mode>2.
27709         (popcount<mode>2): New expander.
27710         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
27711         (*popcount<mode>2_falsedep): New insn.
27712         (*popcount<mode>2): Rename from ctz<mode>2.
27713         (*popcount<mode>2_cmp): Remove.
27714         (*popcountsi2_cmp_zext): Ditto.
27715
27716 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
27717
27718         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
27719         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
27720         * config/microblaze/microblaze.h
27721         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
27722
27723 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
27724
27725         PR other/62168
27726         * configure.ac: Set install_gold_as_default to no for
27727         --enable-gold=no.
27728         * configure: Regenerated.
27729
27730 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
27731
27732         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
27733         * config.in: Add undef of HAVE_isl.
27734         * configure: Regenerate.
27735         * configure.ac: Add definition of HAVE_isl.
27736         * graphite-blocking.c: Add checking of HAVE_isl.
27737         * graphite-dependences.c: Likewise.
27738         * graphite-interchange.c: Likewise.
27739         * graphite-isl-ast-to-gimple.c: Likewise.
27740         * graphite-optimize-isl.c: Likewise.
27741         * graphite-poly.c: Likewise.
27742         * graphite-scop-detection.c: Likewise.
27743         * graphite-sese-to-poly.c: Likewise.
27744         * graphite.c: Likewise.
27745         * toplev.c: Replace the checking of HAVE_cloog with the checking
27746         of HAVE_isl.
27747
27748 2014-08-18  Richard Biener  <rguenther@suse.de>
27749
27750         PR tree-optimization/62090
27751         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
27752         (fold_builtin_3): Do not fold snprintf.
27753         (fold_builtin_4): Likewise.
27754         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
27755         moved from builtins.c.
27756         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
27757         (gimple_fold_builtin): Do not fold sprintf here.
27758
27759 2014-08-18  Richard Biener  <rguenther@suse.de>
27760
27761         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
27762         code to ...
27763         (maybe_canonicalize_mem_ref_addr): ... this function.
27764         (fold_stmt_1): Apply it here before all simplification.
27765
27766 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
27767
27768         PR ipa/61800
27769         * cgraph.h (cgraph_node::create_indirect_edge): Add
27770         compute_indirect_info param.
27771         * cgraph.c (cgraph_node::create_indirect_edge): Compute
27772         indirect_info only when it is required.
27773         * cgraphclones.c (cgraph_clone_edge): Do not recompute
27774         indirect_info fore cloned indirect edge.
27775
27776 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27777             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27778             Anna Tikhonova  <anna.tikhonova@intel.com>
27779             Ilya Tocar  <ilya.tocar@intel.com>
27780             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27781             Ilya Verbin  <ilya.verbin@intel.com>
27782             Kirill Yukhin  <kirill.yukhin@intel.com>
27783             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27784
27785         * config/i386/sse.md
27786         (define_mode_iterator VI8_AVX2_AVX512BW): New.
27787         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
27788
27789 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27790             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27791             Anna Tikhonova  <anna.tikhonova@intel.com>
27792             Ilya Tocar  <ilya.tocar@intel.com>
27793             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27794             Ilya Verbin  <ilya.verbin@intel.com>
27795             Kirill Yukhin  <kirill.yukhin@intel.com>
27796             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27797
27798         * config/i386/sse.md
27799         (define_mode_iterator VF1_AVX512VL): New.
27800         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
27801         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
27802         New.
27803
27804 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27805             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27806             Anna Tikhonova  <anna.tikhonova@intel.com>
27807             Ilya Tocar  <ilya.tocar@intel.com>
27808             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27809             Ilya Verbin  <ilya.verbin@intel.com>
27810             Kirill Yukhin  <kirill.yukhin@intel.com>
27811             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27812
27813         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
27814         * config/i386/i386.md
27815         (define_code_iterator any_float): New.
27816         (define_code_attr floatsuffix): New.
27817         * config/i386/sse.md
27818         (define_mode_iterator VF1_128_256VL): New.
27819         (define_mode_iterator VF2_512_256VL): New.
27820         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
27821         TARGET check.
27822         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
27823         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
27824         New.
27825         (define_mode_attr qq2pssuff): New.
27826         (define_mode_attr sselongvecmode): New.
27827         (define_mode_attr sselongvecmodelower): New.
27828         (define_mode_attr sseintvecmode3): New.
27829         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
27830         New.
27831         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
27832         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
27833         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
27834         (define_insn "ufloatv2siv2df2<mask_name>"): New.
27835
27836 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27837             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27838             Anna Tikhonova  <anna.tikhonova@intel.com>
27839             Ilya Tocar  <ilya.tocar@intel.com>
27840             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27841             Ilya Verbin  <ilya.verbin@intel.com>
27842             Kirill Yukhin  <kirill.yukhin@intel.com>
27843             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27844
27845         * config/i386/sse.md
27846         (define_mode_iterator VF2_AVX512VL): New.
27847         (define_mode_attr sseintvecmode2): New.
27848         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
27849         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
27850         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
27851         (define_insn
27852         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
27853         Ditto.
27854         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27855         Ditto.
27856         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27857         Ditto.
27858
27859 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27860             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27861             Anna Tikhonova  <anna.tikhonova@intel.com>
27862             Ilya Tocar  <ilya.tocar@intel.com>
27863             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27864             Ilya Verbin  <ilya.verbin@intel.com>
27865             Kirill Yukhin  <kirill.yukhin@intel.com>
27866             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27867
27868         * config/i386/i386.md
27869         (define_insn "*movoi_internal_avx"): Add evex version.
27870         (define_insn "*movti_internal"): Ditto.
27871
27872 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27873             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27874             Anna Tikhonova  <anna.tikhonova@intel.com>
27875             Ilya Tocar  <ilya.tocar@intel.com>
27876             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27877             Ilya Verbin  <ilya.verbin@intel.com>
27878             Kirill Yukhin  <kirill.yukhin@intel.com>
27879             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27880
27881         * config/i386/i386.md
27882         (define_attr "isa"): Add avx512dq, noavx512dq.
27883         (define_attr "enabled"): Ditto.
27884         * config/i386/sse.md
27885         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
27886
27887 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27888             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27889             Anna Tikhonova  <anna.tikhonova@intel.com>
27890             Ilya Tocar  <ilya.tocar@intel.com>
27891             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27892             Ilya Verbin  <ilya.verbin@intel.com>
27893             Kirill Yukhin  <kirill.yukhin@intel.com>
27894             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27895
27896         * config/i386/i386.c
27897         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
27898         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
27899         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
27900         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
27901         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
27902         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
27903         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
27904         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
27905         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
27906         * config/i386/sse.md
27907         (define_mode_iterator VMOVE): Allow V4TI mode.
27908         (define_mode_iterator V_AVX512VL): New.
27909         (define_mode_iterator V): New handling for AVX512VL.
27910         (define_insn "avx512f_load<mode>_mask"): Delete.
27911         (define_insn "<avx512>_load<mode>_mask"): New.
27912         (define_insn "avx512f_store<mode>_mask"): Delete.
27913         (define_insn "<avx512>_store<mode>_mask"): New.
27914
27915
27916 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
27917
27918         PR sanitizer/62089
27919         * asan.c (instrument_derefs): Fix bitfield check.
27920
27921 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27922
27923         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
27924         * config/rs6000/htm.md (ttest): Remove clobber.
27925         * config/rs6000/predicates.md (any_mask_operand): New predicate.
27926         (and_operand): Reformat.
27927         (and_2rld_operand): New predicate.
27928         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
27929         parameter.
27930         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
27931         parameter.  Handle AND directly.
27932         (rs6000_split_logical_di): Remove last parameter.
27933         (rs6000_split_logical): Remove last parameter.  Remove obsolete
27934         comment.
27935         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
27936         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
27937         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
27938         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
27939         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
27940         and 5 anonymous splitters):  Delete.
27941         (and<mode>3): New expander.
27942         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
27943         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
27944         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
27945         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
27946         (floatdisf2_internal1): Remove clobbers.
27947         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
27948         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
27949         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
27950         (and<mode>3 for BOOL_128): Remove clobber.
27951         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
27952         rs6000_split_logical.
27953         (*bool<mode>3_internal for BOOL_128): Adjust call of
27954         rs6000_split_logical.
27955         (*boolc<mode>3_internal1 for BOOL_128,
27956         *boolc<mode>3_internal2 for BOOL_128,
27957         *boolcc<mode>3_internal1 for BOOL_128,
27958         *boolcc<mode>3_internal2 for BOOL_128,
27959         *eqv<mode>3_internal1 for BOOL_128,
27960         *eqv<mode>3_internal2 for BOOL_128,
27961         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
27962         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
27963         clobber.
27964         (*vec_reload_and_reg_<mptrsize>): Delete.
27965
27966 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27967
27968         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
27969         and split, *boolccsi3_internal3 and split): Delete.
27970         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
27971         *boolccdi3_internal3 and split): Delete.
27972         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
27973         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
27974
27975 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27976
27977         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
27978         and split, *boolcsi3_internal3 and split): Delete.
27979         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
27980         *boolcdi3_internal3 and split): Delete.
27981         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
27982
27983 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27984
27985         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
27986         <'u'>: Also support printing the low-order 16 bits.
27987         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
27988         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
27989         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
27990         *booldi3_internal3 and split): Delete.
27991         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
27992         *bool<mode>3_dot2): New.
27993         (two anonymous define_splits for non_logical_cint_operand): Merge.
27994
27995 2014-08-17  Marek Polacek  <polacek@redhat.com>
27996             Manuel López-Ibáñez  <manu@gcc.gnu.org>
27997
27998         PR c/62059
27999         * diagnostic.c (adjust_line): Add gcc_checking_assert.
28000         (diagnostic_show_locus): Don't print caret diagnostic
28001         if a column is larger than the line_width.
28002
28003 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
28004
28005         * common.opt: Make the ISL AST generator to be the main code generator
28006         of Graphite.
28007
28008 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
28009
28010         * wide-int.h (generic_wide_int): Declare as class instead of struct.
28011
28012 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
28013
28014         PR target/61641
28015         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
28016         Declare.
28017         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
28018         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
28019         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
28020         Define.
28021         * config/pa/pa.md (begin_brtab): Delete insn.
28022         (end_brtab): Likewise.
28023
28024 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28025
28026         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
28027
28028 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
28029
28030         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
28031         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
28032         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
28033         (get_dynamic_type): Remove.
28034         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
28035         (clear_speculation): Bring to ipa-deivrt.h
28036         (get_class_context): Rename to ...
28037         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
28038         (contains_type_p): Update.
28039         (get_dynamic_type): Rename to ...
28040         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
28041         (possible_polymorphic_call_targets): UPdate.
28042         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
28043         * ipa-prop.c (ipa_analyze_call_uses): Update.
28044
28045 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
28046
28047         * doc/invoke.texi (SH options): Document missing processor variant
28048         options.  Remove references to Hitachi.  Undocument deprecated mspace
28049         option.
28050
28051 2014-08-15  Jason Merrill  <jason@redhat.com>
28052
28053         * tree.c (type_hash_canon): Uncomment assert.
28054
28055 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28056
28057         * input.h (in_system_header_at): Add comment.
28058
28059 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28060
28061         PR fortran/44054
28062         * diagnostic.c (build_message_string): Make it extern.
28063         * diagnostic.h (build_message_string): Make it extern.
28064
28065 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
28066
28067         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
28068         load/store from/to non-floating class pseudo.
28069
28070 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28071
28072         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
28073
28074 2014-08-15  Richard Biener  <rguenther@suse.de>
28075
28076         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
28077         (get_constraint_for_ssa_var): Remove dead code.
28078         (get_constraint_for_1): Adjust.
28079         (find_what_var_points_to): Likewise.
28080         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
28081
28082 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
28083
28084         PR target/61878
28085         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
28086         (_mm512_mask_cmpge_epu32_mask): Ditto.
28087         (_mm512_cmpge_epu32_mask): Ditto.
28088         (_mm512_mask_cmpge_epi64_mask): Ditto.
28089         (_mm512_cmpge_epi64_mask): Ditto.
28090         (_mm512_mask_cmpge_epu64_mask): Ditto.
28091         (_mm512_cmpge_epu64_mask): Ditto.
28092         (_mm512_mask_cmple_epi32_mask): Ditto.
28093         (_mm512_cmple_epi32_mask): Ditto.
28094         (_mm512_mask_cmple_epu32_mask): Ditto.
28095         (_mm512_cmple_epu32_mask): Ditto.
28096         (_mm512_mask_cmple_epi64_mask): Ditto.
28097         (_mm512_cmple_epi64_mask): Ditto.
28098         (_mm512_mask_cmple_epu64_mask): Ditto.
28099         (_mm512_cmple_epu64_mask): Ditto.
28100         (_mm512_mask_cmplt_epi32_mask): Ditto.
28101         (_mm512_cmplt_epi32_mask): Ditto.
28102         (_mm512_mask_cmplt_epu32_mask): Ditto.
28103         (_mm512_cmplt_epu32_mask): Ditto.
28104         (_mm512_mask_cmplt_epi64_mask): Ditto.
28105         (_mm512_cmplt_epi64_mask): Ditto.
28106         (_mm512_mask_cmplt_epu64_mask): Ditto.
28107         (_mm512_cmplt_epu64_mask): Ditto.
28108         (_mm512_mask_cmpneq_epi32_mask): Ditto.
28109         (_mm512_mask_cmpneq_epu32_mask): Ditto.
28110         (_mm512_cmpneq_epu32_mask): Ditto.
28111         (_mm512_mask_cmpneq_epi64_mask): Ditto.
28112         (_mm512_cmpneq_epi64_mask): Ditto.
28113         (_mm512_mask_cmpneq_epu64_mask): Ditto.
28114         (_mm512_cmpneq_epu64_mask): Ditto.
28115         (_mm512_castpd_ps): Ditto.
28116         (_mm512_castpd_si512): Ditto.
28117         (_mm512_castps_pd): Ditto.
28118         (_mm512_castps_si512): Ditto.
28119         (_mm512_castsi512_ps): Ditto.
28120         (_mm512_castsi512_pd): Ditto.
28121         (_mm512_castpd512_pd128): Ditto.
28122         (_mm512_castps512_ps128): Ditto.
28123         (_mm512_castsi512_si128): Ditto.
28124         (_mm512_castpd512_pd256): Ditto.
28125         (_mm512_castps512_ps256): Ditto.
28126         (_mm512_castsi512_si256): Ditto.
28127         (_mm512_castpd128_pd512): Ditto.
28128         (_mm512_castps128_ps512): Ditto.
28129         (_mm512_castsi128_si512): Ditto.
28130         (_mm512_castpd256_pd512): Ditto.
28131         (_mm512_castps256_ps512): Ditto.
28132         (_mm512_castsi256_si512): Ditto.
28133         (_mm512_cmpeq_epu32_mask): Ditto.
28134         (_mm512_mask_cmpeq_epu32_mask): Ditto.
28135         (_mm512_mask_cmpeq_epu64_mask): Ditto.
28136         (_mm512_cmpeq_epu64_mask): Ditto.
28137         (_mm512_cmpgt_epu32_mask): Ditto.
28138         (_mm512_mask_cmpgt_epu32_mask): Ditto.
28139         (_mm512_mask_cmpgt_epu64_mask): Ditto.
28140         (_mm512_cmpgt_epu64_mask): Ditto.
28141         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
28142         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
28143         * config/i386/i386.c (enum ix86_builtins): Add
28144         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
28145         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
28146         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
28147         (bdesc_args): Add __builtin_ia32_si512_256si,
28148         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
28149         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
28150         __builtin_ia32_pd512_pd.
28151         (ix86_expand_args_builtin): Handle new FTYPEs.
28152         * config/i386/sse.md (castmode): Add 512-bit modes.
28153         (AVX512MODE2P): New.
28154         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
28155         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
28156
28157 2014-08-15  Richard Biener  <rguenther@suse.de>
28158
28159         * fold-const.c (tree_swap_operands_p): Put all constants
28160         last, also strip sign-changing NOPs when considering further
28161         canonicalization.  Canonicalize also when optimizing for size.
28162
28163 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28164
28165         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
28166         one_match > zero_match case to just before simple_sequence.
28167
28168 2014-08-15  Richard Biener  <rguenther@suse.de>
28169
28170         * data-streamer.h (streamer_string_index, string_for_index):
28171         Remove.
28172         * data-streamer-out.c (streamer_string_index): Make static.
28173         * data-streamer-in.c (string_for_index): Likewise.
28174         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
28175         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
28176
28177 2014-08-15  Richard Biener  <rguenther@suse.de>
28178
28179         PR tree-optimization/62031
28180         * tree-data-ref.c (dr_analyze_indices): Do not set
28181         DR_UNCONSTRAINED_BASE.
28182         (dr_may_alias_p): All indirect accesses have to go the
28183         formerly DR_UNCONSTRAINED_BASE path.
28184         * tree-data-ref.h (struct indices): Remove
28185         unconstrained_base member.
28186         (DR_UNCONSTRAINED_BASE): Remove.
28187
28188 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
28189
28190         PR middle-end/62092
28191         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
28192         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
28193         in OMP_CLAUSE_MAP in some outer target region.
28194
28195 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
28196
28197         * tree-ssa-loop-ivopts.c (ivopts_data): New field
28198         name_expansion_cache.
28199         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
28200         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
28201         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
28202         (difference_cannot_overflow_p): New parameter.  Use affine
28203         expansion for equality check.
28204         (iv_elimination_compare_lt): Pass new argument.
28205
28206 2014-08-14  DJ Delorie  <dj@redhat.com>
28207
28208         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
28209         variables to the accumulator.
28210
28211         * config/rl78/predicates.md (rl78_near_mem_operand): New.
28212         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
28213         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
28214         with far-far moves.
28215
28216         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
28217         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
28218         (umulqihi3_virt): Likewise.
28219         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
28220         (umulqihi3_real): Likewise.
28221
28222         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
28223
28224 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28225
28226         PR tree-optimization/62091
28227         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
28228         function_entry_reached.
28229         (walk_aliased_vdefs): Clear it here.
28230         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
28231
28232 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28233
28234         * ipa-utils.h (compare_virtual_tables): Declare.
28235         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
28236
28237 2014-08-14  Marek Polacek  <polacek@redhat.com>
28238
28239         DR 458
28240         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
28241         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
28242
28243 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28244
28245         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
28246
28247 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28248
28249         PR rtl-optimization/62004
28250         PR rtl-optimization/62030
28251         * ifcvt.c (rtx_interchangeable_p): New function.
28252         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
28253         * emit-rtl.h (mem_attrs_eq_p): Declare.
28254
28255 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
28256
28257         * graphite-scop-detection.c:
28258         Add inclusion of cp-tree.h.
28259         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
28260         in case they are pointers to object types
28261
28262 2014-08-14  Richard Biener  <rguenther@suse.de>
28263
28264         * BASE-VER: Change to 5.0.0
28265
28266 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28267             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28268             Anna Tikhonova  <anna.tikhonova@intel.com>
28269             Ilya Tocar  <ilya.tocar@intel.com>
28270             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28271             Ilya Verbin  <ilya.verbin@intel.com>
28272             Kirill Yukhin  <kirill.yukhin@intel.com>
28273             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28274
28275         * config/i386/sse.md (define_mode_attr avx512): New.
28276         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
28277         V4DI modes.
28278         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
28279         (define_mode_attr ssse3_avx2): Ditto.
28280         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
28281         (define_mode_attr avx2_avx512bw): New.
28282         (define_mode_attr ssedoublemodelower): New.
28283         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
28284         V32HI, V64QI modes.
28285         (define_mode_attr ssebytemode): Allow V8DI modes.
28286         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
28287         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
28288         (define_mode_attr ssePSmode2): New.
28289         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
28290         V16HI, V32HI modes.
28291         (define_mode_attr dbpsadbwmode): New.
28292         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
28293         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
28294         (vi8_sse4_1_avx2_avx512): New.
28295         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
28296         mode attribute.
28297         (define_mode_attr blendbits): Move before its immediate use.
28298
28299 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28300             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28301             Anna Tikhonova  <anna.tikhonova@intel.com>
28302             Ilya Tocar  <ilya.tocar@intel.com>
28303             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28304             Ilya Verbin  <ilya.verbin@intel.com>
28305             Kirill Yukhin  <kirill.yukhin@intel.com>
28306             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28307
28308         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
28309         * config/i386/subst.md
28310         (define_mode_iterator SUBST_V): Update.
28311         (define_mode_iterator SUBST_A): Ditto.
28312         (define_subst_attr "mask_operand7"): New.
28313         (define_subst_attr "mask_operand10"): New.
28314         (define_subst_attr "mask_operand_arg34") : New.
28315         (define_subst_attr "mask_expand_op3"): New.
28316         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
28317         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
28318         (define_subst_attr "mask_avx512vl_condition"): New.
28319         (define_subst_attr "round_mask_operand4"): Ditto.
28320         (define_subst_attr "round_mask_scalar_op3"): Delete.
28321         (define_subst_attr "round_mask_op4"): New.
28322         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
28323         V16SImode.
28324         (define_subst_attr "round_modev8sf_condition"): New.
28325         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28326         <MODE>mode.
28327         (define_subst_attr "round_saeonly_mask_operand4"): New.
28328         (define_subst_attr "round_saeonly_mask_op4"): New.
28329         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28330         V8DImode, V16SImode.
28331         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28332         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28333         (define_subst_attr "mask_expand4_args"): New.
28334         (define_subst "mask_expand4"): New.
28335
28336 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28337             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28338             Anna Tikhonova  <anna.tikhonova@intel.com>
28339             Ilya Tocar  <ilya.tocar@intel.com>
28340             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28341             Ilya Verbin  <ilya.verbin@intel.com>
28342             Kirill Yukhin  <kirill.yukhin@intel.com>
28343             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28344
28345         * config/i386/i386.md
28346         (define_attr "isa"): Add avx512bw,noavx512bw.
28347         (define_attr "enabled"): Ditto.
28348         (define_split): Add 32/64-bit mask logic.
28349         (define_insn "*k<logic>qi"): New.
28350         (define_insn "*k<logic>hi"): New.
28351         (define_insn "*anddi_1"): Add mask version.
28352         (define_insn "*andsi_1"): Ditto.
28353         (define_insn "*<code><mode>_1"): Ditto.
28354         (define_insn "*<code>hi_1"): Ditto.
28355         (define_insn "kxnor<mode>"): New.
28356         (define_insn "kunpcksi"): New.
28357         (define_insn "kunpckdi"): New.
28358         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28359         (define_insn "*one_cmplhi2_1"): Ditto.
28360
28361 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28362             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28363             Anna Tikhonova  <anna.tikhonova@intel.com>
28364             Ilya Tocar  <ilya.tocar@intel.com>
28365             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28366             Ilya Verbin  <ilya.verbin@intel.com>
28367             Kirill Yukhin  <kirill.yukhin@intel.com>
28368             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28369
28370         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28371         V32HImode.
28372
28373 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28374             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28375             Anna Tikhonova  <anna.tikhonova@intel.com>
28376             Ilya Tocar  <ilya.tocar@intel.com>
28377             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28378             Ilya Verbin  <ilya.verbin@intel.com>
28379             Kirill Yukhin  <kirill.yukhin@intel.com>
28380             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28381
28382         * config/i386/i386.c (print_reg): Ð¡orrectly print 64-bit mask
28383         registers.
28384         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
28385         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
28386         xmm/ymm16+ when availble.
28387         * config/i386/i386.h
28388         (HARD_REGNO_NREGS): Add mask regs.
28389         (VALID_AVX512F_REG_MODE): Ditto.
28390         (VALID_AVX512F_REG_MODE) : Define.
28391         (VALID_MASK_AVX512BW_MODE): Ditto.
28392         (reg_class) (MASK_REG_P(X)): Define.
28393         * config/i386/i386.md: Do not split long moves with mask register,
28394         use kmovb if avx512bw is availible.
28395         (movdi_internal): Handle mask registers.
28396
28397 2014-08-14  Richard Biener  <rguenther@suse.de>
28398
28399         PR tree-optimization/62081
28400         * tree-ssa-loop.c (pass_fix_loops): New pass.
28401         (pass_tree_loop::gate):  Do not fixup loops here.
28402         * tree-pass.h (make_pass_fix_loops): Declare.
28403         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
28404
28405 2014-08-14  Richard Biener  <rguenther@suse.de>
28406
28407         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
28408         (type_hash_canon): ... this and avoid 2nd lookup for the add.
28409
28410 2014-08-14  Richard Biener  <rguenther@suse.de>
28411
28412         PR tree-optimization/62090
28413         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
28414         (fold_builtin_2): Do not fold sprintf.
28415         (fold_builtin_3): Likewise.
28416         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
28417         moved from builtins.c.
28418         (gimple_fold_builtin): Fold sprintf.
28419
28420 2014-08-14  Richard Biener  <rguenther@suse.de>
28421
28422         PR rtl-optimization/62079
28423         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
28424         run cleanup_cfg.
28425
28426 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28427
28428         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
28429         current_function_decl.
28430
28431 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28432
28433         * cgraph.c (cgraph_node::function_symbol): Fix wrong
28434         cgraph_function_node to cgraph_node::function_symbol
28435         refactoring.
28436
28437 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
28438
28439         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
28440         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
28441
28442 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
28443
28444         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
28445         warning.
28446
28447 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
28448
28449         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
28450         generator.
28451
28452 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
28453
28454         PR target/62025
28455         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
28456         any registers that are used in mem_insn.
28457
28458 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28459
28460         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
28461
28462 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28463
28464         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
28465         (MULTILIB_DIRNAMES): Ditto.
28466         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
28467         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
28468         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
28469         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
28470         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
28471         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
28472
28473 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28474
28475         PR target/61413
28476         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
28477         of __ARM_SIZEOF_WCHAR_T.
28478
28479 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28480
28481         PR target/62098
28482         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
28483         Remove unnecessary attributes.
28484
28485 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
28486
28487         * internal-fn.c (init_internal_fns): Fix off-by-one.
28488
28489 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28490             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28491             Anna Tikhonova  <anna.tikhonova@intel.com>
28492             Ilya Tocar  <ilya.tocar@intel.com>
28493             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28494             Ilya Verbin  <ilya.verbin@intel.com>
28495             Kirill Yukhin  <kirill.yukhin@intel.com>
28496             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28497
28498         * config/i386/i386.c (standard_sse_constant_opcode): Use
28499         vpxord/vpternlog if avx512 is availible.
28500
28501 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28502
28503         PR middle-end/62103
28504         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
28505         bitfields, that is when size doesn't match the size of type or the
28506         size of the constructor.
28507
28508 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28509
28510         * config/rs6000/constraints.md (wh constraint): New constraint,
28511         for FP registers if direct move is available.
28512         (wi constraint): New constraint, for VSX/FP registers that can
28513         handle 64-bit integers.
28514         (wj constraint): New constraint for VSX/FP registers that can
28515         handle 64-bit integers for direct moves.
28516         (wk constraint): New constraint for VSX/FP registers that can
28517         handle 64-bit doubles for direct moves.
28518         (wy constraint): Make documentation match implementation.
28519
28520         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
28521         scalar_in_vmx_p field to simplify tests of whether SFmode or
28522         DFmode can go in the Altivec registers.
28523         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
28524         (rs6000_setup_reg_addr_masks): Likewise.
28525         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
28526         field, and wh/wi/wj/wk constraints.
28527         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
28528         the wh/wi/wj/wk constraints.
28529         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
28530         upper registers, prefer VSX registers unless the operation is a
28531         memory operation with REG+OFFSET addressing.
28532
28533         * config/rs6000/vsx.md (VSr mode attribute): Add support for
28534         DImode.  Change SFmode to use ww constraint instead of d to allow
28535         SF registers in the upper registers.
28536         (VSr2): Likewise.
28537         (VSr3): Likewise.
28538         (VSr5): Fix thinko in comment.
28539         (VSa): New mode attribute that is an alternative to wa, that
28540         returns the VSX register class that a mode can go in, but may not
28541         be the preferred register class.
28542         (VS_64dm): New mode attribute for appropriate register classes for
28543         referencing 64-bit elements of vectors for direct moves and normal
28544         moves.
28545         (VS_64reg): Likewise.
28546         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
28547         register allocator to only registers the data type can handle.
28548         (vsx_le_perm_load_<mode>): Likewise.
28549         (vsx_le_perm_store_<mode>): Likewise.
28550         (vsx_xxpermdi2_le_<mode>): Likewise.
28551         (vsx_xxpermdi4_le_<mode>): Likewise.
28552         (vsx_lxvd2x2_le_<mode>): Likewise.
28553         (vsx_lxvd2x4_le_<mode>): Likewise.
28554         (vsx_stxvd2x2_le_<mode>): Likewise.
28555         (vsx_add<mode>3): Likewise.
28556         (vsx_sub<mode>3): Likewise.
28557         (vsx_mul<mode>3): Likewise.
28558         (vsx_div<mode>3): Likewise.
28559         (vsx_tdiv<mode>3_internal): Likewise.
28560         (vsx_fre<mode>2): Likewise.
28561         (vsx_neg<mode>2): Likewise.
28562         (vsx_abs<mode>2): Likewise.
28563         (vsx_nabs<mode>2): Likewise.
28564         (vsx_smax<mode>3): Likewise.
28565         (vsx_smin<mode>3): Likewise.
28566         (vsx_sqrt<mode>2): Likewise.
28567         (vsx_rsqrte<mode>2): Likewise.
28568         (vsx_tsqrt<mode>2_internal): Likewise.
28569         (vsx_fms<mode>4): Likewise.
28570         (vsx_nfma<mode>4): Likewise.
28571         (vsx_eq<mode>): Likewise.
28572         (vsx_gt<mode>): Likewise.
28573         (vsx_ge<mode>): Likewise.
28574         (vsx_eq<mode>_p): Likewise.
28575         (vsx_gt<mode>_p): Likewise.
28576         (vsx_ge<mode>_p): Likewise.
28577         (vsx_xxsel<mode>): Likewise.
28578         (vsx_xxsel<mode>_uns): Likewise.
28579         (vsx_copysign<mode>3): Likewise.
28580         (vsx_float<VSi><mode>2): Likewise.
28581         (vsx_floatuns<VSi><mode>2): Likewise.
28582         (vsx_fix_trunc<mode><VSi>2): Likewise.
28583         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
28584         (vsx_x<VSv>r<VSs>i): Likewise.
28585         (vsx_x<VSv>r<VSs>ic): Likewise.
28586         (vsx_btrunc<mode>2): Likewise.
28587         (vsx_b2trunc<mode>2): Likewise.
28588         (vsx_floor<mode>2): Likewise.
28589         (vsx_ceil<mode>2): Likewise.
28590         (vsx_<VS_spdp_insn>): Likewise.
28591         (vsx_xscvspdp): Likewise.
28592         (vsx_xvcvspuxds): Likewise.
28593         (vsx_float_fix_<mode>2): Likewise.
28594         (vsx_set_<mode>): Likewise.
28595         (vsx_extract_<mode>_internal1): Likewise.
28596         (vsx_extract_<mode>_internal2): Likewise.
28597         (vsx_extract_<mode>_load): Likewise.
28598         (vsx_extract_<mode>_store): Likewise.
28599         (vsx_splat_<mode>): Likewise.
28600         (vsx_xxspltw_<mode>): Likewise.
28601         (vsx_xxspltw_<mode>_direct): Likewise.
28602         (vsx_xxmrghw_<mode>): Likewise.
28603         (vsx_xxmrglw_<mode>): Likewise.
28604         (vsx_xxsldwi_<mode>): Likewise.
28605         (vsx_xscvdpspn): Tighten constraints to only use register classes
28606         the types use.
28607         (vsx_xscvspdpn): Likewise.
28608         (vsx_xscvdpspn_scalar): Likewise.
28609
28610         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
28611         wj, and wk constraints.
28612         (GPR_REG_CLASS_P): New helper macro for register classes targeting
28613         general purpose registers.
28614
28615         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
28616         direct moves.
28617         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
28618         DImode instead of wm.  Use wk constraint for direct move of DFmode
28619         instead of wm.
28620         (extendsidi2_lfiwax): Likewise.
28621         (lfiwax): Likewise.
28622         (lfiwzx): Likewise.
28623         (movdi_internal64): Likewise.
28624
28625         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
28626         wk constraints. Make the wy constraint documentation match them
28627         implementation.
28628
28629 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
28630
28631         Replacement of isl_int by isl_val
28632         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
28633         (compute_bounds_for_param): use isl_val instead of isl_int
28634         (compute_bounds_for_loop): likewise
28635         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
28636         (build_linearized_memory_access): use isl_val instead of isl_int
28637         (pdr_stride_in_loop): likewise
28638         * graphite-optimize-isl.c:
28639         (getPrevectorMap): use isl_val instead of isl_int
28640         * graphite-poly.c:
28641         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
28642         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
28643         (extern the_isl_ctx): declare
28644         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
28645         (extract_affine_gmp): likewise
28646         (wrap): likewise
28647         (build_loop_iteration_domains): likewise
28648         (add_param_constraints): likewise
28649
28650 2014-08-11  Richard Biener  <rguenther@suse.de>
28651
28652         PR tree-optimization/62075
28653         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
28654         handle uses in patterns.
28655
28656 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28657             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28658             Anna Tikhonova  <anna.tikhonova@intel.com>
28659             Ilya Tocar  <ilya.tocar@intel.com>
28660             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28661             Ilya Verbin  <ilya.verbin@intel.com>
28662             Kirill Yukhin  <kirill.yukhin@intel.com>
28663             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28664
28665         * common/config/i386/i386-common.c
28666         (OPTION_MASK_ISA_AVX512VL_SET): Define.
28667         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
28668         (ix86_handle_option): Handle OPT_mavx512vl.
28669         * config/i386/cpuid.h (bit_AVX512VL): Define.
28670         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
28671         set -mavx512vl accordingly.
28672         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28673         OPTION_MASK_ISA_AVX512VL.
28674         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
28675         (ix86_option_override_internal): Define PTA_AVX512VL, handle
28676         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
28677         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
28678         * config/i386/i386.h (TARGET_AVX512VL): Define.
28679         (TARGET_AVX512VL_P(x)): Ditto.
28680         * config/i386/i386.opt: Add mavx512vl.
28681
28682 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
28683
28684         PR tree-optimization/62073
28685         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
28686         a basic block.
28687
28688 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28689             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28690             Anna Tikhonova  <anna.tikhonova@intel.com>
28691             Ilya Tocar  <ilya.tocar@intel.com>
28692             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28693             Ilya Verbin  <ilya.verbin@intel.com>
28694             Kirill Yukhin  <kirill.yukhin@intel.com>
28695             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28696
28697         * common/config/i386/i386-common.c
28698         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
28699         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
28700         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
28701         (ix86_handle_option): Handle OPT_mavx512bw.
28702         * config/i386/cpuid.h (bit_AVX512BW): Define.
28703         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
28704         set -mavx512bw accordingly.
28705         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28706         OPTION_MASK_ISA_AVX512BW.
28707         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
28708         (ix86_option_override_internal): Define PTA_AVX512BW, handle
28709         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
28710         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
28711         * config/i386/i386.h (TARGET_AVX512BW): Define.
28712         (TARGET_AVX512BW_P(x)): Ditto.
28713         * config/i386/i386.opt: Add mavx512bw.
28714
28715 2014-08-11  Richard Biener  <rguenther@suse.de>
28716
28717         PR tree-optimization/62070
28718         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
28719         Remove SSA checking.
28720
28721 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28722
28723         * asan.c (asan_check_flags): New enum.
28724         (build_check_stmt_with_calls): Removed function.
28725         (build_check_stmt): Split inlining logic to
28726         asan_expand_check_ifn.
28727         (instrument_derefs): Rename parameter.
28728         (instrument_mem_region_access): Rename parameter.
28729         (instrument_strlen_call): Likewise.
28730         (asan_expand_check_ifn): New function.
28731         (asan_instrument): Remove old code.
28732         (pass_sanopt::execute): Change handling of
28733         asan-instrumentation-with-call-threshold.
28734         (asan_clear_shadow): Fix formatting.
28735         (asan_function_start): Likewise.
28736         (asan_emit_stack_protection): Likewise.
28737         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
28738         Update description.
28739         * internal-fn.c (expand_ASAN_CHECK): New function.
28740         * internal-fn.def (ASAN_CHECK): New internal function.
28741         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
28742         Update description.
28743         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
28744         * tree.c: Small comment fix.
28745
28746 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28747
28748         * gimple.c (gimple_call_fnspec): Support internal functions.
28749         (gimple_call_return_flags): Use const.
28750         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
28751         * internal-fn.def: Add fnspec information.
28752         * internal-fn.h (internal_fn_fnspec): New function.
28753         (init_internal_fns): Declare new function.
28754         * internal-fn.c (internal_fn_fnspec_array): New global variable.
28755         (init_internal_fns): New function.
28756         * tree-core.h: Update macro call.
28757         * tree.c (build_common_builtin_nodes): Initialize internal fns.
28758
28759 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
28760
28761         * lto-streamer.h (struct output_block::symbol): Change from
28762         struct symtab_node to plain symtab_node.
28763         (referenced_from_this_partition_p): Change first parameter
28764         from struct symtab_node to plain symtab_node.
28765
28766 2014-08-10  Marek Polacek  <polacek@redhat.com>
28767
28768         PR c/51849
28769         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
28770
28771 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
28772
28773         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
28774         DECL correctly; do not give up on types in static storage.
28775
28776 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
28777
28778         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
28779
28780 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
28781
28782         * graphite-isl-ast-to-gimple.c:
28783         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
28784
28785         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
28786
28787 2014-08-08  Guozhi Wei  <carrot@google.com>
28788
28789         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
28790
28791 2014-08-08  Cary Coutant  <ccoutant@google.com>
28792
28793         * dwarf2out.c (get_skeleton_type_unit): Remove.
28794         (output_skeleton_debug_sections): Remove skeleton type units.
28795         (output_comdat_type_unit): Likewise.
28796         (dwarf2out_finish): Likewise.
28797
28798 2014-08-07  Yi Yang  <ahyangyi@google.com>
28799
28800         * predict.c (expr_expected_value_1): Remove the redundant assignment.
28801
28802 2014-08-08  Richard Biener  <rguenther@suse.de>
28803
28804         * lto-streamer.h (struct lto_input_block): Make it a class
28805         with a constructor.
28806         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
28807         (struct lto_function_header, struct lto_simple_header,
28808         struct lto_simple_header_with_strings,
28809         struct lto_decl_header, struct lto_function_header): Make
28810         a simple inheritance hieararchy.  Remove unused fields.
28811         (struct lto_asm_header): Remove.
28812         * lto-streamer-out.c (produce_asm): Adjust.
28813         (lto_output_toplevel_asms): Likewise.
28814         (produce_asm_for_decls): Likewise.
28815         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
28816         * data-streamer-in.c (string_for_index): Likewise.
28817         * ipa-inline-analysis.c (inline_read_section): Likewise.
28818         * ipa-prop.c (ipa_prop_read_section): Likewise.
28819         (read_replacements_section): Likewise.
28820         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28821         * lto-section-in.c (lto_create_simple_input_block): Likewise.
28822         (lto_destroy_simple_input_block): Likewise.
28823         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
28824         (lto_input_toplevel_asms): Likewise.
28825
28826 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28827             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28828             Anna Tikhonova  <anna.tikhonova@intel.com>
28829             Ilya Tocar  <ilya.tocar@intel.com>
28830             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28831             Ilya Verbin  <ilya.verbin@intel.com>
28832             Kirill Yukhin  <kirill.yukhin@intel.com>
28833             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28834
28835         * common/config/i386/i386-common.c
28836         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
28837         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
28838         (ix86_handle_option): Handle OPT_mavx512dq.
28839         * config/i386/cpuid.h (bit_AVX512DQ): Define.
28840         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
28841         set -mavx512dq accordingly.
28842         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28843         OPTION_MASK_ISA_AVX512DQ.
28844         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
28845         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
28846         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
28847         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
28848         * config/i386/i386.h (TARGET_AVX512DQ): Define.
28849         (TARGET_AVX512DQ_P(x)): Ditto.
28850         * config/i386/i386.opt: Add mavx512dq.
28851
28852 2014-08-08  Richard Biener  <rguenther@suse.de>
28853
28854         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
28855         target_percent, target_percent_s): Export.
28856         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
28857         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
28858         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
28859         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
28860         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
28861         Move to gimple-fold.c.
28862         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
28863         strcat and strcpy.
28864         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
28865         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
28866         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
28867         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
28868         (rewrite_call_expr_array): Remove.
28869         (fold_builtin_sprintf_chk): Likewise.
28870         (fold_builtin_snprintf_chk): Likewise.
28871         (fold_builtin_varargs): Remove handling of sprintf_chk,
28872         vsprintf_chk, snprintf_chk and vsnprintf_chk.
28873         (gimple_fold_builtin_sprintf_chk): Remove.
28874         (gimple_fold_builtin_snprintf_chk): Likewise.
28875         (gimple_fold_builtin_varargs): Likewise.
28876         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
28877         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
28878         * gimple.c (gimple_seq_add_seq_without_update): New function.
28879         * gimple.h (gimple_seq_add_seq_without_update): Declare.
28880         * gimple-fold.c: Include output.h.
28881         (gsi_replace_with_seq_vops): New function, split out from ...
28882         (gimplify_and_update_call_from_tree): ... here.
28883         (replace_call_with_value): New function.
28884         (replace_call_with_call_and_fold): Likewise.
28885         (var_decl_component_p): Moved from builtins.c.
28886         (gimple_fold_builtin_memory_op): Moved from builtins.c
28887         fold_builtin_memory_op and rewritten to GIMPLE.
28888         (gimple_fold_builtin_memset): Likewise.
28889         (gimple_fold_builtin_strcpy): Likewise.
28890         (gimple_fold_builtin_strncpy): Likewise.
28891         (gimple_fold_builtin_strcat): Likewise.
28892         (gimple_fold_builtin_fputs): Likewise.
28893         (gimple_fold_builtin_memory_chk): Likewise.
28894         (gimple_fold_builtin_stxcpy_chk): Likewise.
28895         (gimple_fold_builtin_stxncpy_chk): Likewise.
28896         (gimple_fold_builtin_snprintf_chk): Likewise.
28897         (gimple_fold_builtin_sprintf_chk): Likewise.
28898         (gimple_fold_builtin_strlen): New function.
28899         (gimple_fold_builtin_with_strlen): New function split out from
28900         gimple_fold_builtin.
28901         (gimple_fold_builtin): Change signature and handle
28902         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
28903         here.  Call gimple_fold_builtin_with_strlen.
28904         (gimple_fold_call): Adjust.
28905
28906 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28907
28908         * calls.c (precompute_arguments): Check
28909         promoted_for_signed_and_unsigned_p and set the promoted mode.
28910         (promoted_for_signed_and_unsigned_p): New function.
28911         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
28912         and set the promoted mode.
28913         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
28914         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
28915         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
28916
28917
28918 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28919
28920         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
28921         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28922         (expand_call): Likewise.
28923         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
28924         to get promoted mode.
28925         * combine.c (record_promoted_value): Skip > 0 comparison with
28926         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
28927         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
28928         of SUBREG_PROMOTED_UNSIGNED_P.
28929         (convert_modes): Likewise.
28930         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
28931         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
28932         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
28933         SUBREG_PROMOTED_UNSIGNED_SET.
28934         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
28935         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28936         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
28937         SUBREG_PROMOTED_SET.
28938         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
28939         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
28940         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
28941         of SUBREG_PROMOTED_UNSIGNED_P.
28942         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
28943         (SUBREG_PROMOTED_SET): New define.
28944         (SUBREG_PROMOTED_GET): Likewise.
28945         (SUBREG_PROMOTED_SIGN): Likewise.
28946         (SUBREG_PROMOTED_SIGNED_P): Likewise.
28947         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
28948         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
28949         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
28950         instead of SUBREG_PROMOTED_UNSIGNED_GET.
28951         (nonzero_bits1): Skip > 0 comparison with the results as
28952         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
28953         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
28954         of !SUBREG_PROMOTED_UNSIGNED_P.
28955         * simplify-rtx.c (simplify_unary_operation_1): Use new
28956         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
28957         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
28958         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
28959         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
28960
28961 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
28962
28963         * ipa-devirt.c: Include gimple-pretty-print.h
28964         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
28965         further tests.
28966         (decl_maybe_in_construction_p): Fix conditional on cdtor check
28967         (get_polymorphic_call_info): Fix return value
28968         (type_change_info): New sturcture based on ipa-prop
28969         variant.
28970         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
28971         based on ipa-prop variant.
28972         (extr_type_from_vtbl_ptr_store): New function
28973         based on ipa-prop variant.
28974         (record_known_type): New function.
28975         (check_stmt_for_type_change): New function.
28976         (get_dynamic_type): New function.
28977         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
28978         * tree-ssa-pre.c: ipa-utils.h
28979         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
28980         machinery; sanity check with ipa-prop devirtualization.
28981         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
28982         polymorphic flag.
28983
28984 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
28985
28986         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
28987         * alias.c, cfgexpand.c, cgraphbuild.c,
28988         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
28989         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
28990         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
28991         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
28992         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
28993         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
28994         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
28995         dse.c, except.c, gengtype.c, gimple-expr.c,
28996         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
28997         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
28998         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
28999         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
29000         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
29001         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
29002         pointer-set.h.
29003         * pointer-set.c: Remove file.
29004         * pointer-set.h: Remove file.
29005
29006 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29007
29008         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
29009         * config/arm/types.md (f_sels, f_seld): Delete.
29010
29011 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29012
29013         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
29014         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
29015         (aarch64_movdi_<mode>high): Likewise.
29016         (aarch64_mov<mode>high_di): Likewise.
29017         (aarch64_movdi_<mode>low): Likewise.
29018         (aarch64_mov<mode>low_di): Likewise.
29019         (aarch64_movtilow_tilow): Likewise.
29020         Add comment explaining usage of fp,simd attributes and of
29021         TARGET_FLOAT and TARGET_SIMD.
29022
29023 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
29024             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29025
29026         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
29027         Use MOVN when one of the half-words is 0xffff.
29028
29029 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29030
29031         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
29032
29033 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29034
29035         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
29036         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
29037         (rfs_str): String corresponding to RFS_* constants.
29038         (rank_for_schedule_stats_t): New typedef.
29039         (rank_for_schedule_stats): New static variable.
29040         (rfs_result): New static function.
29041         (rank_for_schedule): Track statistics for deciding heuristics.
29042         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
29043         static functions.
29044         (ready_sort): Use them for debug printouts.
29045         (schedule_block): Init statistics state.  Print statistics on
29046         rank_for_schedule decisions.
29047
29048 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29049
29050         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
29051
29052 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
29053
29054         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
29055         constraint.
29056
29057 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
29058
29059         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
29060         function to not conflict.
29061         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
29062         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
29063         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
29064         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
29065         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
29066         of pointer_map.
29067
29068 2014-08-07  Marek Polacek  <polacek@redhat.com>
29069
29070         * fold-const.c (fold_binary_loc): Add folding of
29071         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
29072
29073 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
29074
29075         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
29076         instead of type size.
29077         (ASM_FINISH_DECLARE_OBJECT): Likewise.
29078
29079 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29080
29081         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
29082         (*thumb1_movqi_insn): Likewise.
29083         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
29084
29085 2014-08-07  Tom de Vries  <tom@codesourcery.com>
29086
29087         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29088         (glibc_2_11_or_earlier): Remove effective-target keywords.
29089
29090 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
29091
29092         * config/arm/arm.c (bdesc_2arg): Fix typo.
29093         (arm_atomic_assign_expand_fenv): Remove The default implementation.
29094
29095 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
29096
29097         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
29098
29099 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
29100
29101         PR debug/61923
29102         * haifa-sched.c (advance_one_cycle): Fix dump.
29103         (schedule_block): Don't advance cycle if we are already at the
29104         beginning of the cycle.
29105
29106 2014-08-06  Martin Jambor  <mjambor@suse.cz>
29107
29108         PR ipa/61393
29109         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
29110
29111 2014-08-06  Richard Biener  <rguenther@suse.de>
29112
29113         PR lto/62034
29114         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
29115         SCCs here.
29116         (lto_input_tree): Pop SCCs here.
29117
29118 2014-08-06  Richard Biener  <rguenther@suse.de>
29119
29120         PR tree-optimization/61320
29121         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
29122         handle misaligned loads.
29123
29124 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
29125
29126         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
29127         (aarch64_expand_vec_perm_const): Check for dup before zip.
29128
29129 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29130
29131         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
29132         CONST_INT_P instead of GET_CODE and compare.
29133         (aarch64_select_cc_mode): Likewise.
29134         (aarch64_print_operand): Likewise.
29135         (aarch64_rtx_costs): Likewise.
29136         (aarch64_simd_valid_immediate): Likewise.
29137         (aarch64_simd_check_vect_par_cnst_half): Likewise.
29138         (aarch64_simd_emit_pair_result_insn): Likewise.
29139
29140 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
29141
29142         * gdbhooks.py (find_gcc_source_dir): New helper function.
29143         (class PassNames): New class, locating and parsing passes.def.
29144         (class BreakOnPass): New command "break-on-pass".
29145
29146 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
29147
29148         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
29149         getting olde.
29150
29151 2014-08-05  Richard Biener  <rguenther@suse.de>
29152
29153         PR rtl-optimization/61672
29154         * emit-rtl.h (mem_attrs_eq_p): Declare.
29155         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
29156         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
29157         * cfgcleanup.c (merge_memattrs): Likewise.
29158         Include emit-rtl.h.
29159
29160 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29161
29162         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
29163         rather than singleton vectors.
29164         (vqdmlsls_lane_s32): Likewise.
29165
29166 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29167
29168         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
29169         Use VSDQ_HSI mode iterator.
29170         (aarch64_sqrdmulh_laneq<mode>): Likewise.
29171         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
29172         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
29173         Use BUILTIN_VDQHS macro.
29174         (sqrdmulh_laneq): Likewise.
29175         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
29176         (vqdmlals_laneq_s32): Likewise.
29177         (vqdmlslh_laneq_s16): Likewise.
29178         (vqdmlsls_laneq_s32): Likewise.
29179         (vqdmulhh_laneq_s16): Likewise.
29180         (vqdmulhs_laneq_s32): Likewise.
29181         (vqrdmulhh_laneq_s16): Likewise.
29182         (vqrdmulhs_laneq_s32): Likewise.
29183
29184 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29185
29186         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
29187         (vmuld_laneq_f64): Likewise.
29188         (vmuls_laneq_f32): Likewise.
29189         (vmul_n_f64): Likewise.
29190         (vmuld_lane_f64): Reimplement in C.
29191         (vmuls_lane_f32): Likewise.
29192
29193 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29194
29195         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
29196         to reservation.
29197         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
29198
29199 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29200
29201         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
29202         (rbitsi2): Likewise.
29203         (*arm_rev): Set predicable and predicable_short_it attributes.
29204
29205 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29206
29207         * convert.c (convert_to_integer): Guard transformation to lrint by
29208         -fno-math-errno.
29209
29210 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
29211
29212         * config/aarch64/aarch64-builtins.c
29213         (aarch64_simd_builtin_type_mode): Delete.
29214         (v8qi_UP): Remap to V8QImode.
29215         (v4hi_UP): Remap to V4HImode.
29216         (v2si_UP): Remap to V2SImode.
29217         (v2sf_UP): Remap to V2SFmode.
29218         (v1df_UP): Remap to V1DFmode.
29219         (di_UP): Remap to DImode.
29220         (df_UP): Remap to DFmode.
29221         (v16qi_UP):V16QImode.
29222         (v8hi_UP): Remap to V8HImode.
29223         (v4si_UP): Remap to V4SImode.
29224         (v4sf_UP): Remap to V4SFmode.
29225         (v2di_UP): Remap to V2DImode.
29226         (v2df_UP): Remap to V2DFmode.
29227         (ti_UP): Remap to TImode.
29228         (ei_UP): Remap to EImode.
29229         (oi_UP): Remap to OImode.
29230         (ci_UP): Map to CImode.
29231         (xi_UP): Remap to XImode.
29232         (si_UP): Remap to SImode.
29233         (sf_UP): Remap to SFmode.
29234         (hi_UP): Remap to HImode.
29235         (qi_UP): Remap to QImode.
29236         (aarch64_simd_builtin_datum): Make mode a machine_mode.
29237         (VAR1): Build builtin name.
29238         (aarch64_init_simd_builtins): Remove dead code.
29239
29240 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29241
29242         * graphite-isl-ast-to-gimple.c:
29243         (set_options): New function.
29244         (scop_to_isl_ast): Add calling of set_options.
29245
29246 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
29247
29248         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
29249         (analyze_iv_to_split_insn): Don't initialize them.
29250         (get_ivts_expr): Removed.
29251         (allocate_basic_variable, insert_base_initialization): Use
29252         SET_SRC instead of *get_ivts_expr.
29253         (split_iv): Use &SET_SRC instead of get_ivts_expr.
29254
29255 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29256
29257         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
29258         (translate_isl_ast_for_loop): Add checking of the
29259         flag_loop_parallelize_all.
29260         (ast_build_before_for): New function.
29261         (scop_to_isl_ast): Add checking of the
29262         flag_loop_parallelize_all.
29263         * graphite-dependences.c: Move the defenition of the
29264         scop_get_dependences from graphite-optimize-isl.c to this file.
29265         (apply_schedule_on_deps): Add checking of the ux's emptiness.
29266         (carries_deps): Add checking of the x's value.
29267         * graphite-optimize-isl.c: Move the defenition of the
29268         scop_get_dependences to graphite-dependences.c.
29269         * graphite-poly.h: Add declarations of scop_get_dependences
29270         and carries_deps.
29271
29272 2014-08-04  Rohit  <rohitarulraj@freescale.com>
29273
29274         PR target/60102
29275         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
29276         names.
29277         (alt_reg_names): Likewise.
29278         (rs6000_dwarf_register_span): For SPE high registers, replace
29279         dwarf register numbers with GCC hard register numbers.
29280         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
29281         (rs6000_dbx_register_number): For SPE high registers, return dwarf
29282         register number for the corresponding GCC hard register number.
29283         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
29284         newly added GCC hard register numbers for SPE high registers.
29285         (DWARF_FRAME_REGISTERS):  Likewise.
29286         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
29287         (DWARF_FRAME_REGNUM): Likewise.
29288         (FIXED_REGISTERS): Likewise.
29289         (CALL_USED_REGISTERS): Likewise.
29290         (CALL_REALLY_USED_REGISTERS): Likewise.
29291         (REG_ALLOC_ORDER): Likewise.
29292         (enum reg_class): Likewise.
29293         (REG_CLASS_NAMES): Likewise.
29294         (REG_CLASS_CONTENTS): Likewise.
29295         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
29296
29297 2014-08-04  Richard Biener  <rguenther@suse.de>
29298
29299         * gimple-fold.h (gimple_fold_builtin): Remove.
29300         * gimple-fold.c (gimple_fold_builtin): Make static.
29301         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
29302         fold_stmt, not gimple_fold_builtin.
29303
29304 2014-08-04  Martin Liska <mliska@suse.cz>
29305
29306         * cgraph.h (csi_end_p): Removed.
29307         (csi_next): Likewise.
29308         (csi_node): Likewise.
29309         (csi_start): Likewise.
29310         (cgraph_node_in_set_p): Likewise.
29311         (cgraph_node_set_size): Likewise.
29312         (vsi_end_p): Likewise.
29313         (vsi_next): Likewise.
29314         (vsi_node): Likewise.
29315         (vsi_start): Likewise.
29316         (varpool_node_set_size): Likewise.
29317         (cgraph_node_set_nonempty_p): Likewise.
29318         (varpool_node_set_nonempty_p): Likewise.
29319         * cgraphunit.c (cgraph_process_new_functions): vec replaces
29320         cgraph_node_set.
29321         * ipa-inline-transform.c: Likewise.
29322         * ipa-utils.c (cgraph_node_set_new): Removed.
29323         (cgraph_node_set_add): Likewise.
29324         (cgraph_node_set_remove): Likewise.
29325         (cgraph_node_set_find): Likewise.
29326         (dump_cgraph_node_set): Likewise.
29327         (debug_cgraph_node_set): Likewise.
29328         (free_cgraph_node_set): Likewise.
29329         (varpool_node_set_new): Likewise.
29330         (varpool_node_set_add): Likewise.
29331         (varpool_node_set_remove): Likewise.
29332         (varpool_node_set_find): Likewise.
29333         (dump_varpool_node_set): Likewise.
29334         (free_varpool_node_set): Likewise.
29335         (debug_varpool_node_set): Likewise.
29336         * tree-emutls.c (struct tls_var_data):
29337         (emutls_index): Removed.
29338         (emutls_decl): Likewise.
29339         (gen_emutls_addr): Function implementation uses newly added
29340         hash_map<varpool_node *, tls_var_data>.
29341         (clear_access_vars): Likewise.
29342         (create_emultls_var): Likewise.
29343         (ipa_lower_emutls): Likewise.
29344         (reset_access): New function.
29345
29346 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29347
29348         * config/i386/i386.c (ix86_option_override_internal): Add
29349         PTA_RDRND and PTA_MOVBE for bdver4.
29350
29351 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29352             James Greenhalgh  <james.greenhalgh@arm.com>
29353
29354         * doc/md.texi (clrsb): Document.
29355         (clz): Change reference to x into operand 1.
29356         (ctz): Likewise.
29357         (popcount): Likewise.
29358
29359 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29360
29361         PR target/61713
29362         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29363         move to subtarget in serial version if result is ignored.
29364
29365 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29366             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29367
29368         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29369         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
29370         (sched_analyze_insn): Update use of try_group_insn to
29371         sched_macro_fuse_insns.
29372         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
29373         arguments that are not conditional jumps.
29374
29375 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29376
29377         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
29378         family information. Handle BTVER2 cpu with cpuid family value.
29379
29380 2014-08-04  Tom de Vries  <tom@codesourcery.com>
29381
29382         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29383         (glibc_2_11_or_earlier): Document effective-target keywords.
29384
29385 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29386
29387         * ipa-devirt.c (odr_type_warn_count): Add type.
29388         (possible_polymorphic_call_targets): Set it.
29389         (ipa_devirt): Use it.
29390
29391 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29392
29393         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
29394         Document.
29395         * ipa-devirt.c: Include hash-map.h
29396         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
29397         (clear_speculation): Break out of ...
29398         (get_class_context): ... here; speed up handling obviously useless
29399         speculations.
29400         (odr_type_warn_count, decl_warn_count): New structures.
29401         (final_warning_record): New structure.
29402         (final_warning_records): New static variable.
29403         (possible_polymorphic_call_targets): Cleanup handling of
29404         speculative info; do not build speculation when user do not care;
29405         record info about warnings when asked for.
29406         (add_decl_warning): New function.
29407         (type_warning_cmp): New function.
29408         (decl_warning_cmp): New function.
29409         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
29410         (gate): Enable pass when warnings are requested.
29411         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
29412         options.
29413
29414 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29415
29416         * hash-map.h (default_hashmap_traits::mark_key_deleted):
29417         Fix cast.
29418         (hash_map::remove): New method.
29419         (hash_map::traverse): New method.
29420         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
29421         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
29422         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
29423         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
29424         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
29425         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
29426         pointer_map.
29427
29428 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29429
29430         * hash-set.h: new File.
29431         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
29432         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
29433         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
29434         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
29435         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
29436         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
29437         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
29438         varpool.c: Use hash_set instead of pointer_set.
29439
29440 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
29441
29442         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
29443
29444 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29445
29446         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
29447         for frame access when strict_p is false.
29448
29449 2014-08-01  Renlin Li <renlin.li@arm.com>
29450 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29451
29452         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
29453         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
29454         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
29455         Declaration.
29456         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
29457         predicate.
29458         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
29459         aarch64_mem_pair_offset.
29460
29461 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29462
29463         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
29464         offset.
29465         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
29466         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
29467
29468 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
29469
29470         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
29471
29472 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
29473
29474         PR regression/61510
29475         * cgraphunit.c (analyze_functions): Use get_create rather than get
29476         for decls which are clones of abstract functions.
29477
29478 2014-08-01  Martin Liska  <mliska@suse.cz>
29479
29480         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
29481         * ipa-prop.h (count_formal_params): Global function created from static.
29482         * ipa-prop.c (count_formal_params): Likewise.
29483         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
29484         profiles for semantically equivalent functions.
29485         * passes.c (do_per_function): If we load body of a function
29486         during WPA, this condition should behave same.
29487         * varpool.c (ctor_for_folding): More tolerant assert for variable
29488         aliases created during WPA.
29489
29490 2014-08-01  Martin Liska  <mliska@suse.cz>
29491
29492         * doc/invoke.texi (Options That Control Optimization): Documentation
29493         for -foptimize-strlen introduced. Optimization levels default options
29494         fixed.
29495
29496 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
29497
29498         * opts.c (common_handle_option): Handle -fsanitize=alignment.
29499         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
29500         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
29501         type to bool.
29502         * stor-layout.h (min_align_of_type): New prototype.
29503         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
29504         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
29505         check.
29506         * ubsan.c: Include builtins.h.
29507         (ubsan_expand_bounds_ifn): Change return type to bool,
29508         always return true.
29509         (ubsan_expand_null_ifn): Change return type to bool, change
29510         argument to gimple_stmt_iterator *.  Handle both null and alignment
29511         sanitization, take type from ckind argument's type rather than
29512         first argument.
29513         (instrument_member_call): Removed.
29514         (instrument_mem_ref): Remove t argument, add mem and base arguments.
29515         Handle both null and alignment sanitization, don't say whole
29516         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
29517         call instead of 2 argument.
29518         (instrument_null): Adjust instrument_mem_ref caller.  Don't
29519         instrument calls here.
29520         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
29521         like SANITIZE_NULL.
29522         * stor-layout.c (min_align_of_type): New function.
29523         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
29524         Or it into SANITIZE_UNDEFINED.
29525         * doc/invoke.texi (-fsanitize=alignment): Document.
29526
29527 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29528
29529         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
29530
29531 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29532
29533         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
29534         inchash.
29535         (vn_reference_compute_hash): Dito.
29536         (vn_nary_op_compute_hash): Dito.
29537         (vn_phi_compute_hash): Dito.
29538         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
29539
29540 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29541
29542         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
29543         Rename to inchash:add_expr_commutative. Convert to inchash.
29544         (iterative_hash_hashable_expr): Rename to
29545         inchash:add_hashable_expr. Convert to inchash.
29546         (avail_expr_hash): Dito.
29547
29548 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29549
29550         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
29551         Convert to inchash.
29552
29553 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29554
29555         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
29556
29557 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29558
29559         * Makefile.in (OBJS): Add rtlhash.o
29560         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
29561         (loc_checksum): Dito.
29562         (loc_checksum_ordered): Dito.
29563         (hash_loc_operands): Dito.
29564         (hash_locs): Dito.
29565         (hash_loc_list): Dito.
29566         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
29567         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
29568         * rtlhash.c: New file.
29569         * rtlhash.h: New file.
29570
29571 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29572
29573         * inchash.h (inchash): Change inchash class to namespace.
29574         (class hash): ... Rename from inchash.
29575         (add_object): Move from macro to class template.
29576         * lto-streamer-out.c (hash_tree): Change inchash
29577         to inchash::hash.
29578         * tree.c (build_type_attribute_qual_variant): Dito.
29579         (type_hash_list): Dito.
29580         (attribute_hash_list): Dito.
29581         (iterative_hstate_expr): Rename to inchash::add_expr
29582         (build_range_type_1): Change inchash to inchash::hash
29583         and use hash::add_expr.
29584         (build_array_type_1): Dito.
29585         (build_function_type): Dito
29586         (build_method_type_directly): Dito.
29587         (build_offset_type): Dito.
29588         (build_complex_type): Dito.
29589         (make_vector_type): Dito.
29590         * tree.h (iterative_hash_expr): Dito.
29591
29592 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
29593
29594         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
29595
29596 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29597
29598         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
29599         correct alphabetical position.
29600         (vpaddd_f64): Rewrite using builtins.
29601         (vpaddd_s64): Move to correct alphabetical position.
29602         (vpaddd_u64): New.
29603
29604 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
29605
29606         PR target/61844
29607         * config/sh/sh.c (sh_legitimate_address_p,
29608         sh_legitimize_reload_address): Handle reg+reg address modes when
29609         ALLOW_INDEXED_ADDRESS is false.
29610         * config/sh/predicates.md (general_movsrc_operand,
29611         general_movdst_operand): Likewise.
29612
29613 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29614
29615         * config/aarch64/aarch64-builtins.c
29616         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
29617         BYTES_BIG_ENDIAN.
29618
29619 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29620
29621         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
29622         the generated mask based on BYTES_BIG_ENDIAN.
29623         (aarch64_simd_check_vect_par_cnst_half): New.
29624         * config/aarch64/aarch64-protos.h
29625         (aarch64_simd_check_vect_par_cnst_half): New.
29626         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
29627         the check out to aarch64_simd_check_vect_par_cnst_half.
29628         (vect_par_cnst_lo_half): Likewise.
29629         * config/aarch64/aarch64-simd.md
29630         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
29631         (move_hi_quad_<mode>): Always generate a low mask.
29632
29633 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29634
29635         * doc/invoke.texi (AVR Options): Add documentation about
29636         __AVR_DEVICE_NAME__ built-in macro.
29637
29638 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
29639
29640         PR target/61948
29641         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
29642         constraints are satisfied.
29643         (<shift>di3_neon): Likewise.
29644
29645 2014-07-31  Richard Biener  <rguenther@suse.de>
29646
29647         PR tree-optimization/61964
29648         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
29649         by structural equality.
29650
29651 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
29652
29653         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
29654         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
29655         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
29656         New enums.
29657         * gcc.c (sanitize_spec_function): Support new option.
29658         (SANITIZER_SPEC): Remove now redundant check.
29659         * opts.c (common_handle_option): Support new option.
29660         (finish_options): Check for incompatibilities.
29661         * toplev.c (process_options): Split userspace-specific checks.
29662
29663 2014-07-31  Richard Biener  <rguenther@suse.de>
29664
29665         * lto-streamer.h (struct output_block): Remove global.
29666         (struct data_in): Remove labels, num_named_labels and
29667         num_unnamed_labels.
29668         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
29669         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
29670
29671 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
29672
29673         PR c++/60517
29674         * common.opt (-Wreturn-local-addr): Moved from c.opt.
29675         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
29676         (isolate_path): New argument to avoid inserting a trap.
29677         (find_implicit_erroneous_behaviour): Handle returning the address
29678         of a local variable.
29679         (find_explicit_erroneous_behaviour): Likewise.
29680
29681 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
29682
29683         PR lto/61868
29684         * toplev.c (init_random_seed): Move piece of code never called to
29685         set_random_seed.
29686         (set_random_seed): see above.
29687
29688 2014-07-31  Tom de Vries  <tom@codesourcery.com>
29689
29690         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
29691
29692 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
29693
29694         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
29695         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
29696
29697 2014-07-31  Richard Biener  <rguenther@suse.de>
29698
29699         * data-streamer.h (streamer_write_data_stream): Declare here,
29700         renamed from ...
29701         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
29702         * lto-cgraph.c (lto_output_node): Adjust.
29703         (lto_output_varpool_node): Likewise.
29704         * data-streamer-out.c (streamer_string_index): Likewise.
29705         (streamer_write_data_stream, lto_append_block): Move from ...
29706         * lto-section-out.c (lto_output_data_stream,
29707         lto_append_block): ... here.
29708
29709 2014-07-30  Mike Stump  <mikestump@comcast.net>
29710
29711         * configure.ac: Also check for popen.
29712         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
29713         * configure: Regenerate.
29714         * config.in:  Regenerate.
29715
29716 2014-07-30  Martin Jambor  <mjambor@suse.cz>
29717
29718         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
29719         parameter to gimple.
29720
29721 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29722
29723         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
29724         address as second parameter to __tpf_eh_return routine.
29725
29726 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
29727
29728         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
29729         Thumb2.
29730
29731 2014-07-30  Tom Tromey  <tromey@redhat.com>
29732
29733         PR c/59855
29734         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
29735         * doc/extend.texi (Type Attributes): Document designated_init
29736         attribute.
29737
29738 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
29739
29740         * graphite-isl-ast-to-gimple.c:
29741         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
29742         (gcc_expression_from_isl_expression): Pass type to
29743         gcc_expression_from_isl_ast_expr_id.
29744
29745 2014-07-30  Richard Biener  <rguenther@suse.de>
29746
29747         * lto-streamer.h (lto_write_data): New function.
29748         * langhooks.c (lhd_append_data): Do not free block.
29749         * lto-section-out.c (lto_write_data): New function writing
29750         raw data to the current section.
29751         (lto_write_stream): Adjust for langhook semantic change.
29752         (lto_destroy_simple_output_block): Write header directly.
29753         * lto-opts.c (lto_write_options): Write options directly.
29754         * lto-streamer-out.c (produce_asm): Write heaeder directly.
29755         (lto_output_toplevel_asms): Likewise.
29756         (copy_function_or_variable): Copy data directly.
29757         (write_global_references): Output index table directly.
29758         (lto_output_decl_state_refs): Likewise.
29759         (write_symbol): Write data directly.
29760         (produce_symtab): Adjust.
29761         (produce_asm_for_decls): Output header and refs directly.
29762
29763 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29764
29765         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
29766         to speculative_targets
29767         (get_class_context): Fix handling of contextes without outer type;
29768         avoid matching non-polymorphic types in LTO.
29769         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
29770         parameter to speculative_targetsp; handle speculation.
29771         (dump_possible_polymorphic_call_targets): Update dumping.
29772
29773 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29774
29775         * common.opt (Wodr): Enable by default.
29776
29777 2014-07-29  Olivier Hainque  <hainque@adacore.com>
29778
29779         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
29780
29781 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
29782
29783         PR bootstrap/61914
29784         * gengtype.c (strtoken): New function.
29785         (create_user_defined_type): Replace strtok with strtoken.
29786
29787 2014-07-29  Nathan Sidwell  <nathan@acm.org>
29788
29789         * gcov-io.c (gcov_var): Make hidden.
29790         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
29791         (gcov_do_dump): Declare.
29792         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
29793
29794 2014-07-29  Martin Jambor  <mjambor@suse.cz>
29795
29796         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
29797         parameter to gimple.
29798         (sra_modify_assign): Likewise.
29799
29800 2014-07-29  Richard Biener  <rguenther@suse.de>
29801
29802         PR middle-end/52478
29803         * expr.c (expand_expr_real_2): Revert last change.
29804
29805 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29806
29807         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
29808         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
29809         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
29810         call.
29811         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
29812         (contains_type_p): Forward declare.
29813         (polymorphic_call_target_hasher::hash): Hash speculative info.
29814         (polymorphic_call_target_hasher::equal): Compare speculative info.
29815         (get_class_context): Handle speuclation.
29816         (contains_type_p): Update.
29817         (get_polymorphic_call_info_for_decl): Update.
29818         (walk_ssa_copies): Break out from ...
29819         (get_polymorphic_call_info): ... here; set speculative context
29820         before giving up.
29821         * ipa-prop.c (ipa_write_indirect_edge_info,
29822         ipa_read_indirect_edge_info): Stream speculative context.
29823         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
29824         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
29825         SPECULATIVE_MAYBE_DERIVED_TYPE).
29826         (possible_polymorphic_call_targets overriders): Update.
29827         (dump_possible_polymorphic_call_targets overriders): Update.
29828         (dump_possible_polymorphic_call_target_p overriders): Update.
29829
29830 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29831
29832         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
29833         ipa-devirt path; fix thinko there.
29834
29835 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
29836
29837         * config/i386/i386.c (ix86_return_in_memory): Replace one
29838         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
29839
29840 2014-07-28  Marek Polacek  <polacek@redhat.com>
29841
29842         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
29843
29844 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
29845
29846         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
29847         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
29848         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
29849         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29850         (USE_LD_AS_NEEDED): Likewise.
29851         (ASM_APP_ON): Likewise.
29852         (ASM_APP_OFF): Likewise.
29853         (TARGET_POSIX_IO): Likewise.
29854         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
29855         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29856         (USE_LD_AS_NEEDED): Likewise.
29857         (ASM_APP_ON): Likewise.
29858         (ASM_APP_OFF): Likewise.
29859         (TARGET_POSIX_IO): Likewise.
29860
29861 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
29862
29863         PR middle-end/61734
29864         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
29865         operators other than the equality operators.
29866
29867 2014-07-28  Richard Biener  <rguenther@suse.de>
29868
29869         PR middle-end/52478
29870         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
29871         sure to register SImode ones, not only >= word_mode ones.
29872         * expr.c (expand_expr_real_2): When expanding -ftrapv
29873         binops do not use OPTAB_LIB_WIDEN.
29874
29875 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
29876
29877         PR middle-end/61919
29878         * tree-outof-ssa.c (insert_partition_copy_on_edge)
29879         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
29880         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
29881         inserting them in the insn stream.
29882
29883 2014-07-28  Marek Polacek  <polacek@redhat.com>
29884
29885         PR middle-end/61913
29886         * common.opt (Wodr): Add Var.
29887
29888 2014-07-28  Richard Biener  <rguenther@suse.de>
29889
29890         PR tree-optimization/61921
29891         * tree-ssa-structalias.c (create_variable_info_for_1): Check
29892         if there is a varpool node before dereferencing it.
29893
29894 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29895
29896         * graphite-sese-to-poly.c:
29897         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
29898         id of the pbb), which contains pointer to the pbb1.
29899
29900         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
29901
29902 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29903
29904         * graphite-isl-ast-to-gimple.c:
29905         (graphite_create_new_guard): New function.
29906         (translate_isl_ast_node_if): New function.
29907         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
29908
29909         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
29910
29911 2014-07-27  Anthony Green  <green@moxielogic.com>
29912
29913         * config.gcc: Add moxie-*-moxiebox* configuration.
29914         * config/moxie/moxiebox.h: New file.
29915
29916 2014-07-26  Andrew Pinski  <apinski@cavium.com>
29917
29918         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
29919         from the read only register.
29920
29921 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29922
29923         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
29924         as the allocation class if it isn't likely to be spilled.
29925
29926 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29927
29928         * rtl.h (tls_referenced_p): Declare.
29929         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
29930         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
29931         (mips_cannot_force_const_mem): Use tls_referenced_p.
29932         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
29933         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
29934         instead of pa_tls_referenced_p.
29935         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
29936         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
29937         (pa_legitimate_constant_p): Likewise.
29938         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
29939         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
29940         (rs6000_cannot_force_const_mem, rs6000_emit_move)
29941         (rs6000_address_for_altivec): Use tls_referenced_p instead of
29942         rs6000_tls_referenced_p.
29943         (rs6000_tls_symbol_ref_1): Delete.
29944
29945 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
29946
29947         PR target/44551
29948         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
29949         Optimize inverse of a VEC_CONCAT.
29950
29951 2014-07-25  Xinliang David Li  <davidxl@google.com>
29952
29953         * params.def: New parameter.
29954         * coverage.c (get_coverage_counts): Check new flag.
29955         (coverage_compute_profile_id): Check new flag.
29956         (coverage_begin_function): Check new flag.
29957         (coverage_end_function): Check new flag.
29958         * value-prof.c (coverage_node_map_initialized_p): New function.
29959         (init_node_map): Populate map with all functions.
29960         * doc/invoke.texi: Document new parameter.
29961
29962 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
29963             Richard Biener <rguenther@suse.de>
29964
29965         * lto-streamer-out.c (struct sccs): Turn to ...
29966         (class DFS): ... this one; refactor the DFS walk so it can
29967         be re-done on per-SCC basis.
29968         (DFS::DFS): New constructor.
29969         (DFS::~DFS): New destructor.
29970         (hash_tree): Add new MAP argument holding in-SCC hash values;
29971         remove POINTER_TYPE hashing hack.
29972         (scc_entry_compare): Rename to ...
29973         (DFS::scc_entry_compare): ... this one.
29974         (hash_scc): Rename to ...
29975         (DFS::hash_scc): ... this one; pass output_block instead
29976         of streamer_cache; work harder to get unique and stable SCC
29977         hashes.
29978         (DFS_write_tree): Rename to ...
29979         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
29980         (lto_output_tree): Update.
29981
29982 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29983
29984         * lto-streamer-out.c (hash_tree): Convert to inchash.
29985
29986 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29987
29988         * tree.c (build_type_attribute_qual_variant): Use inchash.
29989         (type_hash_list): Dito.
29990         (attribute_hash_list): Dito
29991         (iterative_hstate_expr): Dito.
29992         (iterative_hash_expr): Dito.
29993         (build_range_type_1): Dito.
29994         (build_array_type_1): Dito.
29995         (build_function_type): Dito.
29996         (build_method_type_directly): Dito.
29997         (build_offset_type): Dito.
29998         (build_complex_type): Dito.
29999         (make_vector_type): Dito.
30000         * tree.h (iterative_hash_expr): Add compat wrapper.
30001         (iterative_hstate_expr): Add.
30002
30003 2014-07-25  Andi Kleen  <ak@linux.intel.com>
30004
30005         * Makefile.in (OBJS): Add inchash.o.
30006         (PLUGIN_HEADERS): Add inchash.h.
30007         * ipa-devirt.c: Include inchash.h.
30008         * lto-streamer-out.c: Dito.
30009         * tree-ssa-dom.c: Dito.
30010         * tree-ssa-pre.c: Dito.
30011         * tree-ssa-sccvn.c: Dito.
30012         * tree-ssa-tail-merge.c: Dito.
30013         * asan.c: Dito.
30014         * tree.c (iterative_hash_hashval_t): Move to ...
30015         (iterative_hash_host_wide_int): Move to ...
30016         * inchash.c: Here. New file.
30017         * tree.h (iterative_hash_hashval_t): Move to ...
30018         (iterative_hash_host_wide_int): Move to ...
30019         * inchash.h: Here. New file.
30020
30021 2014-07-25  Richard Biener  <rguenther@suse.de>
30022
30023         PR middle-end/61762
30024         PR middle-end/61894
30025         * fold-const.c (native_encode_int): Add and handle offset
30026         parameter to do partial encodings of expr.
30027         (native_encode_fixed): Likewise.
30028         (native_encode_real): Likewise.
30029         (native_encode_complex): Likewise.
30030         (native_encode_vector): Likewise.
30031         (native_encode_string): Likewise.
30032         (native_encode_expr): Likewise.
30033         * fold-const.c (native_encode_expr): Add offset parameter
30034         defaulting to -1.
30035         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
30036         (fold_ctor_reference): Handle all reads from tcc_constant
30037         ctors.
30038
30039 2014-07-25  Richard Biener  <rguenther@suse.de>
30040
30041         * tree-inline.c (estimate_move_cost): Mark speed_p argument
30042         as possibly unused.
30043
30044 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
30045
30046         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
30047
30048 2014-07-24  Kyle McMartin  <kyle@redhat.com>
30049
30050         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
30051
30052 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30053
30054         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
30055         Add prototype.
30056         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
30057         function.
30058         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
30059         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
30060         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
30061
30062 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30063
30064         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
30065         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
30066         aggregate types.  Instead, *all* aggregate types, except for single-
30067         element or homogeneous float/vector aggregates, are quadword-aligned
30068         if required by their type alignment.  Issue -Wpsabi note when a type
30069         is now treated differently than before.
30070
30071 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30072
30073         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
30074         does not fit fully into floating-point registers, and there is still
30075         space in the register parameter area, use GPRs to pass those parts
30076         of the argument.  Issue -Wpsabi note if any parameter is now treated
30077         differently than before.
30078         (rs6000_arg_partial_bytes): Update.
30079
30080 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
30081
30082         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
30083
30084 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30085
30086         * rtl.h (target_rtl): Remove lang_dependent_initialized.
30087         * toplev.c (initialize_rtl): Don't use it.  Move previously
30088         "language-dependent" calls to...
30089         (backend_init): ...here.
30090         (lang_dependent_init_target): Don't set lang_dependent_initialized.
30091         Assert that RTL initialization hasn't happend yet.
30092
30093 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30094
30095         PR rtl-optimization/61629
30096         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
30097         they have already been initialized.
30098
30099 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30100
30101         PR middle-end/61268
30102         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
30103         DECL_INCOMING_RTL and entry_parm.
30104         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
30105         * calls.c (load_register_parameters): Likewise argument values.
30106         (emit_library_call_value_1, store_one_arg): Likewise argument
30107         save areas.
30108         * config/i386/i386.c (assign_386_stack_local): Likewise the local
30109         stack slot.
30110         * explow.c (validize_mem): Modify the argument in-place.
30111
30112 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30113
30114         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
30115         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
30116
30117 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30118
30119         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
30120         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
30121
30122 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30123
30124         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
30125         (aarch64_save_callee_saves): New parameter "skip_wb".
30126         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
30127
30128 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30129
30130         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
30131         "wb_candidate2".
30132         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
30133
30134 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30135
30136         * graphite-isl-ast-to-gimple.c:
30137         (graphite_create_new_loop): Add calling of isl_id_free to properly
30138         decrement reference counts.
30139
30140         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
30141
30142 2014-07-24  Martin Liska  <mliska@suse.cz>
30143         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
30144         function used.
30145         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
30146         (rs6000_code_end): Likewise.
30147
30148 2014-07-24  Martin Liska  <mliska@suse.cz>
30149
30150         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
30151         symtab_node funtion used.
30152         (rs6000_xcoff_declare_object_name): Likewise.
30153
30154 2014-07-24  Martin Liska  <mliska@suse.cz>
30155
30156         * cgraphunit.c (compile): Correct function used.
30157
30158 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30159
30160         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
30161         as non-indexable.
30162
30163 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30164
30165         PR lto/61802
30166         * varasm.c (bss_initializer_p): Handle offlined ctors.
30167         (align_variable, get_variable_align): Likewise.
30168         (make_decl_one_only): Likewise.
30169         (default_binds_local_p_1): Likewise.
30170         (decl_binds_to_current_def_p): Likewise.
30171         (get_variable_section): Get constructor if it is offlined.
30172         (assemble_variable_contents): Sanity check that the caller
30173         streamed in the ctor in LTO.
30174
30175 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30176
30177         * graphite-isl-ast-to-gimple.c:
30178         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
30179         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
30180         isl_ast_op_pdiv_r to the different case.
30181
30182         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
30183
30184 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30185
30186         PR middle-end/61876
30187         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
30188         when flag_errno_math is on.
30189
30190 2014-07-24  Martin Liska  <mliska@suse.cz>
30191
30192         * cgraph.h (varpool_node):
30193         (availability get_availability (void)):
30194         created from cgraph_variable_initializer_availability
30195         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
30196         created from: cgraph_variable_initializer_availability
30197         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
30198         (void finalize_named_section_flags (void)):
30199         created from varpool_finalize_named_section_flags
30200         (bool assemble_decl (void)): created from varpool_assemble_decl
30201         (void analyze (void)): created from varpool_analyze_node
30202         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
30203         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
30204         (void remove_initializer (void)): created from varpool_remove_initializer
30205         (tree get_constructor (void)): created from varpool_get_constructor
30206         (bool externally_visible_p (void)): created from varpool_externally_visible_p
30207         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
30208         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
30209         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
30210         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
30211         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
30212         (static bool output_variables (void)): created from varpool_output_variables
30213         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
30214         created from varpool_extra_name_alias
30215         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
30216         (static void dump_varpool (FILE *f)): created from dump_varpool
30217         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
30218         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
30219         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
30220         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
30221         (void assemble_aliases (void)): created from assemble_aliases
30222
30223 2014-07-24  Martin Liska  <mliska@suse.cz>
30224
30225         * cgraph.h (symtab_node):
30226         (void register_symbol (void)): created from symtab_register_node
30227         (void remove (void)): created from symtab_remove_node
30228         (void dump (FILE *f)): created from dump_symtab_node
30229         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
30230         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
30231         (struct ipa_ref *add_reference (symtab_node *referred_node,
30232         enum ipa_ref_use use_type)): created from add_reference
30233         (struct ipa_ref *add_reference (symtab_node *referred_node,
30234         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
30235         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
30236         gimple stmt)): created from maybe_add_reference
30237         (bool semantically_equivalent_p (symtab_node *target)): created from
30238         symtab_semantically_equivalent_p
30239         (void remove_from_same_comdat_group (void)): created from
30240         remove_from_same_comdat_group
30241         (void add_to_same_comdat_group (symtab_node *old_node)): created from
30242         symtab_add_to_same_comdat_group
30243         (void dissolve_same_comdat_group_list (void)): created from
30244         symtab_dissolve_same_comdat_group_list
30245         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
30246         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
30247         created from symtab_alias_ultimate_target
30248         (inline symtab_node *next_defined_symbol (void)): created from
30249         symtab_next_defined_symbol
30250         (bool resolve_alias (symtab_node *target)): created from
30251         symtab_resolve_alias
30252         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
30253         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
30254         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
30255         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
30256         (void set_section (const char *section)): created from set_section_1
30257         (enum availability get_availability (void)): created from symtab_node_availability
30258         (void make_decl_local (void)): created from symtab_make_decl_local
30259         (bool real_symbol_p (void)): created from symtab_read_node
30260         (can_be_discarded_p (void)): created from symtab_can_be_discarded
30261         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
30262         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
30263         symtab_in_same_comdat_p;
30264         (bool address_taken_from_non_vtable_p (void)): created from
30265         address_taken_from_non_vtable_p
30266         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
30267         (static void dump_table (FILE *)): created from dump_symtab
30268         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
30269         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
30270         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
30271         symtab_used_from_object_file_p
30272         (void dump_base (FILE *)): created from dump_symtab_base
30273         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
30274         (void unregister (void)): created from symtab_unregister_node
30275         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
30276         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
30277         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
30278         symtab_nonoverwritable_alias_1
30279         * cgraph.h (cgraph_node):
30280         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
30281         created from cgraph_remove_node_and_inline_clones
30282         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
30283         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
30284         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
30285         (cgraph_node *function_symbol (enum availability *avail = NULL)):
30286         created from cgraph_function_node
30287         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
30288         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
30289         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
30290         created from cgraph_create_clone
30291         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
30292         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
30293         created from cgraph_create_virtual_clone
30294         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
30295         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
30296         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
30297         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
30298         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
30299         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
30300         created from cgraph_function_version_info
30301         (struct cgraph_function_version_info *insert_new_function_version (void)):
30302         created from insert_new_cgraph_node_version
30303         (struct cgraph_function_version_info *function_version (void)): created from
30304         get_cgraph_node_version
30305         (void analyze (void)): created from analyze_function
30306         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
30307         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
30308         tree real_alias) cgraph_add_thunk
30309         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
30310         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
30311         created from cgraph_function_or_thunk_node
30312         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
30313         created from expand_thunk
30314         (void reset (void)): created from cgraph_reset_node
30315         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
30316         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
30317         (void remove (void)): created from cgraph_remove_node
30318         (void dump (FILE *f)): created from dump_cgraph_node
30319         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
30320         (bool get_body (void)): created from cgraph_get_body
30321         (void release_body (void)): created from cgraph_release_function_body
30322         (void unnest (void)): created from cgraph_unnest_node
30323         (void make_local (void)): created from cgraph_make_node_local
30324         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30325         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30326         gcov_type count, int freq)): created from cgraph_create_edge
30327         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30328         gcov_type count, int freq)): created from cgraph_create_indirect_edge
30329         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30330         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30331         created from cgraph_create_edge_including_clones
30332         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30333         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30334         (void remove_callers (void)): created from cgraph_node_remove_callers
30335         (void remove_callees (void)): created from cgraph_node_remove_callees
30336         (enum availability get_availability (void)): created from cgraph_function_body_availability
30337         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30338         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30339         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30340         (void call_duplication_hooks (cgraph_node *node2)): created from
30341         cgraph_call_node_duplication_hooks
30342         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30343         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30344         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30345         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30346         (void call_function_insertion_hooks (void)):
30347         created from cgraph_call_function_insertion_hooks
30348         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30349         (bool local_p (void)): created from cgraph_local_node
30350         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30351         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30352         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30353         (inline bool only_called_directly_or_aliased_p (void)):
30354         created from cgraph_only_called_directly_or_aliased_p
30355         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30356         created from cgraph_will_be_removed_from_program_if_no_direct_calls
30357         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30358         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30359         (bool can_remove_if_no_direct_calls_p (void)):
30360         created from cgraph_can_remove_if_no_direct_calls_p
30361         (inline bool has_gimple_body_p (void)):
30362         created from cgraph_function_with_gimple_body_p
30363         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30364         (static void dump_cgraph (FILE *f)): created from dump_cgraph
30365         (static inline void debug_cgraph (void)): created from debug_cgraph
30366         (static void record_function_versions (tree decl1, tree decl2)):
30367         created from record_function_versions
30368         (static void delete_function_version (tree decl)):
30369         created from delete_function_version
30370         (static void add_new_function (tree fndecl, bool lowered)):
30371         created from cgraph_add_new_function
30372         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
30373         (static cgraph_node * create (tree decl)): created from cgraph_create_node
30374         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
30375         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
30376         (static cgraph_node *get_for_asmname (tree asmname)):
30377         created from cgraph_node_for_asm
30378         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
30379         created from cgraph_same_body_alias
30380         (static bool used_from_object_file_p_worker (cgraph_node *node,
30381         void *): new function
30382         (static bool non_local_p (cgraph_node *node, void *)):
30383         created from cgraph_non_local_node_p_1
30384         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
30385         created from verify_cgraph
30386         (static bool make_local (cgraph_node *node, void *)):
30387         created from cgraph_make_node_local
30388         (static cgraph_node *create_alias (tree alias, tree target)):
30389         created from cgraph_create_function_alias
30390         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
30391         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
30392         created from cgraph_create_edge_1
30393         * cgraph.h (varpool_node):
30394         (void remove (void)): created from varpool_remove_node
30395         (void dump (FILE *f)): created from dump_varpool_node
30396
30397 2014-07-24  Richard Biener  <rguenther@suse.de>
30398
30399         PR ipa/61823
30400         * tree-ssa-structalias.c (create_variable_info_for_1):
30401         Use varpool_get_constructor.
30402         (create_variable_info_for): Likewise.
30403
30404 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30405
30406         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
30407         subtract outgoing area size when restoring stack_pointer_rtx.
30408
30409 2014-07-24  Nick Clifton  <nickc@redhat.com>
30410
30411         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
30412         that operations are taking place in parallel.
30413         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
30414
30415 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
30416
30417         * omp-low.c (extract_omp_for_data): Add missing break statement.
30418
30419 2014-07-24  Richard Biener  <rguenther@suse.de>
30420
30421         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
30422         * tree-inline.c (estimate_move_cost): Add speed_p parameter
30423         and adjust MOVE_RATIO query accordingly.
30424         (estimate_num_insns): Adjust callers.
30425         * ipa-prop.c (ipa_populate_param_decls): Likewise.
30426         * ipa-cp.c (gather_context_independent_values,
30427         estimate_local_effects): Likewise.
30428         * ipa-split.c (consider_split): Likewise.
30429
30430 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
30431
30432         * config/i386/driver-i386.c: Remove names of unused arguments and
30433         unnecessary unused attributes.
30434         * config/i386/host-mingw32.c: Likewise.
30435         * config/i386/i386.c: Likewise.
30436         * config/i386/winnt-stubs.c: Likewise.
30437         * config/i386/winnt.c: Likewise.
30438
30439 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30440
30441         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
30442         (aarch64_gen_loadwb_pair): New helper function.
30443         (aarch64_expand_epilogue): Simplify code using new helper functions.
30444         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
30445
30446 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30447
30448         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
30449         (aarch64_gen_storewb_pair): New helper function.
30450         (aarch64_expand_prologue): Simplify code using new helper functions.
30451         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
30452
30453 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30454
30455         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
30456         Rename to aarch64_save_callee_saves, remove restore code.
30457         (aarch64_restore_callee_saves): New function.
30458
30459 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30460
30461         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
30462         (aarch64_save_callee_saves): New function to handle reg save
30463         for both core and vectore regs.
30464
30465 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30466
30467         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
30468         (aarch64_gen_store_pair): New helper function.
30469         (aarch64_save_or_restore_callee_save_registers)
30470         (aarch64_save_or_restore_fprs): Use new helper functions.
30471
30472 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30473
30474         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
30475         (aarch64_save_or_restore_callee_save_registers)
30476         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
30477
30478 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30479
30480         * config/aarch64/aarch64.c
30481         (aarch64_save_or_restore_callee_save_registers)
30482         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
30483
30484 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30485
30486         * config/aarch64/aarch64.c
30487         (aarch64_save_or_restore_callee_save_registers)
30488         (aarch64_save_or_restore_fprs): Remove 'increment'.
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): Use register offset in
30495         cfun->machine->frame.reg_offset.
30496
30497 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30498
30499         * config/aarch64/aarch64.c
30500         (aarch64_save_or_restore_callee_save_registers)
30501         (aarch64_save_or_restore_fprs): Remove base_rtx.
30502
30503 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30504
30505         * config/aarch64/aarch64.c
30506         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
30507         to 'start_offset'.  Remove local variable 'start_offset'.
30508
30509 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30510
30511         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
30512         type to HOST_WIDE_INT.
30513
30514 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30515
30516         * config/aarch64/aarch64.c (aarch64_expand_prologue)
30517         (aarch64_save_or_restore_fprs)
30518         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
30519
30520 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30521
30522         * config/arm/t-rtems-eabi: Add
30523         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
30524         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
30525         mbig-endian/mthumb/march=armv7-r, and
30526         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
30527         multilibs.
30528
30529 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30530             Chris Johns <chrisj@rtems.org>
30531             Joel Sherrill <joel.sherrill@oarcorp.com>
30532
30533         * config.gcc: Add nios2-*-rtems*.
30534         * config/nios2/rtems.h: New file.
30535         * gcc/config/nios2/t-rtems: New file.
30536
30537 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
30538
30539         PR target/61396
30540         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
30541         constant numbers, not general constants.
30542         (rs6000_expand_vector_init): Ditto.
30543
30544 2014-07-23  Nathan Sidwell  <nathan@acm.org>
30545
30546         * gcov-tool.c (gcov_list): Declare here.
30547         (set_gcov_list): Remove.
30548         (gcov_output_files): Set gcov_list directly.
30549
30550 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
30551
30552         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
30553
30554 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30555
30556         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
30557         callee-saved registers are available for padding purpose
30558         and r3 is not mandatory, then prefer use those callee-saved
30559         instead of r3.
30560
30561 2014-07-23  Richard Biener  <rguenther@suse.de>
30562
30563         * params.def (PARAM_MAX_COMBINE_INSNS): New.
30564         * combine.c: Include statistics.h and params.h.
30565         (combine_instructions): Guard three and four insn combines
30566         with max-combine-insns value.  Record statistics for combines
30567         performed.
30568         * doc/invoke.texi (max-combine-insns): Document new param.
30569
30570 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30571
30572         * graphite-isl-ast-to-gimple.c:
30573         (translate_isl_ast_node_block): New function.
30574         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
30575
30576         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
30577         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
30578
30579 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30580
30581         * graphite-isl-ast-to-gimple.c:
30582         (get_max_schedule_dimensions): New function.
30583         (extend_schedule): Likewise.
30584         (generate_isl_schedule): Add calling of extend_schedule and
30585         get_max_schedule_dimensions.
30586
30587 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30588
30589         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
30590         (case UNSPEC): Handle UNSPEC_RBIT.
30591
30592 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30593
30594         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
30595         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
30596
30597 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30598
30599         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
30600
30601 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
30602
30603         * graphite-isl-ast-to-gimple.c:
30604         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
30605         (ivs_params_clear):
30606         (build_iv_mapping): New function.
30607         (translate_isl_ast_node_user): Likewise.
30608         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
30609
30610         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
30611         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
30612         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
30613
30614 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30615
30616         PR target/55701
30617         * config/arm/arm.md (setmem): New pattern.
30618         * config/arm/arm-protos.h (struct tune_params): New fields.
30619         (arm_gen_setmem): New prototype.
30620         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
30621         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30622         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30623         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
30624         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
30625         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
30626         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
30627         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30628         (arm_const_inline_cost): New function.
30629         (arm_block_set_max_insns): New function.
30630         (arm_block_set_non_vect_profit_p): New function.
30631         (arm_block_set_vect_profit_p): New function.
30632         (arm_block_set_unaligned_vect): New function.
30633         (arm_block_set_aligned_vect): New function.
30634         (arm_block_set_unaligned_non_vect): New function.
30635         (arm_block_set_aligned_non_vect): New function.
30636         (arm_block_set_vect, arm_gen_setmem): New functions.
30637
30638 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30639
30640         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
30641
30642 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
30643
30644         PR target/61855
30645         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
30646         out of #ifdef __OPTIMIZE__.
30647
30648 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30649
30650         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
30651         different trapping status if -fnon-call-exceptions is enabled.
30652
30653 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30654
30655         * expr.c (store_field): Handle VOIDmode for calls that return values
30656         in multiple locations.
30657
30658 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30659
30660         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
30661         (altivec_vsldoi_<mode>): Likewise.
30662
30663 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30664
30665         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
30666         to the number of characters in the line.
30667
30668 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30669
30670         * graphite-isl-ast-to-gimple.c: Add using of
30671         build_nonstandard_integer_type instead of int128_integer_type_node.
30672
30673 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
30674
30675         * toplev.c (output_stack_usage): Adjust the location of the warning.
30676
30677 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
30678
30679         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
30680         (*membar_storeload): Disable for LEON3.
30681
30682 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30683
30684         PR rtl-optimization/61461
30685         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
30686
30687 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
30688
30689         PR target/61794
30690         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
30691         Fix instruction constraint.
30692         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
30693
30694 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
30695
30696         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
30697
30698 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
30699
30700         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
30701         GNU coding standards.
30702         (nds32_register_move_cost): Likewise.
30703         (nds32_memory_move_cost): Likewise.
30704         (nds32_address_cost): Likewise.
30705
30706 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30707
30708         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
30709
30710 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
30711
30712         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
30713         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
30714         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
30715         (HAVE_sync_compare_and_swapqi): Define.
30716         (HAVE_sync_compare_and_swaphi): Likewise.
30717         (HAVE_sync_compare_and_swapsi): Likewise.
30718
30719 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
30720
30721         * config/mips/p5600.md: Add missing cpu tests.
30722
30723 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30724
30725         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
30726         (vmla_f64): Likewise.
30727         (vfms_f64): Likewise.
30728         (vmls_f64): Likewise.
30729
30730 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30731
30732         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
30733         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
30734
30735 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30736
30737         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
30738         (vmlal_high_lane_s32): Likewise.
30739         (vmlal_high_lane_u16): Likewise.
30740         (vmlal_high_lane_u32): Likewise.
30741         (vmlsl_high_lane_s16): Likewise.
30742         (vmlsl_high_lane_s32): Likewise.
30743         (vmlsl_high_lane_u16): Likewise.
30744         (vmlsl_high_lane_u32): Likewise.
30745
30746 2014-07-17  Terry Guo  <terry.guo@arm.com>
30747
30748         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
30749         (alus_reg): Renamed to alus_sreg.
30750         * config/arm/arm-fixed.md: Change type of non-dsp instructions
30751         from alu_reg to alu_sreg.  Change type of dsp instructions from
30752         alu_reg to alu_dsp_reg.
30753         * config/arm/thumb1.md: Likewise.
30754         * config/arm/thumb2.md: Likewise.
30755         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
30756         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
30757         with alu_sreg and alus_sreg.
30758         * config/arm/arm1026ejs.md (alu_op): Likewise.
30759         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
30760         * config/arm/arm926ejs.md (9_alu_op): Likewise.
30761         * config/arm/fa526.md (526_alu_op): Likewise.
30762         * config/arm/fa606te.md (606te_alu_op): Likewise.
30763         * config/arm/fa626te.md (626te_alu_op): Likewise.
30764         * config/arm/fa726te.md (726te_alu_op): Likewise.
30765         * config/arm/fmp626.md (mp626_alu_op): Likewise.
30766         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
30767         alu_sreg, alu_dsp_reg and alus_sreg.
30768         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
30769         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30770         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30771         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
30772         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
30773         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30774         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30775         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30776         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
30777         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
30778         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
30779         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
30780         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
30781         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
30782         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
30783         alus_reg to alus_sreg.
30784
30785 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
30786
30787         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
30788         infinity format.
30789
30790 2014-07-17  Richard Biener  <rguenther@suse.de>
30791
30792         PR rtl-optimization/61801
30793         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
30794         don't set reg_pending_barrier if it appears in a debug-insn.
30795
30796 2014-07-16  DJ Delorie  <dj@redhat.com>
30797
30798         * config/rx/rx.c (rx_option_override): Fix alignment values.
30799         (rx_align_for_label): Likewise.
30800
30801 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
30802
30803         PR target/61737.
30804         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
30805         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
30806         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
30807         functions.
30808         (cris_print_index, cris_print_operand, cris_constant_index_p)
30809         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
30810         (cris_address_cost): Ditto last CONSTANT_P.
30811         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
30812         callers changed.  Yield cris_offsettable_symbol for non-PIC
30813         constant symbolic expressions including labels.  Yield cris_unspec
30814         for all unspecs.
30815         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
30816         target to pic_offset_table_rtx for calls that will likely go
30817         through PLT, const0_rtx when they can't.  All callers changed.
30818         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
30819         symbolic expressions to be PICified.  Remove second, redundant,
30820         assert on can_create_pseudo_p returning non-zero.  Use
30821         replace_equiv_address_nv, not replace_equiv_address, for final
30822         operand update.
30823         * config/cris/cris.md ("movsi"): Move variable t to pattern
30824         toplevel. Adjust assert for new cris_symbol_type member.  Use
30825         CONSTANT_P instead of CONSTANT_ADDRESS_P.
30826         ("*movsi_internal") <case 9>: Make check for valid unspec operands
30827         for lapc stricter.
30828         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
30829         ("call", "call_value"): Use second incoming operand as a marker
30830         for pic-offset-table-register being used.
30831         ("*expanded_call_non_v32", "*expanded_call_v32")
30832         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
30833         second incoming operand to CALL, match cris_call_type_marker.
30834         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
30835         ("*expanded_call_side"): Ditto.  Fix typo in comment.
30836         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
30837         CONSTANT_P.
30838         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
30839         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
30840         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
30841         users changed.  Add members cris_offsettable_symbol and cris_unspec.
30842         (cris_symbol_type): Rename from cris_pic_symbol_type.
30843         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
30844         just CONSTANT_P.
30845         * config/cris/cris-protos.h (cris_symbol_type_of,
30846         cris_expand_pic_call_address): Adjust prototypes.
30847         (cris_legitimate_constant_p): New prototype.
30848
30849         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
30850         an existing tmake_file.  Don't add t-slibgcc and t-linux.
30851
30852 2014-07-17  Jason Merrill  <jason@redhat.com>
30853
30854         PR c++/61623
30855         * symtab.c (symtab_remove_from_same_comdat_group): Also
30856         set_comdat_group to NULL_TREE.
30857         (verify_symtab): Fix diagnostic.
30858
30859 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
30860
30861         PR target/61662
30862         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
30863
30864 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
30865
30866         Support location tracking for built-in macro tokens
30867         * input.h (is_location_from_builtin_token): New function declaration.
30868         * input.c (is_location_from_builtin_token): New function definition.
30869         * toplev.c (general_init): Tell libcpp what the pre-defined
30870         spelling location for built-in tokens is.
30871
30872 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
30873
30874         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
30875         on the FUNCTION_DECL.
30876
30877 2014-07-16  Richard Biener  <rguenther@suse.de>
30878
30879         PR other/61782
30880         * doc/extend.texi (always_inline): Clarify.
30881
30882 2014-07-15  Eric Christopher  <echristo@gmail.com>
30883
30884         * doc/invoke.texi (Link Options): Document -z option.
30885
30886 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
30887
30888         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
30889         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
30890
30891 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
30892
30893         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
30894
30895 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
30896
30897         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
30898         varpool_assemble_decl.
30899         * varpool.c (varpool_assemble_decl): Assert that node->definition is
30900         true.
30901
30902 2014-07-15  Michael Matz  <matz@suse.de>
30903
30904         PR rtl-optimization/61772
30905         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
30906
30907 2014-07-15  Richard Biener  <rguenther@suse.de>
30908
30909         * opts.c (default_options_table): Disable bit-ccp at -Og.
30910
30911 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30912
30913         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
30914
30915 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30916
30917         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
30918         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
30919         call langhook for unknown declaration.
30920         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
30921         * tree.h (DECL_ARGUMENTS): Update.
30922         * print-tree.c (print_node): Update.
30923         * tree-core.h (tree_decl_non_common): Remove arguments.
30924         (tree_function_decl): Add arguments.
30925
30926 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
30927
30928         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
30929
30930 2014-07-14  Richard Biener  <rguenther@suse.de>
30931
30932         PR tree-optimization/61779
30933         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
30934         simplifying a condition.
30935
30936 2014-07-14  Richard Biener  <rguenther@suse.de>
30937
30938         * builtins.c (c_strlen): Make only_value == 2 really only
30939         affect warning generation.
30940
30941 2014-07-14  Richard Biener  <rguenther@suse.de>
30942
30943         PR tree-optimization/61757
30944         PR tree-optimization/61783
30945         PR tree-optimization/61787
30946         * tree-ssa-dom.c (record_equality): Revert canonicalization
30947         change and add comment.
30948         (propagate_rhs_into_lhs): Revert previous fix, removing
30949         loop depth restriction again.
30950
30951 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30952
30953         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
30954         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30955         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30956         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
30957         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30958         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30959         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30960
30961 2014-07-14  Richard Biener  <rguenther@suse.de>
30962
30963         * cgraph.h (decl_in_symtab_p): Make inline.
30964
30965 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
30966
30967         PR middle-end/61294
30968         * doc/invoke.texi (-Wmemset-transposed-args): Document.
30969
30970         PR target/61656
30971         * config/i386/i386.c (classify_argument): Don't merge classes above
30972         number of words.
30973
30974 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
30975
30976         * cgraph.h (symtab_node): Add nonzero_address.
30977         (decl_in_symtab_p): Break out from ...
30978         (symtab_get_node): ... here.
30979         * fold-const.c: Include cgraph.h
30980         (tree_single_nonzero_warnv_p): Use symtab to determine
30981         if symbol is non-zero.
30982         * symtab.c (symtab_node::nonzero_address): New method.
30983
30984 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30985
30986         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
30987         forgotten in previous commit.
30988
30989 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30990
30991         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
30992         on builtin types.
30993         * ipa-devirt.c: Include stor-layout.h and intl.h
30994         (odr_subtypes_equivalent_p): New function.
30995         (warn_odr): New function.
30996         (warn_type_mismatch): New function.
30997         (odr_types_equivalent_p): New function.
30998         (add_type_duplicate): Use it.
30999         * common.opt (Wodr): New flag.
31000         * doc/invoke.texi (Wodr): Document new warning.
31001
31002 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
31003
31004         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
31005         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
31006         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
31007         (varpool_get_constructor): Push CTORS_IN timevar.
31008         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
31009
31010 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
31011
31012         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
31013         Remove VOID_FTYPE_PUSHORT.
31014         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
31015         Change code to USHORT_FTYPE_VOID.
31016         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
31017         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
31018         (ix86_atomic_assign_expand_fenv): Update for
31019         __builtin_ia32_fnstsw changes.
31020         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
31021         (fnstsw): Change operand 0 to nonimmediate operand.
31022
31023 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31024
31025         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
31026         (varpool_get_constructor): New function.
31027         (varpool_ctor_useable_for_folding_p): Break out from ...
31028         (ctor_for_folding): ... here; use varpool_get_constructor.
31029         (varpool_assemble_decl): Likewise.
31030         * lto-streamer.h (struct output_block): Turn cgraph_node
31031         to symbol filed.
31032         (lto_input_variable_constructor): Declare.
31033         * ipa-visibility.c (function_and_variable_visibility): Use
31034         varpool_get_constructor.
31035         * cgraph.h (varpool_get_constructor): Declare.
31036         (varpool_ctor_useable_for_folding_p): New function.
31037         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
31038         parameter; return error_mark_node for non-trivial constructors.
31039         (lto_write_tree_1, DFS_write_tree): Update use of
31040         get_symbol_initial_value.
31041         (output_function): Update initialization of symbol.
31042         (output_constructor): New function.
31043         (copy_function): Rename to ..
31044         (copy_function_or_variable): ... this one; handle vars too.
31045         (lto_output): Output variable sections.
31046         * lto-streamer-in.c (input_constructor): New function.
31047         (lto_read_body): Rename from ...
31048         (lto_read_body_or_constructor): ... this one; handle vars too.
31049         (lto_input_variable_constructor): New function.
31050         * ipa-prop.c (ipa_prop_write_jump_functions,
31051         ipa_prop_write_all_agg_replacement): Update.
31052         * lto-cgraph.c (compute_ltrans_boundary): Use it.
31053         (output_cgraph_opt_summary): Set symbol to NULL.
31054
31055 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31056
31057         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
31058         non-polymorphic types.
31059         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
31060         * ipa-devirt.c (types_same_for_odr): Do not explode when one
31061         of types is not polymorphic.
31062
31063 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
31064
31065         * lra-constraints.c (remove_inheritance_pseudos): Process
31066         destination pseudo too.
31067
31068 2014-07-11  Rong Xu  <xur@google.com>
31069
31070         * gcov-tool.c (gcov_output_files): Fix build error introduced in
31071         commit r212448.
31072
31073 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
31074
31075         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
31076         * config/avr/avr-devices.c (AVR_MCU): Same.
31077         (avr_mcu_types): add text start value to end of device list.
31078         * config/avr/avr-mcus.def: Add text section start for all devices.
31079         (ata5782): Add new avr5 device.
31080         (ata5831): Same.
31081         * config/avr/avr-tables.opt: Regenerate.
31082         * config/avr/avr.h: Add declaration for text section start handler.
31083         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
31084         SPEC functions.
31085         (LINK_SPEC): Include text section start handler to linker spec.
31086         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
31087         pass -Ttext option to linker if the text section start for the device
31088         is not zero.
31089         * config/avr/t-multilib: Regenerate.
31090         * doc/avr-mmcu.texi: Regenerate.
31091
31092 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
31093
31094         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
31095         * config/rs6000/aix52.h (LINK_SPEC): Same.
31096         * config/rs6000/aix53.h (LINK_SPEC): Same.
31097         * config/rs6000/aix61.h (LINK_SPEC): Same.
31098         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
31099
31100 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
31101
31102         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
31103         (graphite_verify): New function.
31104         (ivs_params_clear): New function.
31105         (gcc_expression_from_isl_ast_expr_id): New function.
31106         (gcc_expression_from_isl_expr_int): New function.
31107         (binary_op_to_tree): New function.
31108         (ternary_op_to_tree): New function.
31109         (unary_op_to_tree): New function.
31110         (nary_op_to_tree): New function.
31111         (gcc_expression_from_isl_expr_op): New function.
31112         (gcc_expression_from_isl_expression): New function.
31113         (graphite_create_new_loop): New function.
31114         (translate_isl_ast_for_loop): New function.
31115         (get_upper_bound): New function.
31116         (graphite_create_new_loop_guard): New function.
31117         (translate_isl_ast_node_for): New function.
31118         (translate_isl_ast): New function.
31119         (add_parameters_to_ivs_params): New function.
31120         (scop_to_isl_ast): New parameter ip.
31121         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
31122
31123 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31124
31125         * config/xtensa/predicates.md (call expander): Update for
31126         DECL_SECTION_NAME being string.
31127
31128 2014-07-11  Richard Biener  <rguenther@suse.de>
31129
31130         PR middle-end/61473
31131         * builtins.c (fold_builtin_memory_op): Inline memory moves that
31132         can be implemented with a single load followed by a single store.
31133         (c_strlen): Only warn when only_value is not 2.
31134
31135 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
31136
31137         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
31138
31139 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
31140
31141         PR target/61561
31142         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
31143         (*movhi_bytes): Likewise.
31144         (*arm_movqi_insn): Likewise.
31145
31146 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
31147
31148         PR target/56858
31149         * config/alpha/alpha.c: Include tree-pass.h, context.h
31150         and pass_manager.h.
31151         (pass_data_handle_trap_shadows): New pass.
31152         (pass_handle_trap_shadows::gate): New pass gate function.
31153         (make_pass_handle_trap_shadows): New function.
31154         (rest_of_handle_trap_shadows): Ditto.
31155
31156         (alpha_align_insns_1): Rename from alpha_align_insns.
31157         (pass_data_align_insns): New pass.
31158         (pass_align_insns::gate): New pass gate function.
31159         (make_pass_aling_insns): New function.
31160         (rest_of_align_insns): Ditto.
31161         (alpha_align_insns): Ditto.
31162
31163         (alpha_option_override): Declare handle_trap_shadows info
31164         and align_insns_info.  Register handle_trap_shadows and align_insns
31165         passes here.
31166         (alpha_reorg): Do not call alpha_trap_shadows and
31167         alpha_align_insn from here.
31168
31169         (alpha_pad_function_end): Do not skip BARRIERs.
31170
31171 2014-07-10  Rong Xu  <xur@google.com>
31172
31173         Add gcov-tool: an offline gcda profile processing tool support.
31174         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
31175         (gcov_is_error): Ditto.
31176         (gcov_read_string): Ditto.
31177         (gcov_read_sync): Ditto.
31178         * gcov-io.h: Move counter defines to gcov-counter.def.
31179         * gcov-dump.c (tag_counters): Use gcov-counter.def.
31180         * coverage.c: Ditto.
31181         * gcov-tool.c: Offline gcda profile processing tool.
31182         (unlink_gcda_file): Remove one gcda file.
31183         (unlink_profile_dir): Remove gcda files from the profile path.
31184         (gcov_output_files): Output gcda files to an output dir.
31185         (profile_merge): Merge two profiles in directory.
31186         (print_merge_usage_message): Print merge usage.
31187         (merge_usage): Print merge usage and exit.
31188         (do_merge): Driver for profile merge sub-command.
31189         (profile_rewrite): Rewrite profile.
31190         (print_rewrite_usage_message): Print rewrite usage.
31191         (rewrite_usage): Print rewrite usage and exit.
31192         (do_rewrite): Driver for profile rewrite sub-command.
31193         (print_usage): Print gcov-info usage and exit.
31194         (print_version): Print gcov-info version.
31195         (process_args): Process arguments.
31196         (main): Main routine for gcov-tool.
31197         * Makefile.in: Build and install gcov-tool.
31198         * gcov-counter.def: New file split from gcov-io.h.
31199         * doc/gcc.texi: Include gcov-tool.texi.
31200         * doc/gcov-tool.texi: Document for gcov-tool.
31201
31202 2014-07-10  Richard Biener  <rguenther@suse.de>
31203
31204         PR tree-optimization/61757
31205         * tree-ssa-dom.c (loop_depth_of_name): Restore.
31206         (propagate_rhs_into_lhs): Revert part of last change.
31207
31208 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
31209
31210         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
31211         FUNCTION_DECLs.
31212
31213 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
31214
31215         PR middle-end/53590
31216         * function.c (allocate_struct_function): Revert r188667 change.
31217
31218         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
31219
31220 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
31221
31222         * doc/install.texi: Remove links to defunct package providers for
31223         Solaris.
31224
31225 2014-07-09  Tom de Vries  <tom@codesourcery.com>
31226
31227         * final.c (get_call_fndecl): Declare.
31228         (self_recursive_call_p): New function.
31229         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
31230
31231 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31232
31233         * ipa-devirt.c (record_node): Walk through aliases.
31234
31235 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31236
31237         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
31238
31239 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31240
31241         Revert:
31242         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31243
31244 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31245
31246         * ipa-visibility.c (function_and_variable_visibility): Remove
31247         temporary hack disabling local aliases on AIX.
31248
31249 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31250
31251         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
31252         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
31253
31254 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31255
31256         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
31257         * rs6000/rs6000.c: Inline output of .set instruction.
31258         (declare_alias_data): New struct.
31259         (rs6000_declare_alias): New function.
31260         (rs6000_xcoff_declare_function_name): Use it.
31261         (rs6000_xcoff_declare_object_name): New function.
31262         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
31263         (ASM_OUTPUT_DEF): Turn to empty definition.
31264
31265 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31266
31267         PR bootstrap/61679
31268         * hash-table.h: use hash_table::value_type instead of
31269         Descriptor::value_type in the return types of several methods.
31270
31271 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31272
31273         * tree-pass.h (pass_data): Remove has_execute member.
31274         * passes.c (execute_one_pass): Don't check pass->has_execute.
31275         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31276         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31277         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31278         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31279         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31280         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31281         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31282         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31283         gimple-low.c, gimple-ssa-isolate-paths.c,
31284         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31285         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
31286         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
31287         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
31288         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
31289         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31290         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
31291         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
31292         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
31293         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
31294         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
31295         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31296         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31297         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31298         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31299         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31300         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31301         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31302         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31303         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31304         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31305         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31306         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
31307         web.c: Remove initializer for pass_data::has_execute.
31308
31309 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31310
31311         * graphite-htab.h: Use hash_map instead of hash_table.
31312         * graphite-clast-to-gimple.c: Adjust.
31313         * passes.c: Use hash_map instead of hash_table.
31314         * sese.c: Likewise.
31315         * sese.h: Remove now unused code.
31316
31317 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
31318
31319         PR target/61599
31320         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
31321         than zero.
31322
31323 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31324
31325         PR rtl-optimization/61673
31326         * combine.c (simplify_comparison): Test just mode's sign bit
31327         in tmode rather than the sign bit and any bits above it.
31328
31329 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
31330
31331         * graphite-isl-ast-to-gimple.c (generate_isl_context):
31332         Add __isl_give to the declaration.
31333         (generate_isl_schedule): Likewise.
31334         (scop_to_isl_ast): Likewise.
31335
31336 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31337
31338         * config/arm/arm.c (cortexa5_extra_costs): New table.
31339         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31340
31341 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31342
31343         PR tree-optimization/61725
31344         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31345         range, use range_includes_zerop_p instead of integer_zerop on
31346         vr0->min, only use log2 of max if min is not negative.
31347
31348 2014-07-08  Richard Biener  <rguenther@suse.de>
31349
31350         * tree-ssa-dom.h (loop_depth_of_name): Remove.
31351         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31352         restriction on loop depth difference.
31353         (record_equality): Likewise.
31354         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
31355         (loop_depth_of_name): Remove.
31356         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31357         restriction on loop depth difference.
31358         (init_copy_prop): Likewise.
31359
31360 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31361
31362         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31363         parameter.
31364         (walk_aliased_vdefs): Likewise.
31365         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31366         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31367         (detect_type_change_from_memory_writes): Check if entry was reached.
31368
31369 2014-07-08  Richard Biener  <rguenther@suse.de>
31370
31371         PR tree-optimization/61681
31372         * tree-ssa-structalias.c (find_what_var_points_to): Expand
31373         NONLOCAL inside ESCAPED.
31374
31375 2014-07-08  Richard Biener  <rguenther@suse.de>
31376
31377         PR tree-optimization/61680
31378         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31379         Handle properly all read-write dependences with group accesses.
31380
31381 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
31382
31383         PR tree-optimization/61576
31384         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
31385         block containing reduction statement is predecessor of phi basi block.
31386
31387 2014-07-08  Marek Polacek  <polacek@redhat.com>
31388
31389         PR c/60226
31390         * fold-const.c (round_up_loc): Change the parameter type.
31391         Remove assert.
31392         * fold-const.h (round_up_loc): Adjust declaration.
31393         * stor-layout.c (finalize_record_size): Check for too large types.
31394
31395 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
31396
31397         * symtab.c: Include calls.h.
31398         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
31399
31400 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
31401
31402         * config/rs6000/rs6000.c (output_vec_const_move): Handle
31403         little-endian code generation.
31404         * config/rs6000/spe.md (spe_evmergehi): Rename to...
31405         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
31406         (spe_evmergehilo): Rename to...
31407         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
31408         (spe_evmergelo): Rename to...
31409         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
31410         (spe_evmergelohi): Rename to...
31411         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
31412         (spe_evmergehi, spe_evmergehilo): New expanders.
31413         (spe_evmergelo, spe_evmergelohi): Likewise.
31414         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
31415         (*frob_tf_ti): Likewise.
31416         (*frob_<mode>_di_2): Likewise.
31417         (*frob_tf_di_8_2): Likewise.
31418         (*frob_di_<mode>): Likewise.
31419         (*frob_ti_tf): Likewise.
31420         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
31421         (*frob_ti_<mode>_8_2): Likewise.
31422         (*frob_ti_tf_2): Likewise.
31423         (mov_si<mode>_e500_subreg0): Rename to...
31424         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
31425         endianness only.
31426         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
31427         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
31428         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
31429         the big endianness only.
31430         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
31431         (*mov_si<mode>_e500_subreg0_2): Rename to...
31432         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
31433         big big endianness only.
31434         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
31435         (*mov_si<mode>_e500_subreg4): Rename to...
31436         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
31437         endianness only.
31438         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
31439         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
31440         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
31441         the big endianness only.
31442         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
31443         pattern.
31444         (*mov_si<mode>_e500_subreg4_2): Rename to...
31445         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
31446         endianness only.
31447         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
31448         (*mov_sitf_e500_subreg8): Rename to...
31449         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
31450         endianness only.
31451         (*mov_sitf_e500_subreg8_le): New instruction pattern.
31452         (*mov_sitf_e500_subreg8_2): Rename to...
31453         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
31454         endianness only.
31455         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
31456         (*mov_sitf_e500_subreg12): Rename to...
31457         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
31458         endianness only.
31459         (*mov_sitf_e500_subreg12_le): New instruction pattern.
31460         (*mov_sitf_e500_subreg12_2): Rename to...
31461         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
31462         endianness only.
31463         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
31464
31465 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31466
31467         * asan.c (instrument_strlen_call): Do not instrument first byte
31468         in strlen if already instrumented.
31469
31470 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31471
31472         * config/arm/arm.opt (mwords-little-endian): Delete.
31473         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
31474         of TARGET_LITTLE_WORDS.
31475         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
31476         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
31477         warning.
31478         * doc/invoke.texi: Remove references to -mwords-little-endian.
31479
31480 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
31481
31482         * expmed.c (struct init_expmed_rtl): Change all fields but
31483         pow2 and cint from struct rtx_def to rtx.
31484         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
31485         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
31486         at the end again.
31487
31488 2014-07-06  Marek Polacek  <polacek@redhat.com>
31489
31490         PR c/6940
31491         * doc/invoke.texi: Document -Wsizeof-array-argument.
31492
31493 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
31494
31495         * wide-int.h (wide_int_storage): Change declaration from struct
31496         to class.
31497
31498 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
31499
31500         * cgraph.c (cgraph_create_indirect_edge): Update call of
31501         get_polymorphic_call_info.
31502         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
31503         (possible_polymorphic_call_targets): Add parameter call.
31504         (decl_maybe_in_construction_p): New predicate.
31505         (get_polymorphic_call_info): Add parameter call;
31506         use decl_maybe_in_construction_p.
31507         * gimple-fold.c (fold_gimple_assign): Update use of
31508         possible_polymorphic_call_targets.
31509         (gimple_fold_call): Likewise.
31510         * ipa-prop.c: Inlcude calls.h
31511         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
31512         (param_type_may_change_p): New predicate.
31513         (detect_type_change_from_memory_writes): Break out from ...
31514         (detect_type_change): ... this one; use param_type_may_change_p.
31515         (detect_type_change_ssa): Use param_type_may_change_p.
31516         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
31517
31518 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
31519
31520         PR target/49423
31521         * config/arm/arm-protos.h (arm_legitimate_address_p,
31522         arm_is_constant_pool_ref): Add prototypes.
31523         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
31524         (arm_is_constant_pool_ref) New function.
31525         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
31526         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
31527         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
31528         operand. Remove pool_range and neg_pool_range attributes.
31529         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
31530         pool_range and neg_pool_range attributes.
31531         * config/arm/constraints.md (Uh): New constraint.
31532         (Uq): Don't allow constant pool references.
31533
31534 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
31535
31536         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
31537         (move_lo_quad_internal_be_<mode>): Likewise.
31538         (move_lo_quad_<mode>): Convert to define_expand.
31539         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
31540         (aarch64_simd_move_hi_quad_be_<mode>): New.
31541         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
31542         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
31543         (aarch64_combinez_be<mode>): New.
31544         (aarch64_combine<mode>): Convert to define_expand.
31545         (aarch64_combine_internal<mode>): New.
31546         (aarch64_simd_combine<mode>): Remove bogus RTL description.
31547
31548 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31549
31550         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
31551         combination of earlyclobber and read/write modifiers.
31552
31553 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31554
31555         * config/aarch64/aarch64-simd.md
31556         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
31557
31558 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
31559
31560         PR target/61714
31561         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
31562
31563 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
31564
31565         PR middle-end/61654
31566         * cgraphunit.c (expand_thunk): Call free_dominance_info.
31567
31568         PR tree-optimization/61684
31569         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
31570         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
31571
31572 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31573             Kito Cheng  <kito@0xlab.org>
31574             Monk Chiang  <sh.chiang04@gmail.com>
31575
31576         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
31577         (nds32_symbol_load_store_p): Move to ...
31578         (nds32_fp_as_gp_check_available): Move to ...
31579         * config/nds32/nds32-fp-as-gp.c: ... here.
31580         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
31581         extern declaration.
31582
31583 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31584             Kito Cheng  <kito@0xlab.org>
31585             Monk Chiang  <sh.chiang04@gmail.com>
31586
31587         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
31588         (nds32_expand_store_multiple): Move to ...
31589         (nds32_expand_movmemqi): Move to ...
31590         * config/nds32/nds32-memory-manipulation.c: ... here.
31591
31592 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31593             Kito Cheng  <kito@0xlab.org>
31594             Monk Chiang  <sh.chiang04@gmail.com>
31595
31596         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
31597         (nds32_output_casesi_pc_relative): Move to ...
31598         (nds32_output_casesi): Move to ...
31599         (nds32_mem_format): Move to ...
31600         (nds32_output_16bit_store): Move to ...
31601         (nds32_output_16bit_load): Move to ...
31602         (nds32_output_32bit_store): Move to ...
31603         (nds32_output_32bit_load): Move to ...
31604         (nds32_output_32bit_load_s): Move to ...
31605         (nds32_output_stack_push): Move to ...
31606         (nds32_output_stack_pop): Move to ...
31607         * config/nds32/nds32-md-auxiliary.c: ... here.
31608
31609 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31610             Ling-Hua Tseng  <uranus@tinlans.org>
31611
31612         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
31613         the purpose of this file.
31614
31615 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31616             Kito Cheng  <kito@0xlab.org>
31617             Monk Chiang  <sh.chiang04@gmail.com>
31618
31619         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
31620         (nds32_address_cost): Move implementation to ...
31621         * config/nds32/nds32-cost.c: ... here.
31622         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
31623         (nds32_address_cost_impl): Declare.
31624
31625 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31626             Kito Cheng  <kito@0xlab.org>
31627             Monk Chiang  <sh.chiang04@gmail.com>
31628
31629         * config/nds32/nds32.c
31630         (nds32_consecutive_registers_load_store_p): Move to ...
31631         (nds32_valid_multiple_load_store): Move to ...
31632         (nds32_valid_stack_push_pop): Move to ...
31633         (nds32_can_use_bclr_p): Move to ...
31634         (nds32_can_use_bset_p): Move to ...
31635         (nds32_can_use_btgl_p): Move to ...
31636         (nds32_can_use_bitci_p): Move to ...
31637         * config/nds32/nds32-predicates.c: ... here.
31638
31639 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31640             Kito Cheng  <kito@0xlab.org>
31641             Monk Chiang  <sh.chiang04@gmail.com>
31642
31643         * config/nds32/nds32.c
31644         (nds32_expand_builtin_null_ftype_reg): Move to ...
31645         (nds32_expand_builtin_reg_ftype_imm): Move to ...
31646         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
31647         (nds32_init_builtins): Move implementation to ...
31648         (nds32_expand_builtin): Move implementation to ...
31649         * config/nds32/nds32-intrinsic.c: ... here.
31650         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
31651         (nds32_expand_builtin_impl): Declare.
31652
31653 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31654             Kito Cheng  <kito@0xlab.org>
31655             Monk Chiang  <sh.chiang04@gmail.com>
31656
31657         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
31658         (nds32_emit_section_tail_template): Move to ...
31659         (nds32_emit_isr_jmptbl_section): Move to ...
31660         (nds32_emit_isr_vector_section): Move to ...
31661         (nds32_emit_isr_reset_conten): Move to ...
31662         (nds32_check_isr_attrs_conflict): Move to ...
31663         (nds32_construct_isr_vectors_information): Move to ...
31664         (nds32_asm_file_start): Move implementation to ...
31665         (nds32_asm_file_end): Move implementation to ...
31666         * config/nds32/nds32-isr.c: ... here.
31667         * config/nds32/nds32-protos.h
31668         (nds32_check_isr_attrs_conflict): Declare.
31669         (nds32_construct_isr_vectors_information): Declare.
31670         (nds32_asm_file_start_for_isr): Declare.
31671         (nds32_asm_file_end_for_isr): Declare.
31672
31673 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31674             Kito Cheng  <kito@0xlab.org>
31675             Monk Chiang  <sh.chiang04@gmail.com>
31676
31677         * config.gcc (nds32*): Add new modules to extra_objs.
31678         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
31679         (nds32be-*-*): Likewise.
31680         * config/nds32/nds32-cost.c: New file.
31681         * config/nds32/nds32-fp-as-gp.c: New file.
31682         * config/nds32/nds32-intrinsic.c: New file.
31683         * config/nds32/nds32-isr.c: New file.
31684         * config/nds32/nds32-md-auxiliary.c: New file.
31685         * config/nds32/nds32-memory-manipulation.c: New file.
31686         * config/nds32/nds32-pipelines-auxiliary.c: New file.
31687         * config/nds32/nds32-predicates.c: New file.
31688         * config/nds32/t-nds32: New file.
31689
31690 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31691
31692         PR tree-optimization/61682
31693         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
31694         using cases and when one of the operands is equal to 1.
31695
31696 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
31697
31698         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
31699         ashr<mode>3): Correct mode of operands[2].
31700         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
31701         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
31702         Correct mode of operands[2].  Fix split condition.
31703
31704 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
31705
31706         * arm.md (arch): Add armv6_or_vfpv3.
31707         (arch_enabled): Add test for the above.
31708         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
31709         on VFP9.
31710         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
31711
31712 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31713
31714         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
31715         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
31716         HWI 1 and negate the unsigned value.
31717         * expmed.c (expand_sdiv_pow2): For modes wider than word always
31718         use AND instead of shift.
31719         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
31720
31721 2014-07-03  Marek Polacek  <polacek@redhat.com>
31722
31723         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
31724         (-fsanitize=float-divide-by-zero): Move to the table with
31725         -fsanitize=undefined suboptions.
31726         (-fsanitize=float-cast-overflow): Likewise.
31727
31728 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
31729
31730         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
31731         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
31732         endianness.
31733
31734 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31735
31736         * loop-invariant.c (struct invariant): Add a new member: eqno;
31737         (find_identical_invariants): Update eqno;
31738         (create_new_invariant): Init eqno;
31739         (get_inv_cost): Compute comp_cost with eqno;
31740
31741 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
31742
31743         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
31744         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
31745         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
31746         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
31747         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
31748
31749 2014-07-02  Christian Bruel  <christian.bruel@st.com>
31750
31751         PR target/29349
31752         PR target/53513
31753         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
31754         (make_preds_opaque): Delete.
31755         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
31756         (commit_mode_sets): New function.
31757         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
31758         Process all modes at once.
31759         * basic-block.h (pre_edge_lcm_avs): Declare.
31760         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
31761         Call clear_aux_for_edges. Fix comments.
31762         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
31763         (pre_edge_rev_lcm): Idem.
31764         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
31765         parameter.
31766         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
31767         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
31768         Idem.
31769         * config/i386/i386.c (x96_emit_mode_set): Idem.
31770         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
31771         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
31772         (fpscr_toggle) Disallow from delay slot.
31773         * target.def (emit_mode_set): Add prev_mode parameter.
31774         * doc/tm.texi: Regenerate.
31775
31776 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31777
31778         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
31779         variable i.
31780
31781 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31782
31783         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
31784         vtable_pointer_value_to_vtable): Constify.
31785         (contains_polymorphic_type_p): Declare.
31786         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
31787         vtable_pointer_value_to_vtable): Constify.
31788         (contains_polymorphic_type_p): New predicate.
31789         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
31790         polymorphic types.
31791         (ipa_set_ancestor_jf): Likewise.
31792         (detect_type_change): Return false in easy cases.
31793         (compute_complex_assign_jump_func): Require type to contain
31794         polymorphic type.
31795         (compute_known_type_jump_func): Likewise.
31796
31797 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31798
31799         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
31800         Remove.
31801         (type_in_anonymous_namespace_p): Constify argument.
31802         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
31803         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
31804         (main_odr_variant): New function.
31805         (hash_type_name): Make static; update assert; do not ICE on
31806         non-records.
31807         (types_same_for_odr): Bring here from tree.c; simplify and remove
31808         old structural comparing code that doesn't work for templates.
31809         (odr_hasher::equal): Update assert.
31810         (add_type_duplicate): Return true when bases should be computed;
31811         replace incomplete loader by complete; do not output duplicated
31812         warnings; do not ICE on non-records; set odr_violated flag.
31813         (get_odr_type): Be ready to replace incomplete type by complete
31814         one; work on ODR variants instead of main variants; reorder item
31815         in array so bases have still smaller indexes.
31816         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
31817         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
31818
31819 2014-07-01  Cary Coutant  <ccoutant@google.com>
31820
31821         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
31822         lookup.
31823         (resolve_addr_in_expr): When replacing the rtx in a location list
31824         entry, get a new address table entry.
31825         (dwarf2out_finish): Call index_location_lists even if there are no
31826         addr_index_table entries yet.
31827
31828 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31829
31830         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
31831         change for not being obvious.
31832
31833 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31834
31835         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
31836         unused argument.
31837
31838 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31839
31840         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
31841         (vcagt_f64): Likewise.
31842         (vcale_f64): Likewise.
31843         (vcaled_f64): Likewise.
31844         (vcales_f32): Likewise.
31845         (vcalt_f64): Likewise.
31846         (vcaltd_f64): Likewise.
31847         (vcalts_f32): Likewise.
31848
31849 2014-07-01  Marek Polacek  <polacek@redhat.com>
31850
31851         * doc/invoke.texi: Document -Wint-conversion.
31852
31853 2014-07-01  Marek Polacek  <polacek@redhat.com>
31854
31855         PR c/58286
31856         * doc/invoke.texi: Document -Wincompatible-pointer-types.
31857
31858 2014-07-01  Martin Liska  <mliska@suse.cz>
31859
31860         IPA REF alias refactoring
31861         * cgraph.h (iterate_direct_aliases): New function.
31862         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
31863         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
31864         FOR_EACH_ALIAS added.
31865         (cgraph_for_node_and_aliases): Likewise.
31866         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
31867         * ipa-inline.c (reset_edge_caches): Likewise.
31868         (update_caller_keys): Likewise.
31869         * trans-mem.c (ipa_tm_execute): Likewise.
31870         *varpool.c (varpool_analyze_node): Likewise.
31871         (varpool_for_node_and_aliases): Likewise.
31872         * ipa-ref.h (first_alias): New function.
31873         (last_alias): Likewise.
31874         (has_aliases_p): Likewise.
31875         * ipa-ref.c (ipa_ref::remove_reference): Removal function
31876         is sensitive to IPA_REF_ALIASes.
31877         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
31878         are put at the beginning of the list.
31879         (symtab_node::iterate_direct_aliases): New function.
31880
31881 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31882
31883         Revert:
31884         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31885         type is complete.
31886         (write_ts_type_common_tree_pointers): Do not stream fields not set
31887         for incomplete types; do not stream duplicated fields for variants;
31888         sanity check that variant and type match.
31889         (write_ts_type_non_common_tree_pointers): Likewise.
31890         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31891         TYPE_SIZE whether type is complete.
31892         (lto_input_ts_type_common_tree_pointers): Do same changes as in
31893         write_ts_type_common_tree_pointers
31894         (lto_input_ts_type_non_common_tree_pointers): Likewise.
31895
31896 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
31897
31898         * var-tracking.c (add_stores): Return instead of asserting if old
31899         and new values for conditional store are the same.
31900
31901 2014-06-30  Richard Henderson  <rth@redhat.com>
31902
31903         PR rtl-opt/61608
31904         PR target/39284
31905         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
31906         the cfg if there were any changes.
31907         * passes.def: Revert move of peephole2 after reorder_blocks;
31908         move duplicate_computed_gotos before peephole2.
31909
31910 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
31911
31912         * except.c (emit_note_eh_region_end): New helper function.
31913         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
31914         emit EH_REGION_END note.
31915         * jump.c (cleanup_barriers): Do not split a call and its
31916         corresponding CALL_ARG_LOCATION note.
31917
31918 2014-06-30  Jeff Law  <law@redhat.com>
31919
31920         PR tree-optimization/61607
31921         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
31922         deeper into the SSA_NAME_VALUE chain.
31923
31924 2014-06-30  Marek Polacek  <polacek@redhat.com>
31925
31926         * convert.c (convert_to_integer): Don't instrument conversions if the
31927         function has no_sanitize_undefined attribute.
31928         * ubsan.c: Don't run the ubsan pass if the function has
31929         no_sanitize_undefined attribute.
31930
31931 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31932
31933         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
31934         -fsanitize=undefined suboptions.
31935
31936 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
31937
31938         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
31939         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
31940         against bigendian and adjust indices.
31941
31942 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31943
31944         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
31945
31946 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
31947
31948         PR target/61633
31949         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
31950         Add alternative; make early clobber.  Adjust both split patterns
31951         to use operand 0 as the working register.
31952
31953 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31954
31955         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
31956         as ira_object_id_map might be NULL, or 1.
31957
31958 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31959
31960         * loop-invariant.c (get_inv_cost): Handle register class.
31961         (gain_for_invariant): Check the register pressure of the inv
31962         and its overlapped register class, other than all.
31963
31964 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31965
31966         * doc/invoke.texi (Optimize Options): Fix descriptions of
31967         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
31968
31969 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
31970
31971         * doc/extend.texi (Function Attributes): Update 'naked' attribute
31972         documentation.
31973
31974 2014-06-29  Tobias Grosser <tobias@grosser.es>
31975
31976         PR bootstrap/61650
31977         * graphite-isl-ast-to-gimple.c: Add missing guards.
31978
31979 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31980
31981         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
31982         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
31983         * flag-types.h: Add new enum fgraphite_generator.
31984         * graphite-isl-ast-to-gimple.c: New.
31985         * graphite-isl-ast-to-gimple.h: New.
31986         * graphite.c (graphite_transform_loops): Add choice of Graphite
31987         code generator, which depends on flag_graphite_code_gen.
31988
31989 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31990
31991         * graphite-dependences.c (subtract_commutative_associative_deps):
31992         Add NULL checking of the following variables: must_raw_no_source,
31993         may_raw_no_source, must_war_no_source, may_war_no_source,
31994         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
31995         must_war, may_war, must_waw, may_waw.
31996
31997 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31998
31999         * graphite-clast-to-gimple.c: gloog is renamed to
32000         graphite_regenerate_ast_cloog.  gloog_error is renamed to
32001         graphite_regenerate_error.
32002         * graphite-clast-to-gimple.h: The definition of the struct
32003         bb_pbb_def is moved to graphite-htab.h.
32004         Add inclusion of the hash-table.h.
32005         * graphite-htab.h: The declaration of the function gloog is moved
32006         to graphite-clast-to-gimple.h and renamed to
32007         graphite_regenerate_ast_cloog.
32008         * graphite.c (graphite_transform_loops): gloog is renamed
32009         to graphite_regenerate_ast_cloog.
32010
32011 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32012
32013         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
32014         type is complete.
32015         (write_ts_type_common_tree_pointers): Do not stream fields not set
32016         for incomplete types; do not stream duplicated fields for variants;
32017         sanity check that variant and type match.
32018         (write_ts_type_non_common_tree_pointers): Likewise.
32019         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
32020         TYPE_SIZE whether type is complete.
32021         (lto_input_ts_type_common_tree_pointers): Do same changes as in
32022         write_ts_type_common_tree_pointers
32023         (lto_input_ts_type_non_common_tree_pointers): Likewise.
32024
32025 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32026
32027         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
32028
32029 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32030
32031         * tree-inline.c (remap_type_1): Do not duplicate fields
32032         that are shared in between type and its main variant.
32033
32034 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32035
32036         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
32037         of the type.
32038         (ipa_set_ancestor_jf) Likewise.
32039         (check_stmt_for_type_change): Check that we work on main variant.
32040         (detect_type_change): Look into main variant.
32041         (compute_known_type_jump_func): Check that main variant has BINFO.
32042
32043 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32044
32045         * ipa-devirt.c (set_type_binfo): New function.
32046         (add_type_duplicate): Use it.
32047         (get_odr_type): Sanity check that binfos points to main variants.
32048         (get_class_context): Be sure the context's outer_type is main variant.
32049         (contains_type_p): Walk main variant.
32050         (get_polymorphic_call_info_for_decl): Set outer_type to be
32051         main variant.
32052         (get_polymorphic_call_info): Likewise.
32053         (possible_polymorphic_call_targets): Sanity check that we operate
32054         on main variant.
32055
32056 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
32057
32058         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
32059
32060 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
32061
32062         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
32063         accidental change due to wide-int branch merge.
32064
32065 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32066
32067         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
32068         compressed debug support.
32069         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
32070         * configure: Regenerate.
32071         * config.in: Regenerate.
32072         * common.opt (compressed_debug_sections): New enum.
32073         (gz, gz=): New options.
32074         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
32075         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
32076         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
32077         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
32078         LINK_COMPRESS_DEBUG_SPEC.
32079         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
32080         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
32081         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
32082         (Debugging Options): Document -gz[=type].
32083
32084 2014-06-27  Martin Jambor  <mjambor@suse.cz>
32085
32086         PR ipa/61160
32087         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
32088         args_to_skip, use those from node instead.  Copy args_to_skip and
32089         combined_args_to_skip from node to the new thunk.
32090         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
32091         (cgraph_create_virtual_clone): Moved computation of
32092         combined_args_to_skip...
32093         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
32094
32095 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
32096
32097         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
32098         redundant diagnostic machinary.
32099
32100 2014-06-27  Richard Biener  <rguenther@suse.de>
32101
32102         * tree-ssa-math-opts.c (bswap_replace): Fix
32103         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
32104
32105 2014-06-27  Martin Liska  <mliska@suse.cz>
32106
32107         * gimple.h (gimple_location_safe): New function introduced.
32108         * cgraphunit.c (walk_polymorphic_call_targets): Usage
32109         of gimple_location_safe replaces gimple_location.
32110         (gimple_fold_call): Likewise.
32111         * ipa-devirt.c (ipa_devirt): Likewise.
32112         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
32113         * ipa.c (walk_polymorphic_call_targets): Likewise.
32114         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
32115
32116 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
32117
32118         PR tree-optimization/57233
32119         PR tree-optimization/61299
32120         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
32121         functions.
32122         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
32123         would be lowered to scalar shifts, check if corresponding
32124         shifts and vector BIT_IOR_EXPR are supported and don't lower
32125         or lower just to narrower vector type in that case.
32126         * expmed.c (expand_shift_1): Fix up handling of vector
32127         shifts and rotates.
32128
32129 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
32130
32131         PR target/61586
32132         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
32133
32134 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
32135
32136         * doc/invoke.texi (-fsemantic-interposition): Document.
32137         * common.opt (fsemantic-interposition): New flag.
32138         * varasm.c (decl_replaceable_p): Use it.
32139
32140 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32141
32142         PR target/61542
32143         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
32144         extraction other than index 3.
32145
32146 2014-06-26  Teresa Johnson  <tejohnson@google.com>
32147
32148         * doc/invoke.texi: Fix typo.
32149         * dumpfile.c: Add support for documented -fdump-* options
32150         optimized/missed/note/optall.
32151
32152 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32153
32154         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
32155         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
32156         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
32157         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
32158         * opts.c (default_options_optimization): Set
32159         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
32160         * doc/invoke.texi (allow-load-data-races)
32161         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
32162         (allow-store-data-races): Document the new default.
32163
32164 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32165
32166         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
32167         renamed to ipa_impossible_devirt_target.  Fix typo.
32168         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
32169         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
32170         ipa_impossible_devirt_target.
32171
32172 2014-06-26  Richard Biener  <rguenther@suse.de>
32173
32174         PR tree-optimization/61607
32175         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
32176         explaining why we restrict copies on loop depth.
32177         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32178         on loop depth.
32179         (record_equivalences_from_phis): Instead add it here.
32180
32181 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
32182
32183         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
32184         (LTO_WRAPPER_OBJS): New variable.
32185         (lto-wrapper$(exeext)): Use it.
32186         * collect2.c: Include "collect-utils.h".
32187         (verbose, debug): Remove variables.
32188         (at_file_supplied): No longer static.
32189         (tool_name): New variable.
32190         (do_wait, fork_execute, maybe_unlink): Don't declare.
32191         (tool_cleanup): No longer static.
32192         (notice): Remove function.
32193         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
32194         fork_execute calls.
32195         (collect_wait, do_wait, collect_execute): Remove functions.
32196         (maybe_unlink): No longer static.
32197         * collect2.h (verbose, debug): Don't declare.
32198         (at_file_supplied): Declare.
32199         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
32200         changed.
32201         (collect_execute): Replace with implementation from collect2, plus a
32202         new arg use_atfile.  All callers changed.
32203         (collect_wait): Replace with implementation from collect2.
32204         (maybe_unlink_file): Remove function.
32205         (fork_execute): Replace with implementation from collect2, plus a
32206         new arg use_atfile.  All callers changed.
32207         (do_wait): Add call to utils_cleanup to the error path.
32208         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
32209         (tool_cleanup): Adjust declarations.
32210         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
32211         * tlink.c: Include "collect-utils.h".
32212         (tlink_execute): New arg use_atfile.  All callers changed.
32213         (tlink_init, tlink_execute): Remove declarations.
32214
32215         * collect-utils.c (save_temps): New variable.
32216         (do_wait): Use it instead of debug.  Use fatal_error.
32217         * collect-utils.h (save_temps): Declare.
32218         * collect2.c (verbose): Rename from vflag.  All uses changed.
32219         (tool_cleanup): New function, copied from collect_atexit.
32220         (collect_atexit, handler): Just call it.
32221         * collect2.h (verbose): Declaration renamed from vflag.
32222         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
32223         debug.
32224
32225         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
32226         (lto-wrapper$(exeext)): Link with collect-utils.o.
32227         * collect-utils.c: New file.
32228         * collect-utils.h: New file.
32229         * lto-wrapper.c: Include "collect-utils.h".
32230         (args_name): Delete variable.
32231         (tool_name): New variable.
32232         (tool_cleanup): New function.
32233         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
32234         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
32235         (fork_execute): Remove functions.
32236
32237 2014-06-26  Nick Clifton  <nickc@redhat.com>
32238
32239         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
32240
32241         * doc/extend.texi (Function Attributes): Fix typo in description
32242         of RX vector attribute.
32243
32244 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
32245
32246         * config.gcc (supported_defaults): Error when passing either
32247         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
32248
32249 2014-06-26  Richard Biener  <rguenther@suse.de>
32250
32251         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32252         propagating volatile pointers.
32253
32254 2014-06-26  Richard Biener  <rguenther@suse.de>
32255
32256         PR tree-optimization/61607
32257         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
32258         loop if we redirected its latch edge.
32259         (thread_block_1): Do not cancel loops prematurely.
32260
32261 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
32262
32263         * toplev.c (backend_init_target): Move init_emit_regs and
32264         init_regs to...
32265         (backend_init) ... here; skip ira_init_once and backend_init_target.
32266         (target_reinit) ... and here; clear
32267         this_target_rtl->lang_dependent_initialized.
32268         (lang_dependent_init_target): Clear
32269         this_target_rtl->lang_dependent_initialized;
32270         break out rtl initialization to ...
32271         (initialize_rtl): ... here; call also backend_init_target
32272         and ira_init_once.
32273         * toplev.h (initialize_rtl): New function.
32274         * function.c: Include toplev.h
32275         (init_function_start): Call initialize_rtl.
32276         * rtl.h (target_rtl): Add target_specific_initialized,
32277         lang_dependent_initialized.
32278
32279 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
32280             Jakub Jelinek  <jakub@redhat.com>
32281
32282         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
32283
32284 2014-06-25  Tom de Vries  <tom@codesourcery.com>
32285
32286         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
32287
32288 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32289
32290         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
32291         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
32292         Issue a strict overflow warning if appropriate.
32293
32294 2014-06-25  Martin Liska  <mliska@suse.cz>
32295
32296         IPA REF refactoring
32297         * Makefile.in: Removed header file (ipa-ref-inline.h).
32298         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
32299         called.
32300         (cgraph_speculative_call_info): Likewise.
32301         (cgraph_for_node_thunks_and_aliases): Likewise.
32302         (cgraph_for_node_and_aliases): Likewise.
32303         (verify_cgraph_node): Likewise.
32304         * cgraph.h: Batch of IPA REF functions become member functions of
32305         symtab_node: add_reference, maybe_add_reference, clone_references,
32306         clone_referring, clone_reference, find_reference,
32307         remove_stmt_references, remove_all_references,
32308         remove_all_referring, dump_references, dump_referring,
32309         has_alias_p, iterate_reference, iterate_referring.
32310         * cgraphbuild.c (record_reference): New IPA REF function used.
32311         (record_type_list): Likewise.
32312         (record_eh_tables): Likewise.
32313         (mark_address): Likewise.
32314         (mark_load): Likewise.
32315         (mark_store): Likewise.
32316         (pass_build_cgraph_edges): Likewise.
32317         (rebuild_cgraph_edge): Likewise.
32318         (cgraph_rebuild_references): Likewise.
32319         (pass_remove_cgraph_callee_edges): Likewise.
32320         * cgraphclones.c (cgraph_clone_node): Likewise.
32321         (cgraph_create_virtual_clone): Likewise.
32322         (cgraph_materialize_clone): Likewise.
32323         (cgraph_materialize_all_clones): Likewise.
32324         * cgraphunit.c (cgraph_reset_node): Likewise.
32325         (cgraph_reset_node): Likewise.
32326         (analyze_function): Likewise.
32327         (assemble_thunks_and_aliases): Likewise.
32328         (expand_function): Likewise.
32329         * ipa-comdats.c (propagate_comdat_group): Likewise.
32330         (enqueue_references): Likewise.
32331         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32332         (create_specialized_node): Likewise.
32333         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32334         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32335         * ipa-inline.c (reset_edge_caches): Likewise.
32336         (update_caller_keys): Likewise.
32337         (execute): Likewise.
32338         * ipa-prop.c (remove_described_reference): Likewise.
32339         (propagate_controlled_uses): Likewise.
32340         (ipa_edge_duplication_hook): Likewise.
32341         (ipa_modify_call_arguments): Likewise.
32342         * ipa-pure-const.c (propagate_pure_const): Likewise.
32343         * ipa-ref-inline.h: Header file removed, functions moved
32344         to symtab_node class.
32345         * ipa-ref.c (remove_reference): New class member function.
32346         (cannot_lead_to_return): New class member function.
32347         (referring_ref_list): Likewise.
32348         (referred_ref_list): Likewise.
32349         Rest of functions moved to symtab_node class.
32350         * ipa-ref.h: New member functions remove_reference,
32351         cannot_lead_to_return, referring_ref_list, referred_ref_list added
32352         to ipa_ref class.
32353         ipa_ref_list class has new member functions: first_reference,
32354         first_referring, clear, nreferences.
32355         * ipa-reference.c (analyze_function): New IPA REF function used.
32356         (write_node_summary_p): Likewise.
32357         (ipa_reference_write_optimization_summary): Likewise.
32358         * ipa-split.c (split_function): Likewise.
32359         * ipa-utils.c (ipa_reverse_postorder): Likewise.
32360         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32361         (function_and_variable_visibility): Likewise.
32362         * ipa.c (has_addr_references_p): Likewise.
32363         (process_references): Argument type changed.
32364         (symtab_remove_unreachable_nodes): New IPA REF function used.
32365         (process_references): Likewise.
32366         (set_writeonly_bit): Likewise.
32367         * lto-cgraph.c: Implementation of new symtab_node member functions
32368         that uses new IPA REF functions.
32369         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32370         function used.
32371         * lto-streamer-out.c (output_symbol_p): Likewise.
32372         * lto-streamer.h (referenced_from_this_partition_p): Argument type
32373         changed.
32374         * symtab.c: Implementation of new IPA REF API.
32375         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
32376         (ipa_tm_create_version): Likewise.
32377         (ipa_tm_execute): Likewise.
32378         * tree-emutls.c (gen_emutls_addr): Likewise.
32379         * tree-inline.c (copy_bb): Likewise.
32380         (delete_unreachable_blocks_update_callgraph): Likewise.
32381         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
32382         (varpool_for_node_and_aliases): Likewise.
32383
32384 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32385
32386         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
32387
32388 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32389
32390         PR bootstrap/61598
32391         * fold-const.c (fold_checksum_tree): Use a hash_table of const
32392         tree_node * instead of tree_node *.
32393         (fold): Adjust.
32394         (print_fold_checksum): Likewise.
32395         (fold_check_failed): Likewise.
32396         (debug_fold_checksum): Likewise.
32397         (fold_build1_stat_loc): Likewise.
32398         (fold_build2_stat_loc): Likewise.
32399         (fold_build3_stat_loc): Likewise.
32400         (fold_build_call_array_loc): Likewise.
32401
32402 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
32403
32404         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
32405         implementation with call to...
32406         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
32407         function.
32408         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
32409         Declare.
32410
32411 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
32412
32413         PR tree-optimization/57742
32414         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
32415         after replacing the statement.
32416
32417 2014-06-25  Nick Clifton  <nickc@redhat.com>
32418
32419         * config/v850/v850.c (GHS_default_section_names): Change to const
32420         char * type.
32421         (GHS_current_section_names): Likewise.
32422         (v850_insert_attributes): Do not build strings, just assign the
32423         names directly.  Change the type of 'chosen_section' to const
32424         char*.
32425         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
32426         directly to the array entry.
32427         * config/v850/v850.h (GHS_default_section_names): Change to const
32428         char * type.
32429         (GHS_current_section_names): Likewise.
32430
32431 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
32432
32433         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
32434         (LANG_HOOKS_DECLS): Add it.
32435         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
32436         has correct type.
32437         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
32438         * langhooks.h (struct lang_hooks_for_decls): Add
32439         omp_clause_linear_ctor hook.
32440         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
32441         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
32442         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
32443         combined simd loop use omp_clause_linear_ctor hook.
32444
32445 2014-06-24  Cong Hou  <congh@google.com>
32446
32447         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
32448         pattern recognition.
32449         (type_conversion_p): PROMOTION is true if it's a type promotion
32450         conversion, and false otherwise.  Return true if the given expression
32451         is a type conversion one.
32452         * tree-vectorizer.h: Adjust the number of patterns.
32453         * tree.def: Add SAD_EXPR.
32454         * optabs.def: Add sad_optab.
32455         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
32456         * expr.c (expand_expr_real_2): Likewise.
32457         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
32458         * gimple.c (get_gimple_rhs_num_ops): Likewise.
32459         * optabs.c (optab_for_tree_code): Likewise.
32460         * tree-cfg.c (estimate_operator_cost): Likewise.
32461         * tree-ssa-operands.c (get_expr_operands): Likewise.
32462         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
32463         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
32464         * doc/generic.texi: Add document for SAD_EXPR.
32465         * doc/md.texi: Add document for ssad and usad.
32466
32467 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32468
32469         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
32470         qualification in cast.
32471
32472 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
32473
32474         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
32475         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
32476         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
32477         (tree_function_decl): ... here.
32478         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
32479         streaming of vindex to ...
32480         (write_ts_function_decl_tree_pointers): ... here.
32481         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
32482         Do not stream DECL_VINDEX.
32483         (lto_input_ts_function_decl_tree_pointers): Stream it here.
32484
32485 2014-06-24  Catherine Moore  <clm@codesourcery.com>
32486             Sandra Loosemore  <sandra@codesourcery.com>
32487
32488         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
32489         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
32490         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
32491
32492 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32493
32494         * doc/invoke.texi (Warning Options): Remove duplicated
32495         -Wmaybe-uninitialized.
32496
32497 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32498
32499         PR tree-optimization/57742
32500         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
32501         (handle_builtin_malloc, handle_builtin_memset): New functions.
32502         (strlen_optimize_stmt): Call them.
32503         * passes.def: Move strlen after loop+dom but before vrp.
32504
32505 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32506
32507         PR target/61570
32508         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
32509         model family 6 CPU with has_longmode never use a CPU without
32510         64-bit support.
32511
32512 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
32513
32514         PR target/61570
32515         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
32516         the last change.
32517
32518 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32519
32520         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
32521         * dominance.c (iterate_fix_dominators): Use hash_map instead of
32522         pointer_map.
32523         * hash-map.h: New file.
32524         * ipa-comdats.c: Use hash_map instead of pointer_map.
32525         * ipa.c: Likewise.
32526         * lto-section-out.c: Adjust.
32527         * lto-streamer.h: Replace pointer_map with hash_map.
32528         * symtab.c (verify_symtab): Likewise.
32529         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
32530         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
32531         * tree-streamer.h: Likewise.
32532         * tree-streamer.c: Adjust.
32533         * pointer-set.h: Remove pointer_map.
32534
32535 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32536
32537         * hash-table.h: Add a template arg to choose between storing values
32538         and storing pointers to values, and then provide partial
32539         specializations for both.
32540         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
32541         should store, not the type values should point to.
32542         * tree-into-ssa.c (var_info_hasher): Likewise.
32543         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
32544         * tree-complex.c: Adjust.
32545         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
32546         table instead of int_tree_map *.
32547         * tree-parloops.c: Adjust.
32548         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
32549         type is being stored.
32550         * tree-vectorizer.c: Adjust.
32551
32552 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32553
32554         * hash-table.h: Remove a layer of indirection from hash_table so that
32555         it contains the hash table's data instead of a pointer to the data.
32556         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
32557         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
32558         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
32559         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
32560         fold-const.c, gcse.c, ggc-common.c,
32561         gimple-ssa-strength-reduction.c, gimplify.c,
32562         graphite-clast-to-gimple.c, graphite-dependences.c,
32563         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
32564         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32565         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
32566         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
32567         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
32568         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
32569         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
32570         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
32571         tree-ssa-live.c, tree-ssa-loop-im.c,
32572         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
32573         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
32574         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32575         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
32576         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
32577         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
32578         vtable-verify.c, vtable-verify.h: Adjust.
32579
32580 2014-06-24  Richard Biener  <rguenther@suse.de>
32581
32582         PR tree-optimization/61572
32583         * tree-ssa-sink.c (statement_sink_location): Do not sink
32584         loads from hard registers.
32585
32586 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32587
32588         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
32589         not mentioned in clauses use private clause if the iterator is
32590         declared in #pragma omp for simd, and when adding lastprivate
32591         instead, add it to the outer #pragma omp for too.  Diagnose
32592         if the variable is private in outer context.  For simd collapse > 1
32593         loops, replace all iterators with temporaries.
32594         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
32595         same even in collapse > 1 loops.
32596
32597         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
32598         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
32599         non-NULL.
32600         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
32601         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
32602         non-NULL.
32603         (gimplify_adjust_omp_clauses): Likewise.
32604         * omp-low.c (lower_rec_simd_input_clauses,
32605         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
32606         safelen the same as safelen(1).
32607         * tree-nested.c (convert_nonlocal_omp_clauses,
32608         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
32609         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
32610         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
32611         Fixup handling of GIMPLE_OMP_TARGET.
32612         (convert_tramp_reference_stmt, convert_gimple_call): Handle
32613         GIMPLE_OMP_TARGET.
32614
32615 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
32616
32617         PR tree-optimization/61554
32618         * tree-ssa-propagate.c: Include "bitmap.h".
32619         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
32620         properly update constructor/destructor.
32621         (substitute_and_fold_dom_walker::before_dom_children):
32622         Remove call to gimple_purge_dead_eh_edges, add bb->index to
32623         need_eh_cleaup instead.
32624         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
32625         need_eh_cleanup.
32626
32627 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32628
32629         * varpool.c (dump_varpool_node): Dump used_by_single_function.
32630         * tree-pass.h (make_pass_ipa_single_use): New pass.
32631         * cgraph.h (used_by_single_function): New flag.
32632         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
32633         Stream it.
32634         * passes.def (pass_ipa_single_use): Scedule.
32635         * ipa.c (BOTTOM): New macro.
32636         (meet): New function
32637         (propagate_single_user): New function.
32638         (ipa_single_use): New function.
32639         (pass_data_ipa_single_use): New pass.
32640         (pass_ipa_single_use): New pass.
32641         (pass_ipa_single_use::gate): New gate.
32642         (make_pass_ipa_single_use): New function.
32643
32644 2014-06-23  Kai Tietz  <ktietz@redhat.com>
32645
32646         PR target/39284
32647         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
32648         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
32649
32650 2014-06-23  Richard Biener  <rguenther@suse.de>
32651
32652         * tree-ssa-loop.c (gate_loop): New function.
32653         (pass_tree_loop::gate): Call it.
32654         (pass_data_tree_no_loop, pass_tree_no_loop,
32655         make_pass_tree_no_loop): New.
32656         * tree-vectorizer.c: Include tree-scalar-evolution.c
32657         (pass_slp_vectorize::execute): Initialize loops and SCEV if
32658         required.
32659         (pass_slp_vectorize::clone): New method.
32660         * timevar.def (TV_TREE_NOLOOP): New.
32661         * tree-pass.h (make_pass_tree_no_loop): Declare.
32662         * passes.def (pass_tree_no_loop): New pass group with
32663         SLP vectorizer.
32664
32665 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
32666
32667         PR target/61570
32668         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
32669         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
32670
32671 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32672
32673         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
32674         "yes" where needed.
32675
32676 2014-06-23  Alan Modra  <amodra@gmail.com>
32677
32678         PR bootstrap/61583
32679         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
32680         to zero on debug statements.
32681
32682 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32683
32684         PR target/60825
32685         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
32686         Ignore third operand if present by marking qualifier_internal.
32687
32688         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
32689
32690         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
32691         vector extension.
32692         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
32693         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
32694         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
32695         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
32696         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
32697         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
32698         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
32699         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
32700         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
32701         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
32702         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
32703         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
32704         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
32705         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
32706         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
32707         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
32708         logic in GCC vector extensions
32709
32710         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
32711         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
32712         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
32713         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
32714         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
32715         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
32716         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
32717         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
32718         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
32719         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
32720
32721         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
32722
32723         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
32724         extensions.
32725
32726         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
32727         (vget_low_s64): Use __GET_LOW macro.
32728         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
32729         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
32730         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
32731         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
32732         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
32733
32734         (vcombine_s64): Use GCC vector extensions; remove cast.
32735         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
32736         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
32737         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
32738         Fix type signature; remove cast.
32739
32740 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32741
32742         PR target/60825
32743         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
32744         V1DFmode.
32745         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
32746         add V1DFmode
32747         (BUILTIN_VD1): New.
32748         (BUILTIN_VD_RE): Remove.
32749         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
32750         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
32751         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
32752         variant but not df.
32753         (vreinterpretv1df*, vreinterpret*v1df): New.
32754         (vreinterpretdf*, vreinterpret*df): Remove.
32755         * config/aarch64/aarch64-simd.md (aarch64_create,
32756         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
32757         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
32758         (VD1): New.
32759         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
32760         (vcreate_f64): Remove cast, use v1df builtin.
32761         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
32762         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
32763         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
32764         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
32765         vmov_n_f64, vst1_f64): Use gcc vector extensions.
32766         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
32767         add range check using __builtin_aarch64_im_lane_boundsi.
32768         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
32769         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
32770         type signature, use gcc vector extensions.
32771         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
32772         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
32773         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
32774         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
32775         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
32776         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
32777         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
32778         vreinterpret_u64_f64): Use v1df builtin not df.
32779
32780 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32781
32782         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
32783         vector registers.
32784
32785 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32786
32787         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
32788         priority directly.
32789
32790 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32791
32792         * loop-invariant.c (pre_check_invariant_p): New function.
32793         (find_invariant_insn): Call pre_check_invariant_p.
32794
32795 2014-06-22  Richard Henderson  <rth@redhat.com>
32796
32797         PR target/61565
32798         * compare-elim.c (struct comparison): Add eh_note.
32799         (find_comparison_dom_walker::before_dom_children): Don't eliminate
32800         a redundant comparison in a different EH region.  Purge EH edges if
32801         necessary.
32802
32803 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32804
32805         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
32806         (var_shift): Use it.
32807         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
32808         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
32809         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
32810         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
32811         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
32812         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
32813         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
32814         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
32815         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
32816         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
32817         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
32818         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
32819         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
32820         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
32821         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
32822         *rotldi3_internal15be): Use the new attribute.  Merge register and
32823         integer alternatives.
32824
32825 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32826
32827         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
32828         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
32829         split, *ashrdi3_internal3 and split): Delete, merge into...
32830         (ashr<mode>3): New expander.
32831         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
32832         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
32833
32834 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32835
32836         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
32837         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
32838         *rotldi3_internal3 and split): Delete, merge into...
32839         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
32840         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
32841         Use "rotlw" extended mnemonic.
32842
32843 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32844
32845         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
32846         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
32847         and split, *ashldi3_internal3 and split): Delete, merge into...
32848         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
32849         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
32850
32851 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32852
32853         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
32854         (lshrsi3, two anonymous define_insns and define_splits,
32855         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
32856         *lshrdi3_internal3 and split): Delete, merge into...
32857         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
32858         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
32859
32860 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32861
32862         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
32863         Remove "O" alternative.
32864
32865 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
32866
32867         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
32868         (mips_move_from_gpr_cost): Likewise.
32869         (mips_register_move_cost): Update accordingly.
32870         (mips_secondary_reload_class): Remove name of in_p.
32871
32872 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
32873
32874         PR target/61503
32875         * config/i386/i386.md (x86_64_shrd, x86_shrd,
32876         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
32877
32878 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
32879
32880         * config/nios2/nios2.c: Include "builtins.h".
32881
32882 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32883
32884         * cgraph.h (tls_model_names): New variable.
32885         * print-tree.c (print_node): Simplify.
32886         * varpool.c (tls_model_names): New variable.
32887         (dump_varpool_node): Output tls model.
32888
32889 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32890
32891         * ipa-visibility.c (function_and_variable_visibility): Disable
32892         temporarily local aliases for some targets.
32893
32894 2014-06-20  Marek Polacek  <polacek@redhat.com>
32895
32896         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
32897         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
32898         into SANITIZE_UNDEFINED.
32899         * doc/invoke.texi: Describe -fsanitize=bounds.
32900         * gimplify.c (gimplify_call_expr): Add gimplification of internal
32901         functions created in the FEs.
32902         * internal-fn.c: Move "internal-fn.h" after "tree.h".
32903         (expand_UBSAN_BOUNDS): New function.
32904         * internal-fn.def (UBSAN_BOUNDS): New internal function.
32905         * internal-fn.h: Don't define internal functions here.
32906         * opts.c (common_handle_option): Add -fsanitize=bounds.
32907         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
32908         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
32909         * tree-core.h: Define internal functions here.
32910         (struct tree_base): Add ifn field.
32911         * tree-pretty-print.c: Include "internal-fn.h".
32912         (dump_generic_node): Handle functions without CALL_EXPR_FN.
32913         * tree.c (get_callee_fndecl): Likewise.
32914         (build_call_expr_internal_loc): New function.
32915         * tree.def (CALL_EXPR): Update description.
32916         * tree.h (CALL_EXPR_IFN): Define.
32917         (build_call_expr_internal_loc): Declare.
32918         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
32919         types.
32920         (ubsan_type_descriptor): Change bool parameter to enum
32921         ubsan_print_style.  Adjust the code.  Add handling of
32922         UBSAN_PRINT_ARRAY.
32923         (ubsan_expand_bounds_ifn): New function.
32924         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
32925         (ubsan_build_overflow_builtin): Likewise.
32926         (instrument_bool_enum_load): Likewise.
32927         (ubsan_instrument_float_cast): Likewise.
32928         * ubsan.h (enum ubsan_print_style): New enum.
32929         (ubsan_expand_bounds_ifn): Declare.
32930         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
32931
32932 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
32933
32934         * config/rs6000/rs6000.md: Append `DONE' to preparation
32935         statements of `bswap' pattern splitters.
32936
32937 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32938
32939         * target.def (call_fusage_contains_non_callee_clobbers): Update
32940         definition.
32941         * doc/tm.texi: Regenerate.
32942
32943 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32944             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32945
32946         PR sanitizer/61547
32947         * asan.c (instrument_strlen_call): Fixed instrumentation of
32948         trailing byte.
32949
32950 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32951
32952         PR ipa/61540
32953         * ipa-prop.c (impossible_devirt_target): New function.
32954         (try_make_edge_direct_virtual_call): Use it, also instead of
32955         asserting.
32956
32957 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32958             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32959
32960         PR sanitizer/61530
32961         * asan.c (build_check_stmt): Add condition.
32962
32963 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32964
32965         PR ipa/61211
32966         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
32967         expanded clones.
32968
32969 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32970
32971         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
32972         Update comments.
32973         (VCONQ): Make comment more helpful.
32974         (VCON): Delete.
32975         * config/aarch64/aarch64-simd.md
32976         (aarch64_sqdmulh_lane<mode>):
32977         Use VCOND for operands 2.  Update lane checking and flipping logic.
32978         (aarch64_sqrdmulh_lane<mode>): Likewise.
32979         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
32980         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
32981         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
32982         attribute of operand 3 to VCOND.
32983         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
32984         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
32985         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
32986         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
32987         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
32988         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
32989         define_insn.
32990         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
32991         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
32992         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
32993         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
32994         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
32995         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
32996         operand to VCOND.  Update lane flipping and bounds checking logic.
32997         (aarch64_sqdmlal2_lane<mode>): Likewise.
32998         (aarch64_sqdmlsl_lane<mode>): Likewise.
32999         (aarch64_sqdmull_lane<mode>): Likewise.
33000         (aarch64_sqdmull2_lane<mode>): Likewise.
33001         (aarch64_sqdmlal_laneq<mode>):
33002         Replace VCON usage with VCONQ.
33003         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
33004         (aarch64_sqdmlal2_laneq<mode>): Emit
33005         aarch64_sqdmlal2_laneq<mode>_internal insn.
33006         Replace VCON with VCONQ.
33007         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
33008         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
33009         (aarch64_sqdmull_laneq<mode>): Emit
33010         aarch64_sqdmull_laneq<mode>_internal insn.
33011         Replace VCON with VCONQ.
33012         (aarch64_sqdmull2_laneq<mode>): Emit
33013         aarch64_sqdmull2_laneq<mode>_internal insn.
33014         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
33015         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
33016         of 3rd argument to int16x4_t.
33017         (vqdmlalh_lane_s16): Likewise.
33018         (vqdmlslh_lane_s16): Likewise.
33019         (vqdmull_high_lane_s16): Likewise.
33020         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
33021         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
33022         (vqdmlsl_lane_s16): Likewise.
33023         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
33024         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
33025         (vqdmlals_lane_s32): Likewise.
33026         (vqdmlsls_lane_s32): Likewise.
33027         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
33028         (vqdmulls_lane_s32): Likewise.
33029         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
33030         (vqdmlsl_lane_s32): Likewise.
33031         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
33032         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
33033         (vqrdmulhh_lane_s16): Likewise.
33034         (vqdmlsl_high_lane_s16): Likewise.
33035         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
33036         (vqdmlsl_high_lane_s32): Likewise.
33037         (vqrdmulhs_lane_s32): Likewise.
33038
33039 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33040
33041         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
33042         get_call_reg_set_usage.
33043
33044 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33045
33046         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
33047         it contains all call_used_regs.
33048
33049 2014-06-20  Tom de Vries  <tom@codesourcery.com>
33050
33051         * final.c (collect_fn_hard_reg_usage): Add and use variable
33052         function_used_regs.
33053
33054 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
33055
33056         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
33057         (set_init_priority, get_init_priority, set_fini_priority,
33058         get_fini_priority): New methods.
33059         * tree.c (init_priority_for_decl): Remove.
33060         (init_ttree): Do not initialize init priority.
33061         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
33062         (decl_priority_info): Remove.
33063         (decl_init_priority_insert): Rewrite.
33064         (decl_fini_priority_insert): Rewrite.
33065         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
33066         tree_priority_map_marked_p): Remove.
33067         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
33068         * lto-streamer-out.c (hash_tree): Do not hash priorities.
33069         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
33070         not output priorities.
33071         (pack_ts_function_decl_value_fields): Likewise.
33072         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33073         not input priorities.
33074         (unpack_ts_function_decl_value_fields): Likewise.
33075         * symtab.c (symbol_priority_map): Declare.
33076         (init_priority_hash): Declare.
33077         (symtab_unregister_node): Unregister from priority hash, too.
33078         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
33079         New methods.
33080         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
33081         (symbol_priority_info): New function.
33082         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
33083         New methods.
33084         * tree-core.h (tree_priority_map): Remove.
33085
33086 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
33087
33088         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
33089         0xff to uint64_t before shifting it up.
33090
33091 2014-06-20  Julian Brown  <julian@codesourcery.com>
33092             Chung-Lin Tang  <cltang@codesourcery.com>
33093
33094         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
33095         TARGET_THUMB1_ONLY. Add comments.
33096
33097 2014-06-19  Tom de Vries  <tom@codesourcery.com>
33098
33099         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
33100         return type to void.
33101         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
33102
33103 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
33104
33105         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
33106         as "move", from depends_on.
33107
33108 2014-06-19  Terry Guo  <terry.guo@arm.com>
33109
33110         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
33111         stage.
33112
33113 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
33114
33115         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
33116         Remove cr5.
33117         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
33118
33119 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
33120
33121         PR target/61550
33122         * config/sh/sh.c (prepare_move_operands): Don't process TLS
33123         addresses here if reload in progress or completed.
33124
33125 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33126
33127         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
33128         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
33129         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
33130         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
33131         (mips_register_priority): New function that implements the target
33132         hook TARGET_REGISTER_PRIORITY.
33133         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
33134         (mips_lra_p): Likewise for TARGET_LRA_P.
33135         (TARGET_REGISTER_PRIORITY): Define macro.
33136         (TARGET_SPILL_CLASS): Likewise.
33137         (TARGET_LRA_P): Likewise.
33138         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
33139         classes.
33140         (REG_CLASS_NAMES): Likewise.
33141         (REG_CLASS_CONTENTS): Likewise.
33142         (BASE_REG_CLASS): Use M16_SP_REGS.
33143         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
33144         New set attribute to enable alternatives depending on the register
33145         allocator used.
33146         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
33147         (*lea64): Disable pattern for MIPS16.
33148         * config/mips/mips.opt (mlra): New option.
33149
33150 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33151
33152         * lra-constraints.c (base_to_reg): New function.
33153         (process_address): Use new function.
33154
33155 2014-06-18  Tom de Vries  <tom@codesourcery.com>
33156
33157         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
33158         * config/aarch64/aarch64.c
33159         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
33160         (aarch64_emit_call_insn): New function.
33161         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
33162         of emit_call_insn.
33163         * config/aarch64/aarch64.md (define_expand "call_internal")
33164         (define_expand "call_value_internal", define_expand "sibcall_internal")
33165         (define_expand "sibcall_value_internal"): New.
33166         (define_expand "call", define_expand "call_value")
33167         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
33168         expand variant and aarch64_emit_call_insn.
33169
33170 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
33171             Tom de Vries  <tom@codesourcery.com>
33172
33173         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
33174         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
33175         Redefine to true.
33176         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
33177         clobbers to CALL_INSN_FUNCTION_USAGE.
33178         (define_expand "sibcall_internal")
33179         (define_expand "sibcall_value_internal"): New.
33180         (define_expand "call", define_expand "call_value"): Add argument to
33181         arm_emit_call_insn.
33182         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
33183         (define_expand "sibcall_value"): Use sibcall_value_internal and
33184         arm_emit_call_insn.
33185
33186 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33187
33188         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
33189
33190 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33191
33192         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
33193         __udivmoddi4.
33194
33195 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33196
33197         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
33198         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
33199         annotations. Fix DWARF information.
33200
33201 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33202
33203         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
33204         __udivmoddi4, and fixups for negative operands.
33205
33206 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33207
33208         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
33209
33210 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33211
33212         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
33213         to __udivmoddi4.
33214
33215 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33216
33217         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
33218         manipulation.
33219
33220 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33221
33222         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
33223         describing register usage on function entry and exit.
33224
33225 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33226
33227         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
33228         (__aeabi_ldivmod): Fix whitespace.
33229
33230 2014-06-18  Andreas Schwab  <schwab@suse.de>
33231
33232         * doc/md.texi (Standard Names): Use @itemx for grouped items.
33233         Remove blank line after @item.
33234
33235 2014-06-18  Richard Henderson  <rth@redhat.com>
33236
33237         PR target/61545
33238         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
33239
33240 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33241
33242         * config/arm/arm.c (neon_vector_mem_operand): Allow register
33243         POST_MODIFY for neon loads and stores.
33244         (arm_print_operand): Output post-index register for neon loads and
33245         stores.
33246
33247 2014-06-18  Richard Biener  <rguenther@suse.de>
33248
33249         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
33250
33251 2014-06-18  Richard Biener  <rguenther@suse.de>
33252
33253         * tree-pass.h (make_pass_dce_loop): Remove.
33254         * passes.def: Replace pass_dce_loop with pass_dce.
33255         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
33256         changed free niter estimates and reset the scev cache.
33257         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
33258         make_pass_dce_loop): Remove.
33259         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
33260         (fini_copy_prop): Return whether something changed.  Always
33261         let substitute_and_fold perform DCE and free niter estimates
33262         and reset the scev cache if so.
33263         (execute_copy_prop): If sth changed schedule cleanup-cfg.
33264         (pass_data_copy_prop): Do not unconditionally schedule
33265         cleanup-cfg or update-ssa.
33266
33267 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
33268
33269         PR tree-optimization/61518
33270         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33271         reduction var is used in reduction stmt or phi-function only.
33272
33273 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33274
33275         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
33276
33277 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33278
33279         PR tree-optimization/61517
33280         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
33281         whose rhs's first tree is the source expression instead of the
33282         expression itself.
33283         (find_bswap_or_nop): Likewise.
33284         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
33285         gimple stmt whose rhs's first tree is the source. In the memory source
33286         case, move the stmt to be replaced close to one of the original load to
33287         avoid the problem of a store between the load and the stmt's original
33288         location.
33289         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
33290         signature.
33291
33292 2014-06-18  Andreas Schwab  <schwab@suse.de>
33293
33294         PR rtl-optimization/54555
33295         * postreload.c (move2add_use_add2_insn): Substitute
33296         STRICT_LOW_PART only if it is cheaper.
33297
33298 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
33299
33300         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
33301         Do not use unspec as call operand.  Use memory_operand instead of
33302         memory_nox32_operand and add "m" operand constraint.  Disable
33303         pattern for TARGET_X32.
33304         (*sibcall_pop_memory): Ditto.
33305         (*sibcall_value_memory): Ditto.
33306         (*sibcall_value_pop_memory): Ditto.
33307         (sibcall peepholes): Merge SImode and DImode patterns using
33308         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
33309         Disable pattern for TARGET_X32.  Check if eliminated register is
33310         really dead after call insn.  Generate call RTX without unspec operand.
33311         (sibcall_value peepholes): Ditto.
33312         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
33313         instead of memory_nox32_operand.  Check if eliminated register is
33314         really dead after call insn. Generate call RTX without unspec operand.
33315         (sibcall_value_pop peepholes): Ditto.
33316         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
33317
33318 2014-06-18  Terry Guo  <terry.guo@arm.com>
33319
33320         PR target/61544
33321         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
33322         reach the head.
33323
33324 2014-06-18  Olivier Hainque  <hainque@adacore.com>
33325
33326         * tree-core.h (tree_block): Add an "end_locus" field, allowing
33327         memorization of the end of block source location.
33328         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33329         * gimplify.c (gimplify_bind_expr): Propagate the block start and
33330         end source location info we have on the block entry/exit code we
33331         generate.
33332
33333 2014-06-18  Richard Biener  <rguenther@suse.de>
33334
33335         * common.opt (fssa-phiopt): New option.
33336         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33337         but not with -Og.
33338         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33339         * doc/invoke.texi (-fssa-phiopt): Document.
33340
33341 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33342
33343         * genattrtab.c (n_bypassed): New variable.
33344         (process_bypasses): Initialise n_bypassed.
33345         Count number of bypassed reservations.
33346         (make_automaton_attrs): Allocate space for bypassed reservations
33347         rather than number of bypasses.
33348
33349 2014-06-18  Richard Biener  <rguenther@suse.de>
33350
33351         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33352         we propagated anything.
33353         (substitute_and_fold_dom_walker::before_dom_children): Something
33354         changed if we propagated into PHI arguments.
33355         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33356         we removed a stmt.
33357
33358 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
33359
33360         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33361         vector case.
33362         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33363         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33364         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33365         Introduces alternative way of loads group permutaions.
33366         (vect_transform_grouped_load): Try alternative way of permutations.
33367
33368 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33369
33370         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33371         changed in ORT_TARGET region, don't jump to do_outer.
33372         (struct gimplify_adjust_omp_clauses_data): New type.
33373         (gimplify_adjust_omp_clauses_1): Adjust for data being
33374         a struct gimplify_adjust_omp_clauses_data pointer instead
33375         of tree *.  Pass pre_p as a new argument to
33376         lang_hooks.decls.omp_finish_clause hook.
33377         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
33378         splay_tree_foreach to pass both list_p and pre_p.
33379         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
33380         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
33381         gimplify_adjust_omp_clauses callers.
33382         * langhooks.c (lhd_omp_finish_clause): New function.
33383         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
33384         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
33385         * langhooks.h (struct lang_hooks_for_decls): Add a new
33386         gimple_seq * argument to omp_finish_clause hook.
33387         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
33388         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
33389         (scan_omp_parallel, lower_omp_for): When adding
33390         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
33391         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
33392         * tree-nested.c (convert_nonlocal_omp_clauses,
33393         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
33394         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
33395
33396 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
33397
33398         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
33399         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
33400
33401 2014-06-17  Xinliang David Li  <davidxl@google.com>
33402
33403         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
33404         * passes.c (pass_init_dump_file): Do not set initialize
33405         flag to false unconditionally.
33406
33407 2014-06-17  Richard Biener  <rguenther@suse.de>
33408
33409         * genopinit.c (main): Use vec<>::qsort method.
33410         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
33411         Likewise.
33412         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
33413
33414 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
33415
33416         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
33417         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
33418         (mips_move_to_gpr_cost): Remove ST_REGS case.
33419         (mips_move_from_gpr_cost): Likewise.
33420         (mips_register_move_cost): Likewise.
33421         (mips_secondary_reload_class): Likewise.
33422
33423 2014-06-17  Richard Biener  <rguenther@suse.de>
33424
33425         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
33426         (pass_all_optimizations): Move 3rd copy-prop pass from after
33427         fre to before ifcombine/phiopt.
33428
33429 2014-06-17  Richard Biener  <rguenther@suse.de>
33430
33431         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
33432         and allow all blocks to be forwarders.
33433
33434 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
33435
33436         PR target/61483
33437         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
33438         variable 'size'; calculate 'size' right in the front; use
33439         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
33440         pcum->aapcs_stack_words.
33441
33442 2014-06-17  Nick Clifton  <nickc@redhat.com>
33443
33444         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
33445         (umulhi3, mulsidi3, umulsidi3): Likewise.
33446
33447 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
33448
33449         PR middle-end/61508
33450         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
33451         check for section name.
33452
33453 2014-06-17  Richard Biener  <rguenther@suse.de>
33454
33455         * tree-ssa-propagate.c: Include domwalk.h.
33456         (substitute_and_fold): Outline main worker into a domwalker ...
33457         (substitute_and_fold_dom_walker::before_dom_children): ... here.
33458         Schedule stmts we can fully propagate for removal.  Remove
33459         poor-mans DCE.
33460         (substitute_and_fold): Apply a dominator walk to perform
33461         substitution.  Process stmts scheduled for removal here.
33462
33463 2014-06-17  Richard Biener  <rguenther@suse.de>
33464
33465         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
33466         of PHI node moving.
33467
33468 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
33469
33470         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
33471         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
33472         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33473         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
33474         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
33475         TARGET_HARD_FLOAT.
33476         (get_fpscr) : Likewise.
33477
33478 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33479
33480         PR rtl-optimization/61325
33481         * lra-constraints.c (valid_address_p): Add forward declaration.
33482         (simplify_operand_subreg): Check address validity before and after
33483         alter_reg of memory subreg.
33484
33485 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
33486
33487         * config/i386/i386.c (decide_alg): Correctly handle
33488         maximum size of stringop algorithm.
33489
33490 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33491
33492         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
33493
33494 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33495
33496         PR rtl-optimization/61522
33497         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
33498
33499 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
33500
33501         Revert:
33502         * symtab.c (symtab_node::reset_section): New method.
33503         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33504         for localization.
33505         * cgraph.h (reset_section): Declare.
33506         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33507         do not consider comdat locals.
33508         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33509         for new symbol.
33510         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33511         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33512         reset sections of symbols dragged out of the comdats.
33513         (function_and_variable_visibility): Reset sections of
33514         localized symbols.
33515
33516 2014-06-16  Richard Biener  <rguenther@suse.de>
33517
33518         PR tree-optimization/61482
33519         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
33520         [-INF(OVF), +INF(OVF)] range.
33521
33522 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
33523
33524         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
33525         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
33526         handling 32-bit multiplication.
33527
33528 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
33529
33530         PR middle-end/61430
33531         * lra-lives.c (process_bb_lives): Skip creating copy during
33532         insn scan when src/dest has constrained to same regno.
33533
33534 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33535
33536         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
33537         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
33538
33539 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33540
33541         * asan.c (check_func): New function.
33542         (maybe_create_ssa_name): Likewise.
33543         (build_check_stmt_with_calls): Likewise.
33544         (use_calls_p): Likewise.
33545         (report_error_func): Change interface.
33546         (build_check_stmt): Allow non-integer lengths; add support
33547         for new parameter.
33548         (asan_instrument): Likewise.
33549         (instrument_mem_region_access): Moved code to build_check_stmt.
33550         (instrument_derefs): Likewise.
33551         (instrument_strlen_call): Likewise.
33552         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
33553         * doc/invoke.texi: Describe new parameter.
33554         * params.def: Define new parameter.
33555         * params.h: Likewise.
33556         * sanitizer.def: Describe new builtins.
33557
33558 2014-06-16  Richard Biener  <rguenther@suse.de>
33559
33560         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33561         Make all defs available at the end.
33562         (eliminate): If we remove a PHI node schedule cfg-cleanup.
33563
33564 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33565
33566         PR plugins/45078
33567         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
33568
33569 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
33570
33571         PR bootstrap/61516
33572         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
33573         initialization.  Replace remaining use of uid.
33574
33575 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33576
33577         * c-family/c-common.c (handle_tls_model_attribute): Use
33578         set_decl_tls_model.
33579         * c-family/c-common.c (handle_tls_model_attribute): Use
33580         set_decl_tls_model.
33581         * cgraph.h (struct varpool_node): Add tls_model.
33582         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
33583         * tree.h (DECL_TLS_MODEL): Update.
33584         (DECL_THREAD_LOCAL_P): Check that variable is static.
33585         (decl_tls_model): Declare.
33586         (set_decl_tls_model): Declare.
33587         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
33588         set symbol prorperties.
33589         (get_emutls_init_templ_addr): Cleanup.
33590         (new_emutls_decl): Update.
33591         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
33592         (lto_input_varpool_node): Likewise.
33593         * lto-streamer-out.c (hash_tree): Likewise.
33594         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33595         not stream DECL_TLS_MODEL.
33596         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
33597         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
33598
33599 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33600
33601         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
33602
33603 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33604
33605         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
33606         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
33607         lists.
33608         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
33609         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
33610         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
33611         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
33612         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
33613         (df_get_artificial_defs, df_get_artificial_uses)
33614         (df_single_def, df_single_use): Update accordingly.
33615         (df_refs_chain_dump): Take the first element in a linked list as
33616         parameter, rather than a pointer to an array of pointers.
33617         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
33618         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
33619         (df_chain_create_bb_process_use): Likewise.
33620         (df_md_bb_local_compute_process_def): Likewise.
33621         * fwprop.c (process_defs, process_uses): Likewise.
33622         (register_active_defs, update_uses): Likewise.
33623         (forward_propagate_asm): Update for new df_ref linking.
33624         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
33625         (df_null_ref_rec, df_null_mw_rec): Likewise.
33626         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
33627         explicitly.
33628         (df_scan_free_bb_info): Remove check for null artificial_defs.
33629         (df_install_ref_incremental): Adjust for new df_ref linking.
33630         Use a single-element insertion rather than a full sort.
33631         (df_ref_chain_delete_du_chain): Take the first element
33632         in a linked list as parameter, rather than a pointer to an array of
33633         pointers.
33634         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
33635         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
33636         (df_insn_info_delete): Remove check for null defs and call to
33637         df_scan_free_mws_vec.
33638         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
33639         null rather than df_null_*_rec.
33640         (df_insn_rescan_debug_internal): Likewise, and update null
33641         checks in the same way.  Remove check for null defs.
33642         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
33643         Move a single element rather doing a full sort.
33644         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
33645         linking.
33646         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
33647         Initialize df_ref and df_mw_hardreg lists to null rather than
33648         df_null_*_rec.
33649         (df_ref_compare): Take df_refs as parameter, transferring the
33650         old interface to...
33651         (df_ref_ptr_compare): ...this new function.
33652         (df_sort_and_compress_refs): Update accordingly.
33653         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
33654         old interface to...
33655         (df_mw_ptr_compare): ...this new function.
33656         (df_sort_and_compress_mws): Update accordingly.
33657         (df_install_refs, df_install_mws): Return a linked list rather than
33658         an array of pointers.
33659         (df_refs_add_to_chains): Assert that old lists are empty rather
33660         than freeing them.
33661         (df_insn_refs_verify): Don't handle null defs speciailly.
33662         * web.c (union_match_dups): Update for new df_ref linking.
33663
33664 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33665
33666         * df.h (df_ref_create, df_ref_remove): Delete.
33667         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
33668         (df_ref_remove): Likewise.
33669
33670 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33671
33672         * df.h (df_single_def, df_single_use): New functions.
33673         * ira.c (find_moveable_pseudos): Use them.
33674
33675 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33676
33677         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
33678         * df-problems.c (df_note_bb_compute): Use it.
33679         * regstat.c (regstat_bb_compute_ri): Likewise.
33680
33681 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33682
33683         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
33684         * cse.c (cse_extended_basic_block): Use them.
33685         * dce.c (mark_artificial_use): Likewise.
33686         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
33687         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33688         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
33689         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
33690         (df_simulate_initialize_backwards): Likewise.
33691         (df_simulate_finalize_backwards): Likewise.
33692         (df_simulate_initialize_forwards): Likewise.
33693         (df_md_simulate_artificial_defs_at_top): Likewise.
33694         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33695         * regrename.c (init_rename_info): Likewise.
33696         * regstat.c (regstat_bb_compute_ri): Likewise.
33697         (regstat_bb_compute_calls_crossed): Likewise.
33698
33699 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33700
33701         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
33702         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
33703         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
33704         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
33705         * combine.c (create_log_links): Likewise.
33706         * compare-elim.c (find_flags_uses_in_insn): Likewise.
33707         (try_eliminate_compare): Likewise.
33708         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
33709         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
33710         (remove_reg_equal_equiv_notes_for_defs): Likewise.
33711         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
33712         (word_dce_process_block, dce_process_block): Likewise.
33713         * ddg.c (def_has_ccmode_p): Likewise.
33714         * df-core.c (df_bb_regno_first_def_find): Likewise.
33715         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
33716         * df-problems.c (df_rd_simulate_one_insn): Likewise.
33717         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33718         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
33719         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
33720         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
33721         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
33722         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
33723         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
33724         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
33725         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33726         * fwprop.c (local_ref_killed_between_p): Likewise.
33727         (all_uses_available_at, free_load_extend): Likewise.
33728         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
33729         * hw-doloop.c (scan_loop): Likewise.
33730         * ifcvt.c (dead_or_predicable): Likewise.
33731         * init-regs.c (initialize_uninitialized_regs): Likewise.
33732         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
33733         (process_bb_node_lives): Likewise.
33734         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
33735         (find_moveable_pseudos): Likewise.
33736         * loop-invariant.c (check_dependencies, record_uses): Likewise.
33737         * recog.c (peep2_find_free_register): Likewise.
33738         * ree.c (get_defs): Likewise.
33739         * regstat.c (regstat_bb_compute_ri): Likewise.
33740         (regstat_bb_compute_calls_crossed): Likewise.
33741         * sched-deps.c (find_inc, find_mem): Likewise.
33742         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
33743         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
33744         * shrink-wrap.c (requires_stack_frame_p): Likewise.
33745         (prepare_shrink_wrap): Likewise.
33746         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
33747         * web.c (union_defs, pass_web::execute): Likewise.
33748         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
33749         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
33750
33751 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
33752
33753         * lra-assign.c (assign_by_spills): Add code to assign vector regs
33754         to inheritance pseudos.
33755         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
33756
33757 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
33758
33759         PR target/61415
33760         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
33761         (BU_MISC_2): Rename to ...
33762         (BU_LDBL128_2): ... this.
33763         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
33764         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
33765         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
33766         RS6000_BTM_LDBL128.
33767         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
33768         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
33769         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
33770         (unpacktf_1): Likewise.
33771         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
33772         (__builtin_longdouble_dw1): Likewise.
33773         * doc/sourcebuild.texi (longdouble128): Document.
33774
33775 2014-06-13  Jeff Law  <law@redhat.com>
33776
33777         PR rtl-optimization/61094
33778         PR rtl-optimization/61446
33779         * ree.c (combine_reaching_defs): Get the mode for the copy from
33780         the extension insn rather than the defining insn.
33781
33782 2014-06-13  Dehao Chen  <dehao@google.com>
33783
33784         * dwarf2out.c (add_linkage_name): Emit more linkage name.
33785
33786 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
33787
33788         * doc/install.texi (--enable-linker-plugin-configure-flags)
33789         (--enable-linker-plugin-flags): Document new flags.
33790
33791 2014-06-13  Martin Jambor  <mjambor@suse.cz>
33792
33793         PR ipa/61186
33794         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
33795         cache_token if returning early.
33796
33797 2014-06-13  Nick Clifton  <nickc@redhat.com>
33798
33799         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
33800         requested alignment is active.
33801         (LABEL_ALIGN): Likewise.
33802         (LOOP_ALIGN): Likewise.
33803
33804 2014-06-13  Richard Biener  <rguenther@suse.de>
33805
33806         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33807         Rewrite to propagate the VN result into all uses where
33808         possible and to remove stmts becoming dead because of that.
33809         (eliminate): Generalize stmt removal handling, remove in
33810         reverse dominator order to support proper debug stmt
33811         generation.  Update stmts before removing stmts.
33812         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
33813
33814 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33815
33816         PR tree-optimization/61375
33817         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
33818         symbolic number cannot be represented in an uint64_t.
33819         (find_bswap_or_nop_1): Likewise.
33820
33821 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33822
33823         * symtab.c (symtab_node::reset_section): New method.
33824         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33825         for localization.
33826         * cgraph.h (reset_section): Declare.
33827         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33828         do not consider comdat locals.
33829         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33830         for new symbol.
33831         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33832         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33833         reset sections of symbols dragged out of the comdats.
33834         (function_and_variable_visibility): Reset sections of
33835         localized symbols.
33836
33837 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33838
33839         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
33840         to use symtab and decl_binds_to_current_def_p
33841         * tree-vectorizer.c (increase_alignment): Increase alignment
33842         of alias target, too.
33843
33844 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
33845
33846         PR middle-end/61486
33847         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
33848         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
33849         if outer combined construct is distribute.
33850         (gimplify_omp_for): For OMP_DISTRIBUTE set
33851         gimplify_omp_ctxp->distribute.
33852         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
33853         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
33854         mapping into decl map.
33855
33856 2014-06-12  Jason Merrill  <jason@redhat.com>
33857
33858         * common.opt (fabi-version): Change default to 0.
33859
33860 2014-06-12  Jason Merrill  <jason@redhat.com>
33861
33862         * toplev.c (process_options): Reject -fabi-version=1.
33863
33864 2014-06-12  Jeff Law  <law@redhat.com>
33865
33866         PR tree-optimization/61009
33867         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
33868         value when we stop processing a block due to problematic PHIs.
33869
33870 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
33871
33872         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
33873         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
33874         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
33875         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
33876         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
33877         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
33878         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
33879         are not in the spec.
33880
33881 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
33882
33883         PR target/59843
33884         * config/aarch64/aarch64-modes.def: Add V1DFmode.
33885         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
33886         Support V1DFmode.
33887
33888 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
33889
33890         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
33891
33892 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
33893
33894         PR target/61443
33895         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
33896         loading from address spaces.
33897
33898 2014-06-12  Martin Liska  <mliska@suse.cz>
33899
33900         PR ipa/61462
33901         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
33902         statement is reachable.
33903
33904 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
33905
33906         * symtab.c (section_hash): New hash.
33907         (symtab_unregister_node): Clear section before freeing.
33908         (hash_section_hash_entry): New haser.
33909         (eq_sections): New function.
33910         (symtab_node::set_section_for_node): New method.
33911         (set_section_1): Update.
33912         (symtab_node::set_section): Take string instead of tree as parameter.
33913         (symtab_resolve_alias): Update.
33914         * cgraph.h (section_hash_entry_d): New structure.
33915         (section_hash_entry): New typedef.
33916         (cgraph_node): Change comdat_group_ to x_comdat_group,
33917         change section_ to x_section and turn into section_hash_entry;
33918         update accestors; put set_section_for_node offline.
33919         * tree.c (decl_section_name): Turn into string.
33920         (set_decl_section_name): Change parameter to be string.
33921         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
33922         * sdbout.c (sdbout_one_type): Update.
33923         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
33924         * varasm.c (IN_NAMED_SECTION, get_named_section,
33925         resolve_unique_section, hot_function_section, get_named_text_section,
33926         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
33927         make_decl_rtl, default_unique_section): Update.
33928         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
33929         (c6x_elf_unique_section): Update.
33930         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
33931         * config/pa/pa.c (pa_function_section): Update.
33932         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
33933         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
33934         * config/arc/arc.c (arc_in_small_data_p): Update.
33935         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
33936         * config/mcore/mcore.c (mcore_unique_section): Update.
33937         * config/mips/mips.c (mips16_build_function_stub): Update.
33938         (mips16_build_call_stub): Update.
33939         (mips_function_rodata_section): Update.
33940         (mips_in_small_data_p): Update.
33941         * config/score/score.c (score_in_small_data_p): Update.
33942         * config/rx/rx.c (rx_in_small_data): Update.
33943         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
33944         (rs6000_xcoff_asm_named_section): Update.
33945         (rs6000_xcoff_unique_section): Update.
33946         * config/frv/frv.c (frv_string_begins_with): Update.
33947         (frv_in_small_data_p): Update.
33948         * config/v850/v850.c (v850_encode_data_area): Update.
33949         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
33950         (bfin_handle_l1_data_attribute): Update.
33951         (bfin_handle_l2_attribute): Update.
33952         * config/mep/mep.c (mep_unique_section): Update.
33953         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
33954         Update.
33955         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
33956         (h8300_handle_tiny_data_attribute): Update.
33957         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
33958         (m32r_in_small_data_p): Update.
33959         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
33960         * config/i386/i386.c (ix86_in_large_data_p): Update.
33961         * config/i386/winnt.c (i386_pe_unique_section): Update.
33962         * config/darwin.c (darwin_function_section): Update.
33963         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
33964         * tree-emutls.c (get_emutls_init_templ_addr): Update.
33965         (new_emutls_decl): Update.
33966         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
33967         input_varpool_node): Update.
33968         (ead_string_cst): Turn to ...
33969         (read_string): ... this one.
33970         * dwarf2out.c (secname_for_decl): Update.
33971         * asan.c (asan_protect_global): Update.
33972
33973 2014-06-11  DJ Delorie  <dj@redhat.com>
33974
33975         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
33976         cache lines.
33977         * config/rx/rx.c (rx_option_override): Likewise.
33978         (rx_align_for_label): Likewise.
33979
33980         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
33981
33982 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
33983
33984         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
33985         prototype.
33986
33987 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33988
33989         * common.md: New file.
33990         * doc/md.texi: Update description of generic, machine-independent
33991         constraints.
33992         * config/s390/constraints.md (e): Delete.
33993         * Makefile.in (md_file): Include common.md.
33994         * config/m32c/t-m32c (md_file): Likewise.
33995         * genpreds.c (general_mem): New array.
33996         (generic_constraint_letters): Remove constraints now defined by
33997         common.md.
33998         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33999         Allow the first character to be '<' or '>' as well.
34000         * genoutput.c (general_mem): New array.
34001         (indep_constraints): Remove constraints now defined by common.md.
34002         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
34003         Remove special handling of 'm'.
34004         * ira-costs.c (record_reg_classes): Remove special handling of
34005         constraints now defined by common.md.
34006         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34007         * ira-lives.c (single_reg_class): Likewise.
34008         (ira_implicitly_set_insn_hard_regs): Likewise.
34009         * lra-constraints.c (reg_class_from_constraints): Likewise.
34010         (process_alt_operands, process_address, curr_insn_transform): Likewise.
34011         * postreload.c (reload_cse_simplify_operands): Likewise.
34012         * reload.c (push_secondary_reload, scratch_reload_class)
34013         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34014         * reload1.c (maybe_fix_stack_asms): Likewise.
34015         * targhooks.c (default_secondary_reload): Likewise.
34016         * stmt.c (parse_output_constraint): Likewise.
34017         * recog.c (preprocess_constraints): Likewise.
34018         (constrain_operands, peep2_find_free_register): Likewise.
34019         (asm_operand_ok): Likewise, but add a comment saying why 'o'
34020         must be handled specially.
34021
34022 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34023
34024         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
34025         * genpreds.c (have_const_dbl_constraints): Delete.
34026         (add_constraint): Don't set it.
34027         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
34028         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
34029         constraints using the lookup_constraint logic.
34030         * ira-lives.c (single_reg_class): Likewise.
34031         * ira.c (ira_setup_alts): Likewise.
34032         * lra-constraints.c (process_alt_operands): Likewise.
34033         * recog.c (asm_operand_ok, constrain_operands): Likewise.
34034         * reload.c (find_reloads): Likewise.
34035
34036 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34037
34038         * genpreds.c (const_int_start, const_int_end): New variables.
34039         (choose_enum_order): Output CONST_INT constraints before memory
34040         constraints.
34041         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
34042         Add CT_CONST_INT.
34043         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
34044         * ira.c (ira_setup_alts): Likewise.
34045         * lra-constraints.c (process_alt_operands): Likewise.
34046         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34047         * reload.c (find_reloads): Likewise.
34048
34049 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34050
34051         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
34052         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
34053         * recog.c (preprocess_constraints): Update accordingly.
34054
34055 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34056
34057         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
34058         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
34059         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
34060         * genpreds.c (print_type_tree): New function.
34061         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
34062         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
34063         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
34064         Write out enum constraint_type and get_constraint_type.
34065         * lra-constraints.c (satisfies_memory_constraint_p): Take a
34066         constraint_num rather than a constraint string.
34067         (satisfies_address_constraint_p): Likewise.
34068         (reg_class_from_constraints): Avoid old constraint macros.
34069         (process_alt_operands, process_address_1): Likewise.
34070         (curr_insn_transform): Likewise.
34071         * ira-costs.c (record_reg_classes): Likewise.
34072         (record_operand_costs): Likewise.
34073         * ira-lives.c (single_reg_class): Likewise.
34074         (ira_implicitly_set_insn_hard_regs): Likewise.
34075         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34076         * postreload.c (reload_cse_simplify_operands): Likewise.
34077         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34078         (constrain_operands, peep2_find_free_register): Likewise.
34079         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
34080         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34081         * reload1.c (maybe_fix_stack_asms): Likewise.
34082         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
34083         * targhooks.c (default_secondary_reload): Likewise.
34084         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
34085         to EXTRA_CONSTRAINT_STR.
34086         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
34087
34088 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34089
34090         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
34091         (write_constraint_satisfied_p_array): ...this new function.
34092         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
34093         an array.
34094         (write_insn_preds_c): Update accordingly.
34095
34096 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34097
34098         * genpreds.c (write_lookup_constraint): Rename to...
34099         (write_lookup_constraint_1): ...this.
34100         (write_lookup_constraint_array): New function.
34101         (write_tm_preds_h): Define lookup_constraint as an inline function
34102         that uses write_lookup_constraint_array where possible.
34103         (write_insn_preds_c): Update for the changes above.
34104
34105 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34106
34107         * doc/md.texi (regclass_for_constraint): Rename to...
34108         (reg_class_for_constraint): ...this.
34109         * genpreds.c (num_constraints, enum_order, register_start)
34110         (register_end, satisfied_start, memory_start, memory_end)
34111         (address_start, address_end): New variables.
34112         (add_constraint): Count the number of constraints.
34113         (choose_enum_order): New function.
34114         (write_enum_constraint_num): Iterate over enum_order.
34115         (write_regclass_for_constraint): Rename to...
34116         (write_reg_class_for_constraint_1): ...this and update output
34117         accordingly.
34118         (write_constraint_satisfied_p): Rename to...
34119         (write_constraint_satisfied_p_1): ...this and update output
34120         accordingly.  Do nothing if all extra constraints are register
34121         constraints.
34122         (write_insn_extra_memory_constraint): Delete.
34123         (write_insn_extra_address_constraint): Delete.
34124         (write_range_function): New function.
34125         (write_tm_preds_h): Define constraint_satisfied_p and
34126         reg_class_for_constraint as inline functions that do a range check
34127         before calling the out-of-line function.  Use write_range_function
34128         to implement insn_extra_{register,memory,address}_constraint,
34129         the first of which is new.
34130         (write_insn_preds_c): Update after above changes to write_* functions.
34131         (main): Call choose_enum_order.
34132
34133 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34134
34135         PR tree-optimization/61306
34136         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
34137         expression instead of its size.
34138         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
34139         false to prevent optimization when the result is unpredictable due to
34140         arithmetic right shift of signed type with highest byte is set.
34141         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
34142         (init_symbolic_number): Likewise.
34143         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
34144         when the result is unpredictable due to sign extension.
34145
34146 2014-06-11  Terry Guo  <terry.guo@arm.com>
34147
34148         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
34149         (*thumb1_addsi3): Ditto.
34150         (*thumb_subdi3): Ditto.
34151         (thumb1_subsi3_insn): Ditto.
34152         (*thumb_mulsi3): Ditto.
34153         (*thumb_mulsi3_v6): Ditto.
34154         (*thumb1_andsi3_insn): Ditto.
34155         (thumb1_bicsi3): Ditto.
34156         (*thumb1_iorsi3_insn): Ditto.
34157         (*thumb1_xorsi3_insn): Ditto.
34158         (*thumb1_ashlsi3): Ditto.
34159         (*thumb1_ashrsi3): Ditto.
34160         (*thumb1_lshrsi3): Ditto.
34161         (*thumb1_rotrsi3): Ditto.
34162         (*thumb1_negdi2): Ditto.
34163         (*thumb1_negsi2): Ditto.
34164         (*thumb1_abssi2): Ditto.
34165         (*thumb1_neg_abssi2): Ditto.
34166         (*thumb1_one_cmplsi2): Ditto.
34167         (*thumb1_zero_extendhisi2): Ditto.
34168         (*thumb1_zero_extendqisi2): Ditto.
34169         (*thumb1_zero_extendqisi2_v6): Ditto.
34170         (thumb1_extendhisi2): Ditto.
34171         (thumb1_extendqisi2): Ditto.
34172         (*thumb1_movdi_insn): Ditto.
34173         (*thumb1_movsi_insn): Ditto.
34174         (*thumb1_movhi_insn): Ditto.
34175         (thumb_movhi_clobber): Ditto.
34176         (*thumb1_movqi_insn): Ditto.
34177         (*thumb1_movhf): Ditto.
34178         (*thumb1_movsf_insn): Ditto.
34179         (*thumb_movdf_insn): Ditto.
34180         (movmem12b): Ditto.
34181         (movmem8b): Ditto.
34182         (cbranchqi4): Ditto.
34183         (cbranchsi4_insn): Ditto.
34184         (cbranchsi4_scratch): Ditto.
34185         (*negated_cbranchsi4): Ditto.
34186         (*tbit_cbranch): Ditto.
34187         (*tlobits_cbranch): Ditto.
34188         (*tstsi3_cbranch): Ditto.
34189         (*cbranchne_decr1): Ditto.
34190         (*addsi3_cbranch): Ditto.
34191         (*addsi3_cbranch_scratch): Ditto.
34192         (*thumb_cmpdi_zero): Ditto.
34193         (cstoresi_eq0_thumb1): Ditto.
34194         (cstoresi_ne0_thumb1): Ditto.
34195         (*cstoresi_eq0_thumb1_insn): Ditto.
34196         (*cstoresi_ne0_thumb1_insn): Ditto.
34197         (cstoresi_nltu_thumb1): Ditto.
34198         (cstoresi_ltu_thumb1): Ditto.
34199         (thumb1_addsi3_addgeu): Ditto.
34200         (*thumb_jump): Ditto.
34201         (*call_reg_thumb1_v5): Ditto.
34202         (*call_reg_thumb1): Ditto.
34203         (*call_value_reg_thumb1_v5): Ditto.
34204         (*call_value_reg_thumb1): Ditto.
34205         (*call_insn): Ditto.
34206         (*call_value_insn): Ditto.
34207         (thumb1_casesi_internal_pic): Ditto.
34208         (thumb1_casesi_dispatch): Ditto.
34209         (*thumb1_indirect_jump): Ditto.
34210         (prologue_thumb1_interwork): Ditto.
34211         (*epilogue_insns): Ditto.
34212         (consttable_1): Ditto.
34213         (consttable_2): Ditto.
34214         (tablejump): Ditto.
34215         (*thumb1_tablejump): Ditto.
34216         (thumb_eh_return): Ditto.
34217         (define_peephole2): Two of them are thumb1 only and got moved into
34218         new file thumb1.md.
34219         (define_split): Six of them are thumb1 only and got moved into new
34220         file thumb1.md.
34221         * config/arm/thumb1.md: New file comprised of above thumb1 only
34222         patterns.
34223
34224 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34225
34226         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
34227         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
34228         dependencies.
34229         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
34230         (aarch64_crc_builtin_datum): New struct.
34231         (aarch64_crc_builtin_data): New.
34232         (aarch64_init_crc32_builtins): New function.
34233         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
34234         (aarch64_crc32_expand_builtin): New.
34235         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
34236         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
34237         __ARM_FEATURE_CRC32 when appropriate.
34238         (TARGET_CRC32): Define.
34239         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
34240         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
34241         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
34242         (aarch64_<crc_variant>): New pattern.
34243         * config/aarch64/arm_acle.h: New file.
34244         * config/aarch64/iterators.md (CRC): New int iterator.
34245         (crc_variant, crc_mode): New int attributes.
34246         * doc/aarch64-acle-intrinsics.texi: New file.
34247         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
34248         Include aarch64-acle-intrinsics.texi.
34249
34250 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
34251
34252         * tree-vect-data-refs.c (vect_grouped_store_supported): New
34253         check for stores group of length 3.
34254         (vect_permute_store_chain): New permutations for stores group of
34255         length 3.
34256         * tree-vect-stmts.c (vect_model_store_cost): Change cost
34257         of vec_perm_shuffle for the new permutations.
34258
34259 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34260
34261         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
34262         table rewriting temporarily on targets not supporting ONE_ONLY.
34263
34264 2014-06-11  Richard Biener  <rguenther@suse.de>
34265
34266         PR middle-end/61437
34267         Revert
34268         2014-06-04  Richard Biener  <rguenther@suse.de>
34269
34270         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34271         TREE_PUBLIC and DECL_EXTERNAL decls.
34272
34273 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34274
34275         * varasm.c (set_implicit_section): New function.
34276         (resolve_unique_section): Use it to set implicit section
34277         for aliases, too.
34278         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
34279         (default_function_section): Likewise.
34280         (decl_binds_to_current_def_p): Constify argument.
34281         * varasm.h (decl_binds_to_current_def_p): Update prototype.
34282         * asan.c (asan_protect_global): Use
34283         symtab_get_node (decl)->implicit_section.
34284         * symtab.c (dump_symtab_base): Dump implicit sections.
34285         (verify_symtab_base): Verify sanity of sectoins and comdats.
34286         (symtab_resolve_alias): Alias share the section of its target.
34287         (set_section_1): New function.
34288         (symtab_node::set_section): Move here, recurse to aliases.
34289         (verify_symtab): Check for duplicated symtab lists.
34290         * tree-core.h (implicit_section_name_p): Remove.
34291         * tree-vect-data-refs.c: Include varasm.h.
34292         (vect_can_force_dr_alignment_p): Fix conditional on when
34293         decl bints to current definition; use
34294         symtab_get_node (decl)->implicit_section.
34295         * cgraph.c (cgraph_make_node_local_1): Fix section set.
34296         * cgraph.h (struct symtab_node): Add implicit_section.
34297         (set_section): Rename to ...
34298         (set_section_for_node): ... this one.
34299         (set_section): Declare.
34300         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
34301         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
34302         input_overwrite_node, input_varpool_node): Stream implicit_section.
34303         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
34304         removal; it will fail in LTO.
34305
34306 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34307
34308         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
34309         Change second alternative type to f_mcr.
34310         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
34311         and 12th alternatives' types to f_mcr and f_mrc.
34312         (*movdi_aarch64): Same for 12th and 13th alternatives.
34313         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
34314         (aarch64_movtilow_tilow): Change type to fmov.
34315
34316 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
34317
34318         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
34319         (aarch64_save_or_restore_callee_save_registers): Fix layout.
34320
34321 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34322
34323         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34324         New expander.
34325         (aarch64_sqrdmulh_lane<mode>): Likewise.
34326         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34327         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34328         (aarch64_sqdmulh_laneq<mode>): New expander.
34329         (aarch64_sqrdmulh_laneq<mode>): Likewise.
34330         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34331         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34332         (aarch64_sqdmulh_lane<mode>): New expander.
34333         (aarch64_sqrdmulh_lane<mode>): Likewise.
34334         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34335         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34336         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34337         (aarch64_sqdmlal_laneq<mode>): Likewise.
34338         (aarch64_sqdmlsl_lane<mode>): Likewise.
34339         (aarch64_sqdmlsl_laneq<mode>): Likewise.
34340         (aarch64_sqdmlal2_lane<mode>): Likewise.
34341         (aarch64_sqdmlal2_laneq<mode>): Likewise.
34342         (aarch64_sqdmlsl2_lane<mode>): Likewise.
34343         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34344         (aarch64_sqdmull_lane<mode>): Likewise.
34345         (aarch64_sqdmull_laneq<mode>): Likewise.
34346         (aarch64_sqdmull2_lane<mode>): Likewise.
34347         (aarch64_sqdmull2_laneq<mode>): Likewise.
34348
34349 2014-06-10  Richard Biener  <rguenther@suse.de>
34350
34351         PR tree-optimization/61438
34352         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34353         (eliminate_dom_walker::before_dom_children): Only try to inhibit
34354         insertion of IVs if running PRE.
34355         (eliminate): Adjust.
34356         (pass_pre::execute): Likewise.
34357         (pass_fre::execute): Likewise.
34358
34359 2014-06-10  Richard Biener  <rguenther@suse.de>
34360
34361         PR middle-end/61456
34362         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34363         Do not use the main variant for the type comparison.
34364         (ncr_compar): Likewise.
34365         (nonoverlapping_component_refs_p): Likewise.
34366
34367 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34368
34369         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34370         REG_CFA_RESTORE mode.
34371
34372 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
34373
34374         * config/i386/i386.c (expand_vec_perm_pblendv): New.
34375         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
34376         expand_vec_perm_pblendv.
34377
34378 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34379
34380         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
34381         available.
34382         Simplify description of __crc32d and __crc32cd intrinsics.
34383         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
34384         availability.
34385
34386 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
34387
34388         PR lto/61334
34389         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
34390         * config.in: Regenerate.
34391         * configure: Likewise.
34392
34393 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34394
34395         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
34396         and public vars.
34397         (intersect_static_var_sets): Remove.
34398         (propagate): Do not prune local statics.
34399
34400 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
34401
34402         PR fortran/60928
34403         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
34404         Set lastprivate_firstprivate even if omp_private_outer_ref
34405         langhook returns true.
34406         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
34407         langhook, call unshare_expr on new_var and call
34408         build_outer_var_ref to get the last argument.
34409
34410 2014-06-10  Marek Polacek  <polacek@redhat.com>
34411
34412         PR c/60988
34413         * doc/extend.texi: Add cindex for transparent_union.
34414
34415 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34416
34417         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
34418         init_symbolic_number ().
34419
34420 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
34421
34422         PR middle-end/61141
34423         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
34424         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
34425         (verify_rtl_sharing): Likewise.
34426
34427 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
34428
34429         PR c++/54442
34430         * tree.c (build_qualified_type): Use a canonical type for
34431         TYPE_CANONICAL.
34432
34433 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34434
34435         * config/arm/arm-modes.def: Remove XFmode.
34436
34437 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
34438
34439         PR target/61062
34440         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
34441         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
34442         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
34443         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
34444         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
34445         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
34446         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
34447         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
34448         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
34449
34450 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
34451
34452         * tree-core.h (tree_decl_with_vis): Remove section_name.
34453
34454 2014-06-09  Kito Cheng  <kito@0xlab.org>
34455
34456         * ira.c (ira): Don't call init_caller_save if LRA enabled
34457         since LRA use its own infrastructure to handle that.
34458
34459 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34460
34461         * symtab.c (dump_symtab_base): Update dumping.
34462         (symtab_make_decl_local): Clear only DECL_COMDAT.
34463         * tree-vect-data-refs.c (Check that variable is static before
34464         tampering with sections.
34465         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
34466         (cgraph_create_virtual_clone): Likewise.
34467         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
34468         (decl_section_name, set_decl_section_name): New accessors.
34469         (find_decls_types_r): Do not walk section name
34470         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
34471         (decl_comdat_group, decl_comdat_group_id): Constify.
34472         (decl_section_name, set_decl_section_name): Update.
34473         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
34474         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
34475         (cgraph_make_node_local_1): Clear section and comdat group.
34476         * cgraph.h (set_comdat_group): Sanity check.
34477         (get_section, set_section): New.
34478         * ipa-comdats.c (ipa_comdats): Use get_section.
34479         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
34480         * lto-streamer-out.c: Do not follow section names.
34481         * c-family/c-common.c (handle_section_attribute): Update.
34482         * lto-cgraph.c (lto_output_node): Output section.
34483         (lto_output_varpool_node): Likewise.
34484         (read_comdat_group): Rename to ...
34485         (read_identifier): ... this one.
34486         (read_string_cst): New function.
34487         (input_node, input_varpool_node): Input section names.
34488         * tree-emutls.c (get_emutls_init_templ_addr): Update.
34489         (new_emutls_decl): Update.
34490         (secname_for_decl): Check section names only of static vars.
34491         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
34492         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
34493         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
34494         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
34495         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
34496         * config/mcore/mcore.c (mcore_unique_section): Likewise.
34497         * config/mips/mips.c (mips16_build_function_stub): Likewise.
34498         * config/v850/v850.c (v850_insert_attributes): Likewise.
34499         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
34500         Likewise.
34501         (h8300_handle_tiny_data_attribute): Likewise.
34502         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
34503         (bfin_handle_l2_attribute): Likewise.
34504
34505 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34506
34507         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
34508         remove static initializer.
34509
34510 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34511
34512         * varasm.c (use_blocks_for_decl_p): Check symbol table
34513         instead of alias attribute.
34514         (place_block_symbol): Recurse on aliases.
34515
34516 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34517
34518         * ipa-visibility.c: Include varasm.h
34519         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
34520
34521 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34522
34523         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
34524         outputting aliases.
34525
34526 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
34527
34528         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
34529         from test_insn into GGC space escape via SET_SRC.
34530
34531 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
34532
34533         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
34534         call statement, if any.
34535         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
34536         statements, if any.  Tidy up.
34537
34538 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
34539
34540         PR target/61431
34541         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
34542         iterators, VSX_D that handles 64-bit types, and VSX_LE that
34543         handles swapping the two 64-bit double words on little endian
34544         systems.  Include V1TImode and optionally TImode in VSX_LE so that
34545         these types are properly swapped.  Change all of the insns and
34546         splits that do the 64-bit swaps to use VSX_LE.
34547         (vsx_le_perm_load_<mode>): Likewise.
34548         (vsx_le_perm_store_<mode>): Likewise.
34549         (splitters for little endian memory operations): Likewise.
34550         (vsx_xxpermdi2_le_<mode>): Likewise.
34551         (vsx_lxvd2x2_le_<mode>): Likewise.
34552         (vsx_stxvd2x2_le_<mode>): Likewise.
34553
34554 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
34555
34556         PR target/61423
34557         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
34558         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
34559         and corresponding splitters.  Zero extend general register
34560         or memory input operand to XMM temporary.  Enable for
34561         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
34562         (floatunssi<mode>2): Update expander predicate.
34563
34564 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
34565
34566         PR rtl-optimization/61325
34567         * lra-constraints.c (process_address_1): Check scale equal to one
34568         to prevent transformation: base + scale * index => base + new_reg.
34569
34570 2014-06-06  Richard Biener  <rguenther@suse.de>
34571
34572         PR tree-optimization/59299
34573         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
34574         a def operand.
34575         (nearest_common_dominator_of_uses): Likewise.
34576         (statement_sink_location): Adjust.  Support sinking loads.
34577
34578 2014-06-06  Martin Jambor  <mjambor@suse.cz>
34579
34580         * ipa-prop.c (get_place_in_agg_contents_list): New function.
34581         (build_agg_jump_func_from_list): Likewise.
34582         (determine_known_aggregate_parts): Renamed to
34583         determine_locally_known_aggregate_parts.  Moved some functionality
34584         to the two functions above, removed bound checks.
34585
34586 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
34587
34588         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
34589         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
34590         (aarch64_progress_pointer): Likewise.
34591         (aarch64_copy_one_part_and_move_pointers): Likewise.
34592         (aarch64_expand_movmen): Likewise.
34593         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
34594         * config/aarch64/aarch64.md (movmem<mode>): New.
34595
34596 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
34597
34598         * targhooks.c (default_add_stmt_cost): Call target specific
34599         hook instead of default one.
34600
34601 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34602
34603         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
34604         endianness instead of host endianness.
34605         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
34606         comments.
34607
34608 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34609
34610         PR debug/53927
34611         * function.c (instantiate_decls): Process the saved static chain.
34612         (expand_function_start): If not optimizing, save the static chain
34613         onto the stack.
34614         * tree-nested.c (convert_all_function_calls): Always create the static
34615         chain for nested functions if not optimizing.
34616
34617 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34618
34619         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
34620
34621 2014-06-06  Richard Biener  <rguenther@suse.de>
34622
34623         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
34624         (construct_init_block): Likewise.
34625         (construct_exit_block): Likewise.
34626         (pass_expand::execute): Likewise.
34627         * graphite.c (graphite_transforms): Replace check for current_loops
34628         with a check for > 1 loops.
34629         (pass_graphite_transforms::execute): Adjust.
34630         * ipa-split.c (split_function): Remove check for current_loops.
34631         * omp-low.c (expand_parallel_call): Likewise.
34632         (expand_omp_for_init_counts): Likewise.
34633         (extract_omp_for_update_vars): Likewise.
34634         (expand_omp_for_generic): Likewise.
34635         (expand_omp_sections): Likewise.
34636         (expand_omp_target): Likewise.
34637         * tracer.c (tail_duplicate): Likewise.
34638         (pass_tracer::execute): Likewise.
34639         * trans-mem.c (expand_transaction): Likewise.
34640         * tree-complex.c (expand_complex_div_wide): Likewise.
34641         * tree-eh.c (lower_resx): Likewise.
34642         (cleanup_empty_eh_merge_phis): Likewise.
34643         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
34644         current_loops with a check for > 1 loops.
34645         (pass_predcom::execute): Adjust.
34646         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
34647         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
34648         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
34649         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
34650         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
34651         * tree-switch-conversion.c (process_switch): Likewise.
34652         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
34653         * tree-vrp.c (vrp_visit_phi_node): Likewise.
34654         (execute_vrp): Likewise.
34655         * ubsan.c (ubsan_expand_null_ifn): Likewise.
34656
34657 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34658
34659         * rtl.h (insn_location): Declare.
34660         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
34661         with UNKNOWN_LOCATION.
34662         * emit-rtl.c (insn_location): New function.
34663         * final.c (notice_source_line): Check that the instruction has a
34664         location before retrieving it and use insn_location.
34665         * modulo-sched.c (loop_single_full_bb_p): Likewise.
34666         * print-rtl.c (print_rtx): Likewise.
34667
34668 2014-06-06  Richard Biener  <rguenther@suse.de>
34669
34670         * passes.def: Move 2nd VRP pass before phi-only-cprop.
34671
34672 2014-06-06  Christian Bruel  <christian.bruel@st.com>
34673
34674         PR tree-optimization/43934
34675         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
34676         cost.
34677
34678 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
34679
34680         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
34681         return NO_REGS for extra address and memory constraints.  Handle
34682         operands that match (or are equivalent to something that matches)
34683         extra constant constraints.  Ignore other non-register operands.
34684
34685 2014-06-06  Alan Modra  <amodra@gmail.com>
34686
34687         PR target/61300
34688         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
34689         * doc/tm.texi: Regenerate.
34690         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
34691         Use throughout in place of REG_PARM_STACK_SPACE.
34692         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
34693         "incoming" param.  Pass to rs6000_function_parms_need_stack.
34694         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
34695         prototype_p when incoming.  Use function decl when incoming
34696         to handle K&R style functions.
34697         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
34698         (INCOMING_REG_PARM_STACK_SPACE): Define.
34699
34700 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
34701
34702         PR target/52472
34703         * cfgexpand.c (expand_debug_expr): Use address space of nested
34704         TREE_TYPE for ADDR_EXPR and MEM_REF.
34705
34706 2014-06-05  Jeff Law  <law@redhat.com>
34707
34708         PR tree-optimization/61289
34709         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
34710         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
34711         looking for those which match LHS.  All callers changed.
34712         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
34713         parameters and code which manipulated them.  All callers changed.
34714         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
34715         and DST_MAP parameters.  Simplify invalidation code by just calling
34716         invalidate_equivalences.  All callers changed.
34717         (thread_across_edge): Simplify now that we don't need to maintain
34718         the map of equivalences to invalidate.
34719
34720 2014-06-05  Kai Tietz  <ktietz@redhat.com>
34721             Richard Henderson  <rth@redhat.com>
34722
34723         PR target/46219
34724         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
34725         checking for !TARGET_X32.
34726         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
34727         (sibcall_intern): New define_insn, plus required peepholes.
34728         (sibcall_pop_intern): Likewise.
34729         (sibcall_value_intern): Likewise.
34730         (sibcall_value_pop_intern): Likewise.
34731
34732 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
34733
34734         * tree-inline.c (tree_function_versioning): Check DF info existence
34735         before accessing it.
34736
34737 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34738
34739         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
34740         frame_size.
34741         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
34742         aarch64_frame hard_fp_offset and frame_size.
34743         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
34744         frame_size; remove original_frame_size.
34745         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
34746         (aarch64_initial_elimination_offset): Remove frame_size and
34747         offset.  Use aarch64_frame frame_size.
34748
34749 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34750             Jiong Wang  <jiong.wang@arm.com>
34751             Renlin  <renlin.li@arm.com>
34752
34753         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
34754         initialization of R30 offset.  Update offset.  Iterate core
34755         regisers upto X30.  Remove X29, X30 specific code.
34756
34757 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34758             Jiong Wang  <jiong.wang@arm.com>
34759
34760         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
34761         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
34762         (aarch64_register_saved_on_entry): Adjust test.
34763
34764 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34765
34766         * config/aarch64/aarch64.h (machine_function): Move
34767         saved_varargs_size from here...
34768         (aarch64_frame): ... to here.
34769
34770         * config/aarch64/aarch64.c (aarch64_expand_prologue)
34771         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
34772         (aarch64_initial_elimination_offset)
34773         (aarch64_setup_incoming_varargs): Adjust location of
34774         saved_varargs_size.
34775
34776 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34777
34778         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
34779         layout comment.
34780
34781 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
34782             Prachi Godbole  <Prachi.Godbole@imgtec.com>
34783
34784         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
34785         mips32r5 entry to use PROCESSOR_P5600.
34786         * config/mips/mips-tables.opt: Regenerate.
34787         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
34788         * config/mips/mips.c (mips_fmadd_bypass): New function.
34789         (mips_rtx_cost_data): Add costs for p5600.
34790         (mips_issue_rate): Add support for p5600.
34791         (mips_multipass_dfa_lookahead): Likewise.
34792         * config/mips/mips.h (TUNE_P5600): New define.
34793         (TUNE_MACC_CHAINS): Add TUNE_P5600.
34794         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
34795         * config/mips/mips.md: Include p5600.md.
34796         (processor): Add p5600.
34797         * config/mips/p5600.md: New file.
34798
34799 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
34800
34801         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
34802         * config/i386/predicates.md (palignr_operand): New.
34803         Indicates if permutation is suitable for palignr instruction.
34804
34805 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
34806
34807         PR tree-optimization/61319
34808         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
34809         stmt belongs to loop.
34810
34811 2014-06-05  Richard Biener  <rguenther@suse.de>
34812
34813         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
34814         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
34815         (lookup_tmp_var): Adjust.
34816         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
34817
34818 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34819
34820         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
34821
34822 2014-06-05  Marek Polacek  <polacek@redhat.com>
34823
34824         PR c/49706
34825         * doc/invoke.texi: Document -Wlogical-not-parentheses.
34826
34827 2014-06-04  Tom de Vries  <tom@codesourcery.com>
34828
34829         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
34830         CONST_INT.
34831
34832 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
34833
34834         PR tree-optimization/61385
34835         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
34836
34837 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
34838
34839         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
34840         changed to use fatal_error.
34841         (main): Ensure lto_wrapper_cleanup is run atexit.
34842
34843 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34844
34845         * lra-constraints.c (valid_address_p): Move earlier in file.
34846         (address_eliminator): New structure.
34847         (satisfies_memory_constraint_p): New function.
34848         (satisfies_address_constraint_p): Likewise.
34849         (process_alt_operands, process_address, curr_insn_transform): Use them.
34850
34851 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34852
34853         * lra-int.h (lra_static_insn_data): Make operand_alternative a
34854         const pointer.
34855         (target_lra_int, default_target_lra_int, this_target_lra_int)
34856         (op_alt_data): Delete.
34857         * lra.h (lra_init): Delete.
34858         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
34859         (init_insn_code_data_once): Remove op_alt_data handling.
34860         (finish_insn_code_data_once): Likewise.
34861         (init_op_alt_data): Delete.
34862         (get_static_insn_data): Initialize operand_alternative to null.
34863         (free_insn_recog_data): Cast operand_alternative before freeing it.
34864         (setup_operand_alternative): Take the operand_alternative as
34865         parameter and assume it isn't already cached in the static
34866         insn data.
34867         (lra_set_insn_recog_data): Update accordingly.
34868         (lra_init): Delete.
34869         * ira.c (ira_init): Don't call lra_init.
34870         * target-globals.h (this_target_lra_int): Declare.
34871         (target_globals): Remove lra_int.
34872         (restore_target_globals): Update accordingly.
34873         * target-globals.c: Don't include lra-int.h.
34874         (default_target_globals, save_target_globals): Remove lra_int.
34875
34876 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34877
34878         * recog.h (operand_alternative): Convert reg_class, reject,
34879         matched and matches into bitfields.
34880         (preprocess_constraints): New overload.
34881         (preprocess_insn_constraints): New function.
34882         (preprocess_constraints): Take the insn as parameter.
34883         (recog_op_alt): Change into a pointer.
34884         (target_recog): Add x_op_alt.
34885         * recog.c (asm_op_alt): New variable.
34886         (recog_op_alt): Change into a pointer.
34887         (preprocess_constraints): New overload, replacing the old function
34888         definition with one that doesn't use global state.
34889         (preprocess_insn_constraints): New function.
34890         (preprocess_constraints): Use them.  Take the insn as parameter.
34891         Use asm_op_alt for asms.
34892         (recog_init): Free existing x_op_alt entries.
34893         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
34894         pointer const.
34895         (make_early_clobber_and_input_conflicts): Likewise.
34896         (process_bb_node_lives): Pass the insn to process_constraints.
34897         * reg-stack.c (check_asm_stack_operands): Likewise.
34898         (subst_asm_stack_regs): Likewise.
34899         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34900         * regrename.c (build_def_use): Likewise.
34901         * sched-deps.c (sched_analyze_insn): Likewise.
34902         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
34903         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
34904         (note_invalid_constants): Likewise.
34905         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34906         (ix86_legitimate_combined_insn): Make operand_alternative pointer
34907         const.
34908
34909 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34910
34911         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
34912         * ira-lives.c (check_and_make_def_conflict): Check for disabled
34913         alternatives.
34914         (make_early_clobber_and_input_conflicts): Likewise.
34915         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34916
34917 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34918
34919         * recog.h (alternative_class): New function.
34920         (which_op_alt): Return a const recog_op_alt.
34921         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
34922         (subst_asm_stack_regs): Likewise.
34923         * config/arm/arm.c (note_invalid_constants): Likewise.
34924         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
34925         the operand_alternative; use alternative class instead.
34926         * sel-sched.c (get_reg_class): Likewise.
34927         * regrename.c (build_def_use): Likewise.
34928         (hide_operands, restore_operands, record_out_operands): Update type
34929         accordingly.
34930
34931 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34932
34933         * recog.h (recog_op_alt): Convert to a flat array.
34934         (which_op_alt): New function.
34935         * recog.c (recog_op_alt): Convert to a flat array.
34936         (preprocess_constraints): Update accordingly, grouping all
34937         operands of the same alternative together, rather than the
34938         other way around.
34939         * ira-lives.c (check_and_make_def_conflict): Likewise.
34940         (make_early_clobber_and_input_conflicts): Likewise.
34941         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34942         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
34943         (subst_asm_stack_regs): Likewise.
34944         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34945         * regrename.c (hide_operands, record_out_operands): Likewise.
34946         (build_def_use): Likewise.
34947         * sel-sched.c (get_reg_class): Likewise.
34948         * config/arm/arm.c (note_invalid_constants): Likewise.
34949
34950 2014-06-04  Jason Merrill  <jason@redhat.com>
34951
34952         PR c++/51253
34953         PR c++/61382
34954         * gimplify.c (gimplify_arg): Non-static.
34955         * gimplify.h: Declare it.
34956
34957 2014-06-04  Richard Biener  <rguenther@suse.de>
34958
34959         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34960         TREE_PUBLIC and DECL_EXTERNAL decls.
34961
34962 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
34963
34964         * regcprop.c (copyprop_hardreg_forward_1): Account for
34965         HARD_REGNO_CALL_PART_CLOBBERED.
34966
34967 2014-06-04  Richard Biener  <rguenther@suse.de>
34968
34969         * configure.ac: Check whether the underlying type of int64_t
34970         is long or long long.
34971         * configure: Regenerate.
34972         * config.in: Likewise.
34973         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
34974         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34975
34976 2014-06-04  Richard Biener  <rguenther@suse.de>
34977
34978         PR tree-optimization/60098
34979         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
34980         we hit a kill.
34981         (dse_optimize_stmt): Simplify, now that we found a kill
34982         earlier.
34983
34984 2014-06-04  Richard Biener  <rguenther@suse.de>
34985
34986         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
34987         of accesses with non-invariant address.
34988
34989 2014-06-04  Martin Liska  <mliska@suse.cz>
34990
34991         * cgraph.h (cgraph_make_wrapper): New function introduced.
34992         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
34993         * ipa-inline.h (inline_analyze_function): The function is global.
34994         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
34995
34996 2014-06-04  Martin Liska  <mliska@suse.cz>
34997
34998         * tree.h (private_lookup_attribute_starting): New function.
34999         (lookup_attribute_starting): Likewise.
35000         * tree.c (private_lookup_attribute_starting): Likewise.
35001
35002 2014-06-04  Martin Liska  <mliska@suse.cz>
35003
35004         * cgraph.h (expand_thunk): New argument added.
35005         (address_taken_from_non_vtable_p): New global function.
35006         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
35007         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
35008         * cgraphunit.c (analyze_function): Likewise.
35009         (assemble_thunks_and_aliases): Argument added to call.
35010         (expand_thunk): New argument forces to produce GIMPLE thunk.
35011
35012 2014-06-04  Martin Liska  <mliska@suse.cz>
35013
35014         * coverage.h (coverage_compute_cfg_checksum): Argument added.
35015         * coverage.c (coverage_compute_cfg_checksum): Likewise.
35016         * profile.c (branch_prob): Likewise.
35017
35018 2014-06-04  Martin Jambor  <mjambor@suse.cz>
35019
35020         PR ipa/61340
35021         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
35022         handler for switch on an ipa_ref_use enum.
35023         * ipa-reference.c (analyze_function): Likewise.
35024
35025 2014-06-04  Kai Tietz  <ktietz@redhat.com>
35026
35027         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
35028         from old call-instruction.
35029
35030 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
35031
35032         * config/aarch64/aarch64.c (aarch64_classify_address)
35033         (aarch64_legitimize_reload_address): Support full addressing modes
35034         for vector modes.
35035         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
35036         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
35037
35038 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35039
35040         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
35041         for OP0.
35042
35043 2014-06-03  Andrew Pinski  <apinski@cavium.com>
35044
35045         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
35046         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
35047
35048 2014-06-03  Kai Tietz  <ktietz@redhat.com>
35049
35050         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
35051         for 64-bit ms-abi.
35052
35053 2014-06-03  Dehao Chen  <dehao@google.com>
35054
35055         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
35056         the same loop.
35057
35058 2014-06-03  Marek Polacek  <polacek@redhat.com>
35059
35060         PR c/60439
35061         * doc/invoke.texi: Document -Wswitch-bool.
35062         * function.c (stack_protect_epilogue): Cast controlling expression of
35063         the switch to int.
35064         * gengtype.c (walk_type): Generate switch expression with its
35065         controlling expression cast to int.
35066
35067 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
35068
35069         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
35070         and attiny841.
35071         * config/avr/avr-tables.opt: Regenerate.
35072         * config/avr/t-multilib: Regenerate.
35073         * doc/avr-mmcu.texi: Regenerate.
35074
35075 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
35076             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
35077
35078         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
35079         (ata6617c, ata664251): Add new avr35 devices.
35080         (ata6612c): Add new avr4 device.
35081         (ata6613c, ata6614q): Add new avr5 devices.
35082         * config/avr/avr-tables.opt: Regenerate.
35083         * config/avr/t-multilib: Regenerate.
35084         * doc/avr-mmcu.texi: Regenerate.
35085
35086 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35087
35088         * gcc/config/aarch64/aarch64-builtins.c
35089         (aarch64_types_binop_ssu_qualifiers): New static data.
35090         (TYPES_BINOP_SSU): Define.
35091         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
35092         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
35093         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
35094         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
35095         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
35096         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
35097         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
35098         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
35099         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
35100         suffix to builtin function name, remove cast.
35101         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
35102         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
35103         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
35104
35105 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35106
35107         * gcc/config/aarch64/aarch64-builtins.c
35108         (aarch64_types_binop_uus_qualifiers,
35109         aarch64_types_shift_to_unsigned_qualifiers,
35110         aarch64_types_unsigned_shiftacc_qualifiers): Define.
35111         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
35112         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
35113         sqshlu_n, uqshl_n): Update qualifiers.
35114         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
35115         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
35116         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
35117         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
35118         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
35119         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
35120         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
35121         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
35122         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
35123         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
35124         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
35125         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
35126         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
35127         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
35128         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
35129         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
35130         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
35131         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
35132         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
35133         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
35134         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
35135         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
35136         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
35137         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
35138         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
35139         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
35140         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
35141
35142 2014-06-03  Teresa Johnson  <tejohnson@google.com>
35143
35144         * tree-sra.c (modify_function): Record caller nodes after rebuild.
35145
35146 2014-06-02  Jason Merrill  <jason@redhat.com>
35147
35148         PR c++/61020
35149         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
35150
35151 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35152
35153         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
35154         location == 0.
35155
35156 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35157
35158         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
35159         New pattern.
35160         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
35161         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
35162         * config/aarch64/iterators.md (REVERSE): New iterator.
35163         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
35164         (rev_op): New int_attribute.
35165         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
35166         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
35167         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
35168         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
35169         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
35170         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
35171         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
35172         Replace temporary __asm__ with __builtin_shuffle.
35173
35174 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35175
35176         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
35177         mips64r5.
35178         * config/mips/mips-tables.opt: Regenerate.
35179         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
35180         to use mips_isa_rev rather than ISA_MIPS32R2.
35181         * config/mips/mips.h (ISA_MIPS32R3): New define.
35182         (ISA_MIPS32R5): New define.
35183         (ISA_MIPS64R3): New define.
35184         (ISA_MIPS64R5): New define.
35185         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
35186         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
35187         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
35188         and mips64r5.
35189         (MIPS_ISA_SYNCI_SPEC): Likewise.
35190         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
35191         (LINK_SPEC): Added mips32r3 and mips32r5.
35192         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
35193         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
35194         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
35195         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
35196         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
35197         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
35198         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
35199
35200 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35201
35202         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
35203         options.
35204         * config/mips/mips.opt (mxpa): New option.
35205         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
35206         assembler.
35207
35208 2014-06-03  Martin Jambor  <mjambor@suse.cz>
35209
35210         PR ipa/61160
35211         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
35212         thunks.
35213
35214 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35215
35216         PR tree-optimization/61328
35217         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
35218         initialization from find_bswap_or_nop_1.
35219         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
35220         in source_expr2 before using the size value the function sets. Also
35221         make use of init_symbolic_number () in both the old place and
35222         find_bswap_or_nop_load () to avoid reading uninitialized memory when
35223         doing recursion in the GIMPLE_BINARY_RHS case.
35224
35225 2014-06-03  Richard Biener  <rguenther@suse.de>
35226
35227         PR tree-optimization/61383
35228         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
35229         stmts can't trap.
35230
35231 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
35232
35233         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
35234         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
35235         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
35236         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
35237         in this file.
35238         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
35239         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
35240         * system.h: ...here and make it unconditional.
35241         * target.def (conditional_register_usage): Mention
35242         define_register_constraint instead of old-style constraint macros.
35243         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
35244         * doc/tm.texi: Regenerate.
35245         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
35246         protected by !USE_MD_CONSTRAINTS.
35247         * config/frv/frv.md: Remove quote from old version of documentation.
35248         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
35249         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
35250         CONST_DOUBLE_OK_FOR_LETTER.
35251         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
35252
35253 2014-06-02  Andrew Pinski  <apinski@cavium.com>
35254
35255         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
35256         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
35257         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
35258         file whose name depends on -mabi= and -mbig-endian.
35259         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
35260         Handle LP64 better and handle ilp32 too.
35261         (MULTILIB_OPTIONS): Delete.
35262         (MULTILIB_DIRNAMES): Delete.
35263
35264 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
35265
35266         * expr.h: Remove prototypes of functions defined in builtins.c.
35267         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
35268         Remove prototypes of functions defined in builtins.c.
35269         * builtins.h: Update prototype list to include all exported functions.
35270         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
35271         no_c99_libc_has_function): Move to targhooks.c
35272         (build_string_literal, build_call_expr_loc_array,
35273         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
35274         to tree.c.
35275         (expand_builtin_object_size, fold_builtin_object_size): Make static.
35276         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
35277         no_c99_libc_has_function): Relocate from builtins.c.
35278         * tree.c: Include builtins.h.
35279         (build_call_expr_loc_array, build_call_expr_loc_vec,
35280         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
35281         from builtins.c.
35282         * fold-const.h (fold_fma): Move prototype to builtins.h.
35283         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
35284         * asan.c: Include builtins.h.
35285         * cfgexpand.c: Likewise.
35286         * convert.c: Likewise.
35287         * emit-rtl.c: Likewise.
35288         * except.c: Likewise.
35289         * expr.c: Likewise.
35290         * fold-const.c: Likewise.
35291         * gimple-fold.c: Likewise.
35292         * gimple-ssa-strength-reduction.c: Likewise.
35293         * gimplify.c: Likewise.
35294         * ipa-inline.c: Likewise.
35295         * ipa-prop.c: Likewise.
35296         * lto-streamer-out.c: Likewise.
35297         * stmt.c: Likewise.
35298         * tree-inline.c: Likewise.
35299         * tree-object-size.c: Likewise.
35300         * tree-sra.c: Likewise.
35301         * tree-ssa-ccp.c: Likewise.
35302         * tree-ssa-forwprop.c: Likewise.
35303         * tree-ssa-loop-ivcanon.c: Likewise.
35304         * tree-ssa-loop-ivopts.c: Likewise.
35305         * tree-ssa-math-opts.c: Likewise.
35306         * tree-ssa-reassoc.c: Likewise.
35307         * tree-ssa-threadedge.c: Likewise.
35308         * tree-streamer-in.c: Likewise.
35309         * tree-vect-data-refs.c: Likewise.
35310         * tree-vect-patterns.c: Likewise.
35311         * tree-vect-stmts.c: Likewise.
35312         * config/aarch64/aarch64.c: Likewise.
35313         * config/alpha/alpha.c: Likewise.
35314         * config/arc/arc.c: Likewise.
35315         * config/arm/arm.c: Likewise.
35316         * config/avr/avr.c: Likewise.
35317         * config/bfin/bfin.c: Likewise.
35318         * config/c6x/c6x.c: Likewise.
35319         * config/cr16/cr16.c: Likewise.
35320         * config/cris/cris.c: Likewise.
35321         * config/epiphany/epiphany.c: Likewise.
35322         * config/fr30/fr30.c: Likewise.
35323         * config/frv/frv.c: Likewise.
35324         * config/h8300/h8300.c: Likewise.
35325         * config/i386/i386.c: Likewise.
35326         * config/i386/winnt.c: Likewise.
35327         * config/ia64/ia64.c: Likewise.
35328         * config/iq2000/iq2000.c: Likewise.
35329         * config/lm32/lm32.c: Likewise.
35330         * config/m32c/m32c.c: Likewise.
35331         * config/m32r/m32r.c: Likewise.
35332         * config/m68k/m68k.c: Likewise.
35333         * config/mcore/mcore.c: Likewise.
35334         * config/mep/mep.c: Likewise.
35335         * config/microblaze/microblaze.c: Likewise.
35336         * config/mips/mips.c: Likewise.
35337         * config/mmix/mmix.c: Likewise.
35338         * config/mn10300/mn10300.c: Likewise.
35339         * config/moxie/moxie.c: Likewise.
35340         * config/msp430/msp430.c: Likewise.
35341         * config/nds32/nds32.c: Likewise.
35342         * config/pa/pa.c: Likewise.
35343         * config/pdp11/pdp11.c: Likewise.
35344         * config/picochip/picochip.c: Likewise.
35345         * config/rl78/rl78.c: Likewise.
35346         * config/rs6000/rs6000.c: Likewise.
35347         * config/rx/rx.c: Likewise.
35348         * config/s390/s390.c: Likewise.
35349         * config/score/score.c: Likewise.
35350         * config/sh/sh.c: Likewise.
35351         * config/sparc/sparc.c: Likewise.
35352         * config/spu/spu.c: Likewise.
35353         * config/stormy16/stormy16.c: Likewise.
35354         * config/tilegx/tilegx.c: Likewise.
35355         * config/tilepro/tilepro.c: Likewise.
35356         * config/v850/v850.c: Likewise.
35357         * config/vax/vax.c: Likewise.
35358         * config/xtensa/xtensa.c: Likewise.
35359
35360 2014-06-02  Jeff Law  <law@redhat.com>
35361
35362         PR rtl-optimization/61094
35363         * ree.c (combine_reaching_defs): Do not reextend an insn if it
35364         was marked as do_no_reextend.  If a copy is needed to eliminate
35365         an extension, then mark it as do_not_reextend.
35366
35367 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35368
35369         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35370
35371 2014-06-02  Richard Henderson  <rth@redhat.com>
35372
35373         PR target/61336
35374         * config/alpha/alpha.c (print_operand_address): Allow symbolic
35375         addresses inside asms.  Use output_operand_lossage instead of
35376         gcc_unreachable.
35377
35378 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
35379
35380         PR target/61239
35381         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
35382         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
35383
35384 2014-06-02  Tom de Vries  <tom@codesourcery.com>
35385
35386         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
35387         case that x has VOIDmode.
35388
35389 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
35390
35391         * varasm.c (copy_constant): Delete function.
35392         (build_constant_desc): Don't call it.
35393
35394 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35395
35396         PR target/61154
35397         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
35398         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
35399         with immediate_operand.
35400
35401 2014-06-02  Andreas Schwab  <schwab@suse.de>
35402
35403         * config/ia64/ia64.c
35404         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
35405         pending_data_specs first.
35406
35407 2014-06-02  Richard Biener  <rguenther@suse.de>
35408
35409         PR tree-optimization/61378
35410         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
35411         valueized_anything.
35412
35413 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
35414
35415         * config/i386/constraints.md (Bw): Rename from 'w'.
35416         (Bz): Rename from 'z'.
35417         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
35418
35419 2014-06-01  Kai Tietz  <ktietz@redhat.com>
35420
35421         PR target/61377
35422         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
35423         * config/i386/i386.md (sibcall_insn_operand): Use Bs
35424         instead of m constraint.
35425
35426 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
35427
35428         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
35429         a separate alternative where the scratch operand 2 is marked as
35430         early clobber.
35431
35432 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
35433
35434         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
35435         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
35436         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
35437         and __builtins_arm_get_fpscr.
35438         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
35439         __builtins_arm_get_fpscr.
35440         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
35441         __builtins_arm_ldfpscr.
35442         (arm_atomic_assign_expand_fenv): New function.
35443         * config/arm/vfp.md (set_fpscr): New pattern.
35444         (get_fpscr) : Likewise.
35445         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
35446         VUNSPEC_SET_FPSCR.
35447         * doc/extend.texi (AARCH64 Built-in Functions) : Document
35448         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
35449
35450 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
35451
35452         * asan.c (report_error_func): Add SLOW_P argument, use
35453         BUILT_IN_ASAN_*_N if set.
35454         (build_check_stmt): Likewise.
35455         (instrument_derefs): If T has insufficient alignment,
35456         force same handling as for odd sizes.
35457
35458         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
35459         BUILT_IN_ASAN_REPORT_STORE_N): New.
35460         * asan.c (struct asan_mem_ref): Change access_size type to
35461         HOST_WIDE_INT.
35462         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
35463         update_mem_ref_hash_table): Likewise.
35464         (asan_mem_ref_hasher::hash): Hash in a HWI.
35465         (report_error_func): Change size_in_bytes argument to HWI.
35466         Use *_N builtins if size_in_bytes is larger than 16 or not power of
35467         two.
35468         (build_shadow_mem_access): New function.
35469         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
35470         Handle size_in_bytes not power of two or larger than 16.
35471         (instrument_derefs): Don't give up if size_in_bytes is not
35472         power of two or is larger than 16.
35473
35474 2014-05-30  Kai Tietz  <ktietz@redhat.com>
35475
35476         PR target/60104
35477         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
35478         for sibling-tail-calls.
35479         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
35480         to its use.
35481         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
35482         (sibcall_insn_operand): Add check for sibcall_memory_operand.
35483
35484 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
35485
35486         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
35487         * config/avr/avr-tables.opt: Regenerate.
35488         * config/avr/t-multilib: Regenerate.
35489         * doc/avr-mmcu.texi: Regenerate.
35490
35491 2014-05-30  Ian Lance Taylor  <iant@google.com>
35492
35493         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
35494         target("sse").
35495
35496 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35497
35498         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
35499         Redefine as true.
35500
35501 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35502
35503         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35504         * lra.c (initialize_lra_reg_info_element): Add init of
35505         actual_call_used_reg_set field.
35506         (lra): Call lra_create_live_ranges before lra_inheritance for
35507         -fuse-caller-save.
35508         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35509         -fuse-caller-save.
35510         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
35511         instead of call_used_reg_set for -fuse-caller-save.
35512         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35513
35514 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35515
35516         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
35517         to mov_imm.
35518         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
35519
35520 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
35521
35522         * ira.c (ira_get_dup_out_num): Check for output operands at
35523         the start of the loop.  Handle cases where an included alternative
35524         follows an excluded one.
35525
35526 2014-05-29  Mike Stump  <mikestump@comcast.net>
35527
35528         PR debug/61352
35529         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
35530         post ld passes when lto is used.
35531
35532 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
35533
35534         PR rtl-optimization/61325
35535         * lra-constraints.c (process_address): Rename to process_address_1.
35536         (process_address): New function.
35537
35538 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
35539
35540         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
35541         TYPES_BINOPV): New static data.
35542         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
35543         New builtin.
35544         * config/aarch64/aarch64-simd.md (aarch64_ext,
35545         aarch64_im_lane_boundsi): New patterns.
35546         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
35547         patterns for EXT.
35548         (aarch64_evpc_ext): New function.
35549
35550         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
35551
35552         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
35553         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
35554         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
35555         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
35556         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
35557
35558 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35559
35560         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
35561
35562 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
35563             Richard Sandiford  <rdsandiford@googlemail.com>
35564
35565         * arm/iterators.md (shiftable_ops): New code iterator.
35566         (t2_binop0, arith_shift_insn): New code attributes.
35567         * arm/predicates.md (shift_nomul_operator): New predicate.
35568         * arm/arm.md (insn_enabled): Delete.
35569         (enabled): Remove insn_enabled test.
35570         (*arith_shiftsi): Delete.  Replace with ...
35571         (*<arith_shift_insn>_multsi): ... new pattern.
35572         (*<arith_shift_insn>_shiftsi): ... new pattern.
35573         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
35574
35575 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
35576             Tom de Vries  <tom@codesourcery.com>
35577
35578         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
35579         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
35580         clobber.
35581         (mips_split_call): Use POST_CALL_TMP_REG.
35582         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
35583
35584 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35585
35586         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
35587         with #ifdef STACK_REGS.
35588
35589 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
35590
35591         * varasm.c (get_variable_section): Walk aliases.
35592         (place_block_symbol): Walk aliases.
35593
35594 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35595
35596         Revert:
35597         2014-05-28  Tom de Vries  <tom@codesourcery.com>
35598
35599         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35600         * lra.c (initialize_lra_reg_info_element): Add init of
35601         actual_call_used_reg_set field.
35602         (lra): Call lra_create_live_ranges before lra_inheritance for
35603         -fuse-caller-save.
35604         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35605         -fuse-caller-save.
35606         * lra-constraints.c (need_for_call_save_p): Use
35607         actual_call_used_reg_set instead of call_used_reg_set for
35608         -fuse-caller-save.
35609         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35610
35611 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35612
35613         * doc/md.texi: Document that the % constraint character must
35614         be at the beginning of the string.
35615         * genoutput.c (validate_insn_alternatives): Check that '=',
35616         '+' and '%' only appear at the beginning of a constraint.
35617         * ira.c (commutative_constraint_p): Delete.
35618         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
35619         at the start of the string.
35620         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
35621         duplicate '='s.
35622         * config/arm/neon.md (bicdi3_neon): Likewise.
35623         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
35624         (slt_si, sltu_si): Likewise.
35625         * config/vax/vax.md (sbcdi3): Likewise.
35626         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
35627         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
35628         (mul64): Move '%' to beginning of constraint.
35629         * config/arm/arm.md (*xordi3_insn): Likewise.
35630         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
35631         (xorsi3): Likewise.
35632
35633 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35634
35635         * doc/md.texi: Document the restrictions on the "enabled" attribute.
35636
35637 2014-05-28  Jason Merrill  <jason@redhat.com>
35638
35639         PR c++/47202
35640         * cgraph.h (symtab_node::get_comdat_group_id): New.
35641         * cgraphunit.c (analyze_functions): Call it.
35642         * symtab.c (dump_symtab_node): Likewise.
35643         * tree.c (decl_comdat_group_id): New.
35644         * tree.h: Declare it.
35645         * lto-streamer-out.c (write_symbol): Use it.
35646         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
35647
35648 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35649
35650         PR bootstrap/PR61146
35651         * wide-int.cc: Do not include longlong.h when compiling with clang.
35652
35653 2014-05-28  Richard Biener  <rguenther@suse.de>
35654
35655         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
35656         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
35657         (vrp_visit_assignment_or_call): Print less vertical space.
35658         (vrp_visit_stmt): Likewise.
35659         (vrp_visit_phi_node): Likewise.  For a PHI argument with
35660         VR_VARYING range consider recording it as copy.
35661
35662 2014-05-28  Richard Biener  <rguenther@suse.de>
35663
35664         Revert
35665         2014-05-28  Richard Biener  <rguenther@suse.de>
35666
35667         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35668
35669 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35670
35671         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
35672         sufficiently aligned and an offset is used at the same time.
35673         (expand_expr_real_1): Likewise.
35674
35675 2014-05-28  Richard Biener  <rguenther@suse.de>
35676
35677         PR middle-end/61045
35678         * fold-const.c (fold_comparison): When folding
35679         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
35680         the sign of the remaining constant operand stays the same.
35681
35682 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
35683
35684         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
35685         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
35686         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
35687         to the assembler.
35688         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
35689         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
35690         (m32bit-doubles) Likewise.
35691         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
35692         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
35693         option for RL78.
35694
35695 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35696
35697         * configure.ac ($gcc_cv_ld_clearcap): New test.
35698         * configure: Regenerate.
35699         * config.in: Regenerate.
35700         * config/sol2.opt (mclear-hwcap): New option.
35701         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
35702         * config/sol2-clearcap.map: Moved here from
35703         testsuite/gcc.target/i386/clearcap.map.
35704         * config/sol2-clearcapv2.map: Move here from
35705         gcc.target/i386/clearcapv2.map.
35706         * config/t-sol2 (install): Depend on install-clearcap-map.
35707         (install-clearcap-map): New target.
35708         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
35709         -mclear-hwcap.
35710
35711 2014-05-28  Richard Biener  <rguenther@suse.de>
35712
35713         * hwint.h (*_HALF_WIDE_INT*): Move to ...
35714         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
35715         ... here and remove the rest.
35716         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35717
35718 2014-05-28  Richard Biener  <rguenther@suse.de>
35719
35720         PR tree-optimization/61335
35721         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
35722         new range fails, drop to varying.
35723
35724 2014-05-28  Olivier Hainque  <hainque@adacore.com>
35725
35726         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
35727         (CPP_SPEC): Add entry for -mcpu=8548.
35728         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
35729         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
35730
35731 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35732
35733         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35734         * lra.c (initialize_lra_reg_info_element): Add init of
35735         actual_call_used_reg_set field.
35736         (lra): Call lra_create_live_ranges before lra_inheritance for
35737         -fuse-caller-save.
35738         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35739         -fuse-caller-save.
35740         * lra-constraints.c (need_for_call_save_p): Use
35741         actual_call_used_reg_set instead of call_used_reg_set for
35742         -fuse-caller-save.
35743         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35744
35745 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35746             Tom de Vries  <tom@codesourcery.com>
35747
35748         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
35749         to gccoptlist.
35750         (@item -fuse-caller-save): New item.
35751
35752 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35753             Tom de Vries  <tom@codesourcery.com>
35754
35755         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
35756         OPT_fuse_caller_save.
35757
35758 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35759             Tom de Vries  <tom@codesourcery.com>
35760
35761         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
35762         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
35763         get_call_reg_set_usage.
35764         * resource.c (mark_set_resources, mark_target_live_regs): Use
35765         get_call_reg_set_usage.
35766         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
35767         field.
35768         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
35769         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
35770         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35771         * ira-build.c (ira_create_allocno): Init
35772         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35773         (create_cap_allocno, propagate_allocno_info)
35774         (propagate_some_info_from_allocno)
35775         (copy_info_to_removed_store_destinations): Handle
35776         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35777         * ira-costs.c (ira_tune_allocno_costs): Use
35778         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
35779
35780 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35781             Tom de Vries  <tom@codesourcery.com>
35782
35783         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
35784         and function_used_regs_valid fields.
35785         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
35786         find_all_hard_reg_sets.
35787         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
35788         (get_call_reg_set_usage): New function.
35789         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
35790         * regs.h (get_call_reg_set_usage): Declare.
35791
35792 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35793
35794         PR libgcc/61152
35795         * config/dbx.h (License): Add Runtime Library Exception.
35796         * config/newlib-stdint.h (License): Same.
35797         * config/rtems.h (License): Same
35798         * config/initfini-array.h (License): Same
35799         * config/v850/v850.h (License): Same.
35800         * config/v850/v850-opts.h (License): Same
35801         * config/v850/rtems.h (License): Same.
35802
35803 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35804
35805         PR target/61044
35806         * doc/extend.texi (Local Labels): Note that label differences are
35807         not supported for AVR.
35808
35809 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35810             Olivier Hainque  <hainque@adacore.com>
35811
35812         * rtl.h (set_for_reg_notes): Declare.
35813         * emit-rtl.c (set_for_reg_notes): New function.
35814         (set_unique_reg_note): Use it.
35815         * optabs.c (add_equal_note): Likewise
35816
35817 2014-05-27  Andrew Pinski  <apinski@cavium.com>
35818
35819         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
35820         Use <w> for the register in assembly template.
35821         (stack_protect_test): Use the mode of operands[0] for the result.
35822         (stack_protect_test_<mode>): Use <w> for the register
35823         in assembly template.
35824
35825 2014-05-27  DJ Delorie  <dj@redhat.com>
35826
35827         * config/rx/rx.c (add_vector_labels): New.
35828         (rx_output_function_prologue): Call it.
35829         (rx_handle_func_attribute): Don't require empty arguments.
35830         (rx_handle_vector_attribute): New.
35831         (rx_attribute_table): Add "vector" attribute.
35832         * doc/extend.texi (interrupt, vector): Document new/changed
35833         RX-specific attributes.
35834
35835         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
35836
35837 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35838
35839         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
35840         predicate to detect a negative quotient.
35841
35842 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35843
35844         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
35845         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
35846         Add X - Y CMP 0 to X CMP Y transformation.
35847         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
35848
35849 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
35850
35851         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
35852         before printing.
35853
35854 2014-05-27  Steve Ellcey  <sellcey@mips.com>
35855
35856         * config/mips/mips.c: Add include of cgraph.h.
35857
35858 2014-05-27  Richard Biener  <rguenther@suse.de>
35859
35860         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
35861
35862 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35863
35864         PR libgcc/61152
35865         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
35866         * config/arm/arm-cores.def (License): Same.
35867         * config/arm/arm-opts.h (License): Same.
35868         * config/arm/aout.h (License): Same.
35869         * config/arm/bpabi.h (License): Same.
35870         * config/arm/elf.h (License): Same.
35871         * config/arm/linux-elf.h (License): Same.
35872         * config/arm/linux-gas.h (License): Same.
35873         * config/arm/netbsd-elf.h (License): Same.
35874         * config/arm/uclinux-eabi.h (License): Same.
35875         * config/arm/uclinux-elf.h (License): Same.
35876         * config/arm/vxworks.h (License): Same.
35877
35878 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35879
35880         * config/arm/neon.md (neon_bswap<mode>): New pattern.
35881         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
35882         (arm_init_neon_builtins): Handle NEON_BSWAP.
35883         Define required type nodes.
35884         (arm_expand_neon_builtin): Handle NEON_BSWAP.
35885         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
35886         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
35887         * config/arm/iterators.md (VDQHSD): New mode iterator.
35888
35889 2014-05-27  Richard Biener  <rguenther@suse.de>
35890
35891         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
35892         Try using literal operands when comparing value-ranges failed.
35893
35894 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35895
35896         * ira.c (commutative_operand): Adjust for change to recog_data.
35897         [Missing from previous commit.]
35898
35899 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35900
35901         * system.h (TEST_BIT): New macro.
35902         * recog.h (alternative_mask): New type.
35903         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
35904         (recog_data_d): Replace alternative_enabled_p array with
35905         enabled_alternatives.
35906         (target_recog): New structure.
35907         (default_target_recog, this_target_recog): Declare.
35908         (get_enabled_alternatives, recog_init): Likewise.
35909         * recog.c (default_target_recog, this_target_recog): New variables.
35910         (get_enabled_alternatives): New function.
35911         (extract_insn): Use it.
35912         (recog_init): New function.
35913         (preprocess_constraints, constrain_operands): Adjust for change to
35914         recog_data.
35915         * postreload.c (reload_cse_simplify_operands): Likewise.
35916         * reload.c (find_reloads): Likewise.
35917         * ira-costs.c (record_reg_classes): Likewise.
35918         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
35919         all alternatives after a disabled one would be skipped.
35920         (ira_implicitly_set_insn_hard_regs): Likewise.
35921         * ira.c (ira_setup_alts): Adjust for change to recog_data.
35922         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
35923         with enabled_alternatives.
35924         * lra.c (free_insn_recog_data): Update accordingly.
35925         (lra_update_insn_recog_data): Likewise.
35926         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
35927         * lra-constraints.c (process_alt_operands): Likewise.  Handle
35928         only_alternative as part of the enabled mask.
35929         * target-globals.h (this_target_recog): Declare.
35930         (target_globals): Add a recog field.
35931         (restore_target_globals): Restore this_target_recog.
35932         * target-globals.c: Include recog.h.
35933         (default_target_globals): Initialize recog field.
35934         (save_target_globals): Likewise.
35935         * reginfo.c (reinit_regs): Call recog_init.
35936         * toplev.c (backend_init_target): Likewise.
35937
35938 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35939
35940         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
35941         rather than any named insn's code.
35942
35943 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35944
35945         PR libgcc/61152
35946         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
35947         * config/arm/arm-cores.def (License): Same.
35948
35949 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
35950
35951         * tree.h (decl_comdat_group): Declare.
35952         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
35953         * tree.c (decl_comdat_group): Here.
35954
35955 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
35956
35957         PR rtl-optimization/61222
35958         * combine.c (simplify_shift_const_1): When moving a PLUS outside
35959         the shift, truncate the PLUS operand to the result mode.
35960
35961 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
35962
35963         PR target/61271
35964         * config/i386/i386.c (ix86_rtx_costs)
35965         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
35966         Fix condition.
35967
35968 2014-05-26  Martin Jambor  <mjambor@suse.cz>
35969
35970         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
35971         subreg uses.
35972
35973 2014-05-26  Richard Biener  <rguenther@suse.de>
35974
35975         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
35976         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
35977         Provide specializations.
35978         (wi::int_traits <HOST_WIDE_INT>,
35979         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
35980
35981 2014-05-26  Alan Modra  <amodra@gmail.com>
35982
35983         PR target/61098
35984         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
35985         params and return a bool.  Remove dead code.  Update comment.
35986         Assert we have a const_int source.  Remove bogus code from
35987         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
35988         handling of constants > 2G and reg_equal note, from..
35989         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
35990         return value.  Update comment.  If we can, use a new pseudo
35991         for intermediate calculations.
35992         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
35993         prototype.
35994         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
35995         call to rs6000_emit_set_const in splitter.
35996         (movdi_internal64+2, +3): Likewise.
35997
35998 2014-05-26  Richard Biener  <rguenther@suse.de>
35999
36000         * system.h: Define __STDC_FORMAT_MACROS before
36001         including inttypes.h.
36002         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
36003         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
36004         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
36005         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
36006         HOST_WIDEST_INT_C): Remove.
36007         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
36008         if C99 inttypes.h is not available.
36009         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
36010         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
36011         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
36012         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
36013         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
36014         (struct output_info): Likewise.
36015         (print_statistics): Adjust.
36016         (dump_bitmap_statistics): Likewise.
36017         * bt-load.c (migrate_btr_defs): Print with PRId64.
36018         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
36019         (MAX_SAFE_MULTIPLIER): Adjust.
36020         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
36021         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
36022         dump_cgraph_node): Likewise.
36023         * final.c (dump_basic_block_info): Likewise.
36024         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
36025         * gcov.c (format_gcov): Likewise.
36026         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
36027         for calculation.
36028         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
36029         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
36030         (inline_small_functions, dump_overall_stats, dump_inline_stats):
36031         Use PRId64 for dumping.
36032         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
36033         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
36034         (add_allocno_hard_regs): Adjust.
36035         * loop-doloop.c (doloop_modify): Print using PRId64.
36036         * loop-iv.c (inverse): Compute in uint64_t.
36037         (determine_max_iter, iv_number_of_iterations): Likewise.
36038         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
36039         Print using PRId64.
36040         * lto-streamer-out.c (write_symbol): Use uint64_t.
36041         * mcf.c (CAP_INFINITY): Use int64_t maximum.
36042         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
36043         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
36044         * modulo-sched.c (const_iteration_count): Use int64_t.
36045         (sms_schedule): Dump using PRId64.
36046         * predict.c (dump_prediction): Likewise.
36047         * pretty-print.h (pp_widest_integer): Remove.
36048         * profile.c (get_working_sets, is_edge_inconsistent,
36049         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
36050         * tree-pretty-print.c (pp_double_int): Remove case handling
36051         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
36052         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
36053         and adjust users.
36054         (pass_optimize_bswap::execute): Remove restriction on hosts.
36055         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
36056         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
36057         * tree.c (widest_int_cst_value): Remove.
36058         * tree.h (widest_int_cst_value): Likewise.
36059         * value-prof.c (dump_histogram_value): Print using PRId64.
36060         * gengtype.c (main): Also inject int64_t.
36061         * ggc-page.c (struct max_alignment): Use int64_t.
36062         * alloc-pool.c (struct allocation_object_def): Likewise.
36063         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
36064         for computation.
36065         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
36066         * doc/tm.texi: Regenerated.
36067         * gengtype-lex.l (IWORD): Handle [u]int64_t.
36068         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
36069         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
36070         mmix_output_register_setting): Use [u]int64_t in prototypes.
36071         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
36072         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
36073         mmix_output_octa, mmix_output_shifted_value): Adjust.
36074         (mmix_intval): Adjust.  Remove unreachable case.
36075         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
36076
36077 2014-05-26  Richard Biener  <rguenther@suse.de>
36078
36079         * configure.ac: Drop __int64 type check.  Insist that we
36080         found uint64_t and int64_t.
36081         * hwint.h (HOST_BITS_PER___INT64): Remove.
36082         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
36083         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
36084         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
36085         (HOST_WIDEST_FAST_INT): Remove __int64 case.
36086         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
36087         for dst_q_src_df_rms_cdt.
36088         * configure: Regenerate.
36089         * config.in: Likewise.
36090
36091 2014-05-26  Michael Tautschnig  <mt@debian.org>
36092
36093         PR target/61249
36094         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
36095         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
36096
36097 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36098
36099         PR rtl-optimization/61278
36100         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
36101
36102 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36103
36104         PR rtl-optimization/61220
36105         Part of PR rtl-optimization/61225
36106         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
36107         insn; skip split_edge for a block with only one successor.
36108
36109 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36110
36111         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
36112         for variables.
36113
36114 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36115
36116         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
36117         (update_vtable_references): New function.
36118         (function_and_variable_visibility): Rewrite also vtable initializers.
36119         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
36120
36121 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36122
36123         * ggc.h (ggc_grow): New function.
36124         * ggc-none.c (ggc_grow): New function.
36125         * ggc-page.c (ggc_grow): Likewise.
36126
36127 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36128
36129         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
36130         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
36131         comdat_can_be_unshared_p, cgraph_externally_visible_p,
36132         varpool_externally_visible_p, can_replace_by_local_alias,
36133         update_visibility_by_resolution_info, function_and_variable_visibility,
36134         pass_data_ipa_function_and_variable_visibility,
36135         make_pass_ipa_function_and_variable_visibility,
36136         whole_program_function_and_variable_visibility,
36137         pass_data_ipa_whole_program_visibility,
36138         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
36139         * cgraph.h (cgraph_local_node_p): Declare.
36140         * ipa-visibility.c: New file.
36141         * Makefile.in (OBJS): Add ipa-visiblity.o
36142
36143 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36144
36145         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
36146         that var decl is available.
36147
36148 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36149
36150         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
36151         symtab_node pointer.
36152         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
36153         (find_decls_types_r): Do not walk COMDAT_GROUP.
36154         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
36155         * varasm.c (make_decl_one_only): Use set_comdat_group;
36156         create node if needed.
36157         * ipa-inline-transform.c (save_inline_function_body): Update
36158         way we decl->symtab mapping.
36159         * symtab.c (symtab_hash, hash_node, eq_node
36160         symtab_insert_node_to_hashtable): Remove.
36161         (symtab_register_node): Update.
36162         (symtab_unregister_node): Update.
36163         (symtab_get_node): Reimplement as inline function.
36164         (symtab_add_to_same_comdat_group): Update.
36165         (symtab_dissolve_same_comdat_group_list): Update.
36166         (dump_symtab_base): Update.
36167         (verify_symtab_base): Update.
36168         (symtab_make_decl_local): Update.
36169         (fixup_same_cpp_alias_visibility): Update.
36170         (symtab_nonoverwritable_alias): Update.
36171         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
36172         * ipa.c (update_visibility_by_resolution_info): UPdate.
36173         * bb-reorder.c: Include cgraph.h
36174         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
36175         with comdat groups.
36176         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
36177         * cgraph.c (cgraph_get_create_node): Update.
36178         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
36179         and comdat_group_.
36180         (symtab_get_node): Make inline.
36181         (symtab_insert_node_to_hashtable): Remove.
36182         (symtab_can_be_discarded): Update.
36183         (decl_comdat_group): New function.
36184         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
36185         Update.
36186         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
36187         comdat group name.
36188         (read_comdat_group): New function.
36189         (input_node, input_varpool_node): Use it.
36190         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
36191         comdat groups.
36192         * mips.c (mips_start_unique_function): Likewise.
36193         (ix86_code_end): Likewise.
36194         (rs6000_code_end): Likweise.
36195         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
36196
36197 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36198
36199         * gengtype-state.c (fatal_reading_state): Bring offline.
36200         * optabs.c (widening_optab_handler): Bring offline.
36201         * optabs.h (widening_optab_handler): Likewise.
36202         * final.c (get_attr_length_1): Likewise.
36203
36204 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36205
36206         * sched-int.h (sd_iterator_cond): Manually tail recurse.
36207
36208 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36209
36210         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
36211         (ppc440-compare): Include shift with dot.
36212         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
36213         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
36214         without dot.
36215         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
36216         without dot.
36217         (e6500_sfx2): Include it.
36218         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
36219         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
36220         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
36221         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
36222         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
36223         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
36224         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
36225         *lshiftrt_internal1le, *lshiftrt_internal1be,
36226         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
36227         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
36228         *rotldi3_internal10le, *rotldi3_internal10be,
36229         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
36230         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
36231         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
36232         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
36233         define_insns): Use type "shift" in the appropriate alternatives.
36234
36235 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36236
36237         * config/rs6000/rs6000.md (type): Add "logical".  Delete
36238         "fast_compare".
36239         (dot): Adjust comment.
36240         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
36241         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
36242         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
36243         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
36244         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
36245         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
36246         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
36247         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36248
36249         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36250         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36251         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36252         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36253         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36254         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36255         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36256         * config/rs6000/8540.md (ppc8540_su): Adjust.
36257         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36258         cell-cmp-microcoded): Adjust.
36259         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36260         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36261         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36262         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36263         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36264         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36265         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36266         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36267         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36268         Adjust.
36269         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36270         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
36271         Adjust.  Adjust comment.
36272         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36273         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36274
36275 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36276
36277         * config/rs6000/rs6000.md (type): Add "add".
36278         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
36279         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
36280         define_insns): Use it.
36281         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36282
36283         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36284         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36285         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36286         * config/rs6000/601.md (ppc601-integer): Adjust.
36287         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36288         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36289         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36290         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36291         * config/rs6000/8540.md (ppc8540_su): Adjust.
36292         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36293         cell-cmp-microcoded): Adjust.
36294         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36295         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36296         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36297         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36298         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36299         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36300         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36301         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36302         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36303         Adjust.
36304         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36305         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
36306         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36307         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36308
36309 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36310
36311         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
36312         "delayed_compare", "var_delayed_compare".
36313         (var_shift): New attribute.
36314         (cell_micro): Adjust.
36315         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
36316         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
36317         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
36318         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
36319         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
36320         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
36321         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
36322         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
36323         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36324         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36325         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36326         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36327         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36328         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36329         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36330         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36331         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36332         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36333         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36334         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36335         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36336         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36337         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36338         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36339         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36340
36341         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36342         * config/rs6000/440.md (ppc440-integer): Adjust.
36343         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36344         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36345         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36346         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36347         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36348         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36349         * config/rs6000/8540.md (ppc8540_su): Adjust.
36350         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36351         cell-cmp-microcoded): Adjust.
36352         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36353         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36354         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36355         e500mc64_delayed): Adjust.
36356         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36357         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36358         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36359         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36360         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36361         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36362         power6-delayed-compare, power6-var-delayed-compare): Adjust.
36363         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36364         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36365         Adjust comment.
36366         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36367         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36368
36369 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36370
36371         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
36372         (bits): New mode_attr.
36373         (idiv_ldiv): Delete mode_attr.
36374         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
36375         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36376         rs6000_adjust_priority, is_nonpipeline_insn,
36377         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36378
36379         * config/rs6000/40x.md (ppc403-idiv): Adjust.
36380         * config/rs6000/440.md (ppc440-idiv): Adjust.
36381         * config/rs6000/476.md (ppc476-idiv): Adjust.
36382         * config/rs6000/601.md (ppc601-idiv): Adjust.
36383         * config/rs6000/603.md (ppc603-idiv): Adjust.
36384         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
36385         ppc620-ldiv): Adjust.
36386         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
36387         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
36388         * config/rs6000/8540.md (ppc8540_divide): Adjust.
36389         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
36390         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
36391         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
36392         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
36393         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
36394         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
36395         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
36396         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
36397         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
36398         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
36399         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
36400         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
36401         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
36402         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
36403         * config/rs6000/titan.md (titan_fxu_div): Adjust.
36404
36405 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36406
36407         * config/rs6000/rs6000.md (type): Delete "insert_word",
36408         "insert_dword".  Add "insert".
36409         (size): Update comment.
36410         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36411         insn_must_be_first_in_group): Adjust.
36412         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
36413         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
36414         *insvsi_internal6, insvdi_internal): Adjust.
36415
36416         * config/rs6000/40x.md (ppc403-integer): Adjust.
36417         * config/rs6000/440.md (ppc440-integer): Adjust.
36418         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
36419         * config/rs6000/601.md (ppc601-integer): Adjust.
36420         * config/rs6000/603.md (ppc603-integer): Adjust.
36421         * config/rs6000/6xx.md (ppc604-integer): Adjust.
36422         * config/rs6000/7450.md (ppc7450-integer): Adjust.
36423         * config/rs6000/7xx.md (ppc750-integer): Adjust.
36424         * config/rs6000/8540.md (ppc8540_su): Adjust.
36425         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
36426         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
36427         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36428         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
36429         * config/rs6000/e5500.md (e5500_sfx): Adjust.
36430         * config/rs6000/e6500.md (e6500_sfx): Adjust.
36431         * config/rs6000/mpc.md (mpccore-integer): Adjust.
36432         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
36433         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
36434         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
36435         * config/rs6000/power7.md (power7-integer): Adjust.
36436         * config/rs6000/power8.md (power8-1cyc): Adjust.
36437         * config/rs6000/rs64.md (rs64a-integer): Adjust.
36438         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36439
36440 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36441
36442         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
36443         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
36444         (size): New attribute.
36445         (dot): New attribute.
36446         (cell_micro): Adjust.
36447         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
36448         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
36449         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
36450         umuldi3_highpart): Adjust.
36451         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36452         rs6000_adjust_priority, is_nonpipeline_insn,
36453         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36454
36455         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
36456         ppc405-imul3): Adjust.
36457         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
36458         * config/rs6000/476.md (ppc476-imul): Adjust.
36459         * config/rs6000/601.md (ppc601-imul): Adjust.
36460         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
36461         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
36462         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
36463         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
36464         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
36465         Adjust.
36466         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
36467         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
36468         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
36469         cell-imul): Adjust.
36470         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
36471         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
36472         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
36473         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
36474         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
36475         * config/rs6000/mpc.md (mpccore-imul): Adjust.
36476         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
36477         power4-lmul, power4-imul, power4-imul3): Adjust.
36478         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
36479         power5-lmul, power5-imul, power5-imul3): Adjust.
36480         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
36481         power6-lmul, power6-imul, power6-imul3): Adjust.
36482         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
36483         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
36484
36485         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
36486         rs64a-lmul): Adjust.
36487         * config/rs6000/titan.md (titan_imul): Adjust.
36488
36489 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36490
36491         * config/rs6000/rs6000.md (type): Add new value "halfmul".
36492         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
36493         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
36494         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
36495         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
36496         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
36497         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
36498         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
36499         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
36500         * config/rs6000/titan.md: Delete nonsensical comment.
36501         (titan_imul): Add type imul3.
36502         (titan_mulhw): Remove type imul3; add type halfmul.
36503
36504 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36505
36506         * config/rs6000/rs6000.md (type): Reorder, reformat.
36507
36508 2014-05-23  Martin Jambor  <mjambor@suse.cz>
36509
36510         PR tree-optimization/53787
36511         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
36512         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
36513         analysis_done, update all uses.
36514         * ipa-prop.c: Include domwalk.h
36515         (param_analysis_info): Removed.
36516         (param_aa_status): New type.
36517         (ipa_bb_info): Likewise.
36518         (func_body_info): Likewise.
36519         (ipa_get_bb_info): New function.
36520         (aa_overwalked): Likewise.
36521         (find_dominating_aa_status): Likewise.
36522         (parm_bb_aa_status_for_bb): Likewise.
36523         (parm_preserved_before_stmt_p): Changed to use new param AA info.
36524         (load_from_unmodified_param): Accept func_body_info as a parameter
36525         instead of parms_ainfo.
36526         (parm_ref_data_preserved_p): Changed to use new param AA info.
36527         (parm_ref_data_pass_through_p): Likewise.
36528         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
36529         (compute_complex_assign_jump_func): Changed to use new param AA info.
36530         (compute_complex_ancestor_jump_func): Likewise.
36531         (ipa_compute_jump_functions_for_edge): Likewise.
36532         (ipa_compute_jump_functions): Removed.
36533         (ipa_compute_jump_functions_for_bb): New function.
36534         (ipa_analyze_indirect_call_uses): Likewise, moved variable
36535         declarations down.
36536         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
36537         and info, moved variable declarations down.
36538         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
36539         node and info.
36540         (ipa_analyze_stmt_uses): Likewise.
36541         (ipa_analyze_params_uses): Removed.
36542         (ipa_analyze_params_uses_in_bb): New function.
36543         (ipa_analyze_controlled_uses): Likewise.
36544         (free_ipa_bb_info): Likewise.
36545         (analysis_dom_walker): New class.
36546         (ipa_analyze_node): Handle node-specific forbidden analysis,
36547         initialize and free func_body_info, use dominator walker.
36548         (ipcp_modif_dom_walker): New class.
36549         (ipcp_transform_function): Create and free func_body_info, use
36550         ipcp_modif_dom_walker, moved a lot of functionality there.
36551
36552 2014-05-23  Marek Polacek  <polacek@redhat.com>
36553             Jakub Jelinek  <jakub@redhat.com>
36554
36555         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
36556         * gcc.c (sanitize_spec_function): Likewise.
36557         * convert.c (convert_to_integer): Include "ubsan.h".  Add
36558         floating-point to integer instrumentation.
36559         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
36560         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
36561         SANITIZE_NONDEFAULT.
36562         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
36563         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
36564         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
36565         * ubsan.c: Include "realmpfr.h" and "dfp.h".
36566         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
36567         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
36568         float/double/long double.
36569         (ubsan_instrument_float_cast): New function.
36570         * ubsan.h (ubsan_instrument_float_cast): Declare.
36571
36572 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
36573
36574         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
36575         predicate.
36576         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
36577         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
36578         Adjust for tailcalling through registers.
36579         * config/aarch64/aarch64.h (enum reg_class): New caller save
36580         register class.
36581         (REG_CLASS_NAMES): Likewise.
36582         (REG_CLASS_CONTENTS): Likewise.
36583         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
36584         Allow tailcalling without decls.
36585
36586 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36587
36588         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36589         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
36590
36591         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
36592         gsi, and variables v_* to v*.
36593
36594 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
36595
36596         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
36597
36598 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36599
36600         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
36601         * omp-low.c: Update accordingly.
36602
36603         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
36604         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
36605         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
36606         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
36607         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
36608         GF_OMP_TARGET_KIND_UPDATE.
36609
36610         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36611         Explicitly enumerate the expected region types.
36612
36613 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
36614
36615         PR other/56955
36616         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
36617         documentation; the old documentation didn't clearly state the
36618         constraints on the contents of the pointed-to storage.
36619
36620 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36621
36622         Fix bootstrap error on ia64
36623         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
36624         Return default value.
36625
36626 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36627
36628         PR tree-optimization/54733
36629         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
36630         (CMPNOP): Define.
36631         (find_bswap_or_nop_load): New.
36632         (find_bswap_1): Renamed to ...
36633         (find_bswap_or_nop_1): This. Also add support for memory source.
36634         (find_bswap): Renamed to ...
36635         (find_bswap_or_nop): This. Also add support for memory source and
36636         detection of bitwise operations equivalent to load in target
36637         endianness.
36638         (execute_optimize_bswap): Likewise. Also move its leading comment back
36639         in place and split statement transformation into ...
36640         (bswap_replace): This.
36641
36642 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36643
36644         PR rtl-optimization/61215
36645         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
36646         simplify_gen_subreg until final substitution.
36647
36648 2014-05-23  Alan Modra  <amodra@gmail.com>
36649
36650         PR target/61231
36651         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
36652         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
36653         Use "Y" constraint rather than "m".
36654
36655 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
36656
36657         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
36658         define.
36659         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
36660         New function declaration.
36661         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
36662         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
36663         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
36664         (aarch64_init_builtins) : Initialize builtins
36665         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36666         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36667         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
36668         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
36669         and __builtins_aarch64_set_fpsr.
36670         (aarch64_atomic_assign_expand_fenv): New function.
36671         * config/aarch64/aarch64.md (set_fpcr): New pattern.
36672         (get_fpcr) : Likewise.
36673         (set_fpsr) : Likewise.
36674         (get_fpsr) : Likewise.
36675         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
36676         and UNSPECV_SET_FPSR.
36677         * doc/extend.texi (AARCH64 Built-in Functions) : Document
36678         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36679         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36680
36681 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36682
36683         PR rtl-optimization/60969
36684         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
36685         constraints.  Set up mem cost for NO_REGS case.
36686
36687 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
36688
36689         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
36690
36691 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
36692
36693         * config/darwin.c: Include "lto-section-names.h".
36694         (LTO_SEGMENT_NAME): Don't define.
36695         * config/i386/winnt.c: Include "lto-section-names.h".
36696         * lto-streamer.c: Include "lto-section-names.h".
36697         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
36698         * lto-wrapper.c: Include "lto-section-names.h".
36699         (LTO_SECTION_NAME_PREFIX): Don't define.
36700         * lto-section-names.h: New file.
36701         * cgraphunit.c: Include "lto-section-names.h".
36702
36703 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
36704
36705         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
36706
36707 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
36708
36709         PR target/61208
36710         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
36711
36712 2014-05-22  Nick Clifton  <nickc@redhat.com>
36713
36714         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
36715
36716 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
36717
36718         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
36719         -> (T)A transformation to integer types.
36720
36721 2014-05-22  Teresa Johnson  <tejohnson@google.com>
36722
36723         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
36724         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
36725         (gcov_rewrite): Use gcov_nonruntime_assert.
36726         (gcov_open): Ditto.
36727         (gcov_write_words): Ditto.
36728         (gcov_write_length): Ditto.
36729         (gcov_read_words): Use gcov_nonruntime_assert, and remove
36730         gcc_assert from IN_LIBGCOV code.
36731         (gcov_read_summary): Use gcov_error to flag profile corruption.
36732         (gcov_sync): Use gcov_nonruntime_assert.
36733         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
36734         (gcov_histo_index): Use gcov_nonruntime_assert.
36735         (static void gcov_histogram_merge): Ditto.
36736         (compute_working_sets): Ditto.
36737         * gcov-io.h (gcov_nonruntime_assert): Define.
36738         (gcov_error): Define for !IN_LIBGCOV
36739
36740 2014-05-22  Richard Biener  <rguenther@suse.de>
36741
36742         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
36743         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
36744         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
36745         and deallocation site.
36746         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
36747         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
36748         passing through the incoming points-to set.
36749         (handle_lhs_call): Use flags argument instead of recomputing it.
36750         (find_func_aliases_for_call): Call handle_lhs_call with proper
36751         call return flags.
36752
36753 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
36754
36755         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
36756         all padding bits in REAL_VALUE_TYPE are cleared.
36757
36758 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36759
36760         Cleanup and improve multipass_dfa_lookahead_guard
36761         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
36762         (core2i7_first_cycle_multipass_begin,)
36763         (core2i7_first_cycle_multipass_issue,)
36764         (core2i7_first_cycle_multipass_backtrack): Update signature.
36765         * config/ia64/ia64.c
36766         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
36767         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
36768         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
36769         hook definition.
36770         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
36771         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
36772         values.
36773         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
36774         return values.
36775         * doc/tm.texi: Regenerate.
36776         * doc/tm.texi.in
36777         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
36778         * haifa-sched.c (ready_try): Make signed to allow negative values.
36779         (rebug_ready_list_1): Update.
36780         (choose_ready): Simplify.
36781         (sched_extend_ready_list): Update.
36782
36783 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36784
36785         Remove IA64 speculation tweaking flags
36786         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
36787         speculation tuning flags.
36788         (msched-prefer-non-data-spec-insns,)
36789         (msched-prefer-non-control-spec-insns): Obsolete options.
36790         * haifa-sched.c (choose_ready): Remove handling of
36791         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36792         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
36793         and PREFER_NON_DATA_SPEC.
36794         * sel-sched.c (process_spec_exprs): Remove handling of
36795         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36796
36797 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36798
36799         Improve scheduling debug output
36800         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
36801         (advance_one_cycle): Update.
36802         (schedule_insn, queue_to_ready): Add debug printouts.
36803         (debug_ready_list_1): New static function.
36804         (debug_ready_list): Update.
36805         (max_issue): Add debug printouts.
36806         (dump_insn_stream): New static function.
36807         (schedule_block): Use it.  Also better indent printouts.
36808
36809 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36810
36811         Fix sched_insn debug counter
36812         * haifa-sched.c (schedule_insn): Update.
36813         (struct haifa_saved_data): Add nonscheduled_insns_begin.
36814         (save_backtrack_point, restore_backtrack_point): Update.
36815         (first_nonscheduled_insn): New static function.
36816         (queue_to_ready, choose_ready): Use it.
36817         (schedule_block): Init nonscheduled_insns_begin.
36818         (sched_emit_insn): Update.
36819
36820
36821 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
36822
36823         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
36824         to GENERAL_REGS.
36825         (aarch64_secondary_reload) : LikeWise.
36826         (aarch64_class_max_nregs) : Remove CORE_REGS.
36827         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
36828         (REG_CLASS_NAMES) : Likewise.
36829         (REG_CLASS_CONTENTS) : LikeWise.
36830         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
36831
36832 2014-05-21  Guozhi Wei  <carrot@google.com>
36833
36834         PR target/61202
36835         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
36836         constraint.
36837         (vqdmulhq_n_s16): Likewise.
36838
36839 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
36840
36841         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
36842
36843 2014-05-21  Marek Polacek  <polacek@redhat.com>
36844
36845         PR sanitizer/61272
36846         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
36847
36848 2014-05-21  Martin Jambor  <mjambor@suse.cz>
36849
36850         * doc/invoke.texi (Optimize Options): Document parameters
36851         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
36852         ipa-cp-array-index-hint-bonus.
36853
36854 2014-05-21  Mark Wielaard  <mjw@redhat.com>
36855
36856         PR debug/16063
36857         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
36858         version >= 3 or not strict DWARF.
36859         * langhooks.h (struct lang_hooks_for_types): Add
36860         enum_underlying_base_type.
36861         * langhooks.c (lhd_enum_underlying_base_type): New function.
36862         * gcc/langhooks.h (struct lang_hooks_for_types): Add
36863         enum_underlying_base_type.
36864         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
36865         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
36866         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
36867
36868 2014-05-21  Richard Biener  <rguenther@suse.de>
36869
36870         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
36871
36872 2014-05-21  John Marino  <gnugcc@marino.st>
36873
36874         * config.gcc (*-*-dragonfly*): New target.
36875         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
36876         * configure: Regenerate.
36877         * config/dragonfly-stdint.h: New.
36878         * config/dragonfly.h: New.
36879         * config/dragonfly.opt: New.
36880         * config/i386/dragonfly.h: New.
36881         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
36882
36883 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
36884
36885         * tree.def (VOID_CST): New.
36886         * tree-core.h (TI_VOID): New.
36887         * tree.h (void_node): New.
36888         * tree.c (tree_node_structure_for_code, tree_code_size)
36889         (iterative_hash_expr): Handle VOID_CST.
36890         (build_common_tree_nodes): Initialize void_node.
36891
36892 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
36893
36894         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
36895         functions.
36896         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
36897
36898         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
36899         more places.
36900
36901         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
36902         flag_reorder_blocks_and_partition.
36903         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
36904
36905 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
36906
36907         PR target/54236
36908         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
36909         constraints.
36910         (*addc_r_t): Add new insn_and_split.
36911
36912 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
36913
36914         PR middle-end/61252
36915         * omp-low.c (handle_simd_reference): New function.
36916         (lower_rec_input_clauses): Use it.  Defer adding reference
36917         initialization even for reduction without placeholder if in simd,
36918         handle it properly later on.
36919
36920 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36921
36922         PR tree-optimization/60899
36923         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
36924         assume all static symbols will have definition wile parsing and
36925         check the do have definition later in compilation; check that
36926         variable referring symbol will be output before concluding that
36927         reference is safe; be conservative for referring local statics;
36928         be more precise about when comdat is output in other partition.
36929
36930 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36931
36932         PR bootstrap/60984
36933         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
36934         parameter.
36935         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
36936         (ipa_inline): Loop inline_to_all_callers until no more aliases
36937         are removed.
36938
36939 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36940
36941         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
36942         set writeonly flag only for vars actually written to.
36943
36944 2014-05-20  Dehao Chen  <dehao@google.com>
36945
36946         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
36947         and callee count to get clone count.
36948         * tree-inline.c (expand_call_inline): Use callee count instead of bb
36949         count in copy_body.
36950
36951 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
36952
36953         PR rtl-optimization/61243
36954         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
36955
36956 2014-05-20  Xinliang David Li  <davidxl@google.com>
36957
36958         * cgraphunit.c (walk_polymorphic_call_targets): Add
36959         dbgcnt and fopt-info support.
36960         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
36961         * ipa-devirt.c (ipa_devirt): Ditto.
36962         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
36963         * ipa.c (walk_polymorphic_call_targets): Ditto.
36964         * gimple-fold.c (fold_gimple_assign): Ditto.
36965         (gimple_fold_call): Ditto.
36966         * dbgcnt.def: New counter.
36967
36968 2014-05-20  DJ Delorie  <dj@redhat.com>
36969
36970         * config/msp430/msp430.md (split): Don't allow subregs when
36971         splitting SImode adds.
36972         (andneghi): Fix subtraction logic.
36973         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
36974
36975 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36976
36977         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
36978         symbols.
36979         * except.c (switch_to_exception_section, resolve_unique_section,
36980         get_named_text_section, default_function_rodata_section,
36981         align_variable, get_block_for_decl, default_section_type_flags):
36982         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
36983         * symtab.c (symtab_add_to_same_comdat_group,
36984         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
36985         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
36986         Likewise.
36987         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
36988         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
36989         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
36990         (c6x_function_in_section_p): Likewise.
36991         * config/darwin.c (machopic_select_section): Likewise.
36992         * config/arm/arm.c (arm_function_in_section_p): Likewise.
36993         * config/mips/mips.c (mips_function_rodata_section): Likewise.
36994         * config/mep/mep.c (mep_select_section): LIkewise.
36995         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
36996
36997 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
36998
36999         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
37000         EH region of calls to pure functions that can throw an exception.
37001         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
37002         (copy_reference_ops_from_call): Also copy the EH region of the call if
37003         it can throw an exception.
37004
37005 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37006
37007         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
37008         nested VEC_SELECTs that are inverses of each other.
37009
37010 2014-05-20  Richard Biener  <rguenther@suse.de>
37011
37012         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
37013         (extract_and_process_scc_for_name): not here.
37014         (cond_dom_walker::before_dom_children): Only process
37015         stmts that end the BB in interesting ways.
37016         (run_scc_vn): Mark param uses as visited.
37017
37018 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37019
37020         * config/arm/arm.md (arith_shiftsi): Do not predicate for
37021         arm_restrict_it.
37022
37023 2014-05-20  Nick Clifton  <nickc@redhat.com>
37024
37025         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
37026         (msp430_gimplify_va_arg_expr): New function.
37027         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
37028
37029         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
37030         operand 0 in order to prevent confusion about the number of
37031         registers involved.
37032
37033 2014-05-20  Richard Biener  <rguenther@suse.de>
37034
37035         PR tree-optimization/61221
37036         * tree-ssa-pre.c (el_to_update): Remove.
37037         (eliminate_dom_walker::before_dom_children): Handle released
37038         VDEFs by value-numbering them to the associated VUSE.  Update
37039         stmt immediately for substituted call address.
37040         (eliminate): Remove delayed stmt updating code.
37041         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
37042         possibly late re-numbered vuses.
37043         (vn_reference_lookup_2): Adjust.
37044         (vn_reference_lookup_pieces): Likewise.
37045         (vn_reference_lookup): Likewise.
37046
37047 2014-05-20  Richard Biener  <rguenther@suse.de>
37048
37049         * config.gcc: Remove need_64bit_hwint.
37050         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
37051         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
37052         it to be true.
37053         * config.in: Regenerate.
37054         * configure: Likewise.
37055
37056 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
37057
37058         * doc/extend.texi: Create Label Attributes section,
37059         move all label attributes into it and reference it.
37060
37061 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
37062
37063         * arm.c (thumb1_reorg): When scanning backwards skip anything
37064         that's not a proper insn.
37065
37066 2014-05-19  Richard Biener  <rguenther@suse.de>
37067
37068         PR tree-optimization/61221
37069         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
37070         Do nothing for unreachable blocks.
37071         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
37072         Improve unreachability detection.
37073
37074 2014-05-19  Richard Biener  <rguenther@suse.de>
37075
37076         PR tree-optimization/61209
37077         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
37078
37079 2014-05-19  Nick Clifton  <nickc@redhat.com>
37080
37081         * except.c (init_eh): Fix computation of builtin setjmp buffer
37082         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
37083
37084 2014-05-19  Richard Biener  <rguenther@suse.de>
37085
37086         PR tree-optimization/61184
37087         * tree-vrp.c (is_negative_overflow_infinity): Use
37088         TREE_OVERFLOW_P and do that check first.
37089         (is_positive_overflow_infinity): Likewise.
37090         (is_overflow_infinity): Likewise.
37091         (vrp_operand_equal_p): Properly treat operands with
37092         differing overflow as not equal.
37093
37094 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
37095
37096         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
37097         shift simplification where it was intended.
37098
37099 2014-05-19  Christian Bruel  <christian.bruel@st.com>
37100
37101         PR target/61195
37102         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
37103
37104 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
37105
37106         PR target/61084
37107         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
37108         than wide_int.
37109
37110 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37111
37112         * reg-notes.def (CROSSING_JUMP): Likewise.
37113         * rtl.h (rtx_def): Update comment for jump flag.
37114         (CROSSING_JUMP_P): Define.
37115         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
37116         of a REG_CROSSING_JUMP note.
37117         * cfghooks.c (tidy_fallthru_edges): Likewise.
37118         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
37119         * emit-rtl.c (try_split): Likewise.
37120         * haifa-sched.c (sched_create_recovery_edges): Likewise.
37121         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
37122         * jump.c (redirect_jump_2): Likewise.
37123         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
37124         (relax_delay_slots): Likewise.
37125         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
37126         (bbit_di): Likewise.
37127         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
37128         * config/sh/sh.md (jump_compact): Likewise.
37129         * bb-reorder.c (rotate_loop): Likewise.
37130         (pass_duplicate_computed_gotos::execute): Likewise.
37131         (add_reg_crossing_jump_notes): Rename to...
37132         (update_crossing_jump_flags): ...this.
37133         (pass_partition_blocks::execute): Update accordingly.
37134
37135 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37136
37137         * tree.h: Remove extraneous template <>.
37138
37139 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37140
37141         * ipa.c (symtab_remove_unreachable_nodes): Remove
37142         symbol from comdat group if its body was eliminated.
37143         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
37144         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
37145         (symtab_unregister_node): ... this one.
37146         (verify_symtab_base): More strict checking of comdats.
37147         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
37148
37149 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37150
37151         * tree-pass.h (make_pass_ipa_comdats): New pass.
37152         * timevar.def (TV_IPA_COMDATS): New timevar.
37153         * passes.def (pass_ipa_comdats): Add.
37154         * Makefile.in (OBJS): Add ipa-comdats.o
37155         * ipa-comdats.c: New file.
37156
37157 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37158
37159         * ipa.c (update_visibility_by_resolution_info): New function.
37160         (function_and_variable_visibility): Use it.
37161
37162 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37163
37164         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
37165         New functions.
37166         (FOR_EACH_DEFINED_SYMBOL): New macro.
37167         (varpool_first_static_initializer, varpool_next_static_initializer,
37168         varpool_first_defined_variable, varpool_next_defined_variable):
37169         Fix comments.
37170         (symtab_in_same_comdat_p): Correctly deal with inline functions.
37171
37172 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37173
37174         * ggc-page.c (ggc_handle_finalizers): Add comment.
37175
37176 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37177
37178         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
37179         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
37180         (ggc_internal_cleared_alloc): Likewise.
37181         * ggc-page.c (finalizer): New class.
37182         (vec_finalizer): Likewise.
37183         (globals::finalizers): New member.
37184         (globals::vec_finalizers): Likewise.
37185         (ggc_internal_alloc): Record the finalizer if any for the block being
37186         allocated.
37187         (ggc_handle_finalizers): New function.
37188         (ggc_collect): Call ggc_handle_finalizers.
37189         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
37190         finalizer.
37191         (ggc_internal_cleared_alloc): Likewise.
37192         (finalize): New function.
37193         (need_finalization_p): Likewise.
37194         (ggc_alloc): Install the type's destructor as the finalizer if it
37195         might do something.
37196         (ggc_cleared_alloc): Likewise.
37197         (ggc_vec_alloc): Likewise.
37198         (ggc_cleared_vec_alloc): Likewise.
37199
37200 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37201
37202         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
37203
37204 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37205
37206         * alias.c (record_alias_subset): Adjust.
37207         * bitmap.c (bitmap_element_allocate): Likewise.
37208         (bitmap_gc_alloc_stat): Likewise.
37209         * cfg.c (init_flow): Likewise.
37210         (alloc_block): Likewise.
37211         (unchecked_make_edge): Likewise.
37212         * cfgloop.c (alloc_loop): Likewise.
37213         (flow_loops_find): Likewise.
37214         (rescan_loop_exit): Likewise.
37215         * cfgrtl.c (init_rtl_bb_info): Likewise.
37216         * cgraph.c (insert_new_cgraph_node_version): Likewise.
37217         (cgraph_allocate_node): Likewise.
37218         (cgraph_create_edge_1): Likewise.
37219         (cgraph_allocate_init_indirect_info): Likewise.
37220         * cgraphclones.c (cgraph_clone_edge): Likewise.
37221         * cgraphunit.c (add_asm_node): Likewise.
37222         (init_lowered_empty_function): Likewise.
37223         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
37224         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
37225         (alpha_use_linkage): Likewise.
37226         * config/arc/arc.c (arc_init_machine_status): Likewise.
37227         * config/arm/arm.c (arm_init_machine_status): Likewise.
37228         * config/avr/avr.c (avr_init_machine_status): Likewise.
37229         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
37230         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
37231         * config/cris/cris.c (cris_init_machine_status): Likewise.
37232         * config/darwin.c (machopic_indirection_name): Likewise.
37233         (darwin_build_constant_cfstring): Likewise.
37234         (darwin_enter_string_into_cfstring_table): Likewise.
37235         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
37236         * config/frv/frv.c (frv_init_machine_status): Likewise.
37237         * config/i386/i386.c (get_dllimport_decl): Likewise.
37238         (ix86_init_machine_status): Likewise.
37239         (assign_386_stack_local): Likewise.
37240         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
37241         (i386_pe_maybe_record_exported_symbol): Likewise.
37242         (i386_pe_record_stub): Likewise.
37243         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
37244         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
37245         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
37246         (m32c_note_pragma_address): Likewise.
37247         * config/mep/mep.c (mep_init_machine_status): Likewise.
37248         (mep_note_pragma_flag): Likewise.
37249         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
37250         (mips16_local_alias): Likewise.
37251         (mips_init_machine_status): Likewise.
37252         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
37253         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
37254         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
37255         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
37256         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
37257         * config/pa/pa.c (pa_init_machine_status): Likewise.
37258         (pa_get_deferred_plabel): Likewise.
37259         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
37260         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
37261         (rs6000_init_machine_status): Likewise.
37262         (output_toc): Likewise.
37263         * config/s390/s390.c (s390_init_machine_status): Likewise.
37264         * config/score/score.c (score_output_external): Likewise.
37265         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
37266         * config/spu/spu.c (spu_init_machine_status): Likewise.
37267         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
37268         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
37269         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
37270         * coverage.c (coverage_end_function): Likewise.
37271         * dbxout.c (dbxout_init): Likewise.
37272         * doc/gty.texi: Don't mention variable_size attribute.
37273         * dwarf2cfi.c (new_cfi): Adjust.
37274         (new_cfi_row): Likewise.
37275         (copy_cfi_row): Likewise.
37276         (create_cie_data): Likewise.
37277         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
37278         (new_loc_descr): Likewise.
37279         (find_AT_string_in_table): Likewise.
37280         (add_addr_table_entry): Likewise.
37281         (new_die): Likewise.
37282         (add_var_loc_to_decl): Likewise.
37283         (clone_die): Likewise.
37284         (clone_as_declaration): Likewise.
37285         (break_out_comdat_types): Likewise.
37286         (new_loc_list): Likewise.
37287         (add_loc_descr_to_each): Likewise.
37288         (add_location_or_const_value_attribute): Likewise.
37289         (add_linkage_name): Likewise.
37290         (lookup_filename): Likewise.
37291         (dwarf2out_var_location): Likewise.
37292         (new_line_info_table): Likewise.
37293         (dwarf2out_init): Likewise.
37294         (mem_loc_descriptor): Likewise.
37295         (loc_descriptor): Likewise.
37296         (add_const_value_attribute): Likewise.
37297         (tree_add_const_value_attribute): Likewise.
37298         (comp_dir_string): Likewise.
37299         (dwarf2out_vms_debug_main_pointer): Likewise.
37300         (string_cst_pool_decl): Likewise.
37301         * emit-rtl.c (set_mem_attrs): Likewise.
37302         (get_reg_attrs): Likewise.
37303         (start_sequence): Likewise.
37304         (init_emit): Likewise.
37305         (init_emit_regs): Likewise.
37306         * except.c (init_eh_for_function): Likewise.
37307         (gen_eh_region): Likewise.
37308         (gen_eh_region_catch): Likewise.
37309         (gen_eh_landing_pad): Likewise.
37310         (add_call_site): Likewise.
37311         * function.c (add_frame_space): Likewise.
37312         (insert_temp_slot_address): Likewise.
37313         (assign_stack_temp_for_type): Likewise.
37314         (get_hard_reg_initial_val): Likewise.
37315         (allocate_struct_function): Likewise.
37316         (prepare_function_start): Likewise.
37317         (types_used_by_var_decl_insert): Likewise.
37318         * gengtype.c (variable_size_p): Remove function.
37319         (enum alloc_quantity): Remove enum.
37320         (write_typed_alloc_def): Remove function.
37321         (write_typed_struct_alloc_def): Likewise.
37322         (write_typed_typedef_alloc_def): Likewise.
37323         (write_typed_alloc_defns): Likewise.
37324         (main): Adjust.
37325         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37326         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37327         * ggc.h (ggc_alloc): new function.
37328         (ggc_cleared_alloc): Likewise.
37329         (ggc_vec_alloc): Template on type of vector element, and remove
37330         element size argument.
37331         (ggc_cleared_vec_alloc): Likewise.
37332         * gimple.c (gimple_build_omp_for): Adjust.
37333         (gimple_copy): Likewise.
37334         * ipa-cp.c (get_replacement_map): Likewise.
37335         (find_aggregate_values_for_callers_subset): Likewise.
37336         (known_aggs_to_agg_replacement_list): Likewise.
37337         * ipa-devirt.c (get_odr_type): Likewise.
37338         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37339         (read_agg_replacement_chain): Likewise.
37340         * loop-iv.c (get_simple_loop_desc): Likewise.
37341         * lto-cgraph.c (input_node_opt_summary): Likewise.
37342         * lto-section-in.c (lto_new_in_decl_state): Likewise.
37343         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37344         (input_eh_region): Likewise.
37345         (input_eh_lp): Likewise.
37346         (input_cfg): Likewise.
37347         * optabs.c (set_optab_libfunc): Likewise.
37348         (init_tree_optimization_optabs): Likewise.
37349         (set_conv_libfunc): Likewise.
37350         * passes.c (do_per_function_toporder): Likewise.
37351         * rtl.h: Don't use variable_size gty attribute.
37352         * sese.c (if_region_set_false_region): Adjust.
37353         * stringpool.c (gt_pch_save_stringpool): Likewise.
37354         * target-globals.c (save_target_globals): Likewise.
37355         * toplev.c (general_init): Likewise.
37356         * trans-mem.c (record_tm_replacement): Likewise.
37357         (split_bb_make_tm_edge): Likewise.
37358         * tree-cfg.c (move_sese_region_to_fn): Likewise.
37359         * tree-data-ref.h (lambda_vector_new): Likewise.
37360         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37361         * tree-iterator.c (tsi_link_before): Likewise.
37362         (tsi_link_after): Likewise.
37363         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37364         * tree-ssa-loop-niter.c (record_estimate): Likewise.
37365         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37366         * tree-ssa-operands.h: Don't use variable_size gty attribute.
37367         * tree-ssa.c (init_tree_ssa): Adjust.
37368         * tree-ssanames.c (set_range_info): Likewise.
37369         (get_ptr_info): Likewise.
37370         (duplicate_ssa_name_ptr_info): Likewise.
37371         (duplicate_ssa_name_range_info): Likewise.
37372         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
37373         (unpack_ts_fixed_cst_value_fields): Likewise.
37374         * tree.c (build_fixed): Likewise.
37375         (build_real): Likewise.
37376         (build_string): Likewise.
37377         (decl_priority_info): Likewise.
37378         (decl_debug_expr_insert): Likewise.
37379         (decl_value_expr_insert): Likewise.
37380         (decl_debug_args_insert): Likewise.
37381         (type_hash_add): Likewise.
37382         (build_omp_clause): Likewise.
37383         * ubsan.c (decl_for_type_insert): Likewise.
37384         * varasm.c (get_unnamed_section): Likewise.
37385         (get_noswitch_section): Likewise.
37386         (get_section): Likewise.
37387         (get_block_for_section): Likewise.
37388         (create_block_symbol): Likewise.
37389         (build_constant_desc): Likewise.
37390         (create_constant_pool): Likewise.
37391         (force_const_mem): Likewise.
37392         (record_tm_clone_pair): Likewise.
37393         * varpool.c (varpool_create_empty_node): Likewise.
37394
37395 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37396
37397         * dwarf2out.c (tree_add_const_value_attribute): Call
37398         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
37399         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
37400         instead of ggc_internal_<x>alloc_stat.
37401         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
37402         (ggc_realloc): Likewise.
37403         * ggc-none.c (ggc_internal_alloc): Likewise.
37404         (ggc_internal_cleared_alloc): Likewise.
37405         * ggc-page.c: Likewise.
37406         * ggc.h (ggc_internal_alloc_stat): Likewise.
37407         (ggc_internal_alloc): Remove macro.
37408         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
37409         (ggc_internal_cleared_alloc): Remove macro.
37410         (GGC_RESIZEVEC): Adjust.
37411         (ggc_resizevar): Remove macro.
37412         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
37413         (ggc_internal_cleared_vec_alloc_stat): Likewise.
37414         (ggc_internal_vec_cleared_alloc): Remove macro.
37415         (ggc_alloc_atomic_stat): Drop _stat suffix.
37416         (ggc_alloc_atomic): Remove macro.
37417         (ggc_alloc_cleared_atomic): Remove macro.
37418         (ggc_alloc_string_stat): Drop _stat suffix.
37419         (ggc_alloc_string): Remove macro.
37420         (ggc_alloc_rtx_def_stat): Adjust.
37421         (ggc_alloc_tree_node_stat): Likewise.
37422         (ggc_alloc_cleared_tree_node_stat): Likewise.
37423         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
37424         (ggc_alloc_cleared_simd_clone_stat): Likewise.
37425         * gimple.c (gimple_build_omp_for): Likewise.
37426         (gimple_copy): Likewise.
37427         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
37428         * toplev.c (realloc_for_line_map): Adjust.
37429         * tree-data-ref.h (lambda_vector_new): Likewise.
37430         * tree-phinodes.c (allocate_phi_node): Likewise.
37431         * tree.c (grow_tree_vec_stat): Likewise.
37432         * vec.h (va_gc::reserve): Adjust.
37433
37434 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
37435
37436         * config/microblaze/microblaze.c (break_handler): New Declaration.
37437         (microblaze_break_function_p,microblaze_is_break_handler): New.
37438         (compute_frame_size): Use microblaze_break_function_p.
37439         Add the test of break_handler.
37440         (microblaze_function_prologue) : Add the test of variable
37441         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
37442         (microblaze_function_epilogue) : Add the test of break_handler.
37443         (microblaze_globalize_label) : Add the test of break_handler.
37444         Check the name by BREAK_HANDLER_NAME.
37445
37446         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
37447
37448         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
37449         microblaze_is_break_handler test.
37450         (call_internal1,call_value_intern): Use microblaze_break_function_p.
37451         Use SYMBOL_REF_DECL.
37452
37453         * config/microblaze/microblaze-protos.h
37454         (microblaze_break_function_p,microblaze_is_break_handler):
37455         New Declaration.
37456
37457         * doc/extend.texi (MicroBlaze break_handler Functions): Document
37458         new MicroBlaze break_handler functions.
37459
37460 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37461
37462         * doc/extend.texi (Size of an asm): Move node text according
37463         to its @menu entry position.
37464
37465 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
37466
37467         PR tree-optimization/61140
37468         PR tree-optimization/61150
37469         PR tree-optimization/61197
37470         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
37471
37472 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37473
37474         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
37475
37476 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
37477
37478         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
37479         __SIZEOF_INT128__ is defined.
37480
37481 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37482
37483         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
37484         (rs6000_delegitimize_address): Use it.
37485
37486 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37487
37488         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
37489         inplace argument.  Store the new address in the original MEM when true.
37490         * emit-rtl.c (change_address_1): Likewise.
37491         (adjust_address_1, adjust_automodify_address_1, offset_address):
37492         Update accordingly.
37493         * rtl.h (plus_constant): Add an inplace argument.
37494         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
37495         when true.  Avoid generating (plus X (const_int 0)).
37496         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
37497         in-place.  Pass true to plus_constant.
37498         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
37499
37500 2014-05-16  Dehao Chen  <dehao@google.com>
37501
37502         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
37503
37504 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37505
37506         PR target/54089
37507         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
37508         patterns.
37509         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
37510
37511 2014-05-16  Dehao Chen  <dehao@google.com>
37512
37513         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
37514         optimize_function_for_size_p.
37515         * regs.h (REG_FREQ_FROM_BB): Likewise.
37516
37517 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37518
37519         PR target/51244
37520         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
37521         negt_reg_operand cases.
37522         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
37523         predicate.
37524         * config/sh/predicates.md (cbranch_treg_value): Simplify.
37525
37526 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37527
37528         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
37529         target variants.
37530
37531 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
37532
37533         Revert:
37534         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
37535
37536         * tree-cfg.c (dump_function_to_file): Dump the return type of
37537         functions, in a line to itself before the function body, mimicking
37538         the layout of a C function.
37539
37540 2014-05-16  Dehao Chen  <dehao@google.com>
37541
37542         * cfghooks.c (make_forwarder_block): Use direct computation to
37543         get fall-through edge's count and frequency.
37544
37545 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
37546
37547         * config/arc/arc.c (arc_init): Fix typo in error message.
37548         * config/i386/i386.c (ix86_expand_builtin): Likewise.
37549         (split_stack_prologue_scratch_regno): Likewise.
37550         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
37551         word from error message.
37552
37553 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
37554
37555         * ira-costs.c: Fix typo in comment.
37556
37557 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
37558
37559         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
37560
37561 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
37562
37563         * varpool.c (dump_varpool_node): Dump write-only flag.
37564         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
37565         write-only flag.
37566         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
37567         write-only variables.
37568         * ipa.c (process_references): New function.
37569         (set_readonly_bit): New function.
37570         (set_writeonly_bit): New function.
37571         (clear_addressable_bit): New function.
37572         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
37573         fix handling of aliases.
37574         * cgraph.h (struct varpool_node): Add writeonly flag.
37575
37576 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
37577
37578         PR rtl-optimization/60969
37579         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
37580         Calculate costs for this case.
37581
37582 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
37583
37584         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
37585         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
37586
37587 2014-05-16  Richard Biener  <rguenther@suse.de>
37588
37589         PR tree-optimization/61194
37590         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
37591         bool patterns ending in a COND_EXPR.
37592
37593 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37594
37595         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
37596
37597 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37598
37599         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
37600         where we were unable to cost an RTX.
37601
37602 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37603
37604         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
37605         HIGH, LO_SUM.
37606
37607 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37608             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37609
37610         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
37611
37612 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37613             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37614
37615         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
37616         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
37617
37618 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37619             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37620
37621         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
37622         operators.
37623
37624 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37625             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37626
37627         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37628         DIV/MOD.
37629
37630 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37631             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37632
37633         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
37634         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
37635
37636 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37637             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37638
37639         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37640         rotates and shifts.
37641
37642 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37643             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37644
37645         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
37646         ZERO_EXTEND and SIGN_EXTEND better.
37647
37648 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37649             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37650
37651         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
37652         logical operations.
37653
37654 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37655             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37656
37657         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
37658         costs when costing loads and stores to memory.
37659
37660 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37661             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
37662
37663         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
37664         for SET RTX.
37665
37666 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37667
37668         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
37669
37670 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37671             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37672
37673         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
37674         to...
37675         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
37676         well formed.
37677         (aarch64_rtx_mult_cost): New.
37678         (aarch64_rtx_costs): Use it, refactor as appropriate.
37679
37680 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37681             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37682
37683         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
37684         emit instructions, return number of instructions which would
37685         be emitted.
37686         (aarch64_add_constant): Update call to aarch64_build_constant.
37687         (aarch64_output_mi_thunk): Likewise.
37688         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
37689         a CONST_DOUBLE.
37690
37691 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37692
37693         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
37694         (TARGET_RTX_COSTS): Call it.
37695
37696 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37697
37698         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
37699         (cortexa57_vector_cost): Likewise.
37700         (cortexa57_tunings): Use them.
37701
37702 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37703
37704         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
37705         (cpu_addrcost_table): Use it.
37706         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
37707         (aarch64_address_cost): Rewrite using aarch64_classify_address,
37708         move it.
37709
37710 2014-05-16  Richard Biener  <rguenther@suse.de>
37711
37712         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
37713         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
37714         (visit_phi): Ignore edges marked as not executable.
37715         (class cond_dom_walker): New.
37716         (cond_dom_walker::before_dom_children): Value-number
37717         control statements and mark successor edges as not
37718         executable if possible.
37719         (run_scc_vn): First walk all control statements in
37720         dominator order, marking edges as not executable.
37721         * tree-inline.c (copy_edges_for_bb): Be not confused
37722         about random edge flags.
37723
37724 2014-05-16  Richard Biener  <rguenther@suse.de>
37725
37726         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
37727
37728 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
37729
37730         PR target/61193
37731         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
37732         (__TM_simple_begin): Use it.
37733         (__TM_begin): Likewise.
37734
37735 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37736
37737         PR ipa/61085
37738         * ipa-prop.c (update_indirect_edges_after_inlining): Check
37739         type_preserved flag when the indirect edge is polymorphic.
37740
37741 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37742
37743         PR tree-optimization/61090
37744         * tree-sra.c (sra_modify_expr): Pass the current gsi to
37745         build_ref_for_model.
37746
37747 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37748
37749         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
37750         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
37751
37752 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
37753
37754         PR tree-optimization/61158
37755         * fold-const.c (fold_binary_loc): If X is zero-extended and
37756         shiftc >= prec, make sure zerobits is all ones instead of
37757         invoking undefined behavior.
37758
37759 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37760
37761         * regcprop.h: New file.
37762         * regcprop.c (skip_debug_insn_p): New decl.
37763         (replace_oldest_value_reg): Check skip_debug_insn_p.
37764         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
37765         * shrink-wrap.c: Include regcprop.h.
37766         (prepare_shrink_wrap): Call
37767         copyprop_hardreg_forward_bb_without_debug_insn.
37768
37769 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37770
37771         * shrink-wrap.h: Update comment.
37772         * shrink-wrap.c: Update comment.
37773         (next_block_for_reg): Rename to live_edge_for_reg.
37774         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
37775         (move_insn_for_shrink_wrap): Split live_edge.
37776         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
37777
37778 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37779
37780         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
37781         Delete.
37782         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
37783         * config/sparc/sparc.md (fptype_ut699): New attribute.
37784         (in_branch_delay): Return false if -mfix-ut699 is specified and
37785         fptype_ut699 is set to single.
37786         (truncdfsf2): Add fptype_ut699 attribute.
37787         (fix_truncdfsi2): Likewise.
37788         (floatsisf2): Change fptype attribute.
37789         (fix_truncsfsi2): Likewise.
37790         (negtf2_notv9): Delete.
37791         (negtf2_v9): Likewise.
37792         (negtf2_hq): New instruction.
37793         (negtf2): New instruction and splitter.
37794         (negdf2_notv9): Rewrite.
37795         (abstf2_notv9): Delete.
37796         (abstf2_hq_v9): Likewise.
37797         (abstf2_v9): Likewise.
37798         (abstf2_hq): New instruction.
37799         (abstf2): New instruction and splitter.
37800         (absdf2_notv9): Rewrite.
37801
37802 2014-05-14  Cary Coutant  <ccoutant@google.com>
37803
37804         PR debug/61013
37805         * opts.c (common_handle_option): Don't special-case "-g".
37806         (set_debug_level): Default to at least level 2 with "-g".
37807
37808 2014-05-14  DJ Delorie  <dj@redhat.com>
37809
37810         * config/msp430/msp430.c (msp430_builtin): Add
37811         MSP430_BUILTIN_DELAY_CYCLES.
37812         (msp430_init_builtins): Register void __delay_cycles(long long).
37813         (msp430_builtin_decl): Add it.
37814         (cg_magic_constant): New.
37815         (msp430_expand_delay_cycles): New.
37816         (msp430_expand_builtin): Call it.
37817         (msp430_print_operand_raw): Change integer printing from "int" to
37818         HOST_WIDE_INT.
37819         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
37820         (delay_cycles_start): New.
37821         (delay_cycles_end): New.
37822         (delay_cycles_32): New.
37823         (delay_cycles_32x): New.
37824         (delay_cycles_16): New.
37825         (delay_cycles_16x): New.
37826         (delay_cycles_2): New.
37827         (delay_cycles_1): New.
37828         * doc/extend.texi: Document __delay_cycles().
37829
37830 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
37831
37832         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
37833         length attribute computation.
37834
37835 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
37836
37837         PR debug/61188
37838         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
37839
37840 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
37841
37842         PR target/61084
37843         * config/sparc/sparc.md: Fix types of low and high in DI constant
37844         splitter.  Use gen_int_mode in some other splitters.
37845
37846 2014-05-14  Martin Jambor  <mjambor@suse.cz>
37847
37848         PR ipa/60897
37849         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
37850
37851 2014-05-14  James Norris  <jnorris@codesourcery.com>
37852
37853         * omp-low.c (expand_parallel_call): Remove shadow variable.
37854         (expand_omp_taskreg): Likewise.
37855
37856 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
37857
37858         * common/config/i386/i386-common.c
37859         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
37860         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
37861         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
37862         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
37863         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
37864         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
37865         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
37866         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
37867         xsavecintrin.h, xsavesintrin.h.
37868         (x86_64-*-*): Ditto.
37869         * config/i386/clflushoptintrin.h: New.
37870         * config/i386/xsavecintrin.h: Ditto.
37871         * config/i386/xsavesintrin.h: Ditto.
37872         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
37873         (bit_XSAVES): Ditto.
37874         (bit_XSAVES): Ditto.
37875         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
37876         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
37877         -mno-clflushopt.
37878         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
37879         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
37880         OPTION_MASK_ISA_XSAVES.
37881         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
37882         -mxsavec, -mxsaves.
37883         (PTA_CLFLUSHOPT) Define.
37884         (PTA_XSAVEC): Ditto.
37885         (PTA_XSAVES): Ditto.
37886         (ix86_option_override_internal): Handle new options.
37887         (ix86_valid_target_attribute_inner_p): Ditto.
37888         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
37889         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
37890         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
37891         (bdesc_special_args): Add __builtin_ia32_xsaves,
37892         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
37893         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
37894         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
37895         (ix86_expand_builtin): Handle new builtins.
37896         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
37897         (TARGET_CLFLUSHOPT_P): Ditto.
37898         (TARGET_XSAVEC): Ditto.
37899         (TARGET_XSAVEC_P): Ditto.
37900         (TARGET_XSAVES): Ditto.
37901         (TARGET_XSAVES_P): Ditto.
37902         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
37903         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
37904         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
37905         (ANY_XRSTOR): New.
37906         (ANY_XRSTOR64): Ditto.
37907         (xrstor): Ditto.
37908         (xrstor): Change into <xrstor>.
37909         (xrstor_rex64): Change into <xrstor>_rex64.
37910         (xrstor64): Change into <xrstor>64
37911         (clflushopt): New.
37912         * config/i386/i386.opt (mclflushopt): New.
37913         (mxsavec): Ditto.
37914         (mxsaves): Ditto.
37915         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
37916         xsavecintrin.h.
37917         * doc/invoke.texi: Document new options.
37918
37919 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37920
37921         PR rtl-optimization/60866
37922         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
37923         Default it to -1.  Pass it down to init_simplejump_data.
37924         (init_simplejump_data): New parameter old_seqno.  Pass it down
37925         to get_seqno_for_a_jump.
37926         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
37927         initializing new jump seqno as a last resort.  Add comment.
37928         (sel_redirect_edge_and_branch): Save old seqno of the conditional
37929         jump and pass it down to sel_init_new_insn.
37930         (sel_redirect_edge_and_branch_force): Likewise.
37931
37932 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
37933
37934         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
37935         shifted values to avoid build warning.
37936
37937 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37938
37939         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
37940         * cfgrtl.c (rtl_merge_blocks): Fix comment.
37941         (cfg_layout_merge_blocks): Likewise.
37942         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
37943
37944 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37945
37946         PR rtl-optimization/60901
37947         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
37948         bb predecessor belongs to the same scheduling region.  Adjust comment.
37949
37950 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
37951
37952         * doc/sourcebuild.texi: (dfp_hw): Document.
37953         (p8vector_hw): Likewise.
37954         (powerpc_eabi_ok): Likewise.
37955         (powerpc_elfv2): Likewise.
37956         (powerpc_htm_ok): Likewise.
37957         (ppc_recip_hw): Likewise.
37958         (vsx_hw): Likewise.
37959
37960 2014-05-13  Cary Coutant  <ccoutant@google.com>
37961
37962         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
37963
37964 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
37965
37966         * gengtype-parse.c (require3): Eliminate in favor of...
37967         (require4): New.
37968         (require_template_declaration): Update to support optional single *
37969         on a type.
37970
37971         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
37972         (create_user_defined_type): Handle a single level of explicit
37973         pointerness within template arguments.
37974         (struct write_types_data): Add field "kind".
37975         (filter_type_name): Handle "*" character.
37976         (write_user_func_for_structure_ptr): Require a write_types_data
37977         rather than just a prefix string, so that we can look up the kind
37978         of the wtd and use it as an index into wrote_user_func_for_ptr,
37979         ensuring that such functions are written at most once.  Support
37980         subclasses by invoking the marking function of the ultimate base class.
37981         (write_user_func_for_structure_body): Require a write_types_data
37982         rather than just a prefix string, so that we can pass this to
37983         write_user_func_for_structure_ptr.
37984         (write_func_for_structure): Likewise.
37985         (ggc_wtd): Add initializer of new "kind" field.
37986         (pch_wtd): Likewise.
37987
37988         * gengtype.h (enum write_types_kinds): New.
37989         (struct type): Add field wrote_user_func_for_ptr to the "s"
37990         union member.
37991
37992 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37993
37994         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
37995         instead of const_binop.
37996         (fold_binary_loc): Likewise.
37997
37998 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37999
38000         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
38001         calculation to match get_ref_base_and_extent.
38002
38003 2014-05-13  Catherine Moore  <clm@codesourcery.com>
38004             Sandra Loosemore  <sandra@codesourcery.com>
38005
38006         * configure.ac: Fix assembly for explicit JALR relocation check.
38007         * configure: Regenerate.
38008
38009 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38010
38011         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
38012         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
38013         Remove associated type declarations and initialisations.
38014         (arm_expand_neon_builtin): Likewise.
38015         (neon_emit_pair_result_insn): Delete.
38016         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
38017         * config/arm/neon.md (neon_vtrn<mode>): Delete.
38018         (neon_vzip<mode>): Likewise.
38019         (neon_vuzp<mode>): Likewise.
38020
38021 2014-05-13  Richard Biener  <rguenther@suse.de>
38022
38023         PR ipa/60973
38024         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
38025         it needs revisiting whether the call still may be tail-called.
38026
38027 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38028
38029         * rtl.def (SYMBOL_REF): Remove middle "0" field.
38030         * rtl.h (block_symbol): Reduce number of fields to 2.
38031         (rtx_def): Add u2.symbol_ref_flags.
38032         (SYMBOL_REF_FLAGS): Use it.
38033         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
38034         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
38035         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
38036         Lower index of SYMBOL_REF_DATA.
38037         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
38038         Print SYMBOL_REF_FLAGS at the same time.
38039         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
38040
38041 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38042
38043         * rtl.def (VAR_LOCATION): Remove "i" field.
38044         * rtl.h (rtx_def): Add u2.var_location_status.
38045         (PAT_VAR_LOCATION_STATUS): Use it.
38046         (gen_rtx_VAR_LOCATION): Declare.
38047         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
38048         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
38049         * var-tracking.c (emit_note_insn_var_location): Remove casts.
38050
38051 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38052
38053         * rtl.def (scratch): Fix outdated comment and remove "0" field.
38054         * gengtype.c (adjust_field_rtx_def): Update accordingly.
38055
38056 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38057
38058         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
38059         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
38060         * rtl.h (rtx_def): Add insn_uid to u2 field.
38061         (RTX_FLAG_CHECK8): Delete in favor of...
38062         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
38063         (INSN_DELETED_P): Update accordingly.
38064         (INSN_UID): Use u2.insn_uid.
38065         (INSN_CHAIN_CODE_P): Define.
38066         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
38067         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
38068         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
38069         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
38070         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
38071         indices accordingly.
38072         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
38073         Update indices for insn-chain rtxes.
38074         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
38075         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
38076         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
38077         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
38078         * combine.c (try_combine): Likewise.
38079         * ira.c (setup_prohibited_mode_move_regs): Likewise.
38080
38081 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38082
38083         * rtl.def (REG): Remove middle field.
38084         * rtl.h (rtx_def): Add orignal_regno to u2.
38085         (ORIGINAL_REGNO): Use it instead of field 1.
38086         (REG_ATTRS): Lower field index accordingly.
38087         * gengtype.c (adjust_field_rtx_def): Remove handling of
38088         ORIGINAL_REGNO.  Move REG_ATTRS index down.
38089         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
38090         code that prints the REGNO.
38091
38092 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38093
38094         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
38095         GENERATOR_FILE.
38096
38097 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38098
38099         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
38100
38101 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
38102
38103         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
38104         (alloc_iv): Lower base expressions containing ADDR_EXPR.
38105
38106 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
38107
38108         * config/aarch64/aarch64-protos.h
38109         (aarch64_hard_regno_caller_save_mode): New prototype.
38110         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
38111         New function.
38112         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
38113
38114 2014-05-13  Christian Bruel  <christian.bruel@st.com>
38115
38116         * target.def (mode_switching): New hook vector.
38117         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
38118         (mode_exit, modepriority_to_mode): Likewise.
38119         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
38120         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38121         * target.h: Include tm.h and hard-reg-set.h.
38122         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
38123         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
38124         * doc/tm.texi Regenerate.
38125         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38126         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38127         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
38128         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
38129         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38130         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38131         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
38132         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
38133         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
38134         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
38135         (ix86_emit_mode_set): Hookify.
38136         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
38137         Delete.
38138         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38139         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
38140         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
38141         (epiphany_mode_priority_to_mode): Remove declaration.
38142         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
38143         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
38144         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
38145         Likewise.
38146         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
38147         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
38148         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
38149
38150 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
38151
38152         PR target/61060
38153         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
38154         is const0_rtx, return immediately.  Don't test count == 0 when
38155         it is always true.
38156
38157 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38158
38159         * Makefile.in: add shrink-wrap.o.
38160         * config/i386/i386.c: include "shrink-wrap.h"
38161         * function.c: Likewise.
38162         (requires_stack_frame_p, next_block_for_reg,
38163         move_insn_for_shrink_wrap, prepare_shrink_wrap,
38164         dup_block_and_redirect): Move to shrink-wrap.c
38165         (thread_prologue_and_epilogue_insns): Extract three code segments
38166         as functions in shrink-wrap.c
38167         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
38168         shrink-wrap.h
38169         * shrink-wrap.c: New file.
38170         * shrink-wrap.h: New file.
38171
38172 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38173
38174         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
38175         reference to Solaris.
38176
38177 2014-05-12  Mike Stump  <mikestump@comcast.net>
38178
38179         PR other/31778
38180         * genattrtab.c (filename): Add.
38181         (convert_set_attr_alternative): Improve error message.
38182         (check_defs): Restore read_md_filename for error messages.
38183         (gen_insn): Save filename.
38184
38185 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
38186
38187         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
38188         -fno-local-ivars and -fivar-visibility.
38189         * c-family/c.opt: Make -Wshadow also implicitly enable
38190         -Wshadow-ivar.
38191
38192 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38193
38194         * doc/tm.texi: Remove reference to deleted macro.
38195         * doc/tm.texi.in: Likewise.
38196
38197 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
38198
38199         PR target/60991
38200         * config/avr/avr.c (avr_out_store_psi): Use correct constant
38201         to restore Y.
38202
38203 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
38204
38205         PR libgcc/61152
38206         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
38207         * config/arm/aout.h (License): Same.
38208         * config/arm/bpabi.h (License): Same.
38209         * config/arm/elf.h (License): Same.
38210         * config/arm/linux-elf.h (License): Same.
38211         * config/arm/linux-gas.h (License): Same.
38212         * config/arm/netbsd-elf.h (License): Same.
38213         * config/arm/uclinux-eabi.h (License): Same.
38214         * config/arm/uclinux-elf.h (License): Same.
38215         * config/arm/vxworks.h (License): Same.
38216
38217 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
38218
38219         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
38220         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
38221         number of operands to 3.
38222         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
38223         * tree-nested.c (convert_nonlocal_omp_clauses,
38224         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
38225         * gimplify.c (gimplify_scan_omp_clauses): Handle
38226         OMP_CLAUSE_LINEAR_STMT.
38227         * omp-low.c (lower_rec_input_clauses): Fix typo.
38228         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
38229         cast between Fortran boolean_type_node and C _Bool if
38230         needed.
38231
38232 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
38233
38234         PR tree-optimization/61136
38235         * wide-int.h (multiple_of_p): Define a version that doesn't return
38236         the quotient.
38237         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
38238         integer_zerop/const_binop pair.
38239         (multiple_of_p): Likewise, converting both operands to widest_int
38240         precision.
38241
38242 2014-05-09  Teresa Johnson  <tejohnson@google.com>
38243
38244         * cgraphunit.c (analyze_functions): Use correct dump file.
38245
38246 2014-05-09  Florian Weimer  <fweimer@redhat.com>
38247
38248         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
38249         expand_used_vars.
38250         (stack_protect_return_slot_p): New function.
38251         (expand_used_vars): Call stack_protect_decl_p and
38252         stack_protect_return_slot_p for -fstack-protector-strong.
38253
38254 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
38255         Andrew Haley <aph@redhat.com>
38256         Richard Sandiford <rdsandiford@googlemail.com>
38257
38258         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
38259         pages.
38260
38261 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
38262
38263         PR middle-end/61111
38264         * fold-const.c (fold_binary_loc): Changed width of mask.
38265
38266 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38267
38268         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
38269         unsigned int initializers for regno_in, regno_out.
38270
38271 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38272
38273         PR target/61055
38274         * config/avr/avr.md (cc): Add new attribute set_vzn.
38275         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
38276         Set cc insn attribute to set_vzn instead of set_zn for alternatives
38277         with INC, DEC or NEG.
38278         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
38279         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
38280         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
38281
38282 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38283
38284         Revert:
38285         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38286
38287         * wide-int.cc (UTItype): Define.
38288         (UDWtype): Define for appropriate W_TYPE_SIZE.
38289
38290 2014-05-09  Richard Biener  <rguenther@suse.de>
38291
38292         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
38293         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
38294         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
38295         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
38296         ssa_propagate): Adjust.
38297
38298 2014-05-08  Jeff Law  <law@redhat.com>
38299
38300         PR tree-optimization/61009
38301         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
38302         tri-state rather than a boolean.  When a block is too big to
38303         thread through, inform caller via negative return value.
38304         (thread_across_edge): If a block was too big for normal threading,
38305         then it's too big for a joiner too, so remove temporary equivalences
38306         and return immediately.
38307
38308 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38309             Matthias Klose  <doko@ubuntu.com>
38310
38311         PR driver/61106
38312         * optc-gen.awk: Fix option handling for -Wunused-parameter.
38313
38314 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38315
38316         PR target/59952
38317         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
38318
38319 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38320
38321         PR target/61092
38322         * config/alpha/alpha.c: Include gimple-iterator.h.
38323         (alpha_gimple_fold_builtin): New function.  Move
38324         ALPHA_BUILTIN_UMULH folding from ...
38325         (alpha_fold_builtin): ... here.
38326         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38327
38328 2014-05-08  Wei Mi  <wmi@google.com>
38329
38330         PR target/58066
38331         * config/i386/i386.c (ix86_compute_frame_layout): Update
38332         preferred_stack_boundary for call, expanded from tls descriptor.
38333         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38334         to depend on SP register.
38335         (*tls_local_dynamic_base_32_gnu): Ditto.
38336         (*tls_local_dynamic_32_once): Ditto.
38337         (tls_global_dynamic_64_<mode>): Set
38338         ix86_tls_descriptor_calls_expanded_in_cfun.
38339         (tls_local_dynamic_base_64_<mode>): Ditto.
38340         (tls_global_dynamic_32): Set
38341         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38342         to depend on SP register.
38343         (tls_local_dynamic_base_32): Ditto.
38344
38345 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38346
38347         * config/arm/arm_neon.h: Update comment.
38348         * config/arm/neon-docgen.ml: Delete.
38349         * config/arm/neon-gen.ml: Delete.
38350         * doc/arm-neon-intrinsics.texi: Update comment.
38351
38352 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38353
38354         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38355         and v4sf versions.
38356         (vand, vorr, veor, vorn, vbic): Remove.
38357         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38358         iterator.
38359         (neon_vsub_unspec): Likewise.
38360         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38361
38362 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38363
38364         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38365         (vadd_s16): Likewise.
38366         (vadd_s32): Likewise.
38367         (vadd_f32): Likewise.
38368         (vadd_u8): Likewise.
38369         (vadd_u16): Likewise.
38370         (vadd_u32): Likewise.
38371         (vadd_s64): Likewise.
38372         (vadd_u64): Likewise.
38373         (vaddq_s8): Likewise.
38374         (vaddq_s16): Likewise.
38375         (vaddq_s32): Likewise.
38376         (vaddq_s64): Likewise.
38377         (vaddq_f32): Likewise.
38378         (vaddq_u8): Likewise.
38379         (vaddq_u16): Likewise.
38380         (vaddq_u32): Likewise.
38381         (vaddq_u64): Likewise.
38382         (vmul_s8): Likewise.
38383         (vmul_s16): Likewise.
38384         (vmul_s32): Likewise.
38385         (vmul_f32): Likewise.
38386         (vmul_u8): Likewise.
38387         (vmul_u16): Likewise.
38388         (vmul_u32): Likewise.
38389         (vmul_p8): Likewise.
38390         (vmulq_s8): Likewise.
38391         (vmulq_s16): Likewise.
38392         (vmulq_s32): Likewise.
38393         (vmulq_f32): Likewise.
38394         (vmulq_u8): Likewise.
38395         (vmulq_u16): Likewise.
38396         (vmulq_u32): Likewise.
38397         (vsub_s8): Likewise.
38398         (vsub_s16): Likewise.
38399         (vsub_s32): Likewise.
38400         (vsub_f32): Likewise.
38401         (vsub_u8): Likewise.
38402         (vsub_u16): Likewise.
38403         (vsub_u32): Likewise.
38404         (vsub_s64): Likewise.
38405         (vsub_u64): Likewise.
38406         (vsubq_s8): Likewise.
38407         (vsubq_s16): Likewise.
38408         (vsubq_s32): Likewise.
38409         (vsubq_s64): Likewise.
38410         (vsubq_f32): Likewise.
38411         (vsubq_u8): Likewise.
38412         (vsubq_u16): Likewise.
38413         (vsubq_u32): Likewise.
38414         (vsubq_u64): Likewise.
38415         (vand_s8): Likewise.
38416         (vand_s16): Likewise.
38417         (vand_s32): Likewise.
38418         (vand_u8): Likewise.
38419         (vand_u16): Likewise.
38420         (vand_u32): Likewise.
38421         (vand_s64): Likewise.
38422         (vand_u64): Likewise.
38423         (vandq_s8): Likewise.
38424         (vandq_s16): Likewise.
38425         (vandq_s32): Likewise.
38426         (vandq_s64): Likewise.
38427         (vandq_u8): Likewise.
38428         (vandq_u16): Likewise.
38429         (vandq_u32): Likewise.
38430         (vandq_u64): Likewise.
38431         (vorr_s8): Likewise.
38432         (vorr_s16): Likewise.
38433         (vorr_s32): Likewise.
38434         (vorr_u8): Likewise.
38435         (vorr_u16): Likewise.
38436         (vorr_u32): Likewise.
38437         (vorr_s64): Likewise.
38438         (vorr_u64): Likewise.
38439         (vorrq_s8): Likewise.
38440         (vorrq_s16): Likewise.
38441         (vorrq_s32): Likewise.
38442         (vorrq_s64): Likewise.
38443         (vorrq_u8): Likewise.
38444         (vorrq_u16): Likewise.
38445         (vorrq_u32): Likewise.
38446         (vorrq_u64): Likewise.
38447         (veor_s8): Likewise.
38448         (veor_s16): Likewise.
38449         (veor_s32): Likewise.
38450         (veor_u8): Likewise.
38451         (veor_u16): Likewise.
38452         (veor_u32): Likewise.
38453         (veor_s64): Likewise.
38454         (veor_u64): Likewise.
38455         (veorq_s8): Likewise.
38456         (veorq_s16): Likewise.
38457         (veorq_s32): Likewise.
38458         (veorq_s64): Likewise.
38459         (veorq_u8): Likewise.
38460         (veorq_u16): Likewise.
38461         (veorq_u32): Likewise.
38462         (veorq_u64): Likewise.
38463         (vbic_s8): Likewise.
38464         (vbic_s16): Likewise.
38465         (vbic_s32): Likewise.
38466         (vbic_u8): Likewise.
38467         (vbic_u16): Likewise.
38468         (vbic_u32): Likewise.
38469         (vbic_s64): Likewise.
38470         (vbic_u64): Likewise.
38471         (vbicq_s8): Likewise.
38472         (vbicq_s16): Likewise.
38473         (vbicq_s32): Likewise.
38474         (vbicq_s64): Likewise.
38475         (vbicq_u8): Likewise.
38476         (vbicq_u16): Likewise.
38477         (vbicq_u32): Likewise.
38478         (vbicq_u64): Likewise.
38479         (vorn_s8): Likewise.
38480         (vorn_s16): Likewise.
38481         (vorn_s32): Likewise.
38482         (vorn_u8): Likewise.
38483         (vorn_u16): Likewise.
38484         (vorn_u32): Likewise.
38485         (vorn_s64): Likewise.
38486         (vorn_u64): Likewise.
38487         (vornq_s8): Likewise.
38488         (vornq_s16): Likewise.
38489         (vornq_s32): Likewise.
38490         (vornq_s64): Likewise.
38491         (vornq_u8): Likewise.
38492         (vornq_u16): Likewise.
38493         (vornq_u32): Likewise.
38494         (vornq_u64): Likewise.
38495
38496 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38497
38498         * wide-int.cc (UTItype): Define.
38499         (UDWtype): Define for appropriate W_TYPE_SIZE.
38500
38501 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
38502
38503         PR tree-optimization/59100
38504         * tree-ssa-phiopt.c: Include tree-inline.h.
38505         (neutral_element_p, absorbing_element_p): New functions.
38506         (value_replacement): Handle conditional binary operations with a
38507         neutral or absorbing element.
38508
38509 2014-05-08  Richard Biener  <rguenther@suse.de>
38510
38511         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
38512         folding the expression.
38513         (valueize_expr): Remove.
38514         (visit_reference_op_load): Do not valueize the result of
38515         vn_get_expr_for.
38516         (simplify_binary_expression): Likewise.
38517         (simplify_unary_expression): Likewise.
38518
38519 2014-05-08  Richard Biener  <rguenther@suse.de>
38520
38521         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
38522         looking at TYPE_ARG_TYPES.
38523
38524 2014-05-08  Richard Biener  <rguenther@suse.de>
38525
38526         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
38527         pointer propagation special-case.
38528
38529 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
38530
38531         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
38532         core part of address expressions.
38533
38534 2014-05-08  Alan Modra  <amodra@gmail.com>
38535
38536         PR target/60737
38537         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
38538         loads and stores when -mno-strict-align at any alignment.
38539         (expand_block_clear): Similarly.  Also correct calculation of
38540         instruction count.
38541
38542 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38543
38544         PR middle-end/39246
38545         * tree-complex.c (expand_complex_move): Keep line info when expanding
38546         complex move.
38547         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
38548         of complex expression. Use new argument to display correct location
38549         for values coming from phi statement.
38550         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
38551         (warn_uninitialized_phi): Pass location of phi argument to
38552         warn_uninit.
38553         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
38554         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
38555
38556 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
38557
38558         * config/rs6000/predicates.md (indexed_address_mem): New.
38559         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
38560         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
38561         fpstore_ux, fpstore_u.
38562         (sign_extend, indexed, update): New.
38563         (cell_micro): Adjust.
38564         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
38565         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
38566         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
38567         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
38568         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
38569         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
38570         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
38571         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
38572         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
38573         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
38574         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
38575         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
38576         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
38577         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
38578         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
38579
38580         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
38581         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
38582         *vsx_extract_<mode>_store): Adjust.
38583         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
38584         is_cracked_insn, insn_must_be_first_in_group,
38585         insn_must_be_last_in_group): Adjust.
38586
38587         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
38588         Adjust.
38589         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
38590         ppc440-fpstore): Adjust.
38591         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
38592         ppc476-fpstore): Adjust.
38593         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
38594         ppc601-fpstore): Adjust.
38595         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
38596         Adjust.
38597         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
38598         Adjust.
38599         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
38600         ppc7450-fpstore): Adjust.
38601         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
38602         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
38603         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
38604         Adjust.
38605         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
38606         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
38607         cell-fpstore, cell-fpstore-update): Adjust.
38608         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
38609         ppce300c3_store, ppce300c3_fpstore): Adjust.
38610         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
38611         e500mc_fpstore): Adjust.
38612         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
38613         e500mc64_store, e500mc64_fpstore): Adjust.
38614         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
38615         e5500_fpstore): Adjust.
38616         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
38617         e6500_fpstore): Adjust.
38618         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
38619         Adjust.
38620         * config/rs6000/power4.md (power4-load, power4-load-ext,
38621         power4-load-ext-update, power4-load-ext-update-indexed,
38622         power4-load-update-indexed, power4-load-update, power4-fpload,
38623         power4-fpload-update, power4-store, power4-store-update,
38624         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
38625         Adjust.
38626         * config/rs6000/power5.md (power5-load, power5-load-ext,
38627         power5-load-ext-update, power5-load-ext-update-indexed,
38628         power5-load-update-indexed, power5-load-update, power5-fpload,
38629         power5-fpload-update, power5-store, power5-store-update,
38630         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
38631         Adjust.
38632         * config/rs6000/power6.md (power6-load, power6-load-ext,
38633         power6-load-update, power6-load-update-indexed,
38634         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
38635         power6-fpload-update, power6-store, power6-store-update,
38636         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
38637         Adjust.
38638         * config/rs6000/power7.md (power7-load, power7-load-ext,
38639         power7-load-update, power7-load-update-indexed,
38640         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
38641         power7-fpload-update, power7-store, power7-store-update,
38642         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
38643         Adjust.
38644         * config/rs6000/power8.md (power8-load, power8-load-update,
38645         power8-load-ext, power8-load-ext-update, power8-fpload,
38646         power8-fpload-update, power8-store, power8-store-update-indexed,
38647         power8-fpstore, power8-fpstore-update): Adjust.
38648         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
38649         Adjust.
38650         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
38651         titan_lsu_store, titan_lsu_fpstore): Adjust.
38652         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
38653
38654 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
38655
38656         PR target/60884
38657         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
38658         unrolled byte insns.  Emit address increments after move insns.
38659
38660 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
38661
38662         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
38663         const_gimple, rather than a gimple.
38664         (gimple_call_builtin_p): Likewise, for the three variants.
38665
38666         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
38667         (gimple_call_builtin_p): Likewise, for the three variants.
38668
38669 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
38670
38671         PR tree-optimization/61095
38672         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
38673
38674 2014-05-07  Richard Biener  <rguenther@suse.de>
38675
38676         PR tree-optimization/61034
38677         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
38678         (maybe_skip_until): Use translate to take into account
38679         lattices when trying to do disambiguations.
38680         (get_continuation_for_phi_1): Likewise.
38681         (get_continuation_for_phi): Adjust for added translate arguments.
38682         (walk_non_aliased_vuses): Likewise.
38683         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
38684         (walk_non_aliased_vuses): Likewise.
38685         (call_may_clobber_ref_p_1): Declare.
38686         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
38687         calls.  Stop early if we are only supposed to disambiguate.
38688         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
38689
38690 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
38691
38692         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
38693         Emit an error when the function has arguments.
38694
38695 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38696
38697         * cfgloop.h (unswitch_loops): Remove.
38698         * doc/passes.texi: Remove references to loop-unswitch.c
38699         * timevar.def (TV_LOOP_UNSWITCH): Remove.
38700
38701 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
38702
38703         * tree-vect-data-refs.c (vect_grouped_load_supported): New
38704         check for loads group of length 3.
38705         (vect_permute_load_chain): New permutations for loads group of
38706         length 3.
38707         * tree-vect-stmts.c (vect_model_load_cost): Change cost
38708         of vec_perm_shuffle for the new permutations.
38709
38710 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
38711
38712         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
38713         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
38714         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
38715         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
38716         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
38717         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
38718         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
38719         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
38720
38721 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38722
38723         * loop-unswitch.c: Delete.
38724
38725 2014-05-07  Richard Biener  <rguenther@suse.de>
38726
38727         * config.gcc: Always set need_64bit_hwint to yes.
38728
38729 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
38730
38731         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
38732         of using optimize_size.
38733
38734 2014-05-06  Mike Stump  <mikestump@comcast.net>
38735
38736         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
38737
38738 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
38739
38740         * config/i386/sse.md (*mov<mode>_internal)
38741         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
38742         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
38743         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
38744         (*<code><mode>3, *andnot<mode>3<mask_name>)
38745         (<mask_codefor><code><mode>3<mask_name>): Only consider
38746         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
38747
38748 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38749
38750         Revert:
38751         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
38752
38753         * lra-constraints.c (valid_address_p): Move earlier in file.
38754         Add a constraint argument to the address_info version.
38755         (satisfies_memory_constraint_p): New function.
38756         (satisfies_address_constraint_p): Likewise.
38757         (process_alt_operands, curr_insn_transform): Use them.
38758         (process_address): Pass the constraint to valid_address_p when
38759         checking address operands.
38760
38761 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
38762
38763         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
38764         to their respective blocks.  Fix inadvertent use of "node".
38765
38766 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38767
38768         * emit-rtl.c (init_derived_machine_modes): New functionm, split
38769         out from...
38770         (init_emit_once): ...here.
38771         * rtl.h (init_derived_machine_modes): Declare.
38772         * toplev.c (do_compile): Call it even if no_backend.
38773
38774 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
38775             Mike Stump  <mikestump@comcast.net>
38776             Richard Sandiford  <rdsandiford@googlemail.com>
38777             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38778
38779         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
38780         (rtx_equal_for_memref_p): Update comment.
38781         (adjust_offset_for_component_ref): Use wide-int interfaces.
38782         * builtins.c (get_object_alignment_2): Likewise.
38783         (c_readstr): Likewise.
38784         (target_char_cast): Add comment.
38785         (determine_block_size): Use wide-int interfaces.
38786         (expand_builtin_signbit): Likewise.
38787         (fold_builtin_int_roundingfn): Likewise.
38788         (fold_builtin_bitop): Likewise.
38789         (fold_builtin_bswap): Likewise.
38790         (fold_builtin_logarithm): Use signop.
38791         (fold_builtin_pow): Likewise.
38792         (fold_builtin_memory_op): Use wide-int interfaces.
38793         (fold_builtin_object_size): Likewise.
38794         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
38795         nb_iterations_estimate.
38796         (record_niter_bound): Use wide-int interfaces.
38797         (get_estimated_loop_iterations_int): Likewise.
38798         (get_estimated_loop_iterations): Likewise.
38799         (get_max_loop_iterations): Likewise.
38800         * cfgloop.h: Include wide-int.h.
38801         (struct nb_iter_bound): Change bound to widest_int.
38802         (struct loop): Change nb_iterations_upper_bound and
38803         nb_iterations_estimate to widest_int.
38804         (record_niter_bound): Switch to use widest_int.
38805         (get_estimated_loop_iterations): Likewise.
38806         (get_max_loop_iterations): Likewise.
38807         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
38808         update for wide-int.
38809         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
38810         * combine.c (try_combine): Likewise.
38811         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
38812         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
38813         interfaces.
38814         (aarch64_float_const_representable_p): Likewise.
38815         * config/arc/arc.c: Include wide-int.h.
38816         (arc_can_use_doloop_p): Use wide-int interfaces.
38817         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
38818         (vfp3_const_double_index): Likewise.
38819         * config/avr/avr.c (avr_out_round): Likewise.
38820         (avr_fold_builtin): Likewise.
38821         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
38822         (bfin_can_use_doloop_p): Likewise.
38823         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
38824         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
38825         * config/i386/i386.c: Include wide-int.h.
38826         (ix86_data_alignment): Use wide-int interfaces.
38827         (ix86_local_alignment): Likewise.
38828         (ix86_emit_swsqrtsf): Update real_from_integer.
38829         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
38830         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
38831         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
38832         (zero_constant): Likewise.
38833         (input_operand): Likewise.
38834         (splat_input_operand): Likewise.
38835         (non_logical_cint_operand): Change const_double to const_wide_int.
38836         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
38837         (easy_altivec_constant): Remove comment.
38838         (paired_expand_vector_init): Use CONSTANT_P.
38839         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
38840         (rs6000_emit_move): Update checks.
38841         (rs6000_aggregate_candidate): Use wide-int interfaces.
38842         (rs6000_expand_ternop_builtin): Likewise.
38843         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
38844         (rs6000_assemble_integer): Likewise.
38845         (rs6000_hash_constant): Likewise.
38846         (output_toc): Likewise.
38847         (rs6000_rtx_costs): Likewise.
38848         (rs6000_emit_swrsqrt); Update call to real_from_integer.
38849         * config/rs6000/rs6000-c.c: Include wide-int.h.
38850         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
38851         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
38852         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
38853         Handle CONST_WIDE_INT.
38854         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
38855         Use tree_fits_uhwi_p.
38856         * config/sparc/sparc.c: Include wide-int.h.
38857         (sparc_fold_builtin): Use wide-int interfaces.
38858         * config/vax/vax.c: Include wide-int.h.
38859         (vax_float_literal): Use real_from_integer.
38860         * coretypes.h (struct hwivec_def): New.
38861         (hwivec): New.
38862         (const_hwivec): New.
38863         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
38864         (equiv_constant): Handle CONST_WIDE_INT.
38865         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
38866         (cselib_hash_rtx): Handle CONST_WIDE_INT.
38867         * dbxout.c (stabstr_U): Use wide-int interfaces.
38868         (dbxout_type): Update to use cst_fits_shwi_p.
38869         * defaults.h (LOG2_BITS_PER_UNIT): Define.
38870         (TARGET_SUPPORTS_WIDE_INT): Add default.
38871         * dfp.c: Include wide-int.h.
38872         (decimal_real_to_integer2): Use wide-int interfaces and rename to
38873         decimal_real_to_integer.
38874         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
38875         decimal_real_to_integer.
38876         * doc/generic.texi (Constant expressions): Update for wide_int.
38877         * doc/rtl.texi (const_double): Likewise.
38878         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
38879         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
38880         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
38881         (REAL_VALUE_FROM_INT): Remove.
38882         (TARGET_SUPPORTS_WIDE_INT): New.
38883         * doc/tm.texi: Regenerate.
38884         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
38885         * double-int.h: Include wide-int.h.
38886         (struct wi::int_traits): New.
38887         * dwarf2out.c (get_full_len): New.
38888         (dw_val_equal_p): Add case dw_val_class_wide_int.
38889         (size_of_loc_descr): Likewise.
38890         (output_loc_operands): Likewise.
38891         (insert_double): Remove.
38892         (insert_wide_int): New.
38893         (add_AT_wide): New.
38894         (print_die): Add case dw_val_class_wide_int.
38895         (attr_checksum): Likewise.
38896         (attr_checksum_ordered): Likewise.
38897         (same_dw_val_p): Likewise.
38898         (size_of_die): Likewise.
38899         (value_format): Likewise.
38900         (output_die): Likewise.
38901         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
38902         Use wide-int.
38903         (clz_loc_descriptor): Use wide-int interfaces.
38904         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
38905         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
38906         (round_up_to_align): Use wide-int interfaces.
38907         (field_byte_offset): Likewise.
38908         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
38909         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
38910         CONST_DOUBLE handling.  Use wide-int interfaces.
38911         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
38912         (gen_enumeration_type_die): Use add_AT_wide.
38913         (hash_loc_operands): Add case dw_val_class_wide_int.
38914         (compare_loc_operands): Likewise.
38915         * dwarf2out.h: Include wide-int.h.
38916         (wide_int_ptr): New.
38917         (enum dw_val_class): Add dw_val_class_wide_int.
38918         (struct dw_val_struct): Add val_wide.
38919         * emit-rtl.c (const_wide_int_htab): New.
38920         (const_wide_int_htab_hash): New.
38921         (const_wide_int_htab_eq): New.
38922         (lookup_const_wide_int): New.
38923         (const_double_htab_hash): Use wide-int interfaces.
38924         (const_double_htab_eq): Likewise.
38925         (rtx_to_double_int): Conditionally compile for wide-int.
38926         (immed_double_int_const): Rename to immed_wide_int_const and
38927         update for wide-int.
38928         (immed_double_const): Conditionally compile for wide-int.
38929         (init_emit_once): Use wide-int interfaces.
38930         * explow.c (plus_constant): Likewise.
38931         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
38932         (lshift_value): Use wide-int interfaces.
38933         (expand_mult): Likewise.
38934         (choose_multiplier): Likewise.
38935         (expand_smod_pow2): Likewise.
38936         (make_tree): Likewise.
38937         * expr.c (convert_modes): Consolidate handling of constants.
38938         Use wide-int interfaces.
38939         (emit_group_load_1): Add note.
38940         (store_expr): Update comment.
38941         (get_inner_reference): Use wide-int interfaces.
38942         (expand_constructor): Update comment.
38943         (expand_expr_real_2): Use wide-int interfaces.
38944         (expand_expr_real_1): Likewise.
38945         (reduce_to_bit_field_precision): Likewise.
38946         (const_vector_from_tree): Likewise.
38947         * final.c: Include wide-int-print.h.
38948         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
38949         * fixed-value.c: Include wide-int.h.
38950         (fixed_from_string): Use wide-int interfaces.
38951         (fixed_to_decimal): Likewise.
38952         (fixed_convert_from_real): Likewise.
38953         (real_convert_from_fixed): Likewise.
38954         * fold-const.h (mem_ref_offset): Return an offset_int.
38955         (div_if_zero_remainder): Remove code parameter.
38956         * fold-const.c (div_if_zero_remainder): Remove code parameter.
38957         Use wide-int interfaces.
38958         (may_negate_without_overflow_p): Use wide-int interfaces.
38959         (negate_expr_p): Likewise.
38960         (fold_negate_expr): Likewise.
38961         (int_const_binop_1): Likewise.
38962         (const_binop): Likewise.
38963         (fold_convert_const_int_from_int): Likewise.
38964         (fold_convert_const_int_from_real): Likewise.
38965         (fold_convert_const_int_from_fixed): Likewise.
38966         (fold_convert_const_fixed_from_int): Likewise.
38967         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
38968         (sign_bit_p): Use wide-int interfaces.
38969         (make_range_step): Likewise.
38970         (build_range_check): Likewise.  Pass an integer of the correct type
38971         instead of using integer_one_node.
38972         (range_predecessor): Pass an integer of the correct type instead
38973         of using integer_one_node.
38974         (range_successor): Likewise.
38975         (merge_ranges): Likewise.
38976         (unextend): Use wide-int interfaces.
38977         (extract_muldiv_1): Likewise.
38978         (fold_div_compare): Likewise.
38979         (fold_single_bit_test): Likewise.
38980         (fold_sign_changed_comparison): Likewise.
38981         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
38982         (fold_plusminus_mult_expr): Use wide-int interfaces.
38983         (native_encode_int): Likewise.
38984         (native_interpret_int): Likewise.
38985         (fold_unary_loc): Likewise.
38986         (pointer_may_wrap_p): Likewise.
38987         (size_low_cst): Likewise.
38988         (mask_with_tz): Likewise.
38989         (fold_binary_loc): Likewise.
38990         (fold_ternary_loc): Likewise.
38991         (multiple_of_p): Likewise.
38992         (tree_call_nonnegative_warnv_p): Update calls to
38993         tree_int_cst_min_precision and real_from_integer.
38994         (fold_negate_const): Use wide-int interfaces.
38995         (fold_abs_const): Likewise.
38996         (fold_relational_const): Use tree_int_cst_lt.
38997         (round_up_loc): Use wide-int interfaces.
38998         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
38999         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
39000         * gengtype.c: Remove include of double-int.h.
39001         (do_typedef): Use wide-int interfaces.
39002         (open_base_files): Add wide-int.h.
39003         (main): Add offset_int and widest_int typedefs.
39004         * gengtype-lex.l: Handle "^".
39005         (CXX_KEYWORD): Add "static".
39006         * gengtype-parse.c (require3): New.
39007         (require_template_declaration): Handle constant template arguments
39008         and nested templates.
39009         * gengtype-state.c: Don't include "double-int.h".
39010         * genpreds.c (write_one_predicate_function): Update comment.
39011         (write_tm_constrs_h): Add check for hval and lval use in
39012         CONST_WIDE_INT.
39013         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
39014         (add_to_sequence): Likewise.
39015         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
39016         and const_double_operand.
39017         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
39018         interfaces.
39019         * gimple-fold.c (get_base_constructor): Likewise.
39020         (fold_array_ctor_reference): Likewise.
39021         (fold_nonarray_ctor_reference): Likewise.
39022         (fold_const_aggregate_ref_1): Likewise.
39023         (gimple_val_nonnegative_real_p): Likewise.
39024         (gimple_fold_indirect_ref): Likewise.
39025         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
39026         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
39027         (struct slsr_cand_d): Change index to be widest_int.
39028         (struct incr_info_d): Change incr to be widest_int.
39029         (alloc_cand_and_find_basis): Use wide-int interfaces.
39030         (slsr_process_phi): Likewise.
39031         (backtrace_base_for_ref): Likewise.  Return a widest_int.
39032         (restructure_reference): Take a widest_int instead of a double_int.
39033         (slsr_process_ref): Use wide-int interfaces.
39034         (create_mul_ssa_cand): Likewise.
39035         (create_mul_imm_cand): Likewise.
39036         (create_add_ssa_cand): Likewise.
39037         (create_add_imm_cand): Take a widest_int instead of a double_int.
39038         (slsr_process_add): Use wide-int interfaces.
39039         (slsr_process_cast): Likewise.
39040         (slsr_process_copy): Likewise.
39041         (dump_candidate): Likewise.
39042         (dump_incr_vec): Likewise.
39043         (replace_ref): Likewise.
39044         (cand_increment): Likewise.  Return a widest_int.
39045         (cand_abs_increment): Likewise.
39046         (replace_mult_candidate): Take a widest_int instead of a double_int.
39047         (replace_unconditional_candidate): Use wide-int interfaces.
39048         (incr_vec_index): Take a widest_int instead of a double_int.
39049         (create_add_on_incoming_edge): Likewise.
39050         (create_phi_basis): Use wide-int interfaces.
39051         (replace_conditional_candidate): Likewise.
39052         (record_increment): Take a widest_int instead of a double_int.
39053         (record_phi_increments): Use wide-int interfaces.
39054         (phi_incr_cost): Take a widest_int instead of a double_int.
39055         (lowest_cost_path): Likewise.
39056         (total_savings): Likewise.
39057         (analyze_increments): Use wide-int interfaces.
39058         (ncd_with_phi): Take a widest_int instead of a double_int.
39059         (ncd_of_cand_and_phis): Likewise.
39060         (nearest_common_dominator_for_cands): Likewise.
39061         (insert_initializers): Use wide-int interfaces.
39062         (all_phi_incrs_profitable): Likewise.
39063         (replace_one_candidate): Likewise.
39064         (replace_profitable_candidates): Likewise.
39065         * godump.c: Include wide-int-print.h.
39066         (go_output_typedef): Use wide-int interfaces.
39067         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
39068         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
39069         (build_loop_iteration_domains): Likewise.
39070         * hooks.h: Include wide-int.h rather than double-int.h.
39071         (hook_bool_dint_dint_uint_bool_true): Delete.
39072         (hook_bool_wint_wint_uint_bool_true): Declare.
39073         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
39074         (hook_bool_wint_wint_uint_bool_true): New.
39075         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
39076         interfaces.
39077         (ubsan_expand_si_overflow_mul_check): Likewise.
39078         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
39079         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
39080         (get_ancestor_addr_info): Likewise.
39081         (ipa_modify_call_arguments): Likewise.
39082         * loop-doloop.c (doloop_modify): Likewise.
39083         (doloop_optimize): Likewise.
39084         * loop-iv.c (iv_number_of_iterations): Likewise.
39085         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
39086         (unroll_loop_constant_iterations): Likewise.
39087         (decide_unroll_runtime_iterations): Likewise.
39088         (unroll_loop_runtime_iterations): Likewise.
39089         (decide_peel_simple): Likewise.
39090         (decide_unroll_stupid): Likewise.
39091         * lto-streamer-in.c (streamer_read_wi): Add.
39092         (input_cfg): Use wide-int interfaces.
39093         (lto_input_tree_1): Likewise.
39094         * lto-streamer-out.c (streamer_write_wi): Add.
39095         (hash_tree): Use wide-int interfaces.
39096         (output_cfg): Likewise.
39097         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
39098         (GTFILES): Add wide-int.h and signop.h.
39099         (TAGS): Look for .cc files too.
39100         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
39101         * optabs.c (expand_subword_shift): Likewise.
39102         (expand_doubleword_shift): Likewise.
39103         (expand_absneg_bit): Likewise.
39104         (expand_copysign_absneg): Likewise.
39105         (expand_copysign_bit): Likewise.
39106         * postreload.c (reload_cse_simplify_set): Likewise.
39107         * predict.c (predict_iv_comparison): Likewise.
39108         * pretty-print.h: Include wide-int-print.h.
39109         (pp_wide_int) New.
39110         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
39111         * print-tree.c: Include wide-int-print.h.
39112         (print_node_brief): Use wide-int interfaces.
39113         (print_node): Likewise.
39114         * read-rtl.c (validate_const_wide_int): New.
39115         (read_rtx_code): Add CONST_WIDE_INT case.
39116         * real.c: Include wide-int.h.
39117         (real_to_integer2): Delete.
39118         (real_to_integer): New function, returning a wide_int.
39119         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39120         (ten_to_ptwo): Update call to real_from_integer.
39121         (real_digit): Likewise.
39122         * real.h: Include signop.h, wide-int.h and insn-modes.h.
39123         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
39124         (REAL_VALUE_TO_INT): Delete.
39125         (real_to_integer): Declare a wide-int form.
39126         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39127         * recog.c (const_int_operand): Improve comment.
39128         (const_scalar_int_operand): New.
39129         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
39130         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
39131         (split_double): Likewise.
39132         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
39133         (rtx_size): Likewise.
39134         (rtx_alloc_stat_v): New.
39135         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
39136         (cwi_output_hex): New.
39137         (iterative_hash_rtx): Handle CONST_WIDE_INT.
39138         (cwi_check_failed_bounds): New.
39139         * rtl.def (CONST_WIDE_INT): New.
39140         * rtl.h: Include <utility> and wide-int.h.
39141         (struct hwivec_def): New.
39142         (CWI_GET_NUM_ELEM): New.
39143         (CWI_PUT_NUM_ELEM): New.
39144         (struct rtx_def): Add num_elem and hwiv.
39145         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
39146         (CASE_CONST_UNIQUE): Likewise.
39147         (CASE_CONST_ANY): Likewise.
39148         (CONST_SCALAR_INT_P): Likewise.
39149         (CONST_WIDE_INT_P): New.
39150         (CWI_ELT): New.
39151         (HWIVEC_CHECK): New.
39152         (cwi_check_failed_bounds): New.
39153         (CWI_ELT): New.
39154         (HWIVEC_CHECK): New.
39155         (CONST_WIDE_INT_VEC) New.
39156         (CONST_WIDE_INT_NUNITS) New.
39157         (CONST_WIDE_INT_ELT) New.
39158         (rtx_mode_t): New type.
39159         (wi::int_traits <rtx_mode_t>): New.
39160         (wi::shwi): New.
39161         (wi::min_value): New.
39162         (wi::max_value): New.
39163         (rtx_alloc_v) New.
39164         (const_wide_int_alloc): New.
39165         (immed_wide_int_const): New.
39166         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
39167         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
39168         * signop.h: New file.
39169         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
39170         (simplify_const_unary_operation): Use wide-int interfaces.
39171         (simplify_binary_operation_1): Likewise.
39172         (simplify_const_binary_operation): Likewise.
39173         (simplify_const_relational_operation): Likewise.
39174         (simplify_immed_subreg): Likewise.
39175         * stmt.c (expand_case): Likewise.
39176         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
39177         signop rather than a bool.
39178         * stor-layout.c (layout_type): Use wide-int interfaces.
39179         (initialize_sizetypes): Update calls to
39180         set_min_and_max_values_for_integral_type.
39181         (set_min_and_max_values_for_integral_type): Take a signop rather
39182         than a bool.  Use wide-int interfaces.
39183         (fixup_signed_type): Update accordingly.  Remove
39184         HOST_BITS_PER_DOUBLE_INT limit.
39185         (fixup_unsigned_type): Likewise.
39186         * system.h (STATIC_CONSTANT_P): New.
39187         (STATIC_ASSERT): New.
39188         * target.def (can_use_doloop_p): Take widest_ints rather than
39189         double_ints.
39190         * target.h: Include wide-int.h rather than double-int.h.
39191         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
39192         than double_ints.
39193         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
39194         rather than INT_CST_LT_UNSIGNED.
39195         (can_use_doloop_if_innermost): Take widest_ints rather than
39196         double_ints.
39197         * tree-affine.c: Include wide-int-print.h.
39198         (double_int_ext_for_comb): Delete.
39199         (wide_int_ext_for_comb): New.
39200         (aff_combination_zero): Use wide-int interfaces.
39201         (aff_combination_const): Take a widest_int instead of a double_int.
39202         (aff_combination_elt): Use wide-int interfaces.
39203         (aff_combination_scale): Take a widest_int instead of a double_int.
39204         (aff_combination_add_elt): Likewise.
39205         (aff_combination_add_cst): Likewise.
39206         (aff_combination_add): Use wide-int interfaces.
39207         (aff_combination_convert): Likewise.
39208         (tree_to_aff_combination): Likewise.
39209         (add_elt_to_tree): Take a widest_int instead of a double_int.
39210         (aff_combination_to_tree): Use wide-int interfaces.
39211         (aff_combination_remove_elt): Likewise.
39212         (aff_combination_add_product): Take a widest_int instead of
39213         a double_int.
39214         (aff_combination_mult): Use wide-int interfaces.
39215         (aff_combination_expand): Likewise.
39216         (double_int_constant_multiple_p): Delete.
39217         (wide_int_constant_multiple_p): New.
39218         (aff_combination_constant_multiple_p): Take a widest_int pointer
39219         instead of a double_int pointer.
39220         (print_aff): Use wide-int interfaces.
39221         (get_inner_reference_aff): Take a widest_int pointer
39222         instead of a double_int pointer.
39223         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
39224         * tree-affine.h: Include wide-int.h.
39225         (struct aff_comb_elt): Change type of coef to widest_int.
39226         (struct affine_tree_combination): Change type of offset to widest_int.
39227         (double_int_ext_for_comb): Delete.
39228         (wide_int_ext_for_comb): New.
39229         (aff_combination_const): Use widest_int instead of double_int.
39230         (aff_combination_scale): Likewise.
39231         (aff_combination_add_elt): Likewise.
39232         (aff_combination_constant_multiple_p): Likewise.
39233         (get_inner_reference_aff): Likewise.
39234         (aff_comb_cannot_overlap_p): Likewise.
39235         (aff_combination_zero_p): Use wide-int interfaces.
39236         * tree.c: Include tree.h.
39237         (init_ttree): Use make_int_cst.
39238         (tree_code_size): Removed code for INTEGER_CST case.
39239         (tree_size): Add INTEGER_CST case.
39240         (make_node_stat): Update comment.
39241         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
39242         (build_int_cst_type): Use wide-int interfaces.
39243         (double_int_to_tree): Likewise.
39244         (double_int_fits_to_tree_p): Delete.
39245         (force_fit_type_double): Delete.
39246         (force_fit_type): New.
39247         (int_cst_hash_hash): Use wide-int interfaces.
39248         (int_cst_hash_eq): Likewise.
39249         (build_int_cst_wide): Delete.
39250         (wide_int_to_tree): New.
39251         (cache_integer_cst): Use wide-int interfaces.
39252         (build_low_bits_mask): Likewise.
39253         (cst_and_fits_in_hwi): Likewise.
39254         (real_value_from_int_cst): Likewise.
39255         (make_int_cst_stat): New.
39256         (integer_zerop): Use wide_int interfaces.
39257         (integer_onep): Likewise.
39258         (integer_all_onesp): Likewise.
39259         (integer_pow2p): Likewise.
39260         (integer_nonzerop): Likewise.
39261         (tree_log2): Likewise.
39262         (tree_floor_log2): Likewise.
39263         (tree_ctz): Likewise.
39264         (int_size_in_bytes): Likewise.
39265         (mem_ref_offset): Return an offset_int rather than a double_int.
39266         (build_type_attribute_qual_variant): Use wide_int interfaces.
39267         (type_hash_eq): Likewise
39268         (tree_int_cst_equal): Likewise.
39269         (tree_int_cst_lt): Delete.
39270         (tree_int_cst_compare): Likewise.
39271         (tree_fits_shwi_p): Use wide_int interfaces.
39272         (tree_fits_uhwi_p): Likewise.
39273         (tree_int_cst_sign_bit): Likewise.
39274         (tree_int_cst_sgn): Likewise.
39275         (tree_int_cst_min_precision): Take a signop rather than a bool.
39276         (simple_cst_equal): Use wide_int interfaces.
39277         (compare_tree_int): Likewise.
39278         (iterative_hash_expr): Likewise.
39279         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
39280         INT_CST_LT.
39281         (get_type_static_bounds): Use wide_int interfaces.
39282         (tree_int_cst_elt_check_failed): New.
39283         (build_common_tree_nodes): Reordered to set prec before filling in
39284         value.
39285         (int_cst_value): Check cst_and_fits_in_hwi.
39286         (widest_int_cst_value): Use wide_int interfaces.
39287         (upper_bound_in_type): Likewise.
39288         (lower_bound_in_type): Likewise.
39289         (num_ending_zeros): Likewise.
39290         (drop_tree_overflow): Likewise.
39291         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
39292         (gen_conditions_for_pow_cst_base): Likewise.
39293         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
39294         (group_case_labels_stmt): Use wide-int interfaces.
39295         (verify_gimple_assign_binary): Likewise.
39296         (print_loop): Likewise.
39297         * tree-chrec.c (tree_fold_binomial): Likewise.
39298         * tree-core.h (struct tree_base): Add int_length.
39299         (struct tree_int_cst): Change rep of value.
39300         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
39301         (dr_may_alias_p): Likewise.
39302         (max_stmt_executions_tree): Likewise.
39303         * tree.def (INTEGER_CST): Update comment.
39304         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
39305         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
39306         * tree-dump.c: Include wide-int.h and wide-int-print.h.
39307         (dequeue_and_dump): Use wide-int interfaces.
39308         * tree.h: Include wide-int.h.
39309         (NULL_TREE): Moved to earlier loc in file.
39310         (TREE_INT_CST_ELT_CHECK): New.
39311         (tree_int_cst_elt_check_failed): New.
39312         (TYPE_SIGN): New.
39313         (TREE_INT_CST): Delete.
39314         (TREE_INT_CST_LOW): Use wide-int interfaces.
39315         (TREE_INT_CST_HIGH): Delete.
39316         (TREE_INT_CST_NUNITS): New.
39317         (TREE_INT_CST_EXT_NUNITS): Likewise.
39318         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
39319         (TREE_INT_CST_ELT): Likewise.
39320         (INT_CST_LT): Delete.
39321         (tree_int_cst_elt_check): New (two forms).
39322         (type_code_size): Update comment.
39323         (make_int_cst_stat, make_int_cst): New.
39324         (tree_to_double_int): Delete.
39325         (double_int_fits_to_tree_p): Delete.
39326         (force_fit_type_double): Delete.
39327         (build_int_cstu): Replace with out-of-line function.
39328         (build_int_cst_wide): Delete.
39329         (tree_int_cst_lt): Define inline.
39330         (tree_int_cst_le): New.
39331         (tree_int_cst_compare): Define inline.
39332         (tree_int_cst_min_precision): Take a signop rather than a bool.
39333         (wi::int_traits <const_tree>): New.
39334         (wi::int_traits <tree>): New.
39335         (wi::extended_tree): New.
39336         (wi::int_traits <wi::extended_tree>): New.
39337         (wi::to_widest): New.
39338         (wi::to_offset): New.
39339         (wi::fits_to_tree_p): New.
39340         (wi::min_value): New.
39341         (wi::max_value): New.
39342         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39343         (copy_tree_body_r): Likewise.
39344         * tree-object-size.c (compute_object_offset): Likewise.
39345         (addr_object_size): Likewise.
39346         * tree-predcom.c: Include wide-int-print.h.
39347         (struct dref_d): Change type of offset to widest_int.
39348         (dump_dref): Call wide-int printer.
39349         (aff_combination_dr_offset): Use wide-int interfaces.
39350         (determine_offset): Take a widest_int pointer rather than a
39351         double_int pointer.
39352         (split_data_refs_to_components): Use wide-int interfaces.
39353         (suitable_component_p): Likewise.
39354         (order_drefs): Likewise.
39355         (add_ref_to_chain): Likewise.
39356         (valid_initializer_p): Likewise.
39357         (determine_roots_comp): Likewise.
39358         * tree-pretty-print.c: Include wide-int-print.h.
39359         (dump_generic_node): Use wide-int interfaces.
39360         * tree-sra.c (sra_ipa_modify_expr): Likewise.
39361         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39362         (move_fixed_address_to_symbol): Likewise.
39363         (move_hint_to_base): Likewise.
39364         (move_pointer_to_base): Likewise.
39365         (move_variant_to_index): Likewise.
39366         (most_expensive_mult_to_index): Likewise.
39367         (addr_to_parts): Likewise.
39368         (copy_ref_info): Likewise.
39369         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39370         (indirect_refs_may_alias_p): Likewise.
39371         (stmt_kills_ref_p_1): Likewise.
39372         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39373         * tree-ssa-ccp.c: Update comment at top of file.  Include
39374         wide-int-print.h.
39375         (struct prop_value_d): Change type of mask to widest_int.
39376         (extend_mask): New function.
39377         (dump_lattice_value): Use wide-int interfaces.
39378         (get_default_value): Likewise.
39379         (set_constant_value): Likewise.
39380         (set_value_varying): Likewise.
39381         (valid_lattice_transition): Likewise.
39382         (set_lattice_value): Likewise.
39383         (value_to_double_int): Delete.
39384         (value_to_wide_int): New.
39385         (get_value_from_alignment): Use wide-int interfaces.
39386         (get_value_for_expr): Likewise.
39387         (do_dbg_cnt): Likewise.
39388         (ccp_finalize): Likewise.
39389         (ccp_lattice_meet): Likewise.
39390         (bit_value_unop_1): Use widest_ints rather than double_ints.
39391         (bit_value_binop_1): Likewise.
39392         (bit_value_unop): Use wide-int interfaces.
39393         (bit_value_binop): Likewise.
39394         (bit_value_assume_aligned): Likewise.
39395         (evaluate_stmt): Likewise.
39396         (ccp_fold_stmt): Likewise.
39397         (visit_cond_stmt): Likewise.
39398         (ccp_visit_stmt): Likewise.
39399         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
39400         (constant_pointer_difference): Likewise.
39401         (associate_pointerplus): Likewise.
39402         (combine_conversions): Likewise.
39403         * tree-ssa-loop.h: Include wide-int.h.
39404         (struct tree_niter_desc): Change type of max to widest_int.
39405         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
39406         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
39407         (remove_redundant_iv_tests): Likewise.
39408         (canonicalize_loop_induction_variables): Likewise.
39409         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
39410         (constant_multiple_of): Take a widest_int pointer instead of
39411         a double_int pointer.
39412         (get_computation_aff): Use wide-int interfaces.
39413         (ptr_difference_cost): Likewise.
39414         (difference_cost): Likewise.
39415         (get_loop_invariant_expr_id): Likewise.
39416         (get_computation_cost_at): Likewise.
39417         (iv_elimination_compare_lt): Likewise.
39418         (may_eliminate_iv): Likewise.
39419         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
39420         instead of double_int.
39421         (max_loop_iterations): Likewise.
39422         (max_stmt_executions): Likewise.
39423         (estimated_stmt_executions): Likewise.
39424         * tree-ssa-loop-niter.c: Include wide-int-print.h.
39425         (split_to_var_and_offset): Use wide-int interfaces.
39426         (determine_value_range): Likewise.
39427         (bound_difference_of_offsetted_base): Likewise.
39428         (bounds_add): Take a widest_int instead of a double_int.
39429         (number_of_iterations_ne_max): Use wide-int interfaces.
39430         (number_of_iterations_ne): Likewise.
39431         (number_of_iterations_lt_to_ne): Likewise.
39432         (assert_loop_rolls_lt): Likewise.
39433         (number_of_iterations_lt): Likewise.
39434         (number_of_iterations_le): Likewise.
39435         (number_of_iterations_cond): Likewise.
39436         (number_of_iterations_exit): Likewise.
39437         (finite_loop_p): Likewise.
39438         (derive_constant_upper_bound_assign): Likewise.
39439         (derive_constant_upper_bound): Return a widest_int.
39440         (derive_constant_upper_bound_ops): Likewise.
39441         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
39442         (record_estimate): Take a widest_int rather than a double_int.
39443         (record_nonwrapping_iv): Use wide-int interfaces.
39444         (double_int_cmp): Delete.
39445         (wide_int_cmp): New.
39446         (bound_index): Take a widest_int rather than a double_int.
39447         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
39448         (maybe_lower_iteration_bound): Likewise.
39449         (estimate_numbers_of_iterations_loop): Likewise.
39450         (estimated_loop_iterations): Take a widest_int pointer than than
39451         a double_int pointer.
39452         (estimated_loop_iterations_int): Use wide-int interfaces.
39453         (max_loop_iterations): Take a widest_int pointer than than
39454         a double_int pointer.
39455         (max_loop_iterations_int): Use wide-int interfaces.
39456         (max_stmt_executions): Take a widest_int pointer than than
39457         a double_int pointer.
39458         (estimated_stmt_executions): Likewise.
39459         (n_of_executions_at_most): Use wide-int interfaces.
39460         (scev_probably_wraps_p): Likewise.
39461         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
39462         to real_to_integer.
39463         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
39464         interfaces.
39465         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
39466         double_ints.  Adjust for trailing_wide_ints <3> representation.
39467         (set_nonzero_bits): Likewise.
39468         (get_range_info): Return wide_ints rather than double_ints.
39469         Adjust for trailing_wide_ints <3> representation.
39470         (get_nonzero_bits): Likewise.
39471         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
39472         representation.
39473         * tree-ssanames.h (struct range_info_def): Replace min, max and
39474         nonzero_bits with a trailing_wide_ints <3>.
39475         (set_range_info): Use wide_int_refs rather than double_ints.
39476         (set_nonzero_bits): Likewise.
39477         (get_range_info): Return wide_ints rather than double_ints.
39478         (get_nonzero_bits): Likewise.
39479         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
39480         * tree-ssa-pre.c (phi_translate_1): Likewise.
39481         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
39482         (acceptable_pow_call): Likewise.
39483         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
39484         interfaces.
39485         (vn_reference_fold_indirect): Likewise.
39486         (vn_reference_maybe_forwprop_address): Likewise.
39487         (valueize_refs_1): Likewise.
39488         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
39489         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
39490         tree_int_cst_lt and tree_int_cst_le.
39491         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
39492         interfaces.
39493         (streamer_alloc_tree): Likewise.
39494         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
39495         (streamer_write_tree_header): Likewise.
39496         (streamer_write_integer_cst): Likewise.
39497         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
39498         (build_constructors): Likewise.
39499         (array_value_type): Likewise.
39500         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
39501         (vect_check_gather): Likewise.
39502         * tree-vect-generic.c (build_replicated_const): Likewise.
39503         (expand_vector_divmod): Likewise.
39504         * tree-vect-loop.c (vect_transform_loop): Likewise.
39505         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
39506         (vect_do_peeling_for_alignment): Likewise.
39507         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
39508         * tree-vrp.c: Include wide-int.h.
39509         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
39510         (extract_range_from_assert): Use wide-int interfaces.
39511         (vrp_int_const_binop): Likewise.
39512         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
39513         double_int pointers.
39514         (ranges_from_anti_range): Use wide-int interfaces.
39515         (quad_int_cmp): Delete.
39516         (quad_int_pair_sort): Likewise.
39517         (extract_range_from_binary_expr_1): Use wide-int interfaces.
39518         (extract_range_from_unary_expr_1): Likewise.
39519         (adjust_range_with_scev): Likewise.
39520         (masked_increment): Take and return wide_ints rather than double_ints.
39521         (register_edge_assert_for_2): Use wide-int interfaces.
39522         (check_array_ref): Likewise.
39523         (search_for_addr_array): Likewise.
39524         (maybe_set_nonzero_bits): Likewise.
39525         (union_ranges): Pass an integer of the correct type instead of
39526         using integer_one_node.
39527         (intersect_ranges): Likewise.
39528         (simplify_truth_ops_using_ranges): Likewise.
39529         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
39530         (range_fits_type_p): Likewise.
39531         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
39532         a bool.
39533         (simplify_conversion_using_ranges): Use wide-int interfaces.
39534         (simplify_float_conversion_using_ranges): Likewise.
39535         (vrp_finalize): Likewise.
39536         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
39537         (gimple_stringops_transform): Likewise.
39538         * varasm.c (decode_addr_const): Likewise.
39539         (const_hash_1): Likewise.
39540         (const_rtx_hash_1): Likewise
39541         (output_constant): Likewise.
39542         (array_size_for_constructor): Likewise.
39543         (output_constructor_regular_field): Likewise.
39544         (output_constructor_bitfield): Likewise.
39545         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
39546         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
39547         GENERATOR_FILEs.
39548         * gencheck.c: Define BITS_PER_UNIT.
39549         * wide-int.cc: New.
39550         * wide-int.h: New.
39551         * wide-int-print.cc: New.
39552         * wide-int-print.h: New.
39553
39554 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39555
39556         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
39557
39558 2014-05-06  Richard Biener  <rguenther@suse.de>
39559
39560         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
39561         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
39562         (TODO_verify_all): Adjust.
39563         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
39564         TODO_verify_stmts and TODO_verify_rtl_sharing.
39565         * bb-reorder.c: Likewise.
39566         * cfgexpand.c: Likewise.
39567         * cprop.c: Likewise.
39568         * cse.c: Likewise.
39569         * function.c: Likewise.
39570         * fwprop.c: Likewise.
39571         * gcse.c: Likewise.
39572         * gimple-ssa-isolate-paths.c: Likewise.
39573         * gimple-ssa-strength-reduction.c: Likewise.
39574         * ipa-split.c: Likewise.
39575         * loop-init.c: Likewise.
39576         * loop-unroll.c: Likewise.
39577         * lower-subreg.c: Likewise.
39578         * modulo-sched.c: Likewise.
39579         * postreload-gcse.c: Likewise.
39580         * predict.c: Likewise.
39581         * recog.c: Likewise.
39582         * sched-rgn.c: Likewise.
39583         * store-motion.c: Likewise.
39584         * tracer.c: Likewise.
39585         * trans-mem.c: Likewise.
39586         * tree-call-cdce.c: Likewise.
39587         * tree-cfg.c: Likewise.
39588         * tree-cfgcleanup.c: Likewise.
39589         * tree-complex.c: Likewise.
39590         * tree-eh.c: Likewise.
39591         * tree-emutls.c: Likewise.
39592         * tree-if-conv.c: Likewise.
39593         * tree-into-ssa.c: Likewise.
39594         * tree-loop-distribution.c: Likewise.
39595         * tree-object-size.c: Likewise.
39596         * tree-parloops.c: Likewise.
39597         * tree-pass.h: Likewise.
39598         * tree-sra.c: Likewise.
39599         * tree-ssa-ccp.c: Likewise.
39600         * tree-ssa-copy.c: Likewise.
39601         * tree-ssa-copyrename.c: Likewise.
39602         * tree-ssa-dce.c: Likewise.
39603         * tree-ssa-dom.c: Likewise.
39604         * tree-ssa-dse.c: Likewise.
39605         * tree-ssa-forwprop.c: Likewise.
39606         * tree-ssa-ifcombine.c: Likewise.
39607         * tree-ssa-loop-ch.c: Likewise.
39608         * tree-ssa-loop-ivcanon.c: Likewise.
39609         * tree-ssa-loop.c: Likewise.
39610         * tree-ssa-math-opts.c: Likewise.
39611         * tree-ssa-phiopt.c: Likewise.
39612         * tree-ssa-phiprop.c: Likewise.
39613         * tree-ssa-pre.c: Likewise.
39614         * tree-ssa-reassoc.c: Likewise.
39615         * tree-ssa-sink.c: Likewise.
39616         * tree-ssa-strlen.c: Likewise.
39617         * tree-ssa-tail-merge.c: Likewise.
39618         * tree-ssa-uncprop.c: Likewise.
39619         * tree-switch-conversion.c: Likewise.
39620         * tree-tailcall.c: Likewise.
39621         * tree-vect-generic.c: Likewise.
39622         * tree-vectorizer.c: Likewise.
39623         * tree-vrp.c: Likewise.
39624         * tsan.c: Likewise.
39625         * var-tracking.c: Likewise.
39626         * bt-load.c: Likewise.
39627         * cfgcleanup.c: Likewise.
39628         * combine-stack-adj.c: Likewise.
39629         * combine.c: Likewise.
39630         * compare-elim.c: Likewise.
39631         * config/epiphany/resolve-sw-modes.c: Likewise.
39632         * config/i386/i386.c: Likewise.
39633         * config/mips/mips.c: Likewise.
39634         * config/s390/s390.c: Likewise.
39635         * config/sh/sh_treg_combine.cc: Likewise.
39636         * config/sparc/sparc.c: Likewise.
39637         * dce.c: Likewise.
39638         * dse.c: Likewise.
39639         * final.c: Likewise.
39640         * ifcvt.c: Likewise.
39641         * mode-switching.c: Likewise.
39642         * passes.c: Likewise.
39643         * postreload.c: Likewise.
39644         * ree.c: Likewise.
39645         * reg-stack.c: Likewise.
39646         * regcprop.c: Likewise.
39647         * regrename.c: Likewise.
39648         * web.c: Likewise.
39649
39650 2014-05-06  Richard Biener  <rguenther@suse.de>
39651
39652         PR middle-end/61070
39653         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
39654         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
39655
39656 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
39657
39658         PR ipa/60965
39659         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
39660
39661 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
39662             Tom de Vries  <tom@codesourcery.com>
39663
39664         * target.def (call_fusage_contains_non_callee_clobbers): New
39665         DEFHOOKPOD.
39666         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
39667         Hooks to @menu.
39668         (@node Miscellaneous Register Hooks): New node.
39669         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
39670         * doc/tm.texi: Regenerate.
39671
39672 2014-05-05  Marek Polacek  <polacek@redhat.com>
39673
39674         PR driver/61065
39675         * opts.c (common_handle_option): Call error_at instead of warning_at.
39676
39677 2014-05-05  Richard Biener  <rguenther@suse.de>
39678
39679         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
39680         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
39681         under the TODO_verify_il umbrella.
39682
39683 2014-05-05  Richard Biener  <rguenther@suse.de>
39684
39685         * passes.c (execute_function_todo): Move TODO_verify_flow under
39686         the TODO_verify_ul umbrella.
39687
39688 2014-05-05  Richard Biener  <rguenther@suse.de>
39689
39690         PR middle-end/61010
39691         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
39692         X & CST away from a CST that is the mask of a mode.
39693
39694 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39695
39696         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
39697         int argument to enum machine_mode.
39698         (picochip_class_max_nregs): Ditto.
39699         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
39700         (picochip_class_max_nregs): Ditto.
39701
39702 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
39703
39704         * target.def: Add new target hook.
39705         * doc/tm.texi: Regenerate.
39706         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
39707         * targhooks.c (default_keep_leaf_when_profiled): New function.
39708
39709         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
39710         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
39711
39712 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
39713
39714         PR tree-optimization/60363
39715         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
39716         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
39717         (update_destination_phis): New parameter.
39718         (create_edge_and_update_destination_phis): Ditto.
39719         (ssa_fix_duplicate_block_edges): Pass new arguments.
39720         (thread_single_edge): Ditto.
39721
39722 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
39723
39724         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
39725         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
39726         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
39727         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
39728         Use RS6000_BTM_HARD_FLOAT.
39729         (BU_MISC_2): Likewise.
39730         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
39731         RS6000_BTM_HARD_FLOAT.
39732         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
39733         is explicitly used.
39734         (rs6000_invalid_builtin): Add hard floating builtin support.
39735         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
39736         hard float builtins.
39737         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
39738
39739 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39740
39741         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
39742         Add missing function* argument.
39743
39744 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39745
39746         * lra-constraints.c (valid_address_p): Move earlier in file.
39747         Add a constraint argument to the address_info version.
39748         (satisfies_memory_constraint_p): New function.
39749         (satisfies_address_constraint_p): Likewise.
39750         (process_alt_operands, curr_insn_transform): Use them.
39751         (process_address): Pass the constraint to valid_address_p when
39752         checking address operands.
39753
39754 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39755
39756         * config/mips/mips.c (mips_isa_rev): New variable.
39757         (mips_set_architecture): Set it.
39758         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
39759         from mips_isa_rev.
39760         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
39761         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
39762         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
39763         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
39764         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
39765         conditions in terms of mips_isa_rev.
39766         (mips_isa_rev): Declare.
39767
39768 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39769
39770         * config/sh/sh-mem.cc: Use tabs instead of spaces.
39771         (prob_unlikely, prob_likely): Make variables const.
39772
39773 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
39774
39775         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
39776
39777 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39778
39779         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
39780
39781 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39782
39783         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
39784         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
39785         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
39786         functions.
39787         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
39788         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
39789         sh_pass_in_reg_p.
39790         Replace usage of ROUND_REG with sh_round_reg.
39791         Use CEIL instead of ROUND_ADVANCE.
39792
39793 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39794
39795         PR target/61026
39796         * config/sh/sh.c: Include stdlib headers before everything else.
39797
39798 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
39799
39800         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
39801         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
39802         (gimplify_adjust_omp_clauses): Simd region is never
39803         directly nested in combined parallel.  Instead, for linear
39804         with copyin/copyout, if in combined for simd loop, make decl
39805         firstprivate/lastprivate on OMP_FOR.
39806         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
39807         expand_omp_for_static_chunk): When setting endvar, also set
39808         fd->loop.v to the same value.
39809
39810 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
39811
39812         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
39813
39814 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
39815
39816         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
39817         expression.
39818
39819 2014-05-02  Marek Polacek  <polacek@redhat.com>
39820
39821         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
39822
39823 2014-05-02  Kito Cheng  <kito@0xlab.org>
39824
39825         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
39826         to a C expression marco.
39827         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
39828         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
39829         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
39830         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
39831         HONOR_REG_ALLOC_ORDER.
39832         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
39833
39834 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39835
39836         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
39837
39838 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39839
39840         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
39841
39842 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
39843
39844         * tree-if-conv.c (is_cond_scalar_reduction): New function.
39845         (convert_scalar_cond_reduction): Likewise.
39846         (predicate_scalar_phi): Add recognition and transformation
39847         of simple conditioanl reduction to be vectorizable.
39848
39849 2014-05-01  Marek Polacek  <polacek@redhat.com>
39850
39851         PR c/43245
39852         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
39853
39854 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
39855
39856         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
39857         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
39858         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
39859         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
39860         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
39861         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
39862         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
39863         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
39864
39865 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
39866
39867         * config/arc/arc.opt (mlra): Move comment above option name
39868         to avoid mis-parsing as language options.
39869
39870 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39871
39872         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
39873         * config/sol2.h: ... here.
39874         * config/sol2-10.h: Remove.
39875
39876         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
39877         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
39878         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
39879         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
39880         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
39881         * config/sol2.h: ... here.
39882         (SECTION_NAME_FORMAT): Don't redefine.
39883         (STARTFILE_ARCH32_SPEC): Rename to ...
39884         (STARTFILE_ARCH_SPEC): ... this.
39885         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
39886         * config/sparc/sol2.h: ... here.
39887         (SECTION_NAME_FORMAT): Don't undef.
39888         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
39889         (SUBTARGET_EXTRA_SPECS): Remove.
39890         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
39891
39892         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
39893         (MD_STARTFILE_PREFIX): Remove.
39894         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
39895         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
39896         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
39897         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
39898         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
39899         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
39900         * config/i386/sol2.h: ... here.
39901         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
39902         * config/i386/sol2-bi.h: Remove.
39903         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
39904         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
39905
39906         * config/i386/t-sol2-64: Rename to ...
39907         * config/i386/t-sol2: ... this.
39908         * config/sparc/t-sol2-64: Rename to ...
39909         * config/sparc/t-sol2: ... this.
39910
39911         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
39912         sol2_tm_file_head, sol2_tm_file_tail.
39913         Include ${cpu_type}/sol2.h before sol2.h.
39914         Remove sol2-10.h.
39915         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
39916         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
39917         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
39918         Reflect i386/t-sol2-64 renaming.
39919         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
39920         Reflect sparc/t-sol2-64 renaming.
39921
39922 2014-04-30  Richard Biener  <rguenther@suse.de>
39923
39924         * passes.c (execute_function_todo): Move TODO_verify_stmts
39925         and TODO_verify_ssa under the TODO_verify_il umbrella.
39926         * tree-ssa.h (verify_ssa): Adjust prototype.
39927         * tree-ssa.c (verify_ssa): Add parameter to tell whether
39928         we should verify SSA operands.
39929         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
39930         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
39931         whether we should verify whether not throwing stmts have EH info.
39932         * graphite-scop-detection.c (create_sese_edges): Adjust.
39933         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
39934         * tree-eh.c (lower_try_finally_switch): Do not add the
39935         default case label twice.
39936
39937 2014-04-30  Marek Polacek  <polacek@redhat.com>
39938
39939         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
39940         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
39941         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
39942         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
39943
39944 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
39945
39946         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
39947         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
39948         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
39949         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
39950         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
39951         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
39952         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
39953         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
39954
39955 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
39956
39957         * tree-cfg.c (dump_function_to_file): Dump the return type of
39958         functions, in a line to itself before the function body, mimicking
39959         the layout of a C function.
39960
39961 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
39962
39963         PR tree-optimization/60971
39964         * tree-tailcall.c (process_assignment): Reject conversions which
39965         reduce precision.
39966
39967 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
39968
39969         * calls.c (initialize_argument_information): Always treat
39970         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
39971         (expand_call): Likewise.
39972         (emit_library_call_calue_1): Likewise.
39973         * expr.c (PUSH_ARGS_REVERSED): Do not define.
39974         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
39975         code accordingly.
39976
39977 2014-04-29  Nick Clifton  <nickc@redhat.com>
39978
39979         * config/msp430/msp430.md (umulsidi): Fix typo.
39980         (mulhisi3): Enable even inside interrupt handlers.
39981         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
39982         bigger return address pushed in large mode.
39983
39984 2014-04-29  Nick Clifton  <nickc@redhat.com>
39985
39986         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
39987         (arc_init_reg_tables): Use a machine_mode enum to iterate over
39988         available modes.
39989         * config/m32r/m32r.c (init_reg_tables): Likewise.
39990         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
39991         enum to hold the modes.
39992
39993 2014-04-29  Richard Biener  <rguenther@suse.de>
39994
39995         * dominance.c (free_dominance_info): Add overload with
39996         function parameter.
39997         (dom_info_state): Likewise.
39998         (dom_info_available_p): Likewise.
39999         * basic-block.h (free_dominance_info, dom_info_state,
40000         dom_info_available_p): Declare overloads.
40001         * passes.c (execute_function_todo): Verify that verifiers
40002         don't change dominator info state.  Drop dominator info
40003         for IPA pass invocations.
40004         * cgraph.c (release_function_body): Restore asserts that
40005         dominator information is released.
40006
40007 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
40008
40009         * doc/invoke.texi: Fix typo.
40010         * tree-vrp.c: Fix typos.
40011         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
40012
40013 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
40014
40015         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
40016
40017 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40018
40019         * config/aarch64/aarch64-builtins.c
40020         (aarch64_types_storestruct_lane_qualifiers): New.
40021         (TYPES_STORESTRUCT_LANE): Likewise.
40022         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
40023         (st3_lane): Likewise.
40024         (st4_lane): Likewise.
40025         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
40026         (vec_store_lanesci_lane<mode>): Likewise.
40027         (vec_store_lanesxi_lane<mode>): Likewise.
40028         (aarch64_st2_lane<VQ:mode>): Likewise.
40029         (aarch64_st3_lane<VQ:mode>): Likewise.
40030         (aarch64_st4_lane<VQ:mode>): Likewise.
40031         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
40032         * config/aarch64/arm_neon.h
40033         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
40034         use new macro arguments.
40035         (__ST3_LANE_FUNC): Likewise.
40036         (__ST4_LANE_FUNC): Likewise.
40037         * config/aarch64/iterators.md (V_TWO_ELEM): New.
40038         (V_THREE_ELEM): Likewise.
40039         (V_FOUR_ELEM): Likewise.
40040
40041 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
40042
40043         * doc/gimple.texi: Replace the description of the now-defunct
40044         union gimple_statement_d with a diagram showing the
40045         gimple_statement_base class hierarchy and its relationships to
40046         the GSS_ and GIMPLE_ enums.
40047
40048 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
40049
40050         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
40051         * config/aarch64/aarch64.c
40052         (aarch64_cannot_change_mode_class): Weaken conditions.
40053         (aarch64_modes_tieable_p): New.
40054         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
40055
40056 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
40057
40058         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
40059         (loadsync_<mode>): Change mode.
40060         (load_quadpti, store_quadpti): New.
40061         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
40062         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
40063
40064 2014-04-28  Martin Jambor  <mjambor@suse.cz>
40065
40066         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
40067         same alias type as the original statement.
40068         (subreplacement_assignment_data): New type.
40069         (handle_unscalarized_data_in_subtree): New type of parameter,
40070         generate new memory accesses with same alias type as the original
40071         statement.
40072         (load_assign_lhs_subreplacements): Likewise.
40073         (sra_modify_constructor_assign): Generate new memory accesses with
40074         same alias type as the original statement.
40075
40076 2014-04-28  Richard Biener  <rguenther@suse.de>
40077
40078         * tree-pass.h (TODO_verify_il): Define.
40079         (TODO_verify_all): Complete properly.
40080         * passes.c (execute_function_todo): Move existing loop-closed
40081         SSA verification under TODO_verify_il.
40082         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
40083         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
40084         Fix tree sharing issue.
40085
40086 2014-04-28  Richard Biener  <rguenther@suse.de>
40087
40088         PR middle-end/60092
40089         * builtins.def (DEF_C11_BUILTIN): Add.
40090         (BUILT_IN_ALIGNED_ALLOC): Likewise.
40091         * coretypes.h (enum function_class): Add function_c11_misc.
40092         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
40093         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
40094         (call_may_clobber_ref_p_1): Likewise.
40095         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
40096         (mark_all_reaching_defs_necessary_1): Likewise.
40097         (propagate_necessity): Likewise.
40098         (eliminate_unnecessary_stmts): Likewise.
40099         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
40100
40101 2014-04-28  Richard Biener  <rguenther@suse.de>
40102
40103         * tree-vrp.c (vrp_var_may_overflow): Remove.
40104         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
40105         with overflow immediately bump to one before that value and
40106         let iteration figure out overflow status.
40107
40108 2014-04-28  Richard Biener  <rguenther@suse.de>
40109
40110         * configure.ac: Do valgrind header checks unconditionally.
40111         Add --enable-valgrind-annotations.
40112         * system.h: Guard valgrind header inclusion with
40113         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
40114         * alloc-pool.c (pool_alloc, pool_free): Use
40115         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
40116         to guard possibly dead code.
40117         * config.in: Regenerated.
40118         * configure: Likewise.
40119
40120 2014-04-28  Jeff Law  <law@redhat.com>
40121
40122         PR tree-optimization/60902
40123         * tree-ssa-threadedge.c
40124         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
40125         over real defs when invalidating outputs from statements that do not
40126         produce useful outputs for threading.
40127
40128 2014-04-28  Richard Biener  <rguenther@suse.de>
40129
40130         PR tree-optimization/60979
40131         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
40132         SCOPs that end in a block with a successor with abnormal
40133         predecessors.
40134
40135 2014-04-28  Richard Biener  <rguenther@suse.de>
40136
40137         * tree-pass.h (execute_pass_list): Adjust prototype.
40138         * passes.c (pass_manager::execute_early_local_passes): Adjust.
40139         (do_per_function): Change callback signature, push all actual
40140         work to the callbals.
40141         (do_per_function_toporder): Likewise.
40142         (execute_function_dump): Adjust.
40143         (execute_function_todo): Likewise.
40144         (clear_last_verified): Likewise.
40145         (verify_curr_properties): Likewise.
40146         (update_properties_after_pass): Likewise.
40147         (execute_pass_list_1): Split out from ...
40148         (execute_pass_list): ... here.  Adjust.
40149         (execute_ipa_pass_list): Likewise.
40150         * cgraphunit.c (cgraph_add_new_function): Adjust.
40151         (analyze_function): Likewise.
40152         (expand_function): Likewise.
40153         * cgraph.c (release_function_body): Free dominance info
40154         here instead of asserting it was magically freed elsewhere.
40155
40156 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
40157
40158         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
40159         * configure: Regenerate.
40160         * config/sparc/sparc.opt (muser-mode): New option.
40161         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
40162         for LEON3.
40163         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
40164         * doc/invoke.texi (SPARC options): Document -muser-mode.
40165
40166 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
40167
40168         * cselib.c (find_slot_memmode): Delete.
40169         (cselib_hasher): Change compare_type to a struct.
40170         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
40171         constants.
40172         (preserve_constants_and_equivs): Adjust for new compare_type.
40173         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
40174         (wrap_constant): Delete.
40175         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
40176
40177 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
40178
40179         * doc/install.texi (Building with profile feedback): Remove
40180         outdated sentence.
40181
40182 2014-04-26  Tom de Vries  <tom@codesourcery.com>
40183
40184         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
40185         array accesses.
40186
40187 2014-04-25  Cary Coutant  <ccoutant@google.com>
40188
40189         PR debug/60929
40190         * dwarf2out.c (should_move_die_to_comdat): A type definition
40191         can contain a subprogram definition, but don't move it to a
40192         comdat unit.
40193         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
40194         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
40195         from original DIE.
40196         (clone_tree_hash): Rename to...
40197         (clone_tree_partial): ...this; change callers.  Copy
40198         DW_TAG_subprogram DIEs as declarations.
40199         (copy_decls_walk): Don't copy children of a declaration into a
40200         type unit.
40201
40202 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
40203
40204         PR target/60969
40205         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
40206         alternative 12.
40207
40208 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
40209
40210         * config/arm/predicates.md (call_insn_operand): Add long_call check.
40211         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
40212         reg for long_call.
40213         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
40214         restriction.
40215
40216 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40217
40218         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
40219
40220 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40221
40222         PR tree-optimization/60930
40223         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
40224         creating a multiply candidate by folding two constant
40225         multiplicands when the result overflows.
40226
40227 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
40228
40229         PR tree-optimization/60960
40230         * tree-vect-generic.c (expand_vector_operation): Only call
40231         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
40232
40233 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40234
40235         * expr.c (clobber_reg_mode): New function.
40236         * expr.h (clobber_reg): New function.
40237
40238 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40239
40240         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
40241         clobbers.
40242
40243 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
40244             Tom de Vries  <tom@codesourcery.com>
40245
40246         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
40247         handle.
40248         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
40249         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
40250         new argument to find_all_hard_reg_sets call.
40251
40252 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40253
40254         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
40255         Use HOST_WIDE_INT_C for mask literal.
40256         (aarch_rev16_shleft_mask_imm_p): Likewise.
40257
40258 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
40259
40260         PR target/60941
40261         * config/sparc/sparc.md (ashlsi3_extend): Delete.
40262
40263 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
40264
40265         PR preprocessor/56540
40266         * config/i386/i386-c.c (ix86_target_macros): Define
40267         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
40268
40269 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40270
40271         * configure.ac (tga_func): Remove.
40272         (LIB_TLS_SPEC): Remove.
40273         * configure: Regenerate.
40274         * config.in: Regenerate.
40275         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
40276
40277 2014-04-25  Richard Biener  <rguenther@suse.de>
40278
40279         PR ipa/60912
40280         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
40281         call stmt use/clobber sets during stmt walk instead of
40282         walking the possibly incomplete set of caller edges.
40283
40284 2014-04-25  Richard Biener  <rguenther@suse.de>
40285
40286         PR ipa/60911
40287         * passes.c (apply_ipa_transforms): Inline into only caller ...
40288         (execute_one_pass): ... here.  Properly bring in function
40289         bodies for nodes we want to apply IPA transforms to.
40290
40291 2014-04-24  Cong Hou  <congh@google.com>
40292
40293         PR tree-optimization/60896
40294         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
40295         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
40296         (vect_mark_pattern_stmts): Set the def type of all statements in
40297         PATTERN_DEF_SEQ as vect_internal_def.
40298
40299 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
40300
40301         * doc/extend.texi (PowerPC Built-in Functions): Document new
40302         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
40303         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
40304
40305         * config/rs6000/predicates.md (const_0_to_3_operand): New
40306         predicate to match 0..3 integer constants.
40307
40308         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
40309         to support adding miscellaneous builtin functions.
40310         (BU_DFP_MISC_2): Likewise.
40311         (BU_P7_MISC_1): Likewise.
40312         (BU_P7_MISC_2): Likewise.
40313         (BU_P8V_MISC_3): Likewise.
40314         (BU_MISC_1): Likewise.
40315         (BU_MISC_2): Likewise.
40316         (DIVWE): Add extended divide builtin functions.
40317         (DIVWEO): Likewise.
40318         (DIVWEU): Likewise.
40319         (DIVWEUO): Likewise.
40320         (DIVDE): Likewise.
40321         (DIVDEO): Likewise.
40322         (DIVDEU): Likewise.
40323         (DIVDEUO): Likewise.
40324         (DXEX): Add decimal floating-point builtin functions.
40325         (DXEXQ): Likewise.
40326         (DDEDPD): Likewise.
40327         (DDEDPDQ): Likewise.
40328         (DENBCD): Likewise.
40329         (DENBCDQ): Likewise.
40330         (DIEX): Likewise.
40331         (DIEXQ): Likewise.
40332         (DSCLI): Likewise.
40333         (DSCLIQ): Likewise.
40334         (DSCRI): Likewise.
40335         (DSCRIQ): Likewise.
40336         (CDTBCD): Add new BCD builtin functions.
40337         (CBCDTD): Likewise.
40338         (ADDG6S): Likewise.
40339         (BCDADD): Likewise.
40340         (BCDADD_LT): Likewise.
40341         (BCDADD_EQ): Likewise.
40342         (BCDADD_GT): Likewise.
40343         (BCDADD_OV): Likewise.
40344         (BCDSUB): Likewise.
40345         (BCDSUB_LT): Likewise.
40346         (BCDSUB_EQ): Likewise.
40347         (BCDSUB_GT): Likewise.
40348         (BCDSUB_OV): Likewise.
40349         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40350         (UNPACK_TD): Likewise.
40351         (PACK_TF): Likewise.
40352         (UNPACK_TF): Likewise.
40353         (UNPACK_TF_0): Likewise.
40354         (UNPACK_TF_1): Likewise.
40355         (PACK_V1TI): Likewise.
40356         (UNPACK_V1TI): Likewise.
40357
40358         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40359         support for decimal floating point builtin functions.
40360         (rs6000_expand_ternop_builtin): Add checks for the new builtin
40361         functions that take constant arguments.
40362         (rs6000_invalid_builtin): Add decimal floating point builtin support.
40363         (rs6000_init_builtins): Setup long double, _Decimal64, and
40364         _Decimal128 types for new builtin functions.
40365         (builtin_function_type): Set the unsigned flags appropriately for
40366         the new builtin functions.
40367         (rs6000_opt_masks): Add support for decimal floating point builtin
40368         functions.
40369
40370         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40371         floating point builtin functions.
40372         (RS6000_BTM_COMMON): Likewise.
40373         (RS6000_BTI_long_double): Likewise.
40374         (RS6000_BTI_dfloat64): Likewise.
40375         (RS6000_BTI_dfloat128): Likewise.
40376         (long_double_type_internal_node): Likewise.
40377         (dfloat64_type_internal_node): Likewise.
40378         (dfloat128_type_internal_node): Likewise.
40379
40380         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
40381         2.07 bcd arithmetic instructions.
40382         (UNSPEC_BCDSUB): Likewise.
40383         (UNSPEC_BCD_OVERFLOW): Likewise.
40384         (UNSPEC_BCD_ADD_SUB): Likewise.
40385         (bcd_add_sub): Likewise.
40386         (BCD_TEST): Likewise.
40387         (bcd<bcd_add_sub>): Likewise.
40388         (bcd<bcd_add_sub>_test): Likewise.
40389         (bcd<bcd_add_sub>_test2): Likewise.
40390         (bcd<bcd_add_sub>_<code>): Likewise.
40391         (peephole2 for combined bcd ops): Likewise.
40392
40393         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
40394         decimal floating point builtin functions.
40395         (UNSPEC_DENBCD): Likewise.
40396         (UNSPEC_DXEX): Likewise.
40397         (UNSPEC_DIEX): Likewise.
40398         (UNSPEC_DSCLI): Likewise.
40399         (UNSPEC_DSCRI): Likewise.
40400         (D64_D128): Likewise.
40401         (dfp_suffix): Likewise.
40402         (dfp_ddedpd_<mode>): Likewise.
40403         (dfp_denbcd_<mode>): Likewise.
40404         (dfp_dxex_<mode>): Likewise.
40405         (dfp_diex_<mode>): Likewise.
40406         (dfp_dscli_<mode>): Likewise.
40407         (dfp_dscri_<mode>): Likewise.
40408
40409         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
40410         builtin functions.
40411         (UNSPEC_CDTBCD): Likewise.
40412         (UNSPEC_CBCDTD): Likewise.
40413         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
40414         (UNSPEC_DIVEO): Likewise.
40415         (UNSPEC_DIVEU): Likewise.
40416         (UNSPEC_DIVEUO): Likewise.
40417         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
40418         pack/unpack 128-bit types.
40419         (UNSPEC_PACK_128BIT): Likewise.
40420         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
40421         (udiv<mode>3): Use idiv_ldiv mode attribute.
40422         (div<mode>3): Likewise.
40423         (addg6s): Add new BCD builtin functions.
40424         (cdtbcd): Likewise.
40425         (cbcdtd): Likewise.
40426         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
40427         (div_extend): Likewise.
40428         (div<div_extend>_<mode>"): Likewise.
40429         (FP128_64): Add support for new builtin functions to pack/unpack
40430         128-bit types.
40431         (unpack<mode>): Likewise.
40432         (unpacktf_0): Likewise.
40433         (unpacktf_1): Likewise.
40434         (unpack<mode>_dm): Likewise.
40435         (unpack<mode>_nodm): Likewise.
40436         (pack<mode>): Likewise.
40437         (unpackv1ti): Likewise.
40438         (packv1ti): Likewise.
40439
40440 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
40441
40442         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
40443         is disabled.
40444
40445 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
40446
40447         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
40448         * gimplify.c (omp_is_private): Change last argument's type to int.
40449         Only diagnose lastprivate if the simd argument is 1, only diagnose
40450         linear if the simd argument is 2.
40451         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
40452         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
40453         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
40454         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
40455         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
40456         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40457         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
40458         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40459         * tree-nested.c (convert_nonlocal_omp_clauses,
40460         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
40461
40462 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
40463
40464         PR target/60822
40465         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
40466         operand 1.
40467
40468 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
40469
40470         * flag-types.h (enum ivar_visibility): Add.
40471
40472 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
40473
40474         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
40475         function * argument.
40476
40477 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
40478
40479         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
40480
40481 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40482             Tom de Vries  <tom@codesourcery.com>
40483
40484         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
40485         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
40486         reg-note.
40487         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
40488         * emit-rtl.c (try_split): Same.
40489
40490 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40491             Tom de Vries  <tom@codesourcery.com>
40492
40493         * common.opt (fuse-caller-save): New option.
40494
40495 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
40496
40497         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
40498         elements for big-endian.
40499
40500 2014-04-24  Richard Biener  <rguenther@suse.de>
40501
40502         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
40503         during TER and instead use the sepops interface for expanding
40504         non-GIMPLE_SINGLE_RHS.
40505
40506 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40507
40508         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
40509         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
40510
40511 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40512
40513         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
40514         assembler 64-bit option.
40515         * configure: Regenerate.
40516
40517 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40518
40519         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
40520         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
40521         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
40522         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
40523         (TARGET_CRYPTO): Take TARGET_SIMD into account.
40524
40525 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40526
40527         * config/aarch64/aarch64-builtins.c
40528         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
40529         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
40530         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
40531         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
40532         builtins.
40533         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
40534         (Vrevsuff): New mode attribute.
40535
40536 2014-04-24  Terry Guo  <terry.guo@arm.com>
40537
40538         * config/arm/arm.h (machine_function): Define variable
40539         after_arm_reorg here.
40540         * config/arm/arm.c (after_arm_reorg): Remove the definition.
40541         (arm_split_constant): Update the way to access variable
40542         after_arm_reorg.
40543         (arm_reorg): Ditto.
40544         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
40545
40546 2014-04-23  Tom de Vries  <tom@codesourcery.com>
40547
40548         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
40549
40550 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
40551
40552         * is-a.h: Update comments to reflect the following changes to the
40553         "pointerness" of the API, making the template parameter match the
40554         return type, allowing use of is-a.h with typedefs of pointers.
40555         (is_a_helper::cast): Return a T rather then a pointer to a T, so
40556         that the return type matches the parameter to the is_a_helper.
40557         (as_a): Likewise.
40558         (dyn_cast): Likewise.
40559
40560         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
40561         pointer from the is-a.h API.
40562
40563         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
40564         (is_a_helper <cgraph_node *>::test): ...this, matching change to
40565         is-a.h API.
40566         (is_a_helper <varpool_node>::test): Likewise, convert to...
40567         (is_a_helper <varpool_node *>::test): ...this.
40568
40569         (varpool_first_variable): Update for removal of implicit pointer
40570         from the is-a.h API.
40571         (varpool_next_variable): Likewise.
40572         (varpool_first_static_initializer): Likewise.
40573         (varpool_next_static_initializer): Likewise.
40574         (varpool_first_defined_variable): Likewise.
40575         (varpool_next_defined_variable): Likewise.
40576         (cgraph_first_defined_function): Likewise.
40577         (cgraph_next_defined_function): Likewise.
40578         (cgraph_first_function): Likewise.
40579         (cgraph_next_function): Likewise.
40580         (cgraph_first_function_with_gimple_body): Likewise.
40581         (cgraph_next_function_with_gimple_body): Likewise.
40582         (cgraph_alias_target): Likewise.
40583         (varpool_alias_target): Likewise.
40584         (cgraph_function_or_thunk_node): Likewise.
40585         (varpool_variable_node): Likewise.
40586         (symtab_real_symbol_p): Likewise.
40587         * cgraphunit.c (referred_to_p): Likewise.
40588         (analyze_functions): Likewise.
40589         (handle_alias_pairs): Likewise.
40590         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
40591         * gimple-ssa.h (gimple_vuse_op): Likewise.
40592         (gimple_vdef_op): Likewise.
40593         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
40594         * gimple.c (gimple_build_asm_1): Likewise.
40595         (gimple_build_try): Likewise.
40596         (gimple_build_resx): Likewise.
40597         (gimple_build_eh_dispatch): Likewise.
40598         (gimple_build_omp_for): Likewise.
40599         (gimple_omp_for_set_clauses): Likewise.
40600
40601         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
40602         (is_a_helper <gimple_statement_asm *>::test): ...this.
40603         (is_a_helper <gimple_statement_bind>::test): Convert to...
40604         (is_a_helper <gimple_statement_bind *>::test): ...this.
40605         (is_a_helper <gimple_statement_call>::test): Convert to...
40606         (is_a_helper <gimple_statement_call *>::test): ...this.
40607         (is_a_helper <gimple_statement_catch>::test): Convert to...
40608         (is_a_helper <gimple_statement_catch *>::test): ...this.
40609         (is_a_helper <gimple_statement_resx>::test): Convert to...
40610         (is_a_helper <gimple_statement_resx *>::test): ...this.
40611         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
40612         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
40613         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
40614         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
40615         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
40616         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
40617         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
40618         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
40619         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
40620         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
40621         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
40622         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
40623         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
40624         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
40625         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
40626         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
40627         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
40628         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
40629         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
40630         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
40631         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
40632         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
40633         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
40634         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
40635         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
40636         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
40637         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
40638         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
40639         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
40640         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
40641         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
40642         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
40643         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
40644         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
40645         (is_a_helper <gimple_statement_phi>::test): Convert to...
40646         (is_a_helper <gimple_statement_phi *>::test): ...this.
40647         (is_a_helper <gimple_statement_transaction>::test): Convert to...
40648         (is_a_helper <gimple_statement_transaction *>::test): ...this.
40649         (is_a_helper <gimple_statement_try>::test): Convert to...
40650         (is_a_helper <gimple_statement_try *>::test): ...this.
40651         (is_a_helper <gimple_statement_wce>::test): Convert to...
40652         (is_a_helper <gimple_statement_wce *>::test): ...this.
40653         (is_a_helper <const gimple_statement_asm>::test): Convert to...
40654         (is_a_helper <const gimple_statement_asm *>::test): ...this.
40655         (is_a_helper <const gimple_statement_bind>::test): Convert to...
40656         (is_a_helper <const gimple_statement_bind *>::test): ...this.
40657         (is_a_helper <const gimple_statement_call>::test): Convert to...
40658         (is_a_helper <const gimple_statement_call *>::test): ...this.
40659         (is_a_helper <const gimple_statement_catch>::test): Convert to...
40660         (is_a_helper <const gimple_statement_catch *>::test): ...this.
40661         (is_a_helper <const gimple_statement_resx>::test): Convert to...
40662         (is_a_helper <const gimple_statement_resx *>::test): ...this.
40663         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
40664         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
40665         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
40666         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
40667         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
40668         Convert to...
40669         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
40670         ...this.
40671         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
40672         Convert to...
40673         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
40674         ...this.
40675         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
40676         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
40677         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
40678         to...
40679         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
40680         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
40681         to...
40682         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
40683         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
40684         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
40685         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
40686         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
40687         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
40688         to...
40689         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
40690         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
40691         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
40692         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
40693         to...
40694         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
40695         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
40696         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
40697         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
40698         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
40699         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
40700         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
40701         (is_a_helper <const gimple_statement_phi>::test): Convert to...
40702         (is_a_helper <const gimple_statement_phi *>::test): ...this.
40703         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
40704         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
40705         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
40706         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
40707         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
40708         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
40709         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
40710         to...
40711         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
40712         ...this.
40713         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
40714         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
40715
40716         (gimple_use_ops): Update for removal of implicit pointer from the
40717         is-a.h API.
40718         (gimple_set_use_ops): Likewise.
40719         (gimple_vuse): Likewise.
40720         (gimple_vdef): Likewise.
40721         (gimple_vuse_ptr): Likewise.
40722         (gimple_vdef_ptr): Likewise.
40723         (gimple_set_vuse): Likewise.
40724         (gimple_set_vdef): Likewise.
40725         (gimple_omp_return_set_lhs): Likewise.
40726         (gimple_omp_return_lhs): Likewise.
40727         (gimple_omp_return_lhs_ptr): Likewise.
40728         (gimple_call_fntype): Likewise.
40729         (gimple_call_set_fntype): Likewise.
40730         (gimple_call_set_internal_fn): Likewise.
40731         (gimple_call_use_set): Likewise.
40732         (gimple_call_clobber_set): Likewise.
40733         (gimple_bind_vars): Likewise.
40734         (gimple_bind_set_vars): Likewise.
40735         (gimple_bind_body_ptr): Likewise.
40736         (gimple_bind_set_body): Likewise.
40737         (gimple_bind_add_stmt): Likewise.
40738         (gimple_bind_block): Likewise.
40739         (gimple_bind_set_block): Likewise.
40740         (gimple_asm_ninputs): Likewise.
40741         (gimple_asm_noutputs): Likewise.
40742         (gimple_asm_nclobbers): Likewise.
40743         (gimple_asm_nlabels): Likewise.
40744         (gimple_asm_input_op): Likewise.
40745         (gimple_asm_input_op_ptr): Likewise.
40746         (gimple_asm_output_op): Likewise.
40747         (gimple_asm_output_op_ptr): Likewise.
40748         (gimple_asm_set_output_op): Likewise.
40749         (gimple_asm_clobber_op): Likewise.
40750         (gimple_asm_set_clobber_op): Likewise.
40751         (gimple_asm_label_op): Likewise.
40752         (gimple_asm_set_label_op): Likewise.
40753         (gimple_asm_string): Likewise.
40754         (gimple_catch_types): Likewise.
40755         (gimple_catch_types_ptr): Likewise.
40756         (gimple_catch_handler_ptr): Likewise.
40757         (gimple_catch_set_types): Likewise.
40758         (gimple_catch_set_handler): Likewise.
40759         (gimple_eh_filter_types): Likewise.
40760         (gimple_eh_filter_types_ptr): Likewise.
40761         (gimple_eh_filter_failure_ptr): Likewise.
40762         (gimple_eh_filter_set_types): Likewise.
40763         (gimple_eh_filter_set_failure): Likewise.
40764         (gimple_eh_must_not_throw_fndecl): Likewise.
40765         (gimple_eh_must_not_throw_set_fndecl): Likewise.
40766         (gimple_eh_else_n_body_ptr): Likewise.
40767         (gimple_eh_else_e_body_ptr): Likewise.
40768         (gimple_eh_else_set_n_body): Likewise.
40769         (gimple_eh_else_set_e_body): Likewise.
40770         (gimple_try_eval_ptr): Likewise.
40771         (gimple_try_cleanup_ptr): Likewise.
40772         (gimple_try_set_eval): Likewise.
40773         (gimple_try_set_cleanup): Likewise.
40774         (gimple_wce_cleanup_ptr): Likewise.
40775         (gimple_wce_set_cleanup): Likewise.
40776         (gimple_phi_capacity): Likewise.
40777         (gimple_phi_num_args): Likewise.
40778         (gimple_phi_result): Likewise.
40779         (gimple_phi_result_ptr): Likewise.
40780         (gimple_phi_set_result): Likewise.
40781         (gimple_phi_arg): Likewise.
40782         (gimple_phi_set_arg): Likewise.
40783         (gimple_resx_region): Likewise.
40784         (gimple_resx_set_region): Likewise.
40785         (gimple_eh_dispatch_region): Likewise.
40786         (gimple_eh_dispatch_set_region): Likewise.
40787         (gimple_omp_critical_name): Likewise.
40788         (gimple_omp_critical_name_ptr): Likewise.
40789         (gimple_omp_critical_set_name): Likewise.
40790         (gimple_omp_for_clauses): Likewise.
40791         (gimple_omp_for_clauses_ptr): Likewise.
40792         (gimple_omp_for_set_clauses): Likewise.
40793         (gimple_omp_for_collapse): Likewise.
40794         (gimple_omp_for_index): Likewise.
40795         (gimple_omp_for_index_ptr): Likewise.
40796         (gimple_omp_for_set_index): Likewise.
40797         (gimple_omp_for_initial): Likewise.
40798         (gimple_omp_for_initial_ptr): Likewise.
40799         (gimple_omp_for_set_initial): Likewise.
40800         (gimple_omp_for_final): Likewise.
40801         (gimple_omp_for_final_ptr): Likewise.
40802         (gimple_omp_for_set_final): Likewise.
40803         (gimple_omp_for_incr): Likewise.
40804         (gimple_omp_for_incr_ptr): Likewise.
40805         (gimple_omp_for_set_incr): Likewise.
40806         (gimple_omp_for_pre_body_ptr): Likewise.
40807         (gimple_omp_for_set_pre_body): Likewise.
40808         (gimple_omp_parallel_clauses): Likewise.
40809         (gimple_omp_parallel_clauses_ptr): Likewise.
40810         (gimple_omp_parallel_set_clauses): Likewise.
40811         (gimple_omp_parallel_child_fn): Likewise.
40812         (gimple_omp_parallel_child_fn_ptr): Likewise.
40813         (gimple_omp_parallel_set_child_fn): Likewise.
40814         (gimple_omp_parallel_data_arg): Likewise.
40815         (gimple_omp_parallel_data_arg_ptr): Likewise.
40816         (gimple_omp_parallel_set_data_arg): Likewise.
40817         (gimple_omp_task_clauses): Likewise.
40818         (gimple_omp_task_clauses_ptr): Likewise.
40819         (gimple_omp_task_set_clauses): Likewise.
40820         (gimple_omp_task_child_fn): Likewise.
40821         (gimple_omp_task_child_fn_ptr): Likewise.
40822         (gimple_omp_task_set_child_fn): Likewise.
40823         (gimple_omp_task_data_arg): Likewise.
40824         (gimple_omp_task_data_arg_ptr): Likewise.
40825         (gimple_omp_task_set_data_arg): Likewise.
40826         (gimple_omp_taskreg_clauses): Likewise.
40827         (gimple_omp_taskreg_clauses_ptr): Likewise.
40828         (gimple_omp_taskreg_set_clauses): Likewise.
40829         (gimple_omp_taskreg_child_fn): Likewise.
40830         (gimple_omp_taskreg_child_fn_ptr): Likewise.
40831         (gimple_omp_taskreg_set_child_fn): Likewise.
40832         (gimple_omp_taskreg_data_arg): Likewise.
40833         (gimple_omp_taskreg_data_arg_ptr): Likewise.
40834         (gimple_omp_taskreg_set_data_arg): Likewise.
40835         (gimple_omp_task_copy_fn): Likewise.
40836         (gimple_omp_task_copy_fn_ptr): Likewise.
40837         (gimple_omp_task_set_copy_fn): Likewise.
40838         (gimple_omp_task_arg_size): Likewise.
40839         (gimple_omp_task_arg_size_ptr): Likewise.
40840         (gimple_omp_task_set_arg_size): Likewise.
40841         (gimple_omp_task_arg_align): Likewise.
40842         (gimple_omp_task_arg_align_ptr): Likewise.
40843         (gimple_omp_task_set_arg_align): Likewise.
40844         (gimple_omp_single_clauses): Likewise.
40845         (gimple_omp_single_clauses_ptr): Likewise.
40846         (gimple_omp_single_set_clauses): Likewise.
40847         (gimple_omp_target_clauses): Likewise.
40848         (gimple_omp_target_clauses_ptr): Likewise.
40849         (gimple_omp_target_set_clauses): Likewise.
40850         (gimple_omp_target_child_fn): Likewise.
40851         (gimple_omp_target_child_fn_ptr): Likewise.
40852         (gimple_omp_target_set_child_fn): Likewise.
40853         (gimple_omp_target_data_arg): Likewise.
40854         (gimple_omp_target_data_arg_ptr): Likewise.
40855         (gimple_omp_target_set_data_arg): Likewise.
40856         (gimple_omp_teams_clauses): Likewise.
40857         (gimple_omp_teams_clauses_ptr): Likewise.
40858         (gimple_omp_teams_set_clauses): Likewise.
40859         (gimple_omp_sections_clauses): Likewise.
40860         (gimple_omp_sections_clauses_ptr): Likewise.
40861         (gimple_omp_sections_set_clauses): Likewise.
40862         (gimple_omp_sections_control): Likewise.
40863         (gimple_omp_sections_control_ptr): Likewise.
40864         (gimple_omp_sections_set_control): Likewise.
40865         (gimple_omp_for_set_cond): Likewise.
40866         (gimple_omp_for_cond): Likewise.
40867         (gimple_omp_atomic_store_set_val): Likewise.
40868         (gimple_omp_atomic_store_val): Likewise.
40869         (gimple_omp_atomic_store_val_ptr): Likewise.
40870         (gimple_omp_atomic_load_set_lhs): Likewise.
40871         (gimple_omp_atomic_load_lhs): Likewise.
40872         (gimple_omp_atomic_load_lhs_ptr): Likewise.
40873         (gimple_omp_atomic_load_set_rhs): Likewise.
40874         (gimple_omp_atomic_load_rhs): Likewise.
40875         (gimple_omp_atomic_load_rhs_ptr): Likewise.
40876         (gimple_omp_continue_control_def): Likewise.
40877         (gimple_omp_continue_control_def_ptr): Likewise.
40878         (gimple_omp_continue_set_control_def): Likewise.
40879         (gimple_omp_continue_control_use): Likewise.
40880         (gimple_omp_continue_control_use_ptr): Likewise.
40881         (gimple_omp_continue_set_control_use): Likewise.
40882         (gimple_transaction_body_ptr): Likewise.
40883         (gimple_transaction_label): Likewise.
40884         (gimple_transaction_label_ptr): Likewise.
40885         (gimple_transaction_set_body): Likewise.
40886         (gimple_transaction_set_label): Likewise.
40887
40888         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
40889         * ipa-inline-analysis.c (inline_write_summary): Likewise.
40890         * ipa-ref.c (ipa_record_reference): Likewise.
40891         * ipa-reference.c (analyze_function): Likewise.
40892         (ipa_reference_write_optimization_summary): Likewise.
40893         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
40894         (address_taken_from_non_vtable_p): Likewise.
40895         (comdat_can_be_unshared_p_1): Likewise.
40896         * lto-cgraph.c (lto_output_ref): Likewise.
40897         (add_references): Likewise.
40898         (compute_ltrans_boundary): Likewise.
40899         (output_symtab): Likewise.
40900         (input_ref): Likewise.
40901         (input_cgraph_1): Likewise.
40902         (output_cgraph_opt_summary): Likewise.
40903         * lto-streamer-out.c (lto_output): Likewise.
40904         (output_symbol_p): Likewise.
40905         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
40906         (lsei_start_function_in_partition): Likewise.
40907         (lsei_next_variable_in_partition): Likewise.
40908         (lsei_start_variable_in_partition): Likewise.
40909         * symtab.c (insert_to_assembler_name_hash): Likewise.
40910         (unlink_from_assembler_name_hash): Likewise.
40911         (symtab_unregister_node): Likewise.
40912         (symtab_remove_node): Likewise.
40913         (dump_symtab_node): Likewise.
40914         (verify_symtab_base): Likewise.
40915         (verify_symtab_node): Likewise.
40916         (symtab_make_decl_local): Likewise.
40917         (symtab_alias_ultimate_target): Likewise.
40918         (symtab_resolve_alias): Likewise.
40919         (symtab_get_symbol_partitioning_class): Likewise.
40920         * tree-phinodes.c (allocate_phi_node): Likewise.
40921         (reserve_phi_args_for_new_edge): Likewise.
40922         (remove_phi_args): Likewise.
40923         * varpool.c (varpool_node_for_asm): Likewise.
40924         (varpool_remove_unreferenced_decls): Likewise.
40925
40926 2014-04-23  Jeff Law  <law@redhat.com>
40927
40928         PR tree-optimization/60902
40929         * tree-ssa-threadedge.c
40930         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
40931         invalidate outputs from statements that do not produce useful
40932         outputs for threading.
40933
40934 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
40935
40936         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
40937         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
40938         machine descriptions for Stack Smashing Protector.
40939
40940 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
40941
40942         * aarch64.md (<optab>_rol<mode>3): New pattern.
40943         (<optab>_rolsi3_uxtw): Likewise.
40944         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
40945
40946 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
40947
40948         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
40949         (arm_cortex_a12_tune): Likewise.
40950
40951 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40952
40953         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
40954
40955 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40956
40957         * config/arm/arm.md (arm_rev16si2): New pattern.
40958         (arm_rev16si2_alt): Likewise.
40959         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
40960
40961 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40962
40963         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
40964         (rev16<mode>2_alt): Likewise.
40965         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
40966         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
40967         (aarch_rev16_shleft_mask_imm_p): Likewise.
40968         (aarch_rev16_p_1): Likewise.
40969         (aarch_rev16_p): Likewise.
40970         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
40971         (aarch_rev16_shright_mask_imm_p): Likewise.
40972         (aarch_rev16_shleft_mask_imm_p): Likewise.
40973
40974 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40975
40976         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
40977         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
40978         rev cost.
40979         (cortex_a53_extra_costs): Likewise.
40980         (cortex_a57_extra_costs): Likewise.
40981         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
40982         (cortexa7_extra_costs): Likewise.
40983         (cortexa8_extra_costs): Likewise.
40984         (cortexa12_extra_costs): Likewise.
40985         (cortexa15_extra_costs): Likewise.
40986         (v7m_extra_costs): Likewise.
40987         (arm_new_rtx_costs): Handle BSWAP.
40988
40989 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40990
40991         * config/arm/arm.c (cortexa8_extra_costs): New table.
40992         (arm_cortex_a8_tune): New tuning struct.
40993         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
40994
40995 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40996
40997         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
40998
40999 2014-04-23  Richard Biener  <rguenther@suse.de>
41000
41001         * Makefile.in (OBJS): Remove loop-unswitch.o.
41002         * tree-pass.h (make_pass_rtl_unswitch): Remove.
41003         * passes.def (pass_rtl_unswitch): Likewise.
41004         * loop-init.c (gate_rtl_unswitch): Likewise.
41005         (rtl_unswitch): Likewise.
41006         (pass_data_rtl_unswitch): Likewise.
41007         (pass_rtl_unswitch): Likewise.
41008         (make_pass_rtl_unswitch): Likewise.
41009         * rtl.h (reversed_condition): Likewise.
41010         (compare_and_jump_seq): Likewise.
41011         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
41012         and make static.
41013         * loop-unroll.c (compare_and_jump_seq): Likewise.
41014
41015 2014-04-23  Richard Biener  <rguenther@suse.de>
41016
41017         PR tree-optimization/60903
41018         * tree-ssa-loop-im.c (analyze_memory_references): Remove
41019         commented code block.
41020         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
41021         loop flags to newly created BBs and edges.
41022
41023 2014-04-23  Nick Clifton  <nickc@redhat.com>
41024
41025         * config/msp430/msp430.c (msp430_handle_option): Move function
41026         to msp430-common.c
41027         (msp430_option_override): Simplify mcu and mcpu option handling.
41028         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
41029         support for -mhwmult command line option.
41030         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
41031         -mhwmult command line option.
41032         (msp430_hwmult_enabled): Delete.
41033         (msp43o_output_labelref): Add support for -mhwmult command line option.
41034         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
41035         (umulsidi3): Likewise.
41036         * config/msp430/msp430.opt (mmcu): Add Report attribute.
41037         (mcpu, mlarge, msmall): Likewise.
41038         (mhwmult): New option.
41039         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
41040         prototype.
41041         (msp430_is_f5_mcu): Remove prototype.
41042         (msp430_use_f5_series_hwmult): Add prototype.
41043         * config/msp430/msp430-opts.h: New file.
41044         * common/config/msp430: New directory.
41045         * common/config/msp430/msp430-common.c: New file.
41046         * config.gcc (msp430): Remove target_has_targetm_common.
41047         * doc/invoke.texi: Document -mhwmult command line option.
41048
41049 2014-04-23  Nick Clifton  <nickc@redhat.com>
41050
41051         * config/i386/cygwin.h (ENDFILE_SPEC): Include
41052         default-manifest.o if it can be found in the search path.
41053         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
41054
41055 2014-04-23  Terry Guo  <terry.guo@arm.com>
41056
41057         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
41058
41059 2014-04-23  Richard Biener  <rguenther@suse.de>
41060
41061         PR middle-end/60895
41062         * tree-inline.c (declare_return_variable): Use mark_addressable.
41063
41064 2014-04-23  Richard Biener  <rguenther@suse.de>
41065
41066         PR middle-end/60891
41067         * loop-init.c (loop_optimizer_init): Make sure to apply
41068         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
41069
41070 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41071
41072         PR sanitizer/60275
41073         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
41074         New options.
41075         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
41076         if flag_sanitize_undefined_trap_on_error.
41077         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
41078         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
41079         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
41080         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
41081         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
41082         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
41083         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
41084         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
41085         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
41086         * ubsan.c (ubsan_instrument_unreachable): Return
41087         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
41088         (ubsan_expand_null_ifn): Emit __builtin_trap ()
41089         if flag_sanitize_undefined_trap_on_error and
41090         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
41091         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
41092         instrument_bool_enum_load): Emit __builtin_trap () if
41093         flag_sanitize_undefined_trap_on_error and
41094         __builtin_handle_*_abort () if !flag_sanitize_recover.
41095         * doc/invoke.texi (-fsanitize-recover,
41096         -fsanitize-undefined-trap-on-error): Document.
41097
41098 2014-04-22  Christian Bruel  <christian.bruel@st.com>
41099
41100         * config/sh/sh.md (mov<mode>): Replace movQIHI.
41101         Force immediates to SImode.
41102
41103 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
41104
41105         * config/nios2/nios2.md (UNSPEC_ROUND): New.
41106         (lroundsfsi2): New.
41107         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
41108         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
41109         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
41110         (nios2_fpu_insn): Add entry for round.
41111         (N2FPU_NO_ERRNO_P): Define.
41112         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
41113         flag_errno_math.
41114         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
41115
41116 2014-04-22  Richard Henderson  <rth@redhat.com>
41117
41118         * config/aarch64/aarch64 (addti3, subti3): New expanders.
41119         (add<GPI>3_compare0): Remove leading * from name.
41120         (add<GPI>3_carryin): Likewise.
41121         (sub<GPI>3_compare0): Likewise.
41122         (sub<GPI>3_carryin): Likewise.
41123         (<su_optab>mulditi3): New expander.
41124         (multi3): New expander.
41125         (madd<GPI>): Remove leading * from name.
41126
41127 2014-04-22  Martin Jambor  <mjambor@suse.cz>
41128
41129         * cgraphclones.c (cgraph_function_versioning): Copy
41130         ipa_transforms_to_apply instead of asserting it is empty.
41131
41132 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
41133
41134         PR target/60868
41135         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
41136         on count_exp to get mode.
41137
41138 2014-04-22  Andrew Pinski  <apinski@cavium.com>
41139
41140         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
41141         Handle TLS for ILP32.
41142         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
41143         (tlsie_small_<mode>): this and handle PTR.
41144         (tlsie_small_sidi): New pattern.
41145         (tlsle_small): Change to an expand to handle ILP32.
41146         (tlsle_small_<mode>): New pattern.
41147         (tlsdesc_small): Rename to ...
41148         (tlsdesc_small_<mode>): this and handle PTR.
41149
41150 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41151
41152         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
41153
41154 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41155
41156         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41157         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
41158         (aarch64_types_signed_poly_qualifiers): Likewise.
41159         (aarch64_types_unsigned_signed_qualifiers): Likewise.
41160         (aarch64_types_poly_signed_qualifiers): Likewise.
41161         (TYPES_REINTERP_SS): Type macro added.
41162         (TYPES_REINTERP_SU): Likewise.
41163         (TYPES_REINTERP_SP): Likewise.
41164         (TYPES_REINTERP_US): Likewise.
41165         (TYPES_REINTERP_PS): Likewise.
41166         (aarch64_fold_builtin): New expression folding added.
41167         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
41168         Declarations removed.
41169         (REINTERP_SS): Declarations added.
41170         (REINTERP_US): Likewise.
41171         (REINTERP_PS): Likewise.
41172         (REINTERP_SU): Likewise.
41173         (REINTERP_SP): Likewise.
41174         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
41175         (vreinterpretq_p8_f64): Likewise.
41176         (vreinterpret_p16_f64): Likewise.
41177         (vreinterpretq_p16_f64): Likewise.
41178         (vreinterpret_f32_f64): Likewise.
41179         (vreinterpretq_f32_f64): Likewise.
41180         (vreinterpret_f64_f32): Likewise.
41181         (vreinterpret_f64_p8): Likewise.
41182         (vreinterpret_f64_p16): Likewise.
41183         (vreinterpret_f64_s8): Likewise.
41184         (vreinterpret_f64_s16): Likewise.
41185         (vreinterpret_f64_s32): Likewise.
41186         (vreinterpret_f64_s64): Likewise.
41187         (vreinterpret_f64_u8): Likewise.
41188         (vreinterpret_f64_u16): Likewise.
41189         (vreinterpret_f64_u32): Likewise.
41190         (vreinterpret_f64_u64): Likewise.
41191         (vreinterpretq_f64_f32): Likewise.
41192         (vreinterpretq_f64_p8): Likewise.
41193         (vreinterpretq_f64_p16): Likewise.
41194         (vreinterpretq_f64_s8): Likewise.
41195         (vreinterpretq_f64_s16): Likewise.
41196         (vreinterpretq_f64_s32): Likewise.
41197         (vreinterpretq_f64_s64): Likewise.
41198         (vreinterpretq_f64_u8): Likewise.
41199         (vreinterpretq_f64_u16): Likewise.
41200         (vreinterpretq_f64_u32): Likewise.
41201         (vreinterpretq_f64_u64): Likewise.
41202         (vreinterpret_s64_f64): Likewise.
41203         (vreinterpretq_s64_f64): Likewise.
41204         (vreinterpret_u64_f64): Likewise.
41205         (vreinterpretq_u64_f64): Likewise.
41206         (vreinterpret_s8_f64): Likewise.
41207         (vreinterpretq_s8_f64): Likewise.
41208         (vreinterpret_s16_f64): Likewise.
41209         (vreinterpretq_s16_f64): Likewise.
41210         (vreinterpret_s32_f64): Likewise.
41211         (vreinterpretq_s32_f64): Likewise.
41212         (vreinterpret_u8_f64): Likewise.
41213         (vreinterpretq_u8_f64): Likewise.
41214         (vreinterpret_u16_f64): Likewise.
41215         (vreinterpretq_u16_f64): Likewise.
41216         (vreinterpret_u32_f64): Likewise.
41217         (vreinterpretq_u32_f64): Likewise.
41218
41219 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41220
41221         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41222         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
41223         (vreinterpret_p8_s8): Likewise.
41224         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
41225         (vreinterpret_p8_s16): Likewise.
41226         (vreinterpret_p8_s32): Likewise.
41227         (vreinterpret_p8_s64): Likewise.
41228         (vreinterpret_p8_f32): Likewise.
41229         (vreinterpret_p8_u8): Likewise.
41230         (vreinterpret_p8_u16): Likewise.
41231         (vreinterpret_p8_u32): Likewise.
41232         (vreinterpret_p8_u64): Likewise.
41233         (vreinterpret_p8_p16): Likewise.
41234         (vreinterpretq_p8_s8): Likewise.
41235         (vreinterpretq_p8_s16): Likewise.
41236         (vreinterpretq_p8_s32): Likewise.
41237         (vreinterpretq_p8_s64): Likewise.
41238         (vreinterpretq_p8_f32): Likewise.
41239         (vreinterpretq_p8_u8): Likewise.
41240         (vreinterpretq_p8_u16): Likewise.
41241         (vreinterpretq_p8_u32): Likewise.
41242         (vreinterpretq_p8_u64): Likewise.
41243         (vreinterpretq_p8_p16): Likewise.
41244         (vreinterpret_p16_s8): Likewise.
41245         (vreinterpret_p16_s16): Likewise.
41246         (vreinterpret_p16_s32): Likewise.
41247         (vreinterpret_p16_s64): Likewise.
41248         (vreinterpret_p16_f32): Likewise.
41249         (vreinterpret_p16_u8): Likewise.
41250         (vreinterpret_p16_u16): Likewise.
41251         (vreinterpret_p16_u32): Likewise.
41252         (vreinterpret_p16_u64): Likewise.
41253         (vreinterpret_p16_p8): Likewise.
41254         (vreinterpretq_p16_s8): Likewise.
41255         (vreinterpretq_p16_s16): Likewise.
41256         (vreinterpretq_p16_s32): Likewise.
41257         (vreinterpretq_p16_s64): Likewise.
41258         (vreinterpretq_p16_f32): Likewise.
41259         (vreinterpretq_p16_u8): Likewise.
41260         (vreinterpretq_p16_u16): Likewise.
41261         (vreinterpretq_p16_u32): Likewise.
41262         (vreinterpretq_p16_u64): Likewise.
41263         (vreinterpretq_p16_p8): Likewise.
41264         (vreinterpret_f32_s8): Likewise.
41265         (vreinterpret_f32_s16): Likewise.
41266         (vreinterpret_f32_s32): Likewise.
41267         (vreinterpret_f32_s64): Likewise.
41268         (vreinterpret_f32_u8): Likewise.
41269         (vreinterpret_f32_u16): Likewise.
41270         (vreinterpret_f32_u32): Likewise.
41271         (vreinterpret_f32_u64): Likewise.
41272         (vreinterpret_f32_p8): Likewise.
41273         (vreinterpret_f32_p16): Likewise.
41274         (vreinterpretq_f32_s8): Likewise.
41275         (vreinterpretq_f32_s16): Likewise.
41276         (vreinterpretq_f32_s32): Likewise.
41277         (vreinterpretq_f32_s64): Likewise.
41278         (vreinterpretq_f32_u8): Likewise.
41279         (vreinterpretq_f32_u16): Likewise.
41280         (vreinterpretq_f32_u32): Likewise.
41281         (vreinterpretq_f32_u64): Likewise.
41282         (vreinterpretq_f32_p8): Likewise.
41283         (vreinterpretq_f32_p16): Likewise.
41284         (vreinterpret_s64_s8): Likewise.
41285         (vreinterpret_s64_s16): Likewise.
41286         (vreinterpret_s64_s32): Likewise.
41287         (vreinterpret_s64_f32): Likewise.
41288         (vreinterpret_s64_u8): Likewise.
41289         (vreinterpret_s64_u16): Likewise.
41290         (vreinterpret_s64_u32): Likewise.
41291         (vreinterpret_s64_u64): Likewise.
41292         (vreinterpret_s64_p8): Likewise.
41293         (vreinterpret_s64_p16): Likewise.
41294         (vreinterpretq_s64_s8): Likewise.
41295         (vreinterpretq_s64_s16): Likewise.
41296         (vreinterpretq_s64_s32): Likewise.
41297         (vreinterpretq_s64_f32): Likewise.
41298         (vreinterpretq_s64_u8): Likewise.
41299         (vreinterpretq_s64_u16): Likewise.
41300         (vreinterpretq_s64_u32): Likewise.
41301         (vreinterpretq_s64_u64): Likewise.
41302         (vreinterpretq_s64_p8): Likewise.
41303         (vreinterpretq_s64_p16): Likewise.
41304         (vreinterpret_u64_s8): Likewise.
41305         (vreinterpret_u64_s16): Likewise.
41306         (vreinterpret_u64_s32): Likewise.
41307         (vreinterpret_u64_s64): Likewise.
41308         (vreinterpret_u64_f32): Likewise.
41309         (vreinterpret_u64_u8): Likewise.
41310         (vreinterpret_u64_u16): Likewise.
41311         (vreinterpret_u64_u32): Likewise.
41312         (vreinterpret_u64_p8): Likewise.
41313         (vreinterpret_u64_p16): Likewise.
41314         (vreinterpretq_u64_s8): Likewise.
41315         (vreinterpretq_u64_s16): Likewise.
41316         (vreinterpretq_u64_s32): Likewise.
41317         (vreinterpretq_u64_s64): Likewise.
41318         (vreinterpretq_u64_f32): Likewise.
41319         (vreinterpretq_u64_u8): Likewise.
41320         (vreinterpretq_u64_u16): Likewise.
41321         (vreinterpretq_u64_u32): Likewise.
41322         (vreinterpretq_u64_p8): Likewise.
41323         (vreinterpretq_u64_p16): Likewise.
41324         (vreinterpret_s8_s16): Likewise.
41325         (vreinterpret_s8_s32): Likewise.
41326         (vreinterpret_s8_s64): Likewise.
41327         (vreinterpret_s8_f32): Likewise.
41328         (vreinterpret_s8_u8): Likewise.
41329         (vreinterpret_s8_u16): Likewise.
41330         (vreinterpret_s8_u32): Likewise.
41331         (vreinterpret_s8_u64): Likewise.
41332         (vreinterpret_s8_p8): Likewise.
41333         (vreinterpret_s8_p16): Likewise.
41334         (vreinterpretq_s8_s16): Likewise.
41335         (vreinterpretq_s8_s32): Likewise.
41336         (vreinterpretq_s8_s64): Likewise.
41337         (vreinterpretq_s8_f32): Likewise.
41338         (vreinterpretq_s8_u8): Likewise.
41339         (vreinterpretq_s8_u16): Likewise.
41340         (vreinterpretq_s8_u32): Likewise.
41341         (vreinterpretq_s8_u64): Likewise.
41342         (vreinterpretq_s8_p8): Likewise.
41343         (vreinterpretq_s8_p16): Likewise.
41344         (vreinterpret_s16_s8): Likewise.
41345         (vreinterpret_s16_s32): Likewise.
41346         (vreinterpret_s16_s64): Likewise.
41347         (vreinterpret_s16_f32): Likewise.
41348         (vreinterpret_s16_u8): Likewise.
41349         (vreinterpret_s16_u16): Likewise.
41350         (vreinterpret_s16_u32): Likewise.
41351         (vreinterpret_s16_u64): Likewise.
41352         (vreinterpret_s16_p8): Likewise.
41353         (vreinterpret_s16_p16): Likewise.
41354         (vreinterpretq_s16_s8): Likewise.
41355         (vreinterpretq_s16_s32): Likewise.
41356         (vreinterpretq_s16_s64): Likewise.
41357         (vreinterpretq_s16_f32): Likewise.
41358         (vreinterpretq_s16_u8): Likewise.
41359         (vreinterpretq_s16_u16): Likewise.
41360         (vreinterpretq_s16_u32): Likewise.
41361         (vreinterpretq_s16_u64): Likewise.
41362         (vreinterpretq_s16_p8): Likewise.
41363         (vreinterpretq_s16_p16): Likewise.
41364         (vreinterpret_s32_s8): Likewise.
41365         (vreinterpret_s32_s16): Likewise.
41366         (vreinterpret_s32_s64): Likewise.
41367         (vreinterpret_s32_f32): Likewise.
41368         (vreinterpret_s32_u8): Likewise.
41369         (vreinterpret_s32_u16): Likewise.
41370         (vreinterpret_s32_u32): Likewise.
41371         (vreinterpret_s32_u64): Likewise.
41372         (vreinterpret_s32_p8): Likewise.
41373         (vreinterpret_s32_p16): Likewise.
41374         (vreinterpretq_s32_s8): Likewise.
41375         (vreinterpretq_s32_s16): Likewise.
41376         (vreinterpretq_s32_s64): Likewise.
41377         (vreinterpretq_s32_f32): Likewise.
41378         (vreinterpretq_s32_u8): Likewise.
41379         (vreinterpretq_s32_u16): Likewise.
41380         (vreinterpretq_s32_u32): Likewise.
41381         (vreinterpretq_s32_u64): Likewise.
41382         (vreinterpretq_s32_p8): Likewise.
41383         (vreinterpretq_s32_p16): Likewise.
41384         (vreinterpret_u8_s8): Likewise.
41385         (vreinterpret_u8_s16): Likewise.
41386         (vreinterpret_u8_s32): Likewise.
41387         (vreinterpret_u8_s64): Likewise.
41388         (vreinterpret_u8_f32): Likewise.
41389         (vreinterpret_u8_u16): Likewise.
41390         (vreinterpret_u8_u32): Likewise.
41391         (vreinterpret_u8_u64): Likewise.
41392         (vreinterpret_u8_p8): Likewise.
41393         (vreinterpret_u8_p16): Likewise.
41394         (vreinterpretq_u8_s8): Likewise.
41395         (vreinterpretq_u8_s16): Likewise.
41396         (vreinterpretq_u8_s32): Likewise.
41397         (vreinterpretq_u8_s64): Likewise.
41398         (vreinterpretq_u8_f32): Likewise.
41399         (vreinterpretq_u8_u16): Likewise.
41400         (vreinterpretq_u8_u32): Likewise.
41401         (vreinterpretq_u8_u64): Likewise.
41402         (vreinterpretq_u8_p8): Likewise.
41403         (vreinterpretq_u8_p16): Likewise.
41404         (vreinterpret_u16_s8): Likewise.
41405         (vreinterpret_u16_s16): Likewise.
41406         (vreinterpret_u16_s32): Likewise.
41407         (vreinterpret_u16_s64): Likewise.
41408         (vreinterpret_u16_f32): Likewise.
41409         (vreinterpret_u16_u8): Likewise.
41410         (vreinterpret_u16_u32): Likewise.
41411         (vreinterpret_u16_u64): Likewise.
41412         (vreinterpret_u16_p8): Likewise.
41413         (vreinterpret_u16_p16): Likewise.
41414         (vreinterpretq_u16_s8): Likewise.
41415         (vreinterpretq_u16_s16): Likewise.
41416         (vreinterpretq_u16_s32): Likewise.
41417         (vreinterpretq_u16_s64): Likewise.
41418         (vreinterpretq_u16_f32): Likewise.
41419         (vreinterpretq_u16_u8): Likewise.
41420         (vreinterpretq_u16_u32): Likewise.
41421         (vreinterpretq_u16_u64): Likewise.
41422         (vreinterpretq_u16_p8): Likewise.
41423         (vreinterpretq_u16_p16): Likewise.
41424         (vreinterpret_u32_s8): Likewise.
41425         (vreinterpret_u32_s16): Likewise.
41426         (vreinterpret_u32_s32): Likewise.
41427         (vreinterpret_u32_s64): Likewise.
41428         (vreinterpret_u32_f32): Likewise.
41429         (vreinterpret_u32_u8): Likewise.
41430         (vreinterpret_u32_u16): Likewise.
41431         (vreinterpret_u32_u64): Likewise.
41432         (vreinterpret_u32_p8): Likewise.
41433         (vreinterpret_u32_p16): Likewise.
41434         (vreinterpretq_u32_s8): Likewise.
41435         (vreinterpretq_u32_s16): Likewise.
41436         (vreinterpretq_u32_s32): Likewise.
41437         (vreinterpretq_u32_s64): Likewise.
41438         (vreinterpretq_u32_f32): Likewise.
41439         (vreinterpretq_u32_u8): Likewise.
41440         (vreinterpretq_u32_u16): Likewise.
41441         (vreinterpretq_u32_u64): Likewise.
41442         (vreinterpretq_u32_p8): Likewise.
41443         (vreinterpretq_u32_p16): Likewise.
41444
41445 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41446
41447         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
41448         Pattern extended.
41449         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
41450         (sqabs): Likewise.
41451         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
41452         (vqnegd_s64): Likewise.
41453         (vqabs_s64): Likewise.
41454         (vqabsd_s64): Likewise.
41455
41456 2014-04-22  Richard Henderson  <rth@redhat.com>
41457
41458         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
41459         computation to the top of the loop.
41460
41461 2014-04-22  Renlin  <renlin.li@arm.com>
41462             Jiong Wang  <jiong.wang@arm.com>
41463
41464         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
41465         * config/aarch64/aarch64.c (aarch64_layout_frame)
41466         (aarch64_initial_elimination_offset): Likewise.
41467
41468 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
41469
41470         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
41471         Fix indentation.
41472
41473 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
41474
41475         * machmode.h (bitwise_mode_for_mode): Declare.
41476         * stor-layout.h (bitwise_type_for_mode): Likewise.
41477         * stor-layout.c (bitwise_mode_for_mode): New function.
41478         (bitwise_type_for_mode): Likewise.
41479         * builtins.c (fold_builtin_memory_op): Use it instead of
41480         int_mode_for_mode and build_nonstandard_integer_type.
41481
41482 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41483
41484         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
41485         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
41486         (*-*-solaris2*): Simplify.
41487         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
41488         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
41489         *-*-solaris2.9* handling.
41490
41491         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
41492         as bug.
41493         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
41494         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
41495         handling, simplify.
41496         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
41497         * configure: Regenerate.
41498
41499         * config/i386/sol2-9.h: Remove.
41500
41501         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
41502         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
41503         Remove Solaris 9 references.
41504
41505 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
41506
41507         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
41508         (floatuns<GPI:mode><GPF:mode>2): Remove.
41509         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
41510         and floatuns conversions.
41511         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
41512         and floatuns conversions.
41513         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
41514         (w1,w2): New mode attributes for inequal width conversions.
41515
41516 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
41517
41518         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
41519         the output asm format.
41520
41521 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
41522
41523         * config/aarch64/aarch64-simd.md
41524         (aarch64_cm<optab>di): Always split.
41525         (*aarch64_cm<optab>di): New.
41526         (aarch64_cmtstdi): Always split.
41527         (*aarch64_cmtstdi): New.
41528
41529 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41530
41531         PR tree-optimization/60823
41532         * omp-low.c (ipa_simd_modify_function_body): Go through
41533         all SSA_NAMEs and for those refering to vector arguments
41534         which are going to be replaced adjust SSA_NAME_VAR and,
41535         if it is a default definition, change it into a non-default
41536         definition assigned at the beginning of function from new_decl.
41537         (ipa_simd_modify_stmt_ops): Rewritten.
41538         * tree-dfa.c (set_ssa_default_def): When removing default def,
41539         check for NULL loc instead of NULL *loc.
41540
41541 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41542
41543         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
41544         restrictions on core registers for DImode values in Thumb2.
41545
41546 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41547
41548         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
41549         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
41550
41551 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41552
41553         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
41554         (*iordi_notzesidi_di): Likewise.
41555         (*iordi_notsesidi_di): Likewise.
41556
41557 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41558
41559         * config/arm/arm-protos.h (tune_params): New struct members.
41560         * config/arm/arm.c: Initialise tune_params per processor.
41561         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
41562         for speed, based on new tune_params.
41563
41564 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41565
41566         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
41567         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
41568         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
41569         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
41570         * config/aarch64/arm_neon.h (vrnd_f64): Added.
41571         (vrnda_f64): Likewise.
41572         (vrndi_f64): Likewise.
41573         (vrndm_f64): Likewise.
41574         (vrndn_f64): Likewise.
41575         (vrndp_f64): Likewise.
41576         (vrndx_f64): Likewise.
41577
41578 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
41579
41580         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
41581         GET_MODE_SIZE argument is enum machine_mode.
41582
41583 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41584
41585         PR target/60910
41586         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
41587         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
41588
41589 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
41590
41591         PR middle-end/60281
41592         * asan.c (asan_emit_stack_protection): Force the base to align to
41593         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
41594         appropriate bits if STRICT_ALIGNMENT.
41595         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
41596         when asan is on.
41597         (expand_used_vars): Leave a space in the stack frame for alignment
41598         if STRICT_ALIGNMENT.
41599
41600 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
41601
41602         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
41603         than a gimple.
41604         (gimple_store_p): Likewise.
41605         (gimple_assign_load_p): Likewise.
41606         (gimple_assign_cast_p): Likewise.
41607         (gimple_clobber_p): Likewise.
41608
41609         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
41610         rather than a gimple.
41611         (gimple_assign_cast_p): Likewise.
41612
41613 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
41614
41615         PR target/60735
41616         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
41617         If mode is DDmode and TARGET_E500_DOUBLE allow move.
41618
41619         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
41620         more debug information for E500 if -mdebug=reg.
41621
41622 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
41623
41624         PR target/60909
41625         * config/i386/i386.c (ix86_expand_builtin)
41626         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
41627         register for target RTX.
41628         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
41629
41630 2014-04-18  Cong Hou  <congh@google.com>
41631
41632         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
41633         the widen-mult pattern by handling two operands with different sizes,
41634         and operands whose size is smaller than half of the result type.
41635
41636 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41637
41638         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
41639         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
41640         (do_estimate_edge_time): Compute it.
41641         * ipa-inline.c (want_inline_small_function_p): Bypass
41642         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
41643
41644 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41645
41646         * ipa-inline.c (spec_rem): New static variable.
41647         (dump_overall_stats): New function.
41648         (dump_inline_stats): New function.
41649
41650 2014-04-18  Richard Henderson  <rth@redhat.com>
41651
41652         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
41653         to GET_MODE_SIZE, not a reg_class_t.
41654
41655 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41656
41657         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
41658         (vsx_xxmrglw_<mode>): Likewise.
41659
41660 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
41661
41662         PR target/60876
41663         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
41664         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
41665         (rs6000_init_hard_regno_mode_ok): Likewise.
41666
41667 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
41668
41669         * ipa-inline.c (inline_small_functions): Account only non-cold
41670         functions.
41671         * doc/invoke.texi (inline-unit-growth): Update documentation.
41672
41673 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
41674
41675         * config/rs6000/rs6000.md (addti3, subti3): New.
41676
41677 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
41678
41679         PR target/60863
41680         * config/i386/i386.c (ix86_expand_clear): Remove outdated
41681         comment.  Check optimize_insn_for_size_p instead of
41682         optimize_insn_for_speed_p.
41683
41684 2014-04-17  Martin Jambor  <mjambor@suse.cz>
41685
41686         * gimple-iterator.c (gsi_start_edge): New function.
41687         * gimple-iterator.h (gsi_start_edge): Declare.
41688         * tree-sra.c (single_non_eh_succ): New function.
41689         (disqualify_ops_if_throwing_stmt): Renamed to
41690         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
41691         having one non-EH successor BB.
41692         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
41693         generate loads into replacements.
41694         (sra_modify_assign): Likewise and and also use the simple path for
41695         such statements.
41696         (sra_modify_function_body): Commit statements on edges.
41697
41698 2014-04-17  Richard Biener  <rguenther@suse.de>
41699
41700         PR middle-end/60849
41701         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
41702         comparison results and add clarifying comment.
41703
41704 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41705
41706         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
41707         (blank_mode): Initialize it.
41708         (emit_mode_size_inline, emit_mode_nunits_inline,
41709         emit_mode_inner_inline): New functions.
41710         (emit_insn_modes_h): Call them and surround their output with
41711         #if GCC_VERSION >= 4001 ... #endif.
41712         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
41713         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
41714         mode_* arrays if the argument is __builtin_constant_p.
41715         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
41716         is enum machine_mode.
41717
41718 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41719
41720         * passes.c (opt_pass::execute): Adjust.
41721         (pass_manager::execute_pass_mode_switching): Likewise.
41722         (early_local_passes::execute): Likewise.
41723         (execute_one_pass): Pass cfun to the pass's execute method.
41724         * tree-pass.h (opt_pass::execute): Add function * argument.
41725         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41726         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41727         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41728         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41729         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41730         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
41731         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
41732         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41733         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41734         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
41735         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
41736         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
41737         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
41738         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
41739         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41740         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41741         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41742         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
41743         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
41744         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41745         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41746         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41747         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41748         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41749         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41750         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41751         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41752         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41753         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41754         Adjust.
41755
41756 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41757
41758         * passes.c (opt_pass::gate): Take function * argument.
41759         (gate_all_early_local_passes): Merge into
41760         (early_local_passes::gate): this.
41761         (gate_all_early_optimizations): Merge into
41762         (all_early_optimizations::gate): this.
41763         (gate_all_optimizations): Mege into
41764         (all_optimizations::gate): this.
41765         (gate_all_optimizations_g): Merge into
41766         (all_optimizations_g::gate): this.
41767         (gate_rest_of_compilation): Mege into
41768         (rest_of_compilation::gate): this.
41769         (gate_postreload): Merge into
41770         (postreload::gate): this.
41771         (dump_one_pass): Pass cfun to the pass's gate method.
41772         (execute_ipa_summary_passes): Likewise.
41773         (execute_one_pass): Likewise.
41774         (ipa_write_summaries_2): Likewise.
41775         (ipa_write_optimization_summaries_1): Likewise.
41776         (ipa_read_summaries_1): Likewise.
41777         (ipa_read_optimization_summaries_1): Likewise.
41778         (execute_ipa_stmt_fixups): Likewise.
41779         * tree-pass.h (opt_pass::gate): Add function * argument.
41780         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
41781         combine-stack-adj.c, combine.c, compare-elim.c,
41782         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41783         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
41784         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
41785         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
41786         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41787         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41788         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41789         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
41790         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
41791         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
41792         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41793         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41794         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
41795         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41796         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41797         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41798         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41799         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41800         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41801         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41802         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41803         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41804         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
41805         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
41806         var-tracking.c, vtable-verify.c, web.c: Adjust.
41807
41808 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41809
41810         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
41811         * configure: Regenerate.
41812
41813 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41814
41815         * passes.c (dump_one_pass): don't check pass->has_gate.
41816         (execute_ipa_summary_passes): Likewise.
41817         (execute_one_pass): Likewise.
41818         (ipa_write_summaries_2): Likewise.
41819         (ipa_write_optimization_summaries_1): Likewise.
41820         (ipa_read_optimization_summaries_1): Likewise.
41821         (execute_ipa_stmt_fixups): Likewise.
41822         * tree-pass.h (pass_data::has_gate): Remove.
41823         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41824         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41825         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41826         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41827         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41828         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
41829         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
41830         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
41831         gimple-low.c, gimple-ssa-isolate-paths.c,
41832         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
41833         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
41834         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41835         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
41836         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
41837         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
41838         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
41839         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
41840         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
41841         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41842         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41843         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41844         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41845         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41846         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41847         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41848         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41849         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41850         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41851         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41852         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41853         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41854         Adjust.
41855
41856 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41857
41858         * pass_manager.h (pass_manager::register_dump_files_1): Remove
41859         declaration.
41860         * passes.c (pass_manager::register_dump_files_1): Merge into
41861         (pass_manager::register_dump_files): this, and remove its handling of
41862         properties since the pass always has the properties anyway.
41863         (pass_manager::pass_manager): Adjust.
41864
41865 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41866
41867         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
41868         * passes.c (pass_manager::register_dump_files_1): Remove dead code
41869         dealing with properties.
41870         (pass_manager::register_dump_files): Adjust.
41871
41872 2014-03-20  Mark Wielaard  <mjw@redhat.com>
41873
41874         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
41875         then represent the bound as normal constant value.
41876
41877 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41878
41879         PR target/60847
41880         Forward port from 4.8 branch
41881         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
41882
41883         * config/i386/bmiintrin.h (_blsi_u32): New.
41884         (_blsi_u64): Ditto.
41885         (_blsr_u32): Ditto.
41886         (_blsr_u64): Ditto.
41887         (_blsmsk_u32): Ditto.
41888         (_blsmsk_u64): Ditto.
41889         (_tzcnt_u32): Ditto.
41890         (_tzcnt_u64): Ditto.
41891
41892 2014-04-17  Kito Cheng  <kito@0xlab.org>
41893
41894         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
41895
41896 2014-04-17  Richard Biener  <rguenther@suse.de>
41897
41898         PR middle-end/60849
41899         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
41900         boolean results for comparisons.
41901
41902 2014-04-17  Richard Biener  <rguenther@suse.de>
41903
41904         PR tree-optimization/60836
41905         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
41906         initial PHI args to be gimple values.
41907
41908 2014-04-17  Richard Biener  <rguenther@suse.de>
41909
41910         PR tree-optimization/60841
41911         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
41912         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
41913         of stmts to SLP build.
41914         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
41915         (vect_analyze_slp): Likewise.
41916         (vect_analyze_slp_instance): Likewise.
41917         (vect_build_slp_tree): Limit overall SLP tree growth.
41918         * tree-vectorizer.h (vect_analyze_data_refs,
41919         vect_analyze_slp): Adjust prototypes.
41920
41921 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41922
41923         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
41924         Silvermont.
41925
41926 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41927
41928         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
41929         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
41930         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
41931         for TARGET_SLOW_PSHUFB
41932
41933 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41934
41935         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
41936         * config/i386/i386.c (intel_cost): Ditto.
41937
41938 2014-04-17  Joey Ye  <joey.ye@arm.com>
41939
41940         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
41941
41942 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41943
41944         * opts.c (common_handle_option): Disable -fipa-reference coorectly
41945         with -fuse-profile.
41946
41947 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41948
41949         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
41950         (type_all_derivations_known_p): New predicate.
41951         (type_all_ctors_visible_p): New predicate.
41952         (type_possibly_instantiated_p): New predicate.
41953         (get_odr_type): Compute all_derivations_known.
41954         (dump_odr_type): Dump the flag.
41955         (maybe_record_type): Cleanup.
41956         (record_target_from_binfo): Add bases_to_consider array;
41957         record bases for types w/o instances and skip CXX destructor.
41958         (possible_polymorphic_call_targets_1): Add bases_to_consider
41959         and consider_construction parameters; check if type may have instance.
41960         (get_polymorphic_call_info): Set maybe_in_construction to true
41961         when we know nothing.
41962         (record_targets_from_bases): Skip CXX destructors; they are
41963         never called for types in construction.
41964         (possible_polymorphic_call_targets): Do not record target when
41965         type may not have instance.
41966
41967 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41968
41969         PR ipa/60854
41970         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
41971         external aliases alive, too.
41972
41973 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
41974
41975         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
41976         definition.
41977
41978 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41979
41980         * final.c (compute_alignments): Do not apply loop alignment to a block
41981         falling through to the exit.
41982
41983 2014-04-16  Catherine Moore  <clm@codesourcery.com>
41984
41985         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
41986         Adjust constraints for microMIPS store patterns.
41987
41988 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
41989
41990         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
41991
41992 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41993
41994         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
41995         (append_use): Run at -O0.
41996         (append_vdef): Likewise.
41997         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
41998         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
41999
42000 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
42001
42002         PR tree-optimization/60844
42003         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
42004         (propagate_op_to_single_use, remove_visited_stmt_chain,
42005         linearize_expr, repropagate_negates, reassociate_bb): Use it
42006         instead of gsi_remove.
42007
42008 2014-04-16  Martin Jambor  <mjambor@suse.cz>
42009
42010         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
42011         ipa_transforms_to_apply.
42012         (cgraph_function_versioning): Assert that old_node has empty
42013         ipa_transforms_to_apply.
42014         * trans-mem.c (ipa_tm_create_version): Likewise.
42015         * tree-inline.c (tree_function_versioning): Do not duplicate
42016         ipa_transforms_to_apply.
42017
42018 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
42019
42020         PR target/60817
42021         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
42022         x86_64-*-* cases.
42023         Pass necessary as flags on 64-bit Solaris/x86.
42024         Use lowercase relocs for x86_64-*-*.
42025         * configure: Regenerate.
42026
42027 2014-04-15  Jan Hubicka  <jh@suse.cz>
42028
42029         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
42030         (maybe_record_node, likely_target_p): Use it.
42031
42032 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42033
42034         PR target/60839
42035         Revert following patch
42036
42037         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42038
42039         PR target/60735
42040         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42041         software floating point or no floating point registers, do not
42042         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42043         in GPRs that occurs after we tested for GPRs that would never be
42044         true.
42045
42046         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42047         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42048         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42049         specifically allow DDmode, since that does not use the SPE SIMD
42050         instructions.
42051
42052 2014-03-21  Mark Wielaard  <mjw@redhat.com>
42053
42054         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
42055         as unsigned or int depending on type and value used.
42056
42057 2014-04-15  Richard Biener  <rguenther@suse.de>
42058
42059         PR rtl-optimization/56965
42060         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
42061         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
42062         ... here.
42063         * alias.c (true_dependence_1): Do not call
42064         nonoverlapping_component_refs_p.
42065         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
42066         nonoverlapping_component_refs_p.
42067         (indirect_refs_may_alias_p): Likewise.
42068
42069 2014-04-15  Teresa Johnson  <tejohnson@google.com>
42070
42071         * cfg.c (dump_bb_info): Fix flags check.
42072         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
42073
42074 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42075
42076         PR rtl-optimization/60663
42077         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
42078         avoid 0 cost.
42079
42080 2014-04-15  Richard Biener  <rguenther@suse.de>
42081
42082         * lto-streamer.h (LTO_major_version): Bump to 4.
42083
42084 2014-04-15  Richard Biener  <rguenther@suse.de>
42085
42086         * common.opt (lto_partition_model): New enum.
42087         (flto-partition=): Merge separate options with a single with argument,
42088         add -flto-partition=one support.
42089         * flag-types.h (enum lto_partition_model): Declare.
42090         * opts.c (finish_options): Remove duplicate -flto-partition=
42091         option check.
42092         * lto-wrapper.c (run_gcc): Adjust.
42093
42094 2014-04-15  Richard Biener  <rguenther@suse.de>
42095
42096         * alias.c (ncr_compar): New function.
42097         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
42098
42099 2014-04-15  Richard Biener  <rguenther@suse.de>
42100
42101         * alias.c (record_component_aliases): Do not walk BINFOs.
42102
42103 2014-04-15  Richard Biener  <rguenther@suse.de>
42104
42105         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
42106         Add struct function argument and adjust.
42107         (find_func_aliases_for_call): Likewise.
42108         (find_func_aliases): Likewise.
42109         (find_func_clobbers): Likewise.
42110         (intra_create_variable_infos): Likewise.
42111         (compute_points_to_sets): Likewise.
42112         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
42113
42114 2014-04-15  Richard Biener  <rguenther@suse.de>
42115
42116         * tree.c (iterative_hash_expr): Use enum tree_code_class
42117         to store TREE_CODE_CLASS.
42118         (tree_block): Likewise.
42119         (tree_set_block): Likewise.
42120         * tree.h (fold_build_pointer_plus_loc): Use
42121         convert_to_ptrofftype_loc.
42122
42123 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
42124
42125         PR plugins/59335
42126         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
42127         added in 4.9.
42128
42129 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
42130
42131         * cfgloop.h (struct loop): Move force_vectorize down.
42132         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
42133         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
42134         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
42135         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
42136         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
42137         * tree-core.h (enum annot_expr_kind): Add new kind values.
42138         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
42139         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
42140         kinds.
42141         * tree.def (ANNOTATE_EXPR): Tweak comment.
42142
42143 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42144
42145         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
42146         cxa_pure_virtual).
42147
42148 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
42149
42150         * tree.h (TYPE_IDENTIFIER): Declare.
42151         * tree.c (subrange_type_for_debug_p): Use it.
42152         * godump.c (go_format_type): Likewise.
42153         * dwarf2out.c (is_cxx_auto, modified_type_die,
42154         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
42155         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
42156
42157 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42158
42159         PR lto/60820
42160         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
42161
42162 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
42163
42164         * config/i386/i386.c (examine_argument): Return bool.  Return true if
42165         parameter should be passed in memory.
42166         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
42167         (construct_container): Update calls to examine_argument.
42168         (function_arg_advance_64): Ditto.
42169         (return_in_memory_32): Merge with ix86_return_in_memory.
42170         (return_in_memory_64): Ditto.
42171         (return_in_memory_ms_64): Ditto.
42172
42173 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42174
42175         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
42176         * coverage.c (coverage_compute_profile_id): Handle externally visible
42177         symbols.
42178
42179 2014-04-14  Martin Jambor  <mjambor@suse.cz>
42180
42181         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
42182         DECL_DISREGARD_INLINE_LIMITS functions.
42183
42184 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42185
42186         PR target/60827
42187         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
42188
42189 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42190
42191         PR target/60827
42192         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
42193         optimize_insn_for_speed_p instead of
42194         optimize_function_for_speed_p.
42195
42196 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
42197
42198         * doc/invoke.texi (free): Document AArch64.
42199
42200 2014-04-14  Richard Biener  <rguenther@suse.de>
42201
42202         PR tree-optimization/60042
42203         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
42204         (insert_into_preds_of_block): Do not prevent PHI insertion
42205         for REFERENCE exprs here ...
42206         (eliminate_dom_walker::before_dom_children): ... but prevent
42207         their use here under similar conditions when applied to the
42208         IL after PRE optimizations.
42209
42210 2014-04-14  Richard Biener  <rguenther@suse.de>
42211
42212         * passes.def: Move early points-to after early SRA.
42213
42214 2014-04-14  Richard Biener  <rguenther@suse.de>
42215
42216         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
42217         check for which sign-changes we allow when forwarding
42218         a converted value into a switch.
42219
42220 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42221
42222         * stor-layout.c (place_field): Finalize non-constant offset for the
42223         field, if any.
42224
42225 2014-04-14  Richard Biener  <rguenther@suse.de>
42226
42227         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
42228         as argument.
42229         (expand_switch_using_bit_tests_p): Likewise.
42230         (process_switch): Compute and pass on speed_p based on the
42231         switch stmt.
42232         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
42233         optimize_bb_for_speed_p.
42234
42235 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42236
42237         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
42238         * function.h (struct function): Rename has_force_vect_loops into
42239         has_force_vectorize_loops.
42240         * lto-streamer-in.c (input_cfg): Adjust for renaming.
42241         (input_struct_function_base): Likewise.
42242         * lto-streamer-out.c (output_cfg): Likewise.
42243         (output_struct_function_base): Likewise.
42244         * omp-low.c (expand_omp_simd): Likewise.
42245         * tree-cfg.c (move_sese_region_to_fn): Likewise.
42246         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
42247         (version_loop_for_if_conversion): Likewise.
42248         (tree_if_conversion): Likewise.
42249         (main_tree_if_conversion): Likewise.
42250         (gate_tree_if_conversion): Likewise.
42251         * tree-inline.c (copy_loops): Likewise.
42252         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
42253         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
42254         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
42255         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
42256         * tree-vectorizer.c (vectorize_loops): Likewise.
42257         * tree-vectorizer.h (unlimited_cost_model): Likewise.
42258
42259 2014-04-14  Richard Biener  <rguenther@suse.de>
42260
42261         PR lto/60720
42262         * lto-streamer-out.c (wrap_refs): New function.
42263         (lto_output): Wrap symbol references in global initializes in
42264         type-preserving MEM_REFs.
42265
42266 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42267
42268         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
42269
42270 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42271
42272         * config/sh/sh.md (setmemqi): New expand pattern.
42273         * config/sh/sh.h (CLEAR_RATIO): Define.
42274         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
42275         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
42276
42277 2014-04-14  Richard Biener  <rguenther@suse.de>
42278
42279         PR middle-end/55022
42280         * fold-const.c (negate_expr_p): Don't negate directional rounding
42281         division.
42282         (fold_negate_expr): Likewise.
42283
42284 2014-04-14  Richard Biener  <rguenther@suse.de>
42285
42286         PR tree-optimization/59817
42287         PR tree-optimization/60453
42288         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
42289         recursion to catch all CHRECs in the scalar evolution and restrict
42290         the predicate for the remains appropriately.
42291
42292 2014-04-12  Catherine Moore  <clm@codesourcery.com>
42293
42294         * config/mips/constraints.md: Add new register constraint "kb".
42295         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
42296         (*movhi_internal): Likewise.
42297         (*movqi_internal): Likewise.
42298         * config/mips/mips.h (M16_STORE_REGS): New register class.
42299         (REG_CLASS_NAMES): Add M16_STORE_REGS.
42300         (REG_CLASS_CONTENTS): Likewise.
42301         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
42302
42303 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42304
42305         PR c/60194
42306         * doc/invoke.texi (-Wformat-signedness): Document it.
42307         (Wformat=2): Mention that this enables -Wformat-signedness.
42308
42309 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42310
42311         * common/config/epiphany/epiphany-common.c
42312         (epiphany_option_optimization_table): Enable section anchors by
42313         default at -O1 or higher.
42314         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
42315         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
42316         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
42317         carries no extra cost.
42318         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
42319         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
42320         * config/epiphany/predicates.md (memclob_operand): New predicate.
42321         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
42322         Use memclob_operand predicate and X constraint for operand 3.
42323
42324 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42325
42326         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42327         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42328         its operands.
42329
42330 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42331
42332         PR rtl-optimization/60651
42333         * mode-switching.c (optimize_mode_switching): Make sure to emit
42334         sets of a lower numbered entity before sets of a higher numbered
42335         entity to a mode of the same or lower priority.
42336         When creating a seginfo for a basic block that starts with a code
42337         label, move the insertion point past the code label.
42338         (new_seginfo): Document and enforce requirement that
42339         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42340         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42341         * doc/tm.texi: Regenerate.
42342
42343 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42344
42345         PR target/60811
42346         * config/arc/arc.c (arc_save_restore): Fix assert typo.
42347
42348 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
42349
42350         * BASE-VER: Set to 4.10.0.
42351
42352 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42353
42354         PR other/59055
42355         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42356         * doc/gcc.texi (Service): Update description in the @menu
42357         * doc/invoke.texi (Option Summary): Remove misplaced and
42358         duplicated @menu.
42359
42360 2014-04-11  Steve Ellcey  <sellcey@mips.com>
42361             Jakub Jelinek  <jakub@redhat.com>
42362
42363         PR middle-end/60556
42364         * expr.c (convert_move): Use emit_store_flag_force instead of
42365         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
42366         argument to it.
42367
42368 2014-04-11  Richard Biener  <rguenther@suse.de>
42369
42370         PR middle-end/60797
42371         * varasm.c (assemble_alias): Avoid endless error reporting
42372         recursion by setting TREE_ASM_WRITTEN.
42373
42374 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42375
42376         * config/s390/s390.md: Add a splitter for NOT rtx.
42377
42378 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
42379
42380         PR rtl-optimization/60663
42381         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
42382
42383 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
42384             Jakub Jelinek  <jakub@redhat.com>
42385
42386         PR lto/60567
42387         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
42388         flag from decl_node to node.
42389
42390 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42391
42392         PR debug/60655
42393         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
42394         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
42395         ameliorating the cases where it can be.
42396
42397 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
42398
42399         Revert
42400         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42401
42402         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42403         (loadsync_<mode>): Change mode.
42404         (load_quadpti, store_quadpti): New.
42405         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42406         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42407         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
42408
42409 2014-04-09  Cong Hou  <congh@google.com>
42410
42411         PR testsuite/60773
42412         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
42413         documentation.
42414
42415 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42416
42417         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
42418         instead of vnor to exploit possible fusion opportunity in the
42419         future.
42420         (altivec_expand_vec_perm_const_le): Likewise.
42421
42422 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42423
42424         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42425         (loadsync_<mode>): Change mode.
42426         (load_quadpti, store_quadpti): New.
42427         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42428         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42429
42430 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
42431
42432         PR target/60763
42433         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
42434         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
42435         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
42436
42437 2014-04-08  Richard Biener  <rguenther@suse.de>
42438
42439         PR middle-end/60706
42440         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
42441         a 64bit widest int print double-int similar to on HWI64 hosts.
42442
42443 2014-04-08  Richard Biener  <rguenther@suse.de>
42444
42445         PR tree-optimization/60785
42446         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
42447         default defs properly.
42448
42449 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
42450
42451         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
42452         (Weffc++): Likewise.
42453
42454 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
42455
42456         * ipa-devirt.c (maybe_record_node): When node is not recorded,
42457         set completep to false rather than true.
42458
42459 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
42460
42461         PR target/60504
42462         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
42463         ARM_TARGET2_DWARF_FORMAT.
42464
42465 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
42466
42467         PR target/60609
42468         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
42469         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
42470         ADDR_DIFF_VEC.
42471
42472 2014-04-07  Richard Biener  <rguenther@suse.de>
42473
42474         PR tree-optimization/60766
42475         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
42476         (may_eliminate_iv): Convert cand_value_at result to desired type.
42477
42478 2014-04-07  Jason Merrill  <jason@redhat.com>
42479
42480         PR c++/60731
42481         * common.opt (-fno-gnu-unique): Add.
42482         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
42483
42484 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42485
42486         * haifa-sched.c: Fix outdated function reference and minor
42487         grammar errors in introductory comment.
42488
42489 2014-04-07  Richard Biener  <rguenther@suse.de>
42490
42491         PR middle-end/60750
42492         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
42493         for noreturn calls.
42494         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
42495
42496 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
42497
42498         PR debug/55794
42499         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
42500         size accounting for thunks.
42501         (pa_asm_output_mi_thunk): Use final_start_function() and
42502         final_end_function() to output function start and end directives.
42503
42504 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
42505
42506         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
42507         device specific ISA/ feature information. Remove short_sp and
42508         errata_skip ds.  Add avr_device_specific_features enum to have device
42509         specific info.
42510         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
42511         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
42512         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
42513         updated device specific info.
42514         * config/avr/avr-mcus.def: Merge device specific details to
42515         dev_attribute field.
42516         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
42517         errata_skip.
42518         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
42519         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
42520         assembler if RMW isa supported by current device.
42521         * config/avr/genmultilib.awk: Update as device info structure changed.
42522         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
42523
42524 2014-04-04  Cong Hou  <congh@google.com>
42525
42526         PR tree-optimization/60656
42527         * tree-vect-stmts.c (supportable_widening_operation):
42528         Fix a bug that elements in a vector with vect_used_by_reduction
42529         property are incorrectly reordered when the operation on it is not
42530         consistant with the one in reduction operation.
42531
42532 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
42533
42534         PR rtl-optimization/60155
42535         * gcse.c (record_set_data): New function.
42536         (single_set_gcse): New function.
42537         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
42538         (hoist_code): Likewise.
42539         (get_pressure_class_and_nregs): Likewise.
42540
42541 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
42542
42543         * explow.c (probe_stack_range): Emit a final optimization blockage.
42544
42545 2014-04-04  Anthony Green  <green@moxielogic.com>
42546
42547         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
42548         typos.
42549
42550 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
42551
42552         PR ipa/59626
42553         * lto-cgraph.c (input_overwrite_node): Check that partitioning
42554         flags are set only during streaming.
42555         * ipa.c (process_references, walk_polymorphic_call_targets,
42556         symtab_remove_unreachable_nodes): Drop bodies of always inline
42557         after early inlining.
42558         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
42559
42560 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
42561         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42562
42563         PR debug/60655
42564         * dwarf2out.c (const_ok_for_output_1): Reject expressions
42565         containing a NOT.
42566
42567 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42568
42569         PR bootstrap/60743
42570         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
42571         duration.
42572         (cortex_a53_fdivd): Likewise.
42573
42574 2014-04-04  Martin Jambor  <mjambor@suse.cz>
42575
42576         PR ipa/60640
42577         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
42578         Adjust all callers.
42579         * cgraph.c (clone_of_p): Also return true if thunks match.
42580         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
42581         cgraph_function_or_thunk_node and an obsolete comment.
42582         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
42583         file.
42584         (build_function_decl_skip_args): Likewise.
42585         (set_new_clone_decl_and_node_flags): New function.
42586         (duplicate_thunk_for_node): Likewise.
42587         (redirect_edge_duplicating_thunks): Likewise.
42588         (cgraph_clone_node): New parameter args_to_skip, pass it to
42589         redirect_edge_duplicating_thunks which is called instead of
42590         cgraph_redirect_edge_callee.
42591         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
42592         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
42593
42594 2014-04-04  Jeff Law  <law@redhat.com>
42595
42596         PR target/60657
42597         * config/arm/predicates.md (const_int_I_operand): New predicate.
42598         (const_int_M_operand): Similarly.
42599         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
42600         const_int_operand.
42601         (insv_t2, extv_reg, extzv_t2): Likewise.
42602         (load_multiple_with_writeback): Similarly for const_int_I_operand.
42603         (pop_multiple_with_writeback_and_return): Likewise.
42604         (vfp_pop_multiple_with_writeback): Likewise
42605
42606 2014-04-04  Richard Biener  <rguenther@suse.de>
42607
42608         PR ipa/60746
42609         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
42610         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
42611         non-GIMPLE_LABELs.
42612         * gimplify.h (gimple_add_tmp_var_fn): Declare.
42613         * gimplify.c (gimple_add_tmp_var_fn): New function.
42614         * gimple-expr.h (create_tmp_reg_fn): Declare.
42615         * gimple-expr.c (create_tmp_reg_fn): New function.
42616         * gimple-low.c (record_vars_into): Don't change cfun.
42617         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
42618         code generation without cfun.
42619
42620 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
42621
42622         PR bootstrap/60719
42623         * Makefile.in (install-driver): Fix shell scripting.
42624
42625 2014-04-03  Cong Hou  <congh@google.com>
42626
42627         PR tree-optimization/60505
42628         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
42629         threshold of number of iterations below which no vectorization
42630         will be done.
42631         * tree-vect-loop.c (new_loop_vec_info):
42632         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
42633         * tree-vect-loop.c (vect_analyze_loop_operations):
42634         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
42635         * tree-vect-loop.c (vect_transform_loop):
42636         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
42637         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
42638         of iterations of the loop and see if we should build the epilogue.
42639
42640 2014-04-03  Richard Biener  <rguenther@suse.de>
42641
42642         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
42643         (streamer_tree_cache_create): Adjust.
42644         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
42645         to allow optional nodes array.
42646         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
42647         (streamer_tree_cache_append): Likewise.
42648         (streamer_tree_cache_create): Create nodes array optionally
42649         as specified by parameter.
42650         * lto-streamer-out.c (create_output_block): Avoid maintaining
42651         the node array in the writer cache.
42652         (DFS_write_tree): Remove assertion.
42653         (produce_asm_for_decls): Free the out decl state hash table early.
42654         * lto-streamer-in.c (lto_data_in_create): Adjust for
42655         streamer_tree_cache_create prototype change.
42656
42657 2014-04-03  Richard Biener  <rguenther@suse.de>
42658
42659         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
42660         set TREE_CHAIN to NULL_TREE.
42661
42662 2014-04-03  Richard Biener  <rguenther@suse.de>
42663
42664         PR tree-optimization/60740
42665         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
42666         over all GIMPLE_COND operands.
42667
42668 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
42669
42670         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
42671         (Weffc++): Remove Scott's numbering, merge lists and reference
42672         Wnon-virtual-dtor.
42673
42674 2014-04-03  Nick Clifton  <nickc@redhat.com>
42675
42676         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
42677         properly.
42678
42679 2014-04-03  Martin Jambor  <mjambor@suse.cz>
42680
42681         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
42682         mention gcc_unreachable before failing.
42683         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
42684         removed symbols.
42685
42686 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
42687
42688         PR ipa/60659
42689         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
42690         inconsistent code and instead mark the context inconsistent.
42691         (possible_polymorphic_call_targets): For inconsistent contexts
42692         return empty complete list.
42693
42694 2014-04-02  Anthony Green  <green@moxielogic.com>
42695
42696         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
42697         (extendqisi2, extendhisi2): Define.
42698         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
42699         (WCHAR_TYPE): Change to unsigned int.
42700
42701 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42702
42703         PR tree-optimization/60733
42704         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
42705         insertion point for PHI candidates to be the end of the feeding
42706         block for the PHI argument.
42707
42708 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
42709
42710         PR rtl-optimization/60650
42711         * lra-constraints.c (process_alt_operands): Decrease reject for
42712         earlyclobber matching.
42713
42714 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42715
42716         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
42717
42718 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42719
42720         * config/spu/spu.c (pad_bb): Do not crash when the last
42721         insn is CODE_FOR_blockage.
42722
42723 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42724
42725         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
42726         lies outside the target mode.
42727
42728 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42729
42730         PR target/60735
42731         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42732         software floating point or no floating point registers, do not
42733         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42734         in GPRs that occurs after we tested for GPRs that would never be
42735         true.
42736
42737         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42738         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42739         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42740         specifically allow DDmode, since that does not use the SPE SIMD
42741         instructions.
42742
42743 2014-04-02  Richard Biener  <rguenther@suse.de>
42744
42745         PR middle-end/60729
42746         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
42747         MODE_INTs.  Properly use negv_optab.
42748         (expand_abs): Likewise.
42749
42750 2014-04-02  Richard Biener  <rguenther@suse.de>
42751
42752         PR bootstrap/60719
42753         * Makefile.in (install-driver): Guard extra installs with special
42754         names properly.
42755
42756 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
42757
42758         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42759         Document vec_vgbbd.
42760
42761 2014-04-01  Richard Henderson  <rth@redhat.com>
42762
42763         PR target/60704
42764         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
42765         alternative enabled before register allocation.
42766
42767 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
42768
42769         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
42770         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
42771         typo.
42772         (nios2_large_got_address): Remove unneeded 'sym' parameter.
42773         (nios2_got_address): Update nios2_large_got_address call site.
42774         (nios2_delegitimize_address): New function.
42775         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
42776         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
42777         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
42778
42779 2014-04-01  Martin Husemann  <martin@duskware.de>
42780
42781         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
42782         for -mabi=32.
42783
42784 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
42785
42786         PR rtl-optimization/60604
42787         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
42788         check from register_operand.
42789         (register_operand): Redefine in terms of general_operand.
42790         (nonmemory_operand): Use register_operand for the non-constant cases.
42791
42792 2014-04-01  Richard Biener  <rguenther@suse.de>
42793
42794         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
42795
42796 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
42797
42798         * doc/invoke.texi (mapp-regs): Clarify.
42799
42800 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
42801
42802         * config/i386/avx512fintrin.h (__v32hi): Define type.
42803         (__v64qi): Likewise.
42804         (_mm512_set1_epi8): Define.
42805         (_mm512_set1_epi16): Define.
42806         (_mm512_set4_epi32): Define.
42807         (_mm512_set4_epi64): Define.
42808         (_mm512_set4_pd): Define.
42809         (_mm512_set4_ps): Define.
42810         (_mm512_setr4_epi64): Define.
42811         (_mm512_setr4_epi32): Define.
42812         (_mm512_setr4_pd): Define.
42813         (_mm512_setr4_ps): Define.
42814         (_mm512_setzero_epi32): Define.
42815
42816 2014-03-31  Martin Jambor  <mjambor@suse.cz>
42817
42818         PR middle-end/60647
42819         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
42820         callsite_arguments_match_p.  Updated all callers.  Also check types of
42821         corresponding formal parameters and actual arguments.
42822         (not_all_callers_have_enough_arguments_p) Renamed to
42823         some_callers_have_mismatched_arguments_p.
42824
42825 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
42826
42827         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
42828
42829 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
42830
42831         PR target/60034
42832         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
42833         section anchor.
42834
42835 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
42836
42837         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
42838         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
42839         Split out
42840         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
42841         Use FMAMODE_NOVF512 mode iterator.
42842         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
42843         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
42844         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
42845         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
42846         Split out
42847         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
42848         Use VF_128_256 mode iterator.
42849         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
42850         Ditto.
42851
42852 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42853
42854         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
42855         static chain if needed.
42856
42857 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42858
42859         PR target/60697
42860         * lra-constraints.c (index_part_to_reg): New.
42861         (process_address): Use it.
42862
42863 2014-03-27  Jeff Law  <law@redhat.com>
42864             Jakub Jelinek  <jakub@redhat.com>
42865
42866         PR target/60648
42867         * expr.c (do_tablejump): Use simplify_gen_binary rather than
42868         gen_rtx_{PLUS,MULT} to build up the address expression.
42869
42870         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
42871         creating non-canonical RTL.
42872
42873 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42874
42875         PR ipa/60243
42876         * ipa-inline.c (want_inline_small_function_p): Short circuit large
42877         functions; reorganize to make cheap checks first.
42878         (inline_small_functions): Do not estimate growth when dumping;
42879         it is expensive.
42880         * ipa-inline.h (inline_summary): Add min_size.
42881         (growth_likely_positive): New function.
42882         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
42883         (set_cond_stmt_execution_predicate): Cleanup.
42884         (estimate_edge_size_and_time): Compute min_size.
42885         (estimate_calls_size_and_time): Likewise.
42886         (estimate_node_size_and_time): Likewise.
42887         (inline_update_overall_summary): Update min_size.
42888         (do_estimate_edge_time): Likewise.
42889         (do_estimate_edge_size): Update.
42890         (do_estimate_edge_hints): Update.
42891         (growth_likely_positive): New function.
42892
42893 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
42894
42895         PR target/60693
42896         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
42897         also if addr has VOIDmode.
42898
42899 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42900
42901         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
42902         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
42903         Declare extern.
42904         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
42905         instructions as well as AdvancedSIMD loads.
42906
42907 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42908
42909         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
42910         Use crypto_aese type.
42911         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
42912         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
42913         crypto_aese, crypto_aesmc.  Move to types.md.
42914         * config/arm/types.md (crypto_aes): Split into crypto_aese,
42915         crypto_aesmc.
42916         * config/arm/iterators.md (crypto_type): Likewise.
42917
42918 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42919
42920         * cgraph.c: Include expr.h and tree-dfa.h.
42921         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
42922         remove LHS.
42923
42924 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42925
42926         PR target/60675
42927         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
42928         regs from checking multi-reg pseudos.
42929
42930 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42931
42932         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
42933
42934 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42935
42936         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
42937         if it would clobber the stack pointer, even temporarily.
42938
42939 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
42940
42941         * mode-switching.c: Make small adjustments to the top comment.
42942
42943 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
42944
42945         * config/rs6000/constraints.md (wD constraint): New constraint to
42946         match the constant integer to get the top DImode/DFmode out of a
42947         vector in a VSX register.
42948
42949         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
42950         match the constant integer to get the top DImode/DFmode out of a
42951         vector in a VSX register.
42952
42953         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
42954         for ISA 2.07.
42955
42956         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
42957         vbpermq builtins.
42958
42959         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
42960         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
42961
42962         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
42963         Optimize vec_extract of 64-bit values, where the value being
42964         extracted is in the top word, where we can use scalar
42965         instructions.  Add direct move and store support.  Combine the big
42966         endian/little endian vector select load support into a single insn.
42967         (vsx_extract_<mode>_internal1): Likewise.
42968         (vsx_extract_<mode>_internal2): Likewise.
42969         (vsx_extract_<mode>_load): Likewise.
42970         (vsx_extract_<mode>_store): Likewise.
42971         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
42972         combined into vsx_extract_<mode>_load.
42973         (vsx_extract_<mode>_one_le): Likewise.
42974
42975         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
42976         define the top 64-bit vector element.
42977
42978         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
42979         constraint.
42980
42981         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42982         Document vec_vbpermq builtin.
42983
42984         PR target/60672
42985         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
42986         enable use of xxsldwi and xxpermdi builtin functions.
42987         (vec_xxpermdi): Likewise.
42988
42989         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42990         Document use of vec_xxsldwi and vec_xxpermdi builtins.
42991
42992 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
42993
42994         PR rtl-optimization/60650
42995         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
42996         first_p.  Use it.
42997         (find_spills_for): New.
42998         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
42999         Spill all pseudos on the second iteration.
43000
43001 2014-03-27  Marek Polacek  <polacek@redhat.com>
43002
43003         PR c/50347
43004         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
43005         types.
43006
43007 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43008
43009         * config/s390/s390.c (s390_can_use_return_insn): Check for
43010         call-saved FPRs on 31 bit.
43011
43012 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
43013
43014         PR middle-end/60682
43015         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
43016         if they need regimplification, just drop them instead of
43017         calling gimple_regimplify_operands on them.
43018
43019 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
43020
43021         PR target/60580
43022         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
43023         (aarch64_frame_pointer_required): Adjust logic.
43024         (aarch64_can_eliminate): Adjust logic.
43025         (aarch64_override_options_after_change): Adjust logic.
43026
43027 2014-03-27  Dehao Chen  <dehao@google.com>
43028
43029         * ipa-inline.c (early_inliner): Update node's inline info.
43030
43031 2014-03-26  Dehao Chen  <dehao@google.com>
43032
43033         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
43034         compiler inserted conditional jumps for NAN float check.
43035
43036 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43037
43038         * ubsan.h (ubsan_create_data): Change second argument's type
43039         to const location_t *.
43040         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
43041         _("<unknown>").
43042         (ubsan_create_data): Change second argument to const location_t *PLOC.
43043         Create Loc field whenever PLOC is non-NULL.
43044         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
43045         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
43046         callers.
43047
43048         PR other/59545
43049         * real.c (real_to_integer2): Change type of low to UHWI.
43050
43051 2014-03-26  Tobias Burnus  <burnus@net-b.de>
43052
43053         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
43054         (CILK_SELF_SPECS): New define.
43055         (driver_self_specs): Use it.
43056
43057 2014-03-26  Richard Biener  <rguenther@suse.de>
43058
43059         * tree-pretty-print.c (percent_K_format): Implement special
43060         case for LTO and its stripped down BLOCK tree.
43061
43062 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43063
43064         PR sanitizer/60636
43065         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
43066
43067         * tree-vrp.c (simplify_internal_call_using_ranges): If only
43068         one range is range_int_cst_p, but not both, at least optimize
43069         addition/subtraction of 0 and multiplication by 0 or 1.
43070         * gimple-fold.c (gimple_fold_call): Fold
43071         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
43072         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
43073         INTEGER_CSTs, try to fold at least x * 0 and y - y.
43074
43075 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
43076
43077         PR rtl-optimization/60452
43078         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
43079         <case REG>: Return 1 for invalid offsets from the frame pointer.
43080
43081 2014-03-26  Marek Polacek  <polacek@redhat.com>
43082
43083         PR c/37428
43084         * doc/extend.texi (C Extensions): Mention variable-length arrays in
43085         a structure/union.
43086
43087 2014-03-26  Marek Polacek  <polacek@redhat.com>
43088
43089         PR c/39525
43090         * doc/extend.texi (Designated Inits): Describe what happens to omitted
43091         field members.
43092
43093 2014-03-26  Marek Polacek  <polacek@redhat.com>
43094
43095         PR other/59545
43096         * ira-color.c (update_conflict_hard_regno_costs): Perform the
43097         multiplication in unsigned type.
43098
43099 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43100
43101         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
43102
43103 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43104
43105         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
43106
43107 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43108
43109         PR ipa/60315
43110         * cif-code.def (UNREACHABLE) New code.
43111         * ipa-inline.c (inline_small_functions): Skip edges to
43112         __builtlin_unreachable.
43113         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
43114         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
43115         predicate to __bulitin_unreachable.
43116         (set_cond_stmt_execution_predicate): Fix issue when
43117         invert_tree_comparison returns ERROR_MARK.
43118         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
43119         propagate to inline clones.
43120         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
43121         to unreachable.
43122         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
43123         * cgraphclones.c (cgraph_clone_node): If call destination is already
43124         ureachable, do not redirect it back.
43125         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
43126         unreachable.
43127
43128 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43129
43130         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
43131         Do not modify inline clones.
43132
43133 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43134
43135         * config/i386/i386.md (general_sext_operand): New mode attr.
43136         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
43137         don't generate (sign_extend (const_int)).
43138         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
43139         operands[2].  Use We constraint instead of <i> and
43140         <general_sext_operand> predicate instead of <general_operand>.
43141         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
43142         * config/i386/constraints.md (We): New constraint.
43143         * config/i386/predicates.md (x86_64_sext_operand,
43144         sext_operand): New predicates.
43145
43146 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43147
43148         PR ipa/60600
43149         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
43150         inconsistent devirtualizations to __builtin_unreachable.
43151
43152 2014-03-25  Marek Polacek  <polacek@redhat.com>
43153
43154         PR c/35449
43155         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
43156
43157 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
43158
43159         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
43160         order of elements for big-endian.
43161
43162 2014-03-25  Richard Biener  <rguenther@suse.de>
43163
43164         PR middle-end/60635
43165         * gimplify-me.c (gimple_regimplify_operands): Update the
43166         re-gimplifed stmt.
43167
43168 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43169
43170         PR ipa/59176
43171         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
43172         (lto_output_varpool_node): Likewise.
43173         (input_overwrite_node): Likewise.
43174         (input_varpool_node): Likewise.
43175
43176 2014-03-25  Richard Biener  <rguenther@suse.de>
43177
43178         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
43179         (run_gcc): Likewise.
43180
43181 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43182
43183         * combine.c (simplify_compare_const): Add MODE argument.
43184         Handle mode_width 0 as very large mode_width.
43185         (try_combine, simplify_comparison): Adjust callers.
43186
43187         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
43188         type to avoid signed integer overflow.
43189         * explow.c (plus_constant): Likewise.
43190
43191 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
43192
43193         * doc/generic.texi: Correct typos.
43194
43195 2014-03-24  Tobias Burnus  <burnus@net-b.de>
43196
43197         * doc/invoke.texi (-flto): Expand section about
43198         using static libraries with LTO.
43199
43200 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43201
43202         PR rtl-optimization/60501
43203         * optabs.def (addptr3_optab): New optab.
43204         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
43205         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
43206         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
43207
43208         * lra.c (emit_add3_insn): Use the addptr pattern if available.
43209
43210         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
43211
43212 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
43213
43214         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
43215         _mm512_set1_pd.
43216
43217         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
43218         (_mm256_undefined_ps): Define.
43219         (_mm256_undefined_pd): Define.
43220         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
43221         (_mm_undefined_pd): Define.
43222         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
43223         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
43224         (_mm512_undefined_ps): Define.
43225         (_mm512_undefined_pd): Define.
43226         Use _mm*_undefined_*.
43227         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
43228
43229 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
43230
43231         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
43232         (lshr_simd): DI mode added.
43233         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
43234         (aarch64_ushr_simddi): Likewise.
43235         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
43236         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
43237         (vshrd_n_u64): Likewise.
43238
43239 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43240
43241         * Makefile.in (s-macro_list): Depend on cc1.
43242
43243 2014-03-23  Teresa Johnson  <tejohnson@google.com>
43244
43245         * ipa-utils.c (ipa_print_order): Use specified dump file.
43246
43247 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
43248
43249         PR rtl-optimization/60601
43250         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
43251
43252         * gcc.c (eval_spec_function): Initialize save_growing_value.
43253
43254 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
43255
43256         PR sanitizer/60613
43257         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
43258         code == MINUS_EXPR, never swap op0 with op1.
43259
43260         * toplev.c (init_local_tick): Avoid signed integer multiplication
43261         overflow.
43262         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
43263         shift by first operand's bitsize.
43264
43265 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
43266
43267         PR target/60610
43268         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
43269         redefine to 1 or 0.
43270         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
43271         TARGET_ISA_64BIT_P(x).
43272
43273 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43274
43275         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
43276         pattern for vector nor instead of subtract from splat(-1).
43277         (altivec_expand_vec_perm_const_le): Likewise.
43278
43279 2014-03-21  Richard Henderson  <rth@twiddle.net>
43280
43281         PR target/60598
43282         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
43283         related insns after epilogue_completed.
43284
43285 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43286
43287         PR ipa/59176
43288         * cgraph.h (symtab_node): New flag body_removed.
43289         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
43290         when removing bodies.
43291         * symtab.c (dump_symtab_base): Dump body_removed flag.
43292         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
43293         had their bodies removed.
43294
43295 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43296
43297         PR ipa/60419
43298         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
43299         in the border.
43300
43301 2014-03-21  Richard Biener  <rguenther@suse.de>
43302
43303         PR tree-optimization/60577
43304         * tree-core.h (struct tree_base): Document nothrow_flag use
43305         in DECL_NONALIASED.
43306         * tree.h (DECL_NONALIASED): New.
43307         (may_be_aliased): Adjust.
43308         * coverage.c (build_var): Set DECL_NONALIASED.
43309
43310 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43311
43312         * expr.c (expand_expr_real_1): Remove outdated comment.
43313
43314 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
43315
43316         PR middle-end/60597
43317         * ira.c (adjust_cleared_regs): Call copy_rtx on
43318         *reg_equiv[REGNO (loc)].src_p before passing it to
43319         simplify_replace_fn_rtx.
43320
43321         PR target/60568
43322         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
43323         into CONST, put pic register as first operand of PLUS.  Use
43324         gen_const_mem for both 32-bit and 64-bit PIC got loads.
43325
43326 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43327
43328         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43329
43330 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43331
43332         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43333         around for store forwarding issue in the FPU on the UT699.
43334         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43335         loads and operations if -mfix-ut699 is specified.
43336         (divtf3_hq): Tweak attribute.
43337         (sqrttf2_hq): Likewise.
43338
43339 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43340
43341         * calls.c (store_one_arg): Remove incorrect const qualification on the
43342         type of the temporary.
43343         * cfgexpand.c (expand_return): Likewise.
43344         * expr.c (expand_constructor): Likewise.
43345         (expand_expr_real_1): Likewise.
43346
43347 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
43348
43349         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43350         of parts.
43351
43352 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
43353
43354         PR target/60039
43355         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43356
43357 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
43358
43359         * config/arm/aarch-common-protos.h
43360         (alu_cost_table): Fix spelling of "extend".
43361         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43362
43363 2014-03-19  Richard Biener  <rguenther@suse.de>
43364
43365         PR middle-end/60553
43366         * tree-core.h (tree_type_common): Re-order pointer members
43367         to reduce recursion depth during GC walks.
43368
43369 2014-03-19  Marek Polacek  <polacek@redhat.com>
43370
43371         PR sanitizer/60569
43372         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
43373         before accessing it.
43374
43375 2014-03-19  Richard Biener  <rguenther@suse.de>
43376
43377         PR lto/59543
43378         * lto-streamer-in.c (input_function): In WPA stage do not drop
43379         debug stmts.
43380
43381 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
43382
43383         PR tree-optimization/60559
43384         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
43385         with build_zero_cst assignment.
43386
43387 2014-03-18  Kai Tietz  <ktietz@redhat.com>
43388
43389         PR rtl-optimization/56356
43390         * sdbout.c (sdbout_parms): Verify that parms'
43391         incoming argument is valid.
43392         (sdbout_reg_parms): Likewise.
43393
43394 2014-03-18  Richard Henderson  <rth@redhat.com>
43395
43396         PR target/60562
43397         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
43398         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
43399         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
43400
43401 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
43402
43403         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
43404         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
43405         Italicize plugin event names in description.  Explain that
43406         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
43407         Remind that no GCC functions should be called after PLUGIN_FINISH.
43408         Explain what pragmas with expansion are.
43409
43410 2014-03-18  Martin Liska  <mliska@suse.cz>
43411
43412         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
43413         gimple call statement is update.
43414         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
43415         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
43416
43417 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43418
43419         PR sanitizer/60557
43420         * ubsan.c (ubsan_instrument_unreachable): Call
43421         initialize_sanitizer_builtins.
43422         (ubsan_pass): Likewise.
43423
43424         PR sanitizer/60535
43425         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
43426         varpool_finalize_decl instead of rest_of_decl_compilation.
43427
43428 2014-03-18  Richard Biener  <rguenther@suse.de>
43429
43430         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
43431         by using bitmap_and_compl instead of bitmap_and_compl_into.
43432         (df_rd_transfer_function): Likewise.
43433
43434 2014-03-18  Richard Biener  <rguenther@suse.de>
43435
43436         * doc/lto.texi (fresolution): Fix typo.
43437
43438 2014-03-18  Richard Biener  <rguenther@suse.de>
43439
43440         * doc/invoke.texi (flto): Update for changes in 4.9.
43441
43442 2014-03-18  Richard Biener  <rguenther@suse.de>
43443
43444         * doc/loop.texi: Remove section on the removed lambda framework.
43445         Update loop docs with recent changes in preserving loop structure.
43446
43447 2014-03-18  Richard Biener  <rguenther@suse.de>
43448
43449         * doc/lto.texi (-fresolution): Document.
43450
43451 2014-03-18  Richard Biener  <rguenther@suse.de>
43452
43453         * doc/contrib.texi: Adjust my name.
43454
43455 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43456
43457         PR ipa/58721
43458         * internal-fn.c: Include diagnostic-core.h.
43459         (expand_BUILTIN_EXPECT): New function.
43460         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
43461         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
43462         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
43463         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
43464         IFN_BUILTIN_EXPECT.
43465         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
43466         Revert 3 argument __builtin_expect code.
43467         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
43468         * gimple-fold.c (gimple_fold_call): Likewise.
43469         * tree.h (fold_builtin_expect): New prototype.
43470         * builtins.c (build_builtin_expect_predicate): Add predictor
43471         argument, if non-NULL, create 3 argument __builtin_expect.
43472         (fold_builtin_expect): No longer static.  Add ARG2 argument,
43473         pass it through to build_builtin_expect_predicate.
43474         (fold_builtin_2): Adjust caller.
43475         (fold_builtin_3): Handle BUILT_IN_EXPECT.
43476         * internal-fn.def (BUILTIN_EXPECT): New.
43477
43478 2014-03-18  Tobias Burnus  <burnus@net-b.de>
43479
43480         PR ipa/58721
43481         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
43482         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
43483         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
43484
43485 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
43486
43487         PR ipa/58721
43488         * predict.c (combine_predictions_for_bb): Fix up formatting.
43489         (expr_expected_value_1, expr_expected_value): Add predictor argument,
43490         fill what it points to if non-NULL.
43491         (tree_predict_by_opcode): Adjust caller, use the predictor.
43492         * predict.def (PRED_COMPARE_AND_SWAP): Add.
43493
43494 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
43495
43496         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43497         proper constant for the store mode.
43498
43499 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
43500
43501         * symtab.c (change_decl_assembler_name): Fix transparent alias
43502         chain construction.
43503
43504 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
43505
43506         * config/aarch64/aarch64.c: Correct the comments about the
43507         aarch64 stack layout.
43508
43509 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
43510
43511         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
43512         check for GF_OMP_FOR_KIND_FOR.
43513
43514 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
43515
43516         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
43517         ymm and zmm register names.
43518
43519 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
43520
43521         PR target/60516
43522         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
43523         note creation for the 2010-08-31 changes.
43524
43525 2014-03-17  Marek Polacek  <polacek@redhat.com>
43526
43527         PR middle-end/60534
43528         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
43529         as -fno-tree-loop-vectorize.
43530         (expand_omp_simd): Likewise.
43531
43532 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
43533
43534         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
43535         (eligible_for_call_delay): New prototype.
43536         * config/sparc/sparc.c (tls_call_delay): Rename into...
43537         (eligible_for_call_delay): ...this.  Return false if the instruction
43538         cannot be put in the delay slot of a branch.
43539         (eligible_for_restore_insn): Simplify.
43540         (eligible_for_return_delay): Return false if the instruction cannot be
43541         put in the delay slot of a branch and simplify.
43542         (eligible_for_sibcall_delay): Return false if the instruction cannot be
43543         put in the delay slot of a branch.
43544         * config/sparc/sparc.md (fix_ut699): New attribute.
43545         (tls_call_delay): Delete.
43546         (in_call_delay): Reimplement.
43547         (eligible_for_sibcall_delay): Rename into...
43548         (in_sibcall_delay): ...this.
43549         (eligible_for_return_delay): Rename into...
43550         (in_return_delay): ...this.
43551         (in_branch_delay): Reimplement.
43552         (in_uncond_branch_delay): Delete.
43553         (in_annul_branch_delay): Delete.
43554
43555 2014-03-14  Richard Henderson  <rth@redhat.com>
43556
43557         PR target/60525
43558         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
43559         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
43560         (*floathi<X87MODEF>2_i387_with_temp): Remove.
43561         (floathi splitters): Remove.
43562         (float<SWI48x>xf2): New pattern.
43563         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
43564         code that tried to handle DImode for 32-bit, but which was excluded
43565         by the pattern's condition.  Drop allocation of stack temporary.
43566         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
43567         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
43568         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
43569         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
43570         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
43571         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
43572         (*float<SWI48><MODEF>2_sse_interunit): Remove.
43573         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
43574         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
43575         (*float<SWI48x><X87MODEF>2_i387): Remove.
43576         (all float _with_temp splitters): Remove.
43577         (*float<SWI48x><MODEF>2_i387): New pattern.
43578         (*float<SWI48><MODEF>2_sse): New pattern.
43579         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
43580         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
43581
43582 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
43583             Marek Polacek  <polacek@redhat.com>
43584
43585         PR middle-end/60484
43586         * common.opt (dump_base_name_prefixed): New Variable.
43587         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
43588         if x_dump_base_name_prefixed is already set, set it at the end.
43589
43590 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
43591
43592         PR rtl-optimization/60508
43593         * lra-constraints.c (get_reload_reg): Add new parameter
43594         in_subreg_p.
43595         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
43596         Pass the new parameter values.
43597
43598 2014-03-14  Richard Biener  <rguenther@suse.de>
43599
43600         * common.opt: Revert unintented changes from r205065.
43601         * opts.c: Likewise.
43602
43603 2014-03-14  Richard Biener  <rguenther@suse.de>
43604
43605         PR middle-end/60518
43606         * cfghooks.c (split_block): Properly adjust all loops the
43607         block was a latch of.
43608
43609 2014-03-14  Martin Jambor  <mjambor@suse.cz>
43610
43611         PR lto/60461
43612         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
43613         and simplify it.
43614
43615 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
43616
43617         PR target/59396
43618         * config/avr/avr.c (avr_set_current_function): Pass function name
43619         through default_strip_name_encoding before sanity checking instead
43620         of skipping the first char of the assembler name.
43621
43622 2014-03-13  Richard Henderson  <rth@redhat.com>
43623
43624         PR debug/60438
43625         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
43626         (ix86_force_to_memory, ix86_free_from_memory): Remove.
43627         * config/i386/i386-protos.h: Likewise.
43628         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
43629         in the expander instead of a splitter.
43630         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
43631         any possibility of requiring a memory.
43632         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
43633         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
43634         (fp branch splitters): Update for ix86_split_fp_branch.
43635         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
43636         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
43637         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
43638         (*fop_<MODEF>_2_i387): Remove f/r alternative.
43639         (*fop_<MODEF>_3_i387): Likewise.
43640         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
43641         (splitters for the fop_* register patterns): Remove.
43642         (fscalexf4_i387): Rename from *fscalexf4_i387.
43643         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
43644
43645 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43646
43647         PR tree-optimization/59779
43648         * tree-dfa.c (get_ref_base_and_extent): Use double_int
43649         type for bitsize and maxsize instead of HOST_WIDE_INT.
43650
43651 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
43652
43653         PR rtl-optimization/57320
43654         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
43655         the CFG after thread_prologue_and_epilogue_insns.
43656
43657 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
43658
43659         PR rtl-optimization/57189
43660         * lra-constraints.c (process_alt_operands): Disfavor spilling
43661         vector pseudos.
43662
43663 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
43664
43665         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
43666
43667 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43668
43669         PR tree-optimization/59025
43670         PR middle-end/60418
43671         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
43672         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
43673
43674 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
43675
43676         PR target/60486
43677         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
43678         calls of avr_out_plus_1.
43679
43680 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
43681
43682         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
43683         BB's single pred and update the father loop's latch info later.
43684
43685 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
43686
43687         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
43688         (VEC_M): Likewise.
43689         (VEC_N): Likewise.
43690         (VEC_R): Likewise.
43691         (VEC_base): Likewise.
43692         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
43693         registers, we need to swap double words in little endian mode.
43694
43695         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
43696         to be a container mode for 128-bit integer operations added in ISA
43697         2.07.  Unlike TImode and PTImode, the preferred register set is
43698         the Altivec/VMX registers for the 128-bit operations.
43699
43700         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
43701         declarations.
43702         (rs6000_split_128bit_ok_p): Likewise.
43703
43704         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
43705         macros for creating ISA 2.07 normal and overloaded builtin
43706         functions with 3 arguments.
43707         (BU_P8V_OVERLOAD_3): Likewise.
43708         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
43709         for use as overloaded functions.
43710         (VPERM_1TI_UNS): Likewise.
43711         (VSEL_1TI): Likewise.
43712         (VSEL_1TI_UNS): Likewise.
43713         (ST_INTERNAL_1ti): Likewise.
43714         (LD_INTERNAL_1ti): Likewise.
43715         (XXSEL_1TI): Likewise.
43716         (XXSEL_1TI_UNS): Likewise.
43717         (VPERM_1TI): Likewise.
43718         (VPERM_1TI_UNS): Likewise.
43719         (XXPERMDI_1TI): Likewise.
43720         (SET_1TI): Likewise.
43721         (LXVD2X_V1TI): Likewise.
43722         (STXVD2X_V1TI): Likewise.
43723         (VEC_INIT_V1TI): Likewise.
43724         (VEC_SET_V1TI): Likewise.
43725         (VEC_EXT_V1TI): Likewise.
43726         (EQV_V1TI): Likewise.
43727         (NAND_V1TI): Likewise.
43728         (ORC_V1TI): Likewise.
43729         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
43730         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
43731         overloaded builtin.
43732         (VADDUQM): Likewise.
43733         (VSUBCUQ): Likewise.
43734         (VADDEUQM): Likewise.
43735         (VADDECUQ): Likewise.
43736         (VSUBEUQM): Likewise.
43737         (VSUBECUQ): Likewise.
43738
43739         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
43740         __int128_t and __uint128_t types.
43741         (__uint128_type): Likewise.
43742         (altivec_categorize_keyword): Add support for vector __int128_t,
43743         vector __uint128_t, vector __int128, and vector unsigned __int128
43744         as a container type for TImode operations that need to be done in
43745         VSX/Altivec registers.
43746         (rs6000_macro_to_expand): Likewise.
43747         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
43748         to support 128-bit integer instructions vaddcuq, vadduqm,
43749         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
43750         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
43751
43752         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
43753         for V1TImode, and set up preferences to use VSX/Altivec registers.
43754         Setup VSX reload handlers.
43755         (rs6000_debug_reg_global): Likewise.
43756         (rs6000_init_hard_regno_mode_ok): Likewise.
43757         (rs6000_preferred_simd_mode): Likewise.
43758         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
43759         (easy_altivec_constant): Likewise.
43760         (output_vec_const_move): Likewise.
43761         (rs6000_expand_vector_set): Convert V1TImode set and extract to
43762         simple move.
43763         (rs6000_expand_vector_extract): Likewise.
43764         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
43765         addressing.
43766         (rs6000_const_vec): Add support for V1TImode.
43767         (rs6000_emit_le_vsx_load): Swap double words when loading or
43768         storing TImode/V1TImode.
43769         (rs6000_emit_le_vsx_store): Likewise.
43770         (rs6000_emit_le_vsx_move): Likewise.
43771         (rs6000_emit_move): Add support for V1TImode.
43772         (altivec_expand_ld_builtin): Likewise.
43773         (altivec_expand_st_builtin): Likewise.
43774         (altivec_expand_vec_init_builtin): Likewise.
43775         (altivec_expand_builtin): Likewise.
43776         (rs6000_init_builtins): Add support for V1TImode type.  Add
43777         support for ISA 2.07 128-bit integer builtins.  Define type names
43778         for the VSX/Altivec vector types.
43779         (altivec_init_builtins): Add support for overloaded vector
43780         functions with V1TImode type.
43781         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
43782         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
43783         external function.
43784         (rs6000_split_128bit_ok_p): Likewise.
43785         (rs6000_handle_altivec_attribute): Create V1TImode from vector
43786         __int128_t and vector __uint128_t.
43787
43788         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
43789         and mode attributes.
43790         (VSX_M): Likewise.
43791         (VSX_M2): Likewise.
43792         (VSm): Likewise.
43793         (VSs): Likewise.
43794         (VSr): Likewise.
43795         (VSv): Likewise.
43796         (VS_scalar): Likewise.
43797         (VS_double): Likewise.
43798         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
43799
43800         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
43801         we support the ISA 2.07 128-bit integer arithmetic instructions.
43802         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
43803         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
43804         and TImode types for use with the builtin functions.
43805         (V1TI_type_node): Likewise.
43806         (unsigned_V1TI_type_node): Likewise.
43807         (intTI_type_internal_node): Likewise.
43808         (uintTI_type_internal_node): Likewise.
43809
43810         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
43811         128-bit builtin functions.
43812         (UNSPEC_VADDEUQM): Likewise.
43813         (UNSPEC_VADDECUQ): Likewise.
43814         (UNSPEC_VSUBCUQ): Likewise.
43815         (UNSPEC_VSUBEUQM): Likewise.
43816         (UNSPEC_VSUBECUQ): Likewise.
43817         (VM): Add V1TImode to vector mode iterators.
43818         (VM2): Likewise.
43819         (VI_unit): Likewise.
43820         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
43821         (altivec_vaddcuq): Likewise.
43822         (altivec_vsubuqm): Likewise.
43823         (altivec_vsubcuq): Likewise.
43824         (altivec_vaddeuqm): Likewise.
43825         (altivec_vaddecuq): Likewise.
43826         (altivec_vsubeuqm): Likewise.
43827         (altivec_vsubecuq): Likewise.
43828
43829         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
43830         mode iterators.
43831         (BOOL_128): Likewise.
43832         (BOOL_REGS_OUTPUT): Likewise.
43833         (BOOL_REGS_OP1): Likewise.
43834         (BOOL_REGS_OP2): Likewise.
43835         (BOOL_REGS_UNARY): Likewise.
43836         (BOOL_REGS_AND_CR0): Likewise.
43837
43838         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
43839         128-bit integer builtin support.
43840         (vec_vadduqm): Likewise.
43841         (vec_vaddecuq): Likewise.
43842         (vec_vaddeuqm): Likewise.
43843         (vec_vsubecuq): Likewise.
43844         (vec_vsubeuqm): Likewise.
43845         (vec_vsubcuq): Likewise.
43846         (vec_vsubuqm): Likewise.
43847
43848         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43849         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
43850         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
43851         128-bit integer add/subtract to ISA 2.07.
43852
43853 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
43854
43855         * config/arc/arc.c (arc_predicate_delay_insns):
43856         Fix third argument passed to conditionalize_nonjump.
43857
43858 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
43859
43860         * config/aarch64/aarch64-builtins.c
43861         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
43862         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
43863         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
43864         instead of __builtin_lfloor.
43865         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
43866
43867 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43868
43869         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
43870         (tree_ssa_ifcombine_bb_1): New function.
43871         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
43872         is an empty forwarder block to then_bb or vice versa and then_bb
43873         and else_bb are effectively swapped.
43874
43875 2014-03-12  Christian Bruel  <christian.bruel@st.com>
43876
43877         PR target/60264
43878         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
43879         REG_CFA_DEF_CFA note.
43880         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
43881         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
43882
43883 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
43884
43885         PR tree-optimization/60454
43886         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
43887
43888 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43889
43890         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
43891         Do not define target_cpu_default2 to generic.
43892         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
43893         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
43894         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
43895
43896 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43897             Marc Glisse  <marc.glisse@inria.fr>
43898
43899         PR tree-optimization/60502
43900         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
43901         instead of build_low_bits_mask.
43902
43903 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43904
43905         PR middle-end/60482
43906         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
43907         if there are multiple uses, but op doesn't live on E edge.
43908         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
43909         clobber stmts before __builtin_unreachable.
43910
43911 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
43912
43913         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
43914         hard_frame_pointer_rtx.
43915         * cse.c (cse_insn): Remove volatile check.
43916         * cselib.c (cselib_process_insn): Likewise.
43917         * dse.c (scan_insn): Likewise.
43918
43919 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43920
43921         * config/arc/arc.c (conditionalize_nonjump): New function,
43922         broken out of ...
43923         (arc_ifcvt): ... this.
43924         (arc_predicate_delay_insns): Use it.
43925
43926 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43927
43928         * config/arc/predicates.md (extend_operand): During/after reload,
43929         allow const_int_operand.
43930         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
43931         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
43932         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
43933         to "i".
43934         (umulsi3_highpart_i): Likewise.
43935
43936 2014-03-11  Richard Biener  <rguenther@suse.de>
43937
43938         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
43939         Add asserts to guard possible wrong-code bugs.
43940
43941 2014-03-11  Richard Biener  <rguenther@suse.de>
43942
43943         PR tree-optimization/60429
43944         PR tree-optimization/60485
43945         * tree-ssa-structalias.c (set_union_with_increment): Properly
43946         take into account all fields that overlap the shifted vars.
43947         (do_sd_constraint): Likewise.
43948         (do_ds_constraint): Likewise.
43949         (get_constraint_for_ptr_offset): Likewise.
43950
43951 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
43952
43953         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
43954         (nios2_compute_frame_layout):
43955         Add calculation of cfun->machine->fp_save_offset.
43956         (nios2_expand_prologue): Correct setting of frame pointer register
43957         in prologue.
43958         (nios2_expand_epilogue): Update recovery of stack pointer from
43959         frame pointer accordingly.
43960         (nios2_initial_elimination_offset): Update calculation of offset
43961         for eliminating to HARD_FRAME_POINTER_REGNUM.
43962
43963 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
43964
43965         PR ipa/60457
43966         * ipa.c (symtab_remove_unreachable_nodes): Don't call
43967         cgraph_get_create_node on VAR_DECLs.
43968
43969 2014-03-10  Richard Biener  <rguenther@suse.de>
43970
43971         PR middle-end/60474
43972         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
43973
43974 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
43975
43976         * config/vms/vms.opt (vms_float_format): New variable.
43977
43978 2014-03-08  Tobias Burnus  <burnus@net-b.de>
43979
43980         * doc/invoke.texi (-fcilkplus): Update implementation status.
43981
43982 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
43983             Richard Biener  <rguenther@suse.de>
43984
43985         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
43986         consistently accross all TUs.
43987         (run_gcc): Enable -fshort-double automatically at link at link-time
43988         and disallow override.
43989
43990 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
43991
43992         PR target/58271
43993         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
43994         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
43995         if they can't be used.
43996
43997 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43998
43999         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
44000         for Solaris 11/x86 ld.
44001         * configure: Regenerate.
44002
44003 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
44004
44005         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
44006         (LIB_TLS_SPEC): Save as ld_tls_libs.
44007         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
44008         (HAVE_AS_IX86_TLSLDM): New test.
44009         * configure, config.in: Regenerate.
44010         * config/i386/i386.c (legitimize_tls_address): Fall back to
44011         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
44012         cannot support TLS_MODEL_LOCAL_DYNAMIC.
44013         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
44014         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
44015
44016 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
44017
44018         * common.opt (fira-loop-pressure): Mark as optimization.
44019
44020 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
44021
44022         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
44023         an OpenMP mappable type.
44024
44025 2014-03-06  Matthias Klose  <doko@ubuntu.com>
44026
44027         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
44028         MULTILIB_OSDIRNAMES is not defined.
44029
44030 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
44031             Meador Inge  <meadori@codesourcery.com>
44032
44033         PR target/58595
44034         * config/arm/arm.c (arm_tls_symbol_p): Remove.
44035         (arm_legitimize_address): Call legitimize_tls_address for any
44036         arm_tls_referenced_p expression, handle constant addend.  Call it
44037         before testing for !TARGET_ARM.
44038         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
44039
44040 2014-03-06  Richard Biener  <rguenther@suse.de>
44041
44042         PR middle-end/60445
44043         PR lto/60424
44044         PR lto/60427
44045         Revert
44046         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44047
44048         * tree-streamer.c (record_common_node): Assert we don't record
44049         nodes with type double.
44050         (preload_common_node): Skip type double, complex double and double
44051         pointer since it is now frontend dependent due to fshort-double option.
44052
44053 2014-03-06  Richard Biener  <rguenther@suse.de>
44054
44055         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
44056         or -fno-lto is specified and the linker has full plugin support.
44057         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
44058         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
44059         * lto-wrapper.c (merge_and_complain): Merge compile-time
44060         optimization levels.
44061         (run_gcc): And pass it through to the link options.
44062
44063 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
44064
44065         PR debug/60381
44066         Revert:
44067         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44068         PR debug/59992
44069         * cselib.c (remove_useless_values): Skip to avoid quadratic
44070         behavior if the condition moved from...
44071         (cselib_process_insn): ... here holds.
44072
44073 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44074
44075         PR plugins/59335
44076         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
44077         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
44078
44079         PR plugins/59335
44080         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
44081         (TM_H): Add x86-tune.def.
44082
44083 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44084
44085         * config/aarch64/aarch64.c (generic_tunings):
44086         Use cortexa57_extra_costs.
44087
44088 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44089
44090         PR lto/60404
44091         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
44092         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
44093         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
44094         cost for in_lto_p.
44095
44096 2014-03-04  Heiher  <r@hev.cc>
44097
44098         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
44099         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
44100
44101 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
44102
44103         * config/i386/predicates.md (const2356_operand): Change to ...
44104         (const2367_operand): ... this.
44105         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
44106         const2367_operand.
44107         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44108         (*avx512pf_scatterpf<mode>sf): Ditto.
44109         (avx512pf_scatterpf<mode>df): Ditto.
44110         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44111         (*avx512pf_scatterpf<mode>df): Ditto.
44112         * config/i386/i386.c (ix86_expand_builtin): Update
44113         incorrect hint operand error message.
44114
44115 2014-03-04  Richard Biener  <rguenther@suse.de>
44116
44117         * lto-section-in.c (lto_get_section_data): Fix const cast.
44118
44119 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44120
44121         * tree-streamer.c (record_common_node): Assert we don't record
44122         nodes with type double.
44123         (preload_common_node): Skip type double, complex double and double
44124         pointer since it is now frontend dependent due to fshort-double option.
44125
44126 2014-03-04  Richard Biener  <rguenther@suse.de>
44127
44128         PR lto/60405
44129         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
44130         (lto_input_toplevel_asms): Likewise.
44131         * lto-section-in.c (lto_get_section_data): Instead do it here
44132         for every section.
44133
44134 2014-03-04  Richard Biener  <rguenther@suse.de>
44135
44136         PR tree-optimization/60382
44137         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
44138         dead PHIs a reduction.
44139
44140 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
44141
44142         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
44143         hint value.
44144         (_mm_prefetch): Move out of GCC target("sse") pragma.
44145         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
44146         GCC target("prfchw") pragma.
44147         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
44148         for locality <= 2.
44149         * config/i386/i386.c (ix86_option_override_internal): Enable
44150         -mprfchw with -mprefetchwt1.
44151
44152 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44153
44154         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
44155         Mark as varying.
44156
44157 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44158
44159         * opts.h (CL_PCH_IGNORE): Define.
44160         * targhooks.c (option_affects_pch_p):
44161         Return false for options that have CL_PCH_IGNORE set.
44162         * opt-functions.awk: Process PchIgnore.
44163         * doc/options.texi: Document PchIgnore.
44164
44165         * config/arc/arc.opt (misize): Add PchIgnore property.
44166
44167 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44168
44169         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
44170         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
44171         constraint on constants to permit them being loaded into
44172         GENERAL_REGS or BASE_REGS.
44173
44174 2014-03-03  Nick Clifton  <nickc@redhat.com>
44175
44176         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
44177         anti-cacnonical alternatives.
44178         (negandhi3_real): New pattern.
44179         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
44180
44181 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
44182
44183         * config/avr/avr-mcus.def: Remove atxmega16x1.
44184         * config/avr/avr-tables.opt: Regenerate.
44185         * config/avr/t-multilib: Regenerate.
44186         * doc/avr-mmcu.texi: Regenerate.
44187
44188 2014-03-03  Tobias Grosser  <tobias@grosser.es>
44189             Mircea Namolaru  <mircea.namolaru@inria.fr>
44190
44191         PR tree-optimization/58028
44192         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
44193         scalar dimensions.
44194
44195 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
44196
44197         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
44198         not handled by recognizers.
44199
44200 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
44201
44202         PR middle-end/60175
44203         * function.c (expand_function_end): Don't emit
44204         clobber_return_register sequence if clobber_after is a BARRIER.
44205         * cfgexpand.c (construct_exit_block): Append instructions before
44206         return_label to prev_bb.
44207
44208 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44209
44210         * config/rs6000/constraints.md: Document reserved use of "wc".
44211
44212 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44213
44214         PR ipa/60150
44215         * ipa.c (function_and_variable_visibility): When dissolving comdat
44216         group, also set all symbols to local.
44217
44218 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44219
44220         PR ipa/60306
44221
44222         Revert:
44223         2013-12-14  Jan Hubicka  <jh@suse.cz>
44224         PR middle-end/58477
44225         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
44226
44227 2014-03-02  Jon Beniston  <jon@beniston.com>
44228
44229         PR bootstrap/48230
44230         PR bootstrap/50927
44231         PR bootstrap/52466
44232         PR target/46898
44233         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
44234         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
44235         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
44236         (simple_return, *simple_return): New patterns
44237         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
44238         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
44239
44240 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
44241
44242         * dwarf2out.c (gen_subprogram_die): Tidy.
44243
44244 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
44245
44246         PR target/60071
44247         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
44248         (*mov_t_msb_neg_negc): ... this new insn.
44249
44250 2014-02-28  Jason Merrill  <jason@redhat.com>
44251
44252         PR c++/58678
44253         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
44254         function.
44255
44256 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
44257
44258         PR c++/60314
44259         * dwarf2out.c (decltype_auto_die): New static.
44260         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
44261         (gen_type_die_with_usage): Handle 'decltype(auto)'.
44262         (is_cxx_auto): Likewise.
44263
44264 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
44265
44266         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
44267         we are not using general regs only.
44268
44269 2014-02-28  Richard Biener  <rguenther@suse.de>
44270
44271         PR target/60280
44272         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
44273         previous fix and only allow to remove trivial pre-headers
44274         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
44275         (remove_forwarder_block): Properly update the latch of a loop.
44276
44277 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44278
44279         PR debug/59992
44280         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
44281         (cselib_preserved_hash_table): New.
44282         (preserve_constants_and_equivs): Move preserved vals to it.
44283         (cselib_find_slot): Look it up first.
44284         (cselib_init): Initialize it.
44285         (cselib_finish): Release it.
44286         (dump_cselib_table): Dump it.
44287
44288 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44289
44290         PR debug/59992
44291         * cselib.c (remove_useless_values): Skip to avoid quadratic
44292         behavior if the condition moved from...
44293         (cselib_process_insn): ... here holds.
44294
44295 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44296
44297         PR debug/57232
44298         * var-tracking.c (vt_initialize): Apply the same condition to
44299         preserve the CFA base value.
44300
44301 2014-02-28  Joey Ye  <joey.ye@arm.com>
44302
44303         PR target/PR60169
44304         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
44305         if reload in progress or completed.
44306
44307 2014-02-28  Tobias Burnus  <burnus@net-b.de>
44308
44309         PR middle-end/60147
44310         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
44311         NAMELIST_DECL.
44312
44313 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
44314
44315         * doc/tm.texi.in (Condition Code Status): Update documention for
44316         relative locations of cc0-setter and cc0-user.
44317
44318 2014-02-27  Jeff Law  <law@redhat.com>
44319
44320         PR rtl-optimization/52714
44321         * combine.c (try_combine): When splitting an unrecognized PARALLEL
44322         into two independent simple sets, if I3 is a jump, ensure the
44323         pattern we place into I3 is a (set (pc) ...).
44324
44325 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
44326             Jeff Law  <law@redhat.com>
44327
44328         PR rtl-optimization/49847
44329         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44330         are in different blocks.
44331         * doc/tm.texi (Condition Code Status): Update documention for
44332         relative locations of cc0-setter and cc0-user.
44333
44334 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
44335
44336         PR target/59222
44337         * lra.c (lra_emit_add): Check SUBREG too.
44338
44339 2014-02-27  Andreas Schwab  <schwab@suse.de>
44340
44341         * config/m68k/m68k.c (m68k_option_override): Disable
44342         -flive-range-shrinkage for classic m68k.
44343         (m68k_override_options_after_change): Likewise.
44344
44345 2014-02-27  Marek Polacek  <polacek@redhat.com>
44346
44347         PR middle-end/59223
44348         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44349         -Wmaybe-uninitialized.
44350
44351 2014-02-27  Alan Modra  <amodra@gmail.com>
44352
44353         PR target/57936
44354         * reload1.c (emit_input_reload_insns): When reload_override_in,
44355         set old to rl->in_reg when rl->in_reg is a subreg.
44356
44357 2014-02-26  Richard Biener  <rguenther@suse.de>
44358
44359         PR bootstrap/60343
44360         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44361
44362 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44363
44364         * common/config/i386/predicates.md (const1256_operand): Remove.
44365         (const2356_operand): New.
44366         (const_1_to_2_operand): Remove.
44367         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44368         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44369         (*avx512pf_gatherpf<mode>sf): Ditto.
44370         (avx512pf_gatherpf<mode>df): Ditto.
44371         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44372         (*avx512pf_gatherpf<mode>df): Ditto.
44373         (avx512pf_scatterpf<mode>sf): Ditto.
44374         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44375         (*avx512pf_scatterpf<mode>sf): Ditto.
44376         (avx512pf_scatterpf<mode>df): Ditto.
44377         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44378         (*avx512pf_scatterpf<mode>df): Ditto.
44379         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
44380
44381 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
44382
44383         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
44384         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
44385         (_mm512_mask_testn_epi64_mask): Move to ...
44386         * config/i386/avx512cdintrin.h: Here.
44387         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
44388         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
44389         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
44390         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
44391         TARGET_AVX512F from TARGET_AVX512CD.
44392
44393 2014-02-26  Richard Biener  <rguenther@suse.de>
44394
44395         PR ipa/60327
44396         * ipa.c (walk_polymorphic_call_targets): Properly guard
44397         call to inline_update_overall_summary.
44398
44399 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
44400
44401         PR target/60280
44402         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
44403         and latches only if requested.  Fix latch if it is removed.
44404         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
44405         LOOPS_HAVE_PREHEADERS.
44406
44407 2014-02-25  Andrew Pinski  <apinski@cavium.com>
44408
44409         * builtins.c (expand_builtin_thread_pointer): Create a new target
44410         when the target is NULL.
44411
44412 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
44413
44414         PR rtl-optimization/60317
44415         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44416         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44417         * lra-assigns.c: Include params.h.
44418         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
44419         other reload pseudos considerations.
44420
44421 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44422
44423         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
44424         to use canonical form for nor<mode>3.
44425
44426 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44427
44428         PR target/55426
44429         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
44430         conversions.
44431
44432 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44433
44434         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
44435         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
44436         (ix86_handle_option): Handle OPT_mprefetchwt1.
44437         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
44438         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
44439         PREFETCHWT1 CPUID.
44440         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44441         OPTION_MASK_ISA_PREFETCHWT1.
44442         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
44443         (PTA_PREFETCHWT1): New.
44444         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
44445         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
44446         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
44447         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
44448         (*prefetch_avx512pf_<mode>_: Change into ...
44449         (*prefetch_prefetchwt1_<mode>: This.
44450         * config/i386/i386.opt (mprefetchwt1): New.
44451         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
44452         (_mm_prefetch): Handle intent to write.
44453         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
44454
44455 2014-02-25  Richard Biener  <rguenther@suse.de>
44456
44457         PR middle-end/60291
44458         * emit-rtl.c (mem_attrs_htab): Remove.
44459         (mem_attrs_htab_hash): Likewise.
44460         (mem_attrs_htab_eq): Likewise.
44461         (set_mem_attrs): Always allocate new mem-attrs when something changed.
44462         (init_emit_once): Do not allocate mem_attrs_htab.
44463
44464 2014-02-25  Richard Biener  <rguenther@suse.de>
44465
44466         PR lto/60319
44467         * lto-opts.c (lto_write_options): Output non-explicit conservative
44468         -fwrapv, -fno-trapv and -fno-strict-overflow.
44469         * lto-wrapper.c (merge_and_complain): Handle merging those options.
44470         (run_gcc): And pass them through.
44471
44472 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44473
44474         * sel-sched.c (calculate_new_fences): New parameter ptime.
44475         Calculate it as a maximum over all fence cycles.
44476         (sel_sched_region_2): Adjust the call to calculate_new_fences.
44477         Print the final schedule timing when sched_verbose.
44478
44479 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44480
44481         PR rtl-optimization/60292
44482         * sel-sched.c (fill_vec_av_set): Do not reset target availability
44483         bit fot the fence instruction.
44484
44485 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
44486
44487         * calls.h: Fix typo in comment.
44488
44489 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
44490
44491         * config/pa/pa.c (pa_output_move_double): Don't valididate when
44492         adjusting offsetable addresses.
44493
44494 2014-02-24  Guozhi Wei  <carrot@google.com>
44495
44496         * sparseset.h (sparseset_pop): Fix the wrong index.
44497
44498 2014-02-24  Walter Lee  <walt@tilera.com>
44499
44500         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
44501         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
44502         triplet.
44503         * common/config/tilegx/tilegx-common.c
44504         (TARGET_DEFAULT_TARGET_FLAGS): Define.
44505         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
44506         (LINK_SPEC): Ditto.
44507         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
44508         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
44509         (tilegx_gimplify_va_arg_expr): Handle big endian.
44510         (tilegx_expand_unaligned_load): Ditto.
44511         (tilegx_expand_unaligned_store): Ditto.
44512         (TARGET_RETURN_IN_MSB): New.
44513         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
44514         (TARGET_ENDIAN_DEFAULT): New.
44515         (TARGET_BIG_ENDIAN): Handle big endian.
44516         (BYTES_BIG_ENDIAN): Ditto.
44517         (WORDS_BIG_ENDIAN): Ditto.
44518         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
44519         (ENDIAN_SPEC): New.
44520         (EXTRA_SPECS): New.
44521         * config/tilegx/tilegx.md (extv): Handle big endian.
44522         (extzv): Ditto.
44523         (insn_st<n>): Ditto.
44524         (insn_st<n>_add<bitsuffix>): Ditto.
44525         (insn_stnt<n>): Ditto.
44526         (insn_stnt<n>_add<bitsuffix>):Ditto.
44527         (vec_interleave_highv8qi): Handle big endian.
44528         (vec_interleave_highv8qi_be): New.
44529         (vec_interleave_highv8qi_le): New.
44530         (insn_v1int_h): Handle big endian.
44531         (vec_interleave_lowv8qi): Handle big endian.
44532         (vec_interleave_lowv8qi_be): New.
44533         (vec_interleave_lowv8qi_le): New.
44534         (insn_v1int_l): Handle big endian.
44535         (vec_interleave_highv4hi): Handle big endian.
44536         (vec_interleave_highv4hi_be): New.
44537         (vec_interleave_highv4hi_le): New.
44538         (insn_v2int_h): Handle big endian.
44539         (vec_interleave_lowv4hi): Handle big endian.
44540         (vec_interleave_lowv4hi_be): New.
44541         (vec_interleave_lowv4hi_le): New.
44542         (insn_v2int_l): Handle big endian.
44543         (vec_interleave_highv2si): Handle big endian.
44544         (vec_interleave_highv2si_be): New.
44545         (vec_interleave_highv2si_le): New.
44546         (insn_v4int_h): Handle big endian.
44547         (vec_interleave_lowv2si): Handle big endian.
44548         (vec_interleave_lowv2si_be): New.
44549         (vec_interleave_lowv2si_le): New.
44550         (insn_v4int_l): Handle big endian.
44551         * config/tilegx/tilegx.opt (mbig-endian): New option.
44552         (mlittle-endian): New option.
44553         * doc/install.texi: Document tilegxbe-linux.
44554         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
44555
44556 2014-02-24  Martin Jambor  <mjambor@suse.cz>
44557
44558         PR ipa/60266
44559         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
44560         there are no parameter descriptors.
44561
44562 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
44563
44564         PR rtl-optimization/60268
44565         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
44566         initialization to ...
44567         (sched_rgn_init): ... here.
44568         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
44569
44570 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44571
44572         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
44573         names.
44574
44575 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
44576
44577         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
44578         definition.
44579
44580 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44581
44582         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
44583         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
44584
44585 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44586
44587         * config/microblaze/predicates.md: Add cmp_op predicate.
44588         * config/microblaze/microblaze.md: Add branch_compare instruction
44589         which uses cmp_op predicate and emits cmp insn before branch.
44590         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
44591         to microblaze_expand_conditional_branch and consolidate logic.
44592         (microblaze_expand_conditional_branch): emit branch_compare
44593         insn instead of handling cmp op separate from branch insn.
44594
44595 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44596
44597         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
44598         to permit subregs.
44599
44600 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44601
44602         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
44603         define_insn with define_expand and new define_insn
44604         *altivec_lve<VI_char>x_internal.
44605         (altivec_stve<VI_char>x): Replace define_insn with define_expand
44606         and new define_insn *altivec_stve<VI_char>x_internal.
44607         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
44608         prototype.
44609         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
44610         lve*x built-ins.
44611         (altivec_expand_stvex_be): New function.
44612
44613 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
44614
44615         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
44616         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
44617         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
44618         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
44619
44620 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
44621
44622         PR target/60298
44623         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
44624         instead of emit_move_insn.
44625
44626 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44627
44628         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
44629         vspltw with vsldoi.
44630         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
44631         gen_altivec_vsumsws.
44632
44633 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44634
44635         * config/rs6000/altivec.md (altivec_lvxl): Rename as
44636         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
44637         (altivec_lvxl_<mode>): New define_expand incorporating
44638         -maltivec=be semantics where needed.
44639         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
44640         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
44641         semantics where needed.
44642         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
44643         (altivec_stvx_<mode>): New define_expand incorporating
44644         -maltivec=be semantics where needed.
44645         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
44646         VM2 iterator instead of V4SI.
44647         (altivec_stvxl_<mode>): New define_expand incorporating
44648         -maltivec=be semantics where needed.
44649         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
44650         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
44651         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
44652         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
44653         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
44654         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
44655         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
44656         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
44657         ALTIVEC_BUILTIN_STVXL.
44658         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
44659         (altivec_expand_stvx_be): Likewise.
44660         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
44661         (altivec_expand_lvx_be): Likewise.
44662         (altivec_expand_stvx_be): Likewise.
44663         (altivec_expand_builtin): Add cases for
44664         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
44665         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
44666         (altivec_init_builtins): Add definitions for
44667         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
44668         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
44669
44670 2014-02-21  Catherine Moore  <clm@codesourcery.com>
44671
44672         * doc/invoke.texi (mvirt, mno-virt): Document.
44673         * config/mips/mips.opt (mvirt): New option.
44674         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
44675
44676 2014-02-21  Richard Biener  <rguenther@suse.de>
44677
44678         PR tree-optimization/60276
44679         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
44680         (STMT_VINFO_MIN_NEG_DIST): New macro.
44681         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
44682         STMT_VINFO_MIN_NEG_DIST.
44683         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
44684         made for negative dependence distances still hold.
44685
44686 2014-02-21  Richard Biener  <rguenther@suse.de>
44687
44688         PR middle-end/60291
44689         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
44690         DECL_INITIAL for globals not in the current function context.
44691
44692 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44693
44694         PR tree-optimization/56490
44695         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
44696         * tree-ssa-uninit.c: Include params.h.
44697         (compute_control_dep_chain): Add num_calls argument, return false
44698         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
44699         num_calls to recursive call.
44700         (find_predicates): Change dep_chain into normal array,
44701         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
44702         variable and adjust compute_control_dep_chain caller.
44703         (find_def_preds): Likewise.
44704
44705 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
44706
44707         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
44708         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
44709
44710 2014-02-21  Nick Clifton  <nickc@redhat.com>
44711
44712         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
44713         (pushhi1): Likewise.
44714         (popqi1): Add mode to pre_dec.
44715         (pophi1): Likewise.
44716
44717 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44718
44719         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
44720         mode for mask of V8SFmode permutation.
44721
44722 2014-02-20  Richard Henderson  <rth@redhat.com>
44723
44724         PR c++/60272
44725         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
44726         a new pseudo for OLDVAL.
44727
44728 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
44729
44730         PR target/57896
44731         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
44732         gen_reg_rtx if d->testing_p.
44733         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
44734         if d->testing_p and we will certainly return true.
44735         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
44736         if d->testing_p.
44737
44738 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
44739
44740         * emit-rtl.c (gen_reg_rtx): Assert that
44741         crtl->emit.regno_pointer_align_length is non-zero.
44742
44743 2014-02-20  Richard Henderson  <rth@redhat.com>
44744
44745         PR c++/60272
44746         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
44747         on failure the store back into EXPECT.
44748
44749 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
44750             Sandra Loosemore  <sandra@codesourcery.com>
44751
44752         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
44753         * config/nios2/nios2.c (nios2_function_profiler): Add
44754         -fPIC (flag_pic == 2) support.
44755         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
44756         (nios2_large_offset_p): New function.
44757         (nios2_unspec_reloc_p): Move up position, update to use
44758         nios2_large_offset_p.
44759         (nios2_unspec_address): Remove function.
44760         (nios2_unspec_offset): New function.
44761         (nios2_large_got_address): New function.
44762         (nios2_got_address): Add large offset support.
44763         (nios2_legitimize_tls_address): Update usage of removed and new
44764         functions.
44765         (nios2_symbol_binds_local_p): New function.
44766         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
44767         (nios2_legitimize_address): Update to use nios2_large_offset_p.
44768         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
44769         (nios2_print_operand): Merge H/L processing, add hiadj/lo
44770         processing for (const (unspec ...)).
44771         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
44772
44773 2014-02-20  Richard Biener  <rguenther@suse.de>
44774
44775         * tree-cfg.c (replace_uses_by): Mark altered BBs before
44776         doing the substitution.
44777         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
44778
44779 2014-02-20  Martin Jambor  <mjambor@suse.cz>
44780
44781         PR ipa/55260
44782         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
44783         info when checking whether lattices are bottom.
44784
44785 2014-02-20  Richard Biener  <rguenther@suse.de>
44786
44787         PR middle-end/60221
44788         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
44789         regions at -O0.
44790
44791 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
44792
44793         PR ipa/58555
44794         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
44795         parameter specifying the scaling.
44796         (inline_call): Update.
44797         (want_inline_recursively): Guard division by zero.
44798         (recursive_inlining): Update.
44799         * ipa-inline.h (clone_inlined_nodes): Update.
44800
44801 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44802
44803         PR target/60204
44804         * config/i386/i386.c (classify_argument): Pass structures of size
44805         64 bytes or less in register.
44806
44807 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44808             Kirill Yukhin  <kirill.yukhin@intel.com>
44809
44810         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
44811         (_mm_rcp28_round_ss): Ditto.
44812         (_mm_rsqrt28_round_sd): Ditto.
44813         (_mm_rsqrt28_round_ss): Ditto.
44814         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
44815         (_mm_rcp14_round_ss): Ditto.
44816         (_mm_rsqrt14_round_sd): Ditto.
44817         (_mm_rsqrt14_round_ss): Ditto.
44818         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
44819         the first input operand, get rid of match_dup.
44820         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
44821         attribute to sse.
44822         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
44823         Ditto.
44824         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
44825         operand as the first input operand, set type attribute.
44826         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
44827         Set type attribute.
44828         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
44829         operand as the first input operand, set type attribute.
44830
44831 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44832
44833         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
44834         bit of zero.
44835
44836 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
44837
44838         PR target/60207
44839         * config/i386/i386.c (construct_container): Remove TFmode check
44840         for X86_64_INTEGER_CLASS.
44841
44842 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
44843
44844         PR target/59794
44845         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
44846         only when -Wpsabi is enabled.
44847
44848 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
44849
44850         PR target/59799
44851         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
44852         passing arrays in registers are the same as for structs, so remove the
44853         special case for them.
44854
44855 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
44856
44857         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
44858         destination type, extract only the valid bits if the source type is not
44859         integral and has a different mode.
44860
44861 2014-02-19  Richard Biener  <rguenther@suse.de>
44862
44863         PR ipa/60243
44864         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
44865         for all calls.
44866
44867 2014-02-19  Richard Biener  <rguenther@suse.de>
44868
44869         PR ipa/60243
44870         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
44871         (ipa_modify_call_arguments): Emit an argument load explicitely and
44872         preserve virtual SSA form there and for the replacement call.
44873         Do not update SSA form nor free dominance info.
44874
44875 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44876
44877         * ipa.c (function_and_variable_visibility): Also clear WEAK
44878         flag when disolving COMDAT_GROUP.
44879
44880 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44881
44882         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
44883         * ipa-prop.c (ipa_set_jf_known_type): Return early when
44884         not devirtualizing.
44885         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
44886         do more sanity checks.
44887         (detect_type_change): Return true when giving up early.
44888         (compute_complex_assign_jump_func): Fix type parameter of
44889         ipa_set_ancestor_jf.
44890         (compute_complex_ancestor_jump_func): Likewise.
44891         (update_jump_functions_after_inlining): Fix updating of
44892         ancestor function.
44893         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
44894
44895 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44896
44897         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
44898         inline clones when edge disappears.
44899
44900 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
44901
44902         PR target/60203
44903         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
44904         Split 64-bit moves into 2 patterns.  Do not allow the use of
44905         direct move for TDmode in little endian, since the decimal value
44906         has little endian bytes within a word, but the 64-bit pieces are
44907         ordered in a big endian fashion, and normal subreg's of TDmode are
44908         not allowed.
44909         (mov<mode>_64bit_dm): Likewise.
44910         (movtd_64bit_nodm): Likewise.
44911
44912 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44913
44914         PR tree-optimization/60174
44915         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
44916         statement of an SSA_NAME that occurs in an abnormal PHI node.
44917
44918 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44919
44920         PR sanitizer/60142
44921         * final.c (SEEN_BB): Remove.
44922         (SEEN_NOTE, SEEN_EMITTED): Renumber.
44923         (final_scan_insn): Don't force_source_line on second
44924         NOTE_INSN_BASIC_BLOCK.
44925
44926 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
44927
44928         PR target/60205
44929         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
44930         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
44931         (type_natural_mode): Warn ABI change when %zmm register is not
44932         available for AVX512F vector value passing.
44933
44934 2014-02-18  Kai Tietz  <ktietz@redhat.com>
44935
44936         PR target/60193
44937         * config/i386/i386.c (ix86_expand_prologue): Use value in
44938         rax register as displacement when restoring %r10 or %rax.
44939         Fix wrong offset when restoring both registers.
44940
44941 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44942
44943         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
44944         assertion with conditional return.
44945
44946 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44947             Uros Bizjak  <ubizjak@gmail.com>
44948
44949         PR driver/60233
44950         * config/i386/driver-i386.c (host_detect_local_cpu): If
44951         YMM state is not saved by the OS, also clear has_f16c.  Move
44952         CPUID 0x80000001 handling before YMM state saving checking.
44953
44954 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
44955
44956         PR rtl-optimization/58960
44957         * haifa-sched.c (alloc_global_sched_pressure_data): New,
44958         factored out from ...
44959         (sched_init): ... here.
44960         (free_global_sched_pressure_data): New, factored out from ...
44961         (sched_finish): ... here.
44962         * sched-int.h (free_global_sched_pressure_data): Declare.
44963         * sched-rgn.c (nr_regions_initial): New static global.
44964         (haifa_find_rgns): Initialize it.
44965         (schedule_region): Disable sched-pressure for the newly
44966         generated regions.
44967
44968 2014-02-17  Richard Biener  <rguenther@suse.de>
44969
44970         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
44971         release SSA defs of pattern stmts.
44972
44973 2014-02-17  Richard Biener  <rguenther@suse.de>
44974
44975         * tree-inline.c (expand_call_inline): Release the virtual
44976         operand defined by the call we are about to inline.
44977
44978 2014-02-17  Richard Biener  <rguenther@suse.de>
44979
44980         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
44981
44982 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
44983             Ilya Tocar  <ilya.tocar@intel.com>
44984
44985         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
44986         arguments order in builtin.
44987         (_mm512_permutexvar_epi64): Ditto.
44988         (_mm512_mask_permutexvar_epi64): Ditto
44989         (_mm512_maskz_permutexvar_epi32): Ditto
44990         (_mm512_permutexvar_epi32): Ditto
44991         (_mm512_mask_permutexvar_epi32): Ditto
44992
44993 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44994
44995         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
44996         (p8_vmrgow): Likewise.
44997
44998 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44999
45000         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
45001         endian targets.
45002
45003 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
45004
45005         PR target/60203
45006         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
45007         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
45008         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
45009         using direct move instructions on ISA 2.07.  Also adjust
45010         instruction length for 64-bit.
45011         (mov<mode>_64bit, TFmode/TDmode): Likewise.
45012         (mov<mode>_32bit, TFmode/TDmode): Likewise.
45013
45014 2014-02-15  Alan Modra  <amodra@gmail.com>
45015
45016         PR target/58675
45017         PR target/57935
45018         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
45019         find_replacement on parts of insn rtl that might be reloaded.
45020
45021 2014-02-15  Richard Biener  <rguenther@suse.de>
45022
45023         PR tree-optimization/60183
45024         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
45025         (tree_ssa_phiprop): Calculate and free post-dominators.
45026
45027 2014-02-14  Jeff Law  <law@redhat.com>
45028
45029         PR rtl-optimization/60131
45030         * ree.c (get_extended_src_reg): New function.
45031         (combine_reaching_defs): Use it rather than assuming location of REG.
45032         (find_and_remove_re): Verify first operand of extension is
45033         a REG before adding the insns to the copy list.
45034
45035 2014-02-14  Roland McGrath  <mcgrathr@google.com>
45036
45037         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
45038         * configure: Regenerated.
45039         * config.in: Regenerated.
45040         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
45041         instead of ASM_SHORT.
45042
45043 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
45044             Richard Earnshaw  <rearnsha@arm.com>
45045
45046         PR rtl-optimization/59535
45047         * lra-constraints.c (process_alt_operands): Encourage alternative
45048         when unassigned pseudo class is superset of the alternative class.
45049         (inherit_reload_reg): Don't inherit when optimizing for code size.
45050         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
45051         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
45052         modes not less than 4 for Thumb1.
45053
45054 2014-02-14  Kyle McMartin  <kyle@redhat.com>
45055
45056         PR pch/60010
45057         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
45058
45059 2014-02-14  Richard Biener  <rguenther@suse.de>
45060
45061         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
45062         (get_frame_arg): Drop the assert with langhook types_compatible_p.
45063         Do not strip INDIRECT_REFs.
45064
45065 2014-02-14  Richard Biener  <rguenther@suse.de>
45066
45067         PR lto/60179
45068         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
45069         DECL_FUNCTION_SPECIFIC_TARGET.
45070         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
45071         * tree-streamer-out.c (pack_ts_target_option): Remove.
45072         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
45073         (write_ts_function_decl_tree_pointers): Do not stream
45074         DECL_FUNCTION_SPECIFIC_TARGET.
45075         * tree-streamer-in.c (unpack_ts_target_option): Remove.
45076         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
45077         (lto_input_ts_function_decl_tree_pointers): Do not stream
45078         DECL_FUNCTION_SPECIFIC_TARGET.
45079
45080 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
45081
45082         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
45083         (get_initial_def_for_induction, vectorizable_induction): Ignore
45084         debug stmts when looking for exit_phi.
45085         (vectorizable_live_operation): Fix up condition.
45086
45087 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45088
45089         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
45090         nreverse() because it changes the content of original tree list.
45091
45092 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45093
45094         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
45095         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
45096
45097 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45098
45099         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
45100         GNU coding standards.
45101
45102 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45103
45104         PR debug/60152
45105         * dwarf2out.c (gen_subprogram_die): Don't call
45106         add_calling_convention_attribute if subr_die is old_die.
45107
45108 2014-02-13  Sharad Singhai  <singhai@google.com>
45109
45110         * doc/optinfo.texi: Fix order of nodes.
45111
45112 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
45113
45114         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
45115         operands[2], not operands[3].
45116
45117 2014-02-13  Richard Biener  <rguenther@suse.de>
45118
45119         PR bootstrap/59878
45120         * doc/install.texi (ISL): Update recommended version to 0.12.2,
45121         mention the possibility of an in-tree build.
45122         (CLooG): Update recommended version to 0.18.1, mention the
45123         possibility of an in-tree build and clarify that the ISL
45124         bundled with CLooG does not work.
45125
45126 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45127
45128         PR target/43546
45129         * expr.c (compress_float_constant): If x is a hard register,
45130         extend into a pseudo and then move to x.
45131
45132 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
45133
45134         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
45135         caused by bad second argument to warning_at() with -mhotpatch and
45136         nested functions (e.g. with gfortran).
45137
45138 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
45139
45140         * opts.c (option_name): Remove "enabled by default" rider.
45141
45142 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
45143
45144         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
45145
45146 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
45147             Uros Bizjak  <ubizjak@gmail.com>
45148
45149         PR target/60151
45150         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
45151         * configure: Regenerated.
45152
45153 2014-02-12  Richard Biener  <rguenther@suse.de>
45154
45155         * vec.c (vec_prefix::calculate_allocation): Move as
45156         inline variant to vec.h.
45157         (vec_prefix::calculate_allocation_1): New out-of-line version.
45158         * vec.h (vec_prefix::calculate_allocation_1): Declare.
45159         (vec_prefix::m_has_auto_buf): Rename to ...
45160         (vec_prefix::m_using_auto_storage): ... this.
45161         (vec_prefix::calculate_allocation): Inline the easy cases
45162         and dispatch to calculate_allocation_1 which doesn't need the
45163         prefix address.
45164         (va_heap::reserve): Use gcc_checking_assert.
45165         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
45166         m_using_auto_storage.
45167         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
45168         member and adjust.
45169         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
45170         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
45171         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
45172
45173 2014-02-12  Richard Biener  <rguenther@suse.de>
45174
45175         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
45176         when we found a dependence.
45177
45178 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
45179
45180         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
45181         common code...
45182         (maybe_fold_stmt): ... into this new function.
45183         * omp-low.c (lower_omp): Update comment.
45184
45185         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
45186         last use.
45187
45188         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
45189         dereference.
45190
45191 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
45192
45193         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
45194         identifiers in comments.
45195         (cortexa53_extra_costs): Likewise.
45196         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
45197         (cortexa7_extra_costs): Likewise.
45198         (cortexa12_extra_costs): Likewise.
45199         (cortexa15_extra_costs): Likewise.
45200         (v7m_extra_costs): Likewise.
45201
45202 2014-02-12  Richard Biener  <rguenther@suse.de>
45203
45204         PR middle-end/60092
45205         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
45206         of posix_memalign being successful.
45207         (lower_stmt): Restrict lowering of posix_memalign to when
45208         -ftree-bit-ccp is enabled.
45209
45210 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
45211
45212         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
45213         arg_loc.
45214         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
45215
45216 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
45217
45218         PR rtl-optimization/60116
45219         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
45220         other_insn once the combination has been validated.
45221
45222 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
45223
45224         PR lto/59468
45225         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
45226         and wrapper.
45227         * ipa-devirt.c: Include demangle.h
45228         (odr_violation_reported): New static variable.
45229         (add_type_duplicate): Update odr_violations.
45230         (maybe_record_node): Add completep parameter; update it.
45231         (record_target_from_binfo): Add COMPLETEP parameter;
45232         update it as needed.
45233         (possible_polymorphic_call_targets_1): Likewise.
45234         (struct polymorphic_call_target_d): Add nonconstruction_targets;
45235         rename FINAL to COMPLETE.
45236         (record_targets_from_bases): Sanity check we found the binfo;
45237         fix COMPLETEP updating.
45238         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
45239         parameter, fix computing of COMPLETEP.
45240         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
45241         at LTO time do demangling.
45242         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
45243         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
45244         parameter.
45245         (gimple_get_virt_method_for_binfo): Likewise.
45246         * gimple-fold.h (gimple_get_virt_method_for_binfo,
45247         gimple_get_virt_method_for_vtable): Update prototypes.
45248
45249 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
45250
45251         PR target/49008
45252         * genautomata.c (add_presence_absence): Fix typo with
45253         {final_}presence_list.
45254
45255 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
45256
45257         PR target/60137
45258         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
45259         for VSX/Altivec vectors that land in GPR registers.
45260
45261 2014-02-11  Richard Henderson  <rth@redhat.com>
45262             Jakub Jelinek  <jakub@redhat.com>
45263
45264         PR debug/59776
45265         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
45266         around drhs if type conversion to lacc->type is not useless.
45267
45268 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45269
45270         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
45271         tuning struct.
45272         (cortex-a57.cortex-a53): Likewise.
45273         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
45274
45275 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45276
45277         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
45278         arm_restrict_it.
45279
45280 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
45281
45282         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
45283         add_options_for_arm_vfp3.
45284
45285 2014-02-11  Jeff Law  <law@redhat.com>
45286
45287         PR middle-end/54041
45288         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
45289         object with an undesirable mode.
45290
45291 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45292
45293         PR libgomp/60107
45294         * config/i386/sol2-9.h: New file.
45295         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
45296         *-*-solaris2.9*): Use it.
45297
45298 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45299
45300         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
45301         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
45302
45303 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45304
45305         * config/microblaze/microblaze.c: Extend mcpu version format
45306
45307 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
45308
45309         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
45310
45311 2014-02-10  Richard Henderson  <rth@redhat.com>
45312
45313         PR target/59927
45314         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
45315         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
45316         ms-abi vs -mno-accumulate-outgoing-args.
45317         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
45318         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
45319         respect to ms-abi.
45320
45321 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45322
45323         PR middle-end/60080
45324         * cfgexpand.c (expand_asm_operands): Attach source location to
45325         ASM_INPUT rtx objects.
45326         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45327
45328 2014-02-10  Nick Clifton  <nickc@redhat.com>
45329
45330         * config/mn10300/mn10300.c (popcount): New function.
45331         (mn10300_expand_prologue): Include saved registers in stack usage
45332         count.
45333
45334 2014-02-10  Jeff Law  <law@redhat.com>
45335
45336         PR middle-end/52306
45337         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45338         when changing the SET_DEST of a prior insn to avoid an input reload.
45339
45340 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
45341
45342         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45343         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45344         -mcall-openbsd, or -mcall-linux.
45345         (CC1_ENDIAN_BIG_SPEC): Remove.
45346         (CC1_ENDIAN_LITTLE_SPEC): Remove.
45347         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45348         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45349         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45350         and %cc1_endian_default.
45351         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45352
45353 2014-02-10  Richard Biener  <rguenther@suse.de>
45354
45355         PR tree-optimization/60115
45356         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45357         MEM_REF handling.  Properly verify that the accesses are not
45358         out of the objects bound.
45359
45360 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45361
45362         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45363         coretex to cortex.
45364
45365 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
45366
45367         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45368         proper constants and fix formatting.
45369         (possible_polymorphic_call_targets): Fix formatting.
45370
45371 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
45372             Ilya Tocar  <ilya.tocar@intel.com>
45373
45374         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
45375         (_mm512_loadu_epi32): Renamed into...
45376         (_mm512_loadu_si512): This.
45377         (_mm512_storeu_epi32): Renamed into...
45378         (_mm512_storeu_si512): This.
45379         (_mm512_maskz_ceil_ps): Removed.
45380         (_mm512_maskz_ceil_pd): Ditto.
45381         (_mm512_maskz_floor_ps): Ditto.
45382         (_mm512_maskz_floor_pd): Ditto.
45383         (_mm512_floor_round_ps): Ditto.
45384         (_mm512_floor_round_pd): Ditto.
45385         (_mm512_ceil_round_ps): Ditto.
45386         (_mm512_ceil_round_pd): Ditto.
45387         (_mm512_mask_floor_round_ps): Ditto.
45388         (_mm512_mask_floor_round_pd): Ditto.
45389         (_mm512_mask_ceil_round_ps): Ditto.
45390         (_mm512_mask_ceil_round_pd): Ditto.
45391         (_mm512_maskz_floor_round_ps): Ditto.
45392         (_mm512_maskz_floor_round_pd): Ditto.
45393         (_mm512_maskz_ceil_round_ps): Ditto.
45394         (_mm512_maskz_ceil_round_pd): Ditto.
45395         (_mm512_expand_pd): Ditto.
45396         (_mm512_expand_ps): Ditto.
45397         * config/i386/i386.c (ix86_builtins): Remove
45398         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
45399         (bdesc_args): Ditto.
45400         * config/i386/predicates.md (const1256_operand): New.
45401         (const_1_to_2_operand): Ditto.
45402         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
45403         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45404         (*avx512pf_gatherpf<mode>sf): Ditto.
45405         (avx512pf_gatherpf<mode>df): Ditto.
45406         (*avx512pf_gatherpf<mode>df_mask): Ditto.
45407         (*avx512pf_gatherpf<mode>df): Ditto.
45408         (avx512pf_scatterpf<mode>sf): Ditto.
45409         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45410         (*avx512pf_scatterpf<mode>sf): Ditto.
45411         (avx512pf_scatterpf<mode>df): Ditto.
45412         (*avx512pf_scatterpf<mode>df_mask): Ditto.
45413         (*avx512pf_scatterpf<mode>df): Ditto.
45414         (avx512f_expand<mode>): Removed.
45415         (<shift_insn><mode>3<mask_name>): Change predicate type.
45416
45417 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45418
45419         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
45420         not at the end of datarefs vector use ordered_remove to avoid
45421         reordering datarefs vector.
45422
45423         PR c/59984
45424         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
45425         mark local addressable non-static vars as GOVD_PRIVATE
45426         instead of GOVD_LOCAL.
45427         * omp-low.c (lower_omp_for): Move gimple_bind_vars
45428         and BLOCK_VARS of gimple_bind_block to new_stmt rather
45429         than copying them.
45430
45431         PR middle-end/60092
45432         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
45433         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
45434         assume_aligned or alloc_align attributes.
45435         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
45436         arguments.  Handle also assume_aligned and alloc_align attributes.
45437         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
45438         calls to functions with assume_aligned or alloc_align attributes.
45439         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
45440
45441 2014-02-08  Terry Guo  <terry.guo@arm.com>
45442
45443         * doc/invoke.texi: Document ARM -march=armv7e-m.
45444
45445 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45446
45447         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
45448         flag on __cilkrts_rethrow builtin.
45449
45450         PR ipa/60026
45451         * ipa-cp.c (determine_versionability): Fail at -O0
45452         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
45453         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
45454
45455         Revert:
45456         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45457
45458         PR ipa/60026
45459         * tree-inline.c (copy_forbidden): Fail for
45460         __attribute__((optimize (0))) functions.
45461
45462 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45463
45464         * varpool.c: Include pointer-set.h.
45465         (varpool_remove_unreferenced_decls): Variables in other partitions
45466         will not be output; be however careful to not lose information
45467         about partitioning.
45468
45469 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45470
45471         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
45472         lookup in the vtable constructor.
45473
45474 2014-02-07  Jeff Law  <law@redhat.com>
45475
45476         PR target/40977
45477         * config/m68k/m68k.md (ashldi_extsi): Turn into a
45478         define_insn_and_split.
45479
45480         * ipa-inline.c (inline_small_functions): Fix typos.
45481
45482 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45483
45484         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
45485         (s390_can_use_return_insn): Declare.
45486         * config/s390/s390.h (EPILOGUE_USES): Define.
45487         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
45488         instructions.
45489         (s390_chunkify_start): Handle return JUMP_LABELs.
45490         (s390_early_mach): Emit a main_pool instruction on the entry edge.
45491         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
45492         (s390_can_use_return_insn): New functions.
45493         (s390_fix_long_loop_prediction): Handle conditional returns.
45494         (TARGET_SET_UP_BY_PROLOGUE): Define.
45495         * config/s390/s390.md (ANY_RETURN): New code iterator.
45496         (*creturn, *csimple_return, return, simple_return): New patterns.
45497
45498 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45499
45500         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
45501         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
45502         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
45503         REG_CFA_RESTORE list when deciding not to restore a register.
45504
45505 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45506
45507         * config/s390/s390.c: Include tree-pass.h and context.h.
45508         (s390_early_mach): New function, split out from...
45509         (s390_emit_prologue): ...here.
45510         (pass_data_s390_early_mach): New pass structure.
45511         (pass_s390_early_mach): New class.
45512         (s390_option_override): Create and register early_mach pass.
45513         Move to end of file.
45514
45515 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45516
45517         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
45518         to match for the exit block.
45519
45520 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45521
45522         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
45523         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
45524         Reject misaligned operands.
45525
45526 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45527
45528         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
45529
45530 2014-02-07  Richard Biener  <rguenther@suse.de>
45531
45532         PR middle-end/60092
45533         * gimple-low.c (lower_builtin_posix_memalign): New function.
45534         (lower_stmt): Call it to lower posix_memalign in a way
45535         to make alignment info accessible.
45536
45537 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
45538
45539         PR c++/60082
45540         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
45541         __builtin_setjmp_receiver.
45542
45543 2014-02-07  Richard Biener  <rguenther@suse.de>
45544
45545         PR middle-end/60092
45546         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
45547         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
45548         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
45549         Handle BUILT_IN_POSIX_MEMALIGN.
45550         (find_func_clobbers): Likewise.
45551         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
45552         (call_may_clobber_ref_p_1): Likewise.
45553
45554 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45555
45556         PR ipa/59918
45557         * ipa-devirt.c (record_target_from_binfo): Remove overactive
45558         sanity check.
45559
45560 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45561
45562         PR ipa/59469
45563         * lto-cgraph.c (lto_output_node): Use
45564         symtab_get_symbol_partitioning_class.
45565         (lto_output_varpool_node): likewise.
45566         (symtab_get_symbol_partitioning_class): Move here from
45567         lto/lto-partition.c
45568         * cgraph.h (symbol_partitioning_class): Likewise.
45569         (symtab_get_symbol_partitioning_class): Declare.
45570
45571 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45572
45573         * ggc.h (ggc_internal_cleared_alloc): New macro.
45574         * vec.h (vec_safe_copy): Handle memory stats.
45575         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
45576         * target-globals.c (save_target_globals): Likewise.
45577
45578 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45579
45580         PR target/60077
45581         * expr.c (emit_move_resolve_push): Export; be bit more selective
45582         on when to clear alias set.
45583         * expr.h (emit_move_resolve_push): Declare.
45584         * function.h (struct function): Add tail_call_marked.
45585         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
45586         * config/i386/i386-protos.h (ix86_expand_push): Remove.
45587         * config/i386/i386.md (TImode move expander): De not call
45588         ix86_expand_push.
45589         (FP push expanders): Preserve memory attributes.
45590         * config/i386/sse.md (push<mode>1): Remove.
45591         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
45592         (ix86_expand_push): Remove.
45593         * config/i386/mmx.md (push<mode>1): Remove.
45594
45595 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45596
45597         PR rtl-optimization/60030
45598         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
45599         lopart with paradoxical subreg before shifting it up by hprec.
45600
45601 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45602
45603         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
45604         Remove extra newline at end of file.
45605         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
45606         (arm_issue_rate): Handle cortexa57.
45607         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
45608         (cortex-a57.cortex-a53): Likewise.
45609
45610 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45611
45612         PR target/59575
45613         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
45614         don't record in REG_FRAME_RELATED_EXPR registers not set in that
45615         bitmask.
45616         (arm_expand_prologue): Adjust all callers.
45617         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
45618         info, registers also at the lowest numbered registers side.  Use
45619         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
45620         XEXP.
45621
45622         PR debug/59992
45623         * var-tracking.c (adjust_mems): Before adding a SET to
45624         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
45625
45626 2014-02-06  Alan Modra  <amodra@gmail.com>
45627
45628         PR target/60032
45629         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
45630         change SDmode to DDmode when lra_in_progress.
45631
45632 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45633
45634         PR middle-end/59150
45635         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
45636         free_data_ref on the dr first, and before goto again also set dr
45637         to the next dr.  For simd_lane_access, free old datarefs[i] before
45638         overwriting it.  For get_vectype_for_scalar_type failure, don't
45639         free_data_ref if simd_lane_access.
45640
45641         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
45642
45643         PR target/60062
45644         * tree.h (opts_for_fn): New inline function.
45645         (opt_for_fn): Define.
45646         * config/i386/i386.c (ix86_function_regparm): Use
45647         opt_for_fn (decl, optimize) instead of optimize.
45648
45649 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
45650
45651         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
45652         for SYMBOL_REF in large memory model.
45653
45654 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45655
45656         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
45657         and crypto support.
45658         (cortex-a57): Likewise.
45659         (cortex-a57.cortex-a53): Likewise.
45660
45661 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
45662             Kugan Vivekanandarajah  <kuganv@linaro.org>
45663
45664         * config/arm/arm.c (arm_vector_alignment_reachable): Check
45665         unaligned_access.
45666         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
45667
45668 2014-02-06  Richard Biener  <rguenther@suse.de>
45669
45670         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
45671         set_loop_copy and initialize_original_copy_tables.
45672
45673 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
45674
45675         * config/aarch64/aarch64-simd.md
45676         (aarch64_ashr_simddi): Change QI to SI.
45677
45678 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45679             Jakub Jelinek  <jakub@redhat.com>
45680
45681         PR middle-end/60013
45682         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
45683         of the dataflow.
45684
45685 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45686
45687         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
45688         CODE_FOR_altivec_vpku[hw]um to
45689         CODE_FOR_altivec_vpku[hw]um_direct.
45690         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
45691         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
45692         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
45693         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
45694
45695 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45696
45697         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
45698         generation for -maltivec=be.
45699         (altivec_vsumsws): Simplify redundant test.
45700
45701 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45702
45703         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
45704         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
45705         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
45706         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
45707         gen_altivec_vpkuwum.
45708         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
45709         BYTES_BIG_ENDIAN.
45710         (altivec_vpks<VI_char>ss): Likewise.
45711         (altivec_vpks<VI_char>us): Likewise.
45712         (altivec_vpku<VI_char>us): Likewise.
45713         (altivec_vpku<VI_char>um): Likewise.
45714         (altivec_vpku<VI_char>um_direct): New (copy of
45715         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
45716         internal use).
45717         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
45718         target is little endian and -maltivec=be is not specified.
45719         (*altivec_vupkhs<VU_char>_direct): New (copy of
45720         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
45721         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
45722         target is little endian and -maltivec=be is not specified.
45723         (*altivec_vupkls<VU_char>_direct): New (copy of
45724         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
45725         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
45726         little endian and -maltivec=be is not specified.
45727         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
45728         little endian and -maltivec=be is not specified.
45729
45730 2014-02-05  Richard Henderson  <rth@redhat.com>
45731
45732         PR debug/52727
45733         * combine-stack-adj.c: Revert r206943.
45734         * sched-int.h (struct deps_desc): Add last_args_size.
45735         * sched-deps.c (init_deps): Initialize it.
45736         (sched_analyze_insn): Add OUTPUT dependencies between insns that
45737         contain REG_ARGS_SIZE notes.
45738
45739 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45740
45741         * lto-cgraph.c (asm_nodes_output): Make global.
45742         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
45743         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
45744         (driver_handle_option): Handle OPT_fwpa.
45745
45746 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
45747
45748         PR ipa/59947
45749         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
45750         a comment typo and formatting issue.  If odr_hash hasn't been
45751         created, return vNULL and set *completep to false.
45752
45753         PR middle-end/57499
45754         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
45755         bb with no successors.
45756
45757 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
45758
45759         PR target/59718
45760         * doc/invoke.texi (-march): Clarify documentation for ARM.
45761         (-mtune): Likewise.
45762         (-mcpu): Likewise.
45763
45764 2014-02-05  Richard Biener  <rguenther@suse.de>
45765
45766         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
45767         when not vectorizing because of too many alias checks.
45768         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
45769         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
45770
45771 2014-02-05  Nick Clifton  <nickc@redhat.com>
45772
45773         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
45774         accept extended registers in any mode when compiling for the MN10300.
45775
45776 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
45777
45778         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
45779         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
45780         sanitization attributes.
45781         (can_inline_edge_p): Likewise.
45782         (sanitize_attrs_match_for_inline_p): New function.
45783
45784 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45785
45786         * ipa-prop.c (detect_type_change): Shor circuit testing of
45787         type changes on THIS pointer.
45788
45789 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
45790
45791         PR target/59777
45792         * config/pa/pa.c (legitimize_tls_address): Return original address
45793         if not passed a SYMBOL_REF rtx.
45794         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
45795         addresses.
45796         (pa_emit_move_sequence): Simplify TLS source operands.
45797         (pa_legitimate_constant_p): Reject all TLS constants.
45798         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
45799         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
45800
45801 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45802
45803         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
45804         groups when we know they are controlled by LTO.
45805         * varasm.c (default_binds_local_p_1): If object is in other partition,
45806         it will be resolved locally.
45807
45808 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45809
45810         * config/host-linux.c (linux_gt_pch_use_address): Don't
45811         use SSIZE_MAX because it is not always defined.
45812
45813 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
45814
45815         PR bootstrap/59913
45816         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
45817         threshold for pseudo splitting.
45818         (update_ebb_live_info): Process call argument hard registers and
45819         hard registers from insn definition too.
45820         (max_small_class_regs_num): New constant.
45821         (inherit_in_ebb): Update live hard regs through EBBs.  Update
45822         reloads_num only for small register classes.  Don't split for
45823         outputs of jumps.
45824
45825 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
45826
45827         PR ipa/60058
45828         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
45829         is non-null.
45830
45831 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45832
45833         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
45834         visibility is safe.
45835
45836 2014-02-04  Marek Polacek  <polacek@redhat.com>
45837
45838         * gdbinit.in (pel): Define.
45839
45840 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45841
45842         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
45843         behavior.
45844
45845 2014-02-04  Richard Biener  <rguenther@suse.de>
45846
45847         PR lto/59723
45848         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
45849         in function context local.
45850         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
45851         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
45852         similar to LTO_imported_decl_ref.
45853
45854 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45855
45856         PR tree-optimization/60002
45857         * cgraphclones.c (build_function_decl_skip_args): Clear
45858         DECL_LANG_SPECIFIC.
45859
45860         PR tree-optimization/60023
45861         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
45862         false to gsi_replace.
45863         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
45864         has been in some EH region and vec_stmt could throw, add
45865         vec_stmt into the same EH region.
45866         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
45867         has no lhs, ignore it.
45868         * internal-fn.c (expand_MASK_LOAD): Likewise.
45869
45870         PR ipa/60026
45871         * tree-inline.c (copy_forbidden): Fail for
45872         __attribute__((optimize (0))) functions.
45873
45874         PR other/58712
45875         * omp-low.c (simd_clone_struct_copy): If from->inbranch
45876         is set, copy one less argument.
45877         (expand_simd_clones): Don't subtract clone_info->inbranch
45878         from simd_clone_struct_alloc argument.
45879
45880         PR rtl-optimization/57915
45881         * recog.c (simplify_while_replacing): If all unary/binary/relational
45882         operation arguments are constant, attempt to simplify those.
45883
45884         PR middle-end/59261
45885         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
45886         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
45887
45888 2014-02-04  Richard Biener  <rguenther@suse.de>
45889
45890         PR tree-optimization/60012
45891         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
45892         TBAA disambiguation to all DDRs.
45893
45894 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45895
45896         PR target/59788
45897         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
45898         (LINK_SPEC): Use it for -shared, -shared-libgcc.
45899
45900 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45901
45902         PR ipa/59882
45903         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
45904
45905 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45906
45907         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
45908         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
45909
45910 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45911
45912         PR ipa/59831
45913         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
45914         to figure out targets of polymorphic calls with known decl.
45915         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45916         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
45917         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
45918         (get_polymorphic_call_info): ... here.
45919         (get_polymorphic_call_info_from_invariant): New function.
45920
45921 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45922
45923         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
45924         lookup via vtable pointer; check for type consistency
45925         and turn inconsitent facts into UNREACHABLE.
45926         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45927         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
45928         type inconsistent querries; return UNREACHABLE instead.
45929
45930 2014-02-03  Richard Henderson  <rth@twiddle.net>
45931
45932         PR tree-opt/59924
45933         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
45934         already processed this node.
45935         (normalize_one_pred_1): Pass along mark_set.
45936         (normalize_one_pred): Create and destroy a pointer_set_t.
45937         (normalize_one_pred_chain): Likewise.
45938
45939 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
45940
45941         PR gcov-profile/58602
45942         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
45943
45944 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45945
45946         PR ipa/59831
45947         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
45948         -fno-devirtualize; try to devirtualize by the knowledge of
45949         virtual table pointer given by aggregate propagation.
45950         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45951         (ipa_print_node_jump_functions): Dump also offset that
45952         is relevant for polymorphic calls.
45953         (determine_known_aggregate_parts): Add arg_type parameter; use it
45954         instead of determining the type from pointer type.
45955         (ipa_compute_jump_functions_for_edge): Update call of
45956         determine_known_aggregate_parts.
45957         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
45958         (gimple_get_virt_method_for_binfo): ... here; simplify using
45959         vtable_pointer_value_to_vtable.
45960         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
45961         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
45962         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
45963         (vtable_pointer_value_to_vtable): Break out from ...; handle also
45964         POINTER_PLUS_EXPR.
45965         (vtable_pointer_value_to_binfo): ... here.
45966         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
45967
45968 2014-02-03  Teresa Johnson  <tejohnson@google.com>
45969
45970         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
45971         redef of outer loop index variable.
45972
45973 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
45974
45975         PR c++/53017
45976         PR c++/59211
45977         * doc/extend.texi (Function Attributes): Typo.
45978
45979 2014-02-03  Cong Hou  <congh@google.com>
45980
45981         PR tree-optimization/60000
45982         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
45983         if the vectorized statement is a store.  A store statement can only
45984         appear at the end of pattern statements.
45985
45986 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
45987
45988         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
45989         (ix86_option_override_internal): Default long double to 64-bit for
45990         32-bit Bionic and to 128-bit for 64-bit Bionic.
45991
45992         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
45993         TARGET_LONG_DOUBLE_128 is true.
45994         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
45995
45996         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
45997         (mlong-double-64): Negate -mlong-double-128.
45998         (mlong-double-128): New option.
45999
46000         * config/i386/i386-c.c (ix86_target_macros): Define
46001         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
46002
46003         * doc/invoke.texi: Document -mlong-double-128.
46004
46005 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
46006
46007         PR rtl-optimization/60024
46008         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
46009
46010 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
46011
46012         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
46013
46014 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46015
46016         PR rtl-optimization/57662
46017         * sel-sched.c (code_motion_path_driver): Do not mark already not
46018         existing blocks in the visiting bitmap.
46019
46020 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
46021
46022         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
46023         on the insn being emitted.
46024
46025 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
46026             Will Deacon  <will.deacon@arm.com>
46027
46028         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
46029
46030 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46031
46032         * config/arm/arm-tables.opt: Regenerate.
46033
46034 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46035
46036         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
46037         for vector types other than V16QImode.
46038         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
46039         define_expand, and call altivec_expand_vec_perm_le when producing
46040         code with little endian element order.
46041         (*altivec_vperm_<mode>_internal): New insn having previous
46042         behavior of altivec_vperm_<mode>.
46043         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
46044         altivec_expand_vec_perm_le when producing code with little endian
46045         element order.
46046         (*altivec_vperm_<mode>_uns_internal): New insn having previous
46047         behavior of altivec_vperm_<mode>_uns.
46048
46049 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46050
46051         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
46052         (altivec_vsumsws): Add handling for -maltivec=be with a little
46053         endian target.
46054         (altivec_vsumsws_direct): New.
46055         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
46056         gen_altivec_vsumsws.
46057
46058 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46059
46060         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
46061         vtable_pointer_value_to_binfo): New functions.
46062         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
46063         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
46064
46065 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
46066
46067         * config/nios2/nios2.md (load_got_register): Initialize GOT
46068         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
46069         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
46070
46071 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46072
46073         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
46074         preserverd by passthrough, do not propagate the type.
46075
46076 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46077
46078         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
46079         (mips_atomic_assign_expand_fenv): New function.
46080         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
46081
46082 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46083
46084         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
46085         (__builtin_mips_set_fcsr): Likewise.
46086         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
46087         MIPS_USI_FTYPE_VOID.
46088         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
46089         (mips16_expand_set_fcsr): Likewise.
46090         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
46091         (mips16_set_fcsr_stub): Likewise.
46092         (mips16_get_fcsr_one_only_stub): New class.
46093         (mips16_set_fcsr_one_only_stub): Likewise.
46094         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
46095         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
46096         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
46097         (hard_float): New availability predicate.
46098         (mips_builtins): Add get_fcsr and set_fcsr.
46099         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
46100         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
46101         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
46102         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
46103         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
46104         patterns.
46105
46106 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46107
46108         * config/mips/mips.c (mips_one_only_stub): New class.
46109         (mips_need_mips16_rdhwr_p): Replace with...
46110         (mips16_rdhwr_stub): ...this new variable.
46111         (mips16_stub_call_address): New function.
46112         (mips16_rdhwr_one_only_stub): New class.
46113         (mips_expand_thread_pointer): Use mips16_stub_call_address.
46114         (mips_output_mips16_rdhwr): Delete.
46115         (mips_finish_stub): New function.
46116         (mips_code_end): Use it to handle rdhwr stubs.
46117
46118 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
46119
46120         PR target/60017
46121         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
46122         when calculating size of integer atomic types.
46123
46124 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
46125
46126         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
46127
46128 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
46129
46130         PR tree-optimization/60003
46131         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
46132         * profile.c (branch_prob): Use gimple_call_builtin_p
46133         to check for BUILT_IN_SETJMP_RECEIVER.
46134         * tree-inline.c (copy_bb): Call notice_special_calls.
46135
46136 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
46137
46138         PR bootstrap/59985
46139         * lra-constraints.c (process_alt_operands): Update reload_sum only
46140         on the first pass.
46141
46142 2014-01-31  Richard Henderson  <rth@redhat.com>
46143
46144         PR middle-end/60004
46145         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
46146         until after else_eh is processed.
46147
46148 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46149
46150         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
46151         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
46152         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
46153         in smmintrin.h, remove them.
46154         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
46155         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
46156         * config/i386/i386.md (ROUND_SAE): Fix value.
46157         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
46158         (const48_operand): New.
46159         * config/i386/subst.md (round), (round_expand): Use
46160         const_4_or_8_to_11_operand.
46161         (round_saeonly), (round_saeonly_expand): Use const48_operand.
46162
46163 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46164
46165         * config/i386/constraints.md (Yk): Swap meaning with k.
46166         * config/i386/i386.md (movhi_internal): Change Yk to k.
46167         (movqi_internal): Ditto.
46168         (*k<logic><mode>): Ditto.
46169         (*andhi_1): Ditto.
46170         (*andqi_1): Ditto.
46171         (kandn<mode>): Ditto.
46172         (*<code>hi_1): Ditto.
46173         (*<code>qi_1): Ditto.
46174         (kxnor<mode>): Ditto.
46175         (kortestzhi): Ditto.
46176         (kortestchi): Ditto.
46177         (kunpckhi): Ditto.
46178         (*one_cmplhi2_1): Ditto.
46179         (*one_cmplqi2_1): Ditto.
46180         * config/i386/sse.md (): Change k to Yk.
46181         (avx512f_load<mode>_mask): Ditto.
46182         (avx512f_blendm<mode>): Ditto.
46183         (avx512f_store<mode>_mask): Ditto.
46184         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
46185         (avx512f_storedqu<mode>_mask): Ditto.
46186         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
46187         Ditto.
46188         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
46189         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
46190         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
46191         (avx512f_maskcmp<mode>3): Ditto.
46192         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
46193         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
46194         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
46195         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
46196         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
46197         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
46198         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
46199         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
46200         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
46201         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
46202         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
46203         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
46204         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
46205         (vec_extract_lo_<mode>_maskm): Ditto.
46206         (vec_extract_hi_<mode>_maskm): Ditto.
46207         (avx512f_vternlog<mode>_mask): Ditto.
46208         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
46209         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
46210         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
46211         (avx512f_<code>v8div16qi2_mask): Ditto.
46212         (avx512f_<code>v8div16qi2_mask_store): Ditto.
46213         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
46214         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
46215         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
46216         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
46217         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46218         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46219         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46220         (*avx512pf_scatterpf<mode>df_mask): Ditto.
46221         (avx512cd_maskb_vec_dupv8di): Ditto.
46222         (avx512cd_maskw_vec_dupv16si): Ditto.
46223         (avx512f_vpermi2var<mode>3_maskz): Ditto.
46224         (avx512f_vpermi2var<mode>3_mask): Ditto.
46225         (avx512f_vpermi2var<mode>3_mask): Ditto.
46226         (avx512f_vpermt2var<mode>3_maskz): Ditto.
46227         (*avx512f_gathersi<mode>): Ditto.
46228         (*avx512f_gathersi<mode>_2): Ditto.
46229         (*avx512f_gatherdi<mode>): Ditto.
46230         (*avx512f_gatherdi<mode>_2): Ditto.
46231         (*avx512f_scattersi<mode>): Ditto.
46232         (*avx512f_scatterdi<mode>): Ditto.
46233         (avx512f_compress<mode>_mask): Ditto.
46234         (avx512f_compressstore<mode>_mask): Ditto.
46235         (avx512f_expand<mode>_mask): Ditto.
46236         * config/i386/subst.md (mask): Change k to Yk.
46237         (mask_scalar_merge): Ditto.
46238         (sd): Ditto.
46239
46240 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
46241
46242         * doc/extend.texi (Vector Extensions): Document ?: in C++.
46243
46244 2014-01-31  Richard Biener  <rguenther@suse.de>
46245
46246         PR middle-end/59990
46247         * builtins.c (fold_builtin_memory_op): Make sure to not
46248         use a floating-point mode or a boolean or enumeral type for
46249         the copy operation.
46250
46251 2014-01-30  DJ Delorie  <dj@redhat.com>
46252
46253         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
46254         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
46255         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
46256         whenever main() has an epilogue.
46257
46258 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46259
46260         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
46261         unused variable "field".
46262         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
46263         (vsx_mergeh_<mode>): Likewise.
46264         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
46265         (altivec_vmrghh): Likewise.
46266         (altivec_vmrghw): Likewise.
46267         (altivec_vmrglb): Likewise.
46268         (altivec_vmrglh): Likewise.
46269         (altivec_vmrglw): Likewise.
46270         (altivec_vspltb): Add missing uses.
46271         (altivec_vsplth): Likewise.
46272         (altivec_vspltw): Likewise.
46273         (altivec_vspltsf): Likewise.
46274
46275 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46276
46277         PR target/59923
46278         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
46279         frame related instructions.
46280
46281 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
46282
46283         PR rtl-optimization/59959
46284         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
46285         any reload of register whose subreg is invalid.
46286
46287 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46288
46289         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
46290         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
46291         Add missing return type - void.
46292
46293 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46294
46295         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
46296         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
46297         remove element index adjustment for endian (now handled in vsx.md
46298         and altivec.md).
46299         (altivec_expand_vec_perm_const): Use
46300         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
46301         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
46302         (vsx_xxspltw_<mode>): Adjust element index for little endian.
46303         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
46304         define_expand and a new define_insn *altivec_vspltb_internal;
46305         adjust for -maltivec=be on a little endian target.
46306         (altivec_vspltb_direct): New.
46307         (altivec_vsplth): Divide into a define_expand and a new
46308         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
46309         little endian target.
46310         (altivec_vsplth_direct): New.
46311         (altivec_vspltw): Divide into a define_expand and a new
46312         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
46313         little endian target.
46314         (altivec_vspltw_direct): New.
46315         (altivec_vspltsf): Divide into a define_expand and a new
46316         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
46317         a little endian target.
46318
46319 2014-01-30  Richard Biener  <rguenther@suse.de>
46320
46321         PR tree-optimization/59993
46322         * tree-ssa-forwprop.c (associate_pointerplus): Check we
46323         can propagate form the earlier stmt and avoid the transform
46324         when the intermediate result is needed.
46325
46326 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
46327
46328         * README.Portability: Fix typo.
46329
46330 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
46331
46332         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46333         comparison_operator with ordered_comparison_operator.
46334
46335 2014-01-30  Nick Clifton  <nickc@redhat.com>
46336
46337         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46338         Rename to mn10300_store_multiple_regs.
46339         * config/mn10300/mn10300.c: Likewise.
46340         * config/mn10300/mn10300.md (store_movm): Fix typo: call
46341         store_multiple_regs.
46342         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46343         Call mn10300_store_multiple_regs.
46344
46345 2014-01-30  Nick Clifton  <nickc@redhat.com>
46346             DJ Delorie  <dj@redhat.com>
46347
46348         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46349         %fp 2 to keep registers after it properly word-aligned.
46350         (rl78_alloc_physical_registers_umul): Handle the case where both
46351         input operands are the same.
46352
46353 2014-01-30  Richard Biener  <rguenther@suse.de>
46354
46355         PR tree-optimization/59903
46356         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46357         check properly.
46358
46359 2014-01-30  Jason Merrill  <jason@redhat.com>
46360
46361         PR c++/59633
46362         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46363
46364         PR c++/59645
46365         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46366
46367 2014-01-30  Richard Biener  <rguenther@suse.de>
46368
46369         PR tree-optimization/59951
46370         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46371
46372 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
46373
46374         PR target/59784
46375         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
46376         SFmode to DFmode case.
46377
46378 2014-01-29  DJ Delorie  <dj@redhat.com>
46379
46380         * config/msp430/msp430.opt (-minrt): New.
46381         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
46382         if -minrt given.
46383         (ENDFILE_SPEC): Likewise.
46384
46385 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
46386
46387         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
46388         (estimate_function_body_sizes): Use it.
46389
46390 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
46391
46392         PR c++/58561
46393         * dwarf2out.c (is_cxx_auto): New.
46394         (is_base_type): Use it.
46395         (gen_type_die_with_usage): Likewise.
46396
46397 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46398
46399         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
46400         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
46401         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
46402         -maltivec=be with LE targets.
46403         (vsx_mergeh_<mode>): Likewise.
46404         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
46405         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
46406         (altivec_vmrghb): Replace with define_expand and new
46407         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
46408         (altivec_vmrghb_direct): New define_insn.
46409         (altivec_vmrghh): Replace with define_expand and new
46410         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
46411         (altivec_vmrghh_direct): New define_insn.
46412         (altivec_vmrghw): Replace with define_expand and new
46413         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
46414         (altivec_vmrghw_direct): New define_insn.
46415         (*altivec_vmrghsf): Adjust for endianness.
46416         (altivec_vmrglb): Replace with define_expand and new
46417         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
46418         (altivec_vmrglb_direct): New define_insn.
46419         (altivec_vmrglh): Replace with define_expand and new
46420         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
46421         (altivec_vmrglh_direct): New define_insn.
46422         (altivec_vmrglw): Replace with define_expand and new
46423         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
46424         (altivec_vmrglw_direct): New define_insn.
46425         (*altivec_vmrglsf): Adjust for endianness.
46426         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46427         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46428         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46429         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46430         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46431         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46432         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46433         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46434
46435 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46436
46437         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
46438         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
46439         whitespace.
46440
46441 2014-01-29  Richard Biener  <rguenther@suse.de>
46442
46443         PR tree-optimization/58742
46444         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
46445         associate_pointerplus_align.
46446         (associate_pointerplus_diff): New function.
46447         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
46448         and associate_pointerplus_diff.
46449
46450 2014-01-29  Richard Biener  <rguenther@suse.de>
46451
46452         * lto-streamer.h (LTO_major_version): Bump to 3.
46453         (LTO_minor_version): Reset to 0.
46454
46455 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
46456
46457         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
46458         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
46459         (arm_file_start): Generate correct asm header for armv7ve.
46460         * config/arm/bpabi.h: Add multilib support for armv7ve.
46461         * config/arm/driver-arm.c: Change the architectures of cortex-a7
46462         and cortex-a15 to armv7ve.
46463         * config/arm/t-aprofile: Add multilib support for armv7ve.
46464         * doc/invoke.texi: Document -march=armv7ve.
46465
46466 2014-01-29  Richard Biener  <rguenther@suse.de>
46467
46468         PR tree-optimization/58742
46469         * tree-ssa-forwprop.c (associate_plusminus): Return true
46470         if we changed sth, defer EH cleanup to ...
46471         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
46472         (simplify_mult): New function.
46473
46474 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46475
46476         PR middle-end/59917
46477         PR tree-optimization/59920
46478         * tree.c (build_common_builtin_nodes): Remove
46479         __builtin_setjmp_dispatcher initialization.
46480         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
46481         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
46482         instead of gsi_after_labels + manually skipping debug stmts.
46483         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
46484         ignore bbs with IFN_ABNORMAL_DISPATCHER.
46485         * tree-inline.c (copy_edges_for_bb): Remove
46486         can_make_abnormal_goto argument, instead add abnormal_goto_dest
46487         argument.  Ignore computed_goto_p stmts.  Don't call
46488         make_abnormal_goto_edges.  If a call might need abnormal edges
46489         for non-local gotos, see if it already has an edge to
46490         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
46491         with true argument, don't do anything then, otherwise add
46492         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
46493         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
46494         caller.
46495         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
46496         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
46497         (lower_stmt): Don't set data->calls_builtin_setjmp.
46498         (lower_builtin_setjmp): Adjust comment.
46499         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
46500         * tree-cfg.c (found_computed_goto): Remove.
46501         (factor_computed_gotos): Remove.
46502         (make_goto_expr_edges): Return bool, true for computed gotos.
46503         Don't call make_abnormal_goto_edges.
46504         (build_gimple_cfg): Don't set found_computed_goto, don't call
46505         factor_computed_gotos.
46506         (computed_goto_p): No longer static.
46507         (make_blocks): Don't set found_computed_goto.
46508         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
46509         (make_edges): If make_goto_expr_edges returns true, push bb
46510         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
46511         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
46512         vector.  Record mapping between bbs and OpenMP regions if there
46513         are any, adjust make_gimple_omp_edges caller.  Call
46514         handle_abnormal_edges.
46515         (make_abnormal_goto_edges): Remove.
46516         * tree-cfg.h (make_abnormal_goto_edges): Remove.
46517         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
46518         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
46519         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
46520         * internal-fn.def (ABNORMAL_DISPATCHER): New.
46521         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
46522         filling *region also set *region_idx to (*region)->entry->index.
46523
46524         PR other/58712
46525         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
46526         For REGs set ORIGINAL_REGNO.
46527
46528 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
46529
46530         * doc/md.texi: Mention that a target shouldn't implement
46531         vec_widen_(s|u)mul_even/odd pair if it is less efficient
46532         than hi/lo pair.
46533
46534 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46535
46536         PR tree-optimization/59594
46537         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
46538         a copy of the datarefs vector rather than the vector itself.
46539
46540 2014-01-28  Jason Merrill  <jason@redhat.com>
46541
46542         PR c++/53756
46543         * dwarf2out.c (auto_die): New static.
46544         (gen_type_die_with_usage): Handle C++1y 'auto'.
46545         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
46546         on definition.
46547
46548 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
46549
46550         PR target/59672
46551         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
46552         (SPEC_X32): Likewise.
46553         (SPEC_64): Likewise.
46554         * config/i386/i386.c (ix86_option_override_internal): Turn off
46555         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
46556         for TARGET_16BIT.
46557         (x86_file_start): Output .code16gcc for TARGET_16BIT.
46558         * config/i386/i386.h (TARGET_16BIT): New macro.
46559         (TARGET_16BIT_P): Likewise.
46560         * config/i386/i386.opt: Add m16.
46561         * doc/invoke.texi: Document -m16.
46562
46563 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
46564
46565         PR preprocessor/59935
46566         * input.c (location_get_source_line): Bail out on when line number
46567         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
46568
46569 2014-01-28  Richard Biener  <rguenther@suse.de>
46570
46571         PR tree-optimization/58742
46572         * tree-ssa-forwprop.c (associate_plusminus): Handle
46573         pointer subtraction of the form (T)(P + A) - (T)P.
46574
46575 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46576
46577         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
46578         at const_int_cost.
46579
46580 2014-01-28  Richard Biener  <rguenther@suse.de>
46581
46582         Revert
46583         2014-01-28  Richard Biener  <rguenther@suse.de>
46584
46585         PR rtl-optimization/45364
46586         PR rtl-optimization/59890
46587         * var-tracking.c (local_get_addr_clear_given_value): Handle
46588         already cleared slot.
46589         (val_reset): Handle not allocated local_get_addr_cache.
46590         (vt_find_locations): Use post-order on the inverted CFG.
46591
46592 2014-01-28  Richard Biener  <rguenther@suse.de>
46593
46594         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
46595
46596 2014-01-28  Richard Biener  <rguenther@suse.de>
46597
46598         PR rtl-optimization/45364
46599         PR rtl-optimization/59890
46600         * var-tracking.c (local_get_addr_clear_given_value): Handle
46601         already cleared slot.
46602         (val_reset): Handle not allocated local_get_addr_cache.
46603         (vt_find_locations): Use post-order on the inverted CFG.
46604
46605 2014-01-28  Alan Modra  <amodra@gmail.com>
46606
46607         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
46608         * configure.ac <recursive call for build != host>: Define
46609         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
46610         and LD_FOR_BUILD too.
46611         * configure: Regenerate.
46612
46613 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
46614
46615         * config/i386/i386.c (get_builtin_code_for_version): Separate
46616         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
46617         Broadwell from Haswell.
46618
46619 2014-01-27  Steve Ellcey  <sellcey@mips.com>
46620
46621         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
46622         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
46623         * config/mips/mips.c (mips_option_override): Change setting
46624         of TARGET_DSP.
46625         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
46626         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
46627         Change from Mask to Var.
46628
46629 2014-01-27  Jeff Law  <law@redhat.com>
46630
46631         * ipa-inline.c (inline_small_functions): Fix typo.
46632
46633 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
46634
46635         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
46636         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
46637         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
46638         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
46639         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
46640         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
46641         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
46642         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
46643         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
46644         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
46645         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
46646         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
46647         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
46648         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
46649         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
46650         (_mm512_storeu_epi64): Ditto.
46651         (_mm512_cmpge_epi32_mask): Ditto.
46652         (_mm512_cmpge_epu32_mask): Ditto.
46653         (_mm512_cmpge_epi64_mask): Ditto.
46654         (_mm512_cmpge_epu64_mask): Ditto.
46655         (_mm512_cmple_epi32_mask): Ditto.
46656         (_mm512_cmple_epu32_mask): Ditto.
46657         (_mm512_cmple_epi64_mask): Ditto.
46658         (_mm512_cmple_epu64_mask): Ditto.
46659         (_mm512_cmplt_epi32_mask): Ditto.
46660         (_mm512_cmplt_epu32_mask): Ditto.
46661         (_mm512_cmplt_epi64_mask): Ditto.
46662         (_mm512_cmplt_epu64_mask): Ditto.
46663         (_mm512_cmpneq_epi32_mask): Ditto.
46664         (_mm512_cmpneq_epu32_mask): Ditto.
46665         (_mm512_cmpneq_epi64_mask): Ditto.
46666         (_mm512_cmpneq_epu64_mask): Ditto.
46667         (_mm512_expand_pd): Ditto.
46668         (_mm512_expand_ps): Ditto.
46669         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
46670         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
46671         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
46672         * config/i386/i386.c (ix86_builtins): Add
46673         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
46674         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
46675         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
46676         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
46677         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
46678         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
46679         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
46680         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
46681         IX86_BUILTIN_PMOVUSQW512_MEM.
46682         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
46683         __builtin_ia32_pmovsqd512mem_mask,
46684         __builtin_ia32_pmovqd512mem_mask,
46685         __builtin_ia32_pmovusqw512mem_mask,
46686         __builtin_ia32_pmovsqw512mem_mask,
46687         __builtin_ia32_pmovqw512mem_mask,
46688         __builtin_ia32_pmovusdw512mem_mask,
46689         __builtin_ia32_pmovsdw512mem_mask,
46690         __builtin_ia32_pmovdw512mem_mask,
46691         __builtin_ia32_pmovqb512mem_mask,
46692         __builtin_ia32_pmovusqb512mem_mask,
46693         __builtin_ia32_pmovsqb512mem_mask,
46694         __builtin_ia32_pmovusdb512mem_mask,
46695         __builtin_ia32_pmovsdb512mem_mask,
46696         __builtin_ia32_pmovdb512mem_mask.
46697         (bdesc_args): Add __builtin_ia32_expanddf512,
46698         __builtin_ia32_expandsf512.
46699         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
46700         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
46701         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
46702         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
46703         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
46704         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
46705         (avx512f_<code>v8div16qi2_mask_store): This.
46706         (avx512f_expand<mode>): New.
46707
46708 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
46709
46710         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
46711         New.
46712         (_mm512_mask_prefetch_i64gather_pd): Ditto.
46713         (_mm512_prefetch_i32scatter_pd): Ditto.
46714         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
46715         (_mm512_prefetch_i64scatter_pd): Ditto.
46716         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
46717         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
46718         (_mm512_mask_prefetch_i64gather_ps): Ditto.
46719         (_mm512_prefetch_i32scatter_ps): Ditto.
46720         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
46721         (_mm512_prefetch_i64scatter_ps): Ditto.
46722         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
46723         * config/i386/i386-builtin-types.def: Define
46724         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
46725         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
46726         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
46727         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
46728         IX86_BUILTIN_SCATTERPFQPD.
46729         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
46730         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
46731         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
46732         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
46733         __builtin_ia32_scatterpfqps.
46734         (ix86_expand_builtin): Expand new built-ins.
46735         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
46736         fix memory access data type.
46737         (*avx512pf_gatherpf<mode>_mask): Ditto.
46738         (*avx512pf_gatherpf<mode>): Ditto.
46739         (avx512pf_scatterpf<mode>): Ditto.
46740         (*avx512pf_scatterpf<mode>_mask): Ditto.
46741         (*avx512pf_scatterpf<mode>): Ditto.
46742         (GATHER_SCATTER_SF_MEM_MODE): New.
46743         (avx512pf_gatherpf<mode>df): Ditto.
46744         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46745         (*avx512pf_scatterpf<mode>df): Ditto.
46746
46747 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
46748
46749         PR bootstrap/59934
46750         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
46751         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
46752         reached.
46753
46754 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46755
46756         * common/config/arm/arm-common.c
46757         (arm_rewrite_mcpu): Handle multiple names.
46758         * config/arm/arm.h
46759         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46760
46761 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46762
46763         * gimple-builder.h (create_gimple_tmp): Delete.
46764
46765 2014-01-27  Christian Bruel  <christian.bruel@st.com>
46766
46767         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
46768         words comparisons.
46769
46770 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
46771
46772         * config/pa/pa.md (call): Generate indirect long calls to non-local
46773         functions when outputing 32-bit code.
46774         (call_value): Likewise except for special call to buggy powf function.
46775
46776         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
46777         portable runtime and PIC indirect calls.
46778         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
46779         and PIC call sequences.  Use ldo instead of blr to set return register
46780         in PIC call sequence.
46781
46782 2014-01-25  Walter Lee  <walt@tilera.com>
46783
46784         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
46785         avoid clobbering a live register.
46786
46787 2014-01-25  Walter Lee  <walt@tilera.com>
46788
46789         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
46790         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
46791         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
46792         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
46793
46794 2014-01-25  Walter Lee  <walt@tilera.com>
46795
46796         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
46797         arguments on even registers.
46798         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
46799         STACK_BOUNDARY.
46800         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
46801         (BIGGEST_ALIGNMENT): Ditto.
46802         (BIGGEST_FIELD_ALIGNMENT): Ditto.
46803
46804 2014-01-25  Walter Lee  <walt@tilera.com>
46805
46806         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
46807         insns before bundling.
46808         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
46809
46810 2014-01-25  Walter Lee  <walt@tilera.com>
46811
46812         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
46813         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
46814         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
46815
46816 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46817
46818         * config/mips/constraints.md (kl): Delete.
46819         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
46820         define expands, using...
46821         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
46822         instructions for MIPS16.
46823         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
46824         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
46825
46826 2014-01-25  Walter Lee  <walt@tilera.com>
46827
46828         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
46829         (clzdi2): Ditto.
46830         (ffsdi2): Ditto.
46831
46832 2014-01-25  Walter Lee  <walt@tilera.com>
46833
46834         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
46835         (TARGET_EXPAND_TO_RTL_HOOK): Define.
46836
46837 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46838
46839         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
46840         Handle XOR.
46841
46842 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
46843
46844         * print-rtl.c (in_call_function_usage): New var.
46845         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
46846         EXPR_LIST mode as mode and not as reg note name.
46847
46848         PR middle-end/59561
46849         * cfgloopmanip.c (copy_loop_info): If
46850         loop->warned_aggressive_loop_optimizations, make sure
46851         the flag is set in target loop too.
46852
46853 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
46854
46855         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
46856         flag_cilkplus.
46857         * builtins.def: Likewise.
46858         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
46859         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
46860         * ira.c (ira_setup_eliminable_regset): Likewise.
46861         * omp-low.c (gate_expand_omp): Likewise.
46862         (execute_lower_omp): Likewise.
46863         (diagnose_sb_0): Likewise.
46864         (gate_diagnose_omp_blocks): Likewise.
46865         (simd_clone_clauses_extract): Likewise.
46866         (gate): Likewise.
46867
46868 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46869
46870         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
46871         correction for little endian...
46872         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
46873         here.
46874
46875 2014-01-24  Jeff Law  <law@redhat.com>
46876
46877         PR tree-optimization/59919
46878         * tree-vrp.c (find_assert_locations_1): Do not register asserts
46879         for non-returning calls.
46880
46881 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
46882
46883         * common/config/aarch64/aarch64-common.c
46884         (aarch64_rewrite_mcpu): Handle multiple names.
46885         * config/aarch64/aarch64.h
46886         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46887
46888 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
46889
46890         * input.c (add_file_to_cache_tab): Handle the case where fopen
46891         returns NULL.
46892
46893 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
46894
46895         PR target/59929
46896         * config/i386/i386.md (pushsf splitter): Get stack adjustment
46897         from push operand if code of push isn't PRE_DEC.
46898
46899 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
46900
46901         PR target/59909
46902         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
46903         -mquad-memory-atomic.  Update -mquad-memory documentation to say
46904         it is only used for non-atomic loads/stores.
46905
46906         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
46907         -mquad-memory or -mquad-memory-atomic switches.
46908
46909         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
46910         -mquad-memory-atomic to ISA 2.07 support.
46911
46912         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
46913         to separate support of normal quad word memory operations (ldq, stq)
46914         from the atomic quad word memory operations.
46915
46916         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
46917         support to separate non-atomic quad word operations from atomic
46918         quad word operations.  Disable non-atomic quad word operations in
46919         little endian mode so that we don't have to swap words after the
46920         load and before the store.
46921         (quad_load_store_p): Add comment about atomic quad word support.
46922         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
46923         options printed with -mdebug=reg.
46924
46925         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
46926         -mquad-memory-atomic as the test for whether we have quad word
46927         atomic instructions.
46928         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
46929         or -mp8-vector are used, allow byte/half-word atomic operations.
46930
46931         * config/rs6000/sync.md (load_lockedti): Insure that the address
46932         is a proper indexed or indirect address for the lqarx instruction.
46933         On little endian systems, swap the hi/lo registers after the lqarx
46934         instruction.
46935         (load_lockedpti): Use indexed_or_indirect_operand predicate to
46936         insure the address is valid for the lqarx instruction.
46937         (store_conditionalti): Insure that the address is a proper indexed
46938         or indirect address for the stqcrx. instruction.  On little endian
46939         systems, swap the hi/lo registers before doing the stqcrx.
46940         instruction.
46941         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
46942         insure the address is valid for the stqcrx. instruction.
46943
46944         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
46945         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
46946         type of quad memory support is available.
46947
46948 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
46949
46950         PR regression/59915
46951         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
46952         there is a danger of looping.
46953
46954 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
46955
46956         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
46957         force flag_ira_loop_pressure if set via command line.
46958
46959 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46960
46961         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
46962         (ashr_simd): New builtin handling DI mode.
46963         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
46964         (aarch64_sshr_simddi): New match pattern.
46965         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
46966         (vshrd_n_s64): Likewise.
46967         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
46968
46969 2014-01-23  Nick Clifton  <nickc@redhat.com>
46970
46971         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
46972         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
46973         favour of mcu specific scripts.
46974         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
46975         430x multilibs.
46976
46977 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
46978             Alex Velenko  <Alex.Velenko@arm.com>
46979
46980         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
46981         (vaddv_s16): Likewise.
46982         (vaddv_s32): Likewise.
46983         (vaddv_u8): Likewise.
46984         (vaddv_u16): Likewise.
46985         (vaddv_u32): Likewise.
46986         (vaddvq_s8): Likewise.
46987         (vaddvq_s16): Likewise.
46988         (vaddvq_s32): Likewise.
46989         (vaddvq_s64): Likewise.
46990         (vaddvq_u8): Likewise.
46991         (vaddvq_u16): Likewise.
46992         (vaddvq_u32): Likewise.
46993         (vaddvq_u64): Likewise.
46994         (vaddv_f32): Likewise.
46995         (vaddvq_f32): Likewise.
46996         (vaddvq_f64): Likewise.
46997         (vmaxv_f32): Likewise.
46998         (vmaxv_s8): Likewise.
46999         (vmaxv_s16): Likewise.
47000         (vmaxv_s32): Likewise.
47001         (vmaxv_u8): Likewise.
47002         (vmaxv_u16): Likewise.
47003         (vmaxv_u32): Likewise.
47004         (vmaxvq_f32): Likewise.
47005         (vmaxvq_f64): Likewise.
47006         (vmaxvq_s8): Likewise.
47007         (vmaxvq_s16): Likewise.
47008         (vmaxvq_s32): Likewise.
47009         (vmaxvq_u8): Likewise.
47010         (vmaxvq_u16): Likewise.
47011         (vmaxvq_u32): Likewise.
47012         (vmaxnmv_f32): Likewise.
47013         (vmaxnmvq_f32): Likewise.
47014         (vmaxnmvq_f64): Likewise.
47015         (vminv_f32): Likewise.
47016         (vminv_s8): Likewise.
47017         (vminv_s16): Likewise.
47018         (vminv_s32): Likewise.
47019         (vminv_u8): Likewise.
47020         (vminv_u16): Likewise.
47021         (vminv_u32): Likewise.
47022         (vminvq_f32): Likewise.
47023         (vminvq_f64): Likewise.
47024         (vminvq_s8): Likewise.
47025         (vminvq_s16): Likewise.
47026         (vminvq_s32): Likewise.
47027         (vminvq_u8): Likewise.
47028         (vminvq_u16): Likewise.
47029         (vminvq_u32): Likewise.
47030         (vminnmv_f32): Likewise.
47031         (vminnmvq_f32): Likewise.
47032         (vminnmvq_f64): Likewise.
47033
47034 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
47035
47036         * config/aarch64/aarch64-simd.md
47037         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
47038         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
47039         (*aarch64_mul3_elt<mode>): Likewise.
47040         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
47041         (*aarch64_mul3_elt_to_64v2df): Likewise.
47042         (*aarch64_mla_elt<mode>): Likewise.
47043         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
47044         (*aarch64_mls_elt<mode>): Likewise.
47045         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
47046         (*aarch64_fma4_elt<mode>): Likewise.
47047         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
47048         (*aarch64_fma4_elt_to_64v2df): Likewise.
47049         (*aarch64_fnma4_elt<mode>): Likewise.
47050         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
47051         (*aarch64_fnma4_elt_to_64v2df): Likewise.
47052         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
47053         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
47054         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47055         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
47056         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
47057         (aarch64_sqdmull_lane<mode>_internal): Likewise.
47058         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
47059
47060 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47061
47062         * config/aarch64/aarch64-simd.md
47063         (aarch64_be_checked_get_lane<mode>): New define_expand.
47064         * config/aarch64/aarch64-simd-builtins.def
47065         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
47066         New builtin definition.
47067         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
47068         Use new safe be builtin.
47069
47070 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47071
47072         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
47073         New define_insn.
47074         (aarch64_be_st1<mode>): Likewise.
47075         (aarch_ld1<VALL:mode>): Define_expand modified.
47076         (aarch_st1<VALL:mode>): Likewise.
47077         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
47078         (UNSPEC_ST1): Likewise.
47079
47080 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
47081
47082         * config/microblaze/microblaze.md: Add trap insn and attribute
47083
47084 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
47085
47086         PR preprocessor/58580
47087         * input.h (location_get_source_line): Take an additional line_size
47088         parameter.
47089         (void diagnostics_file_cache_fini): Declare new function.
47090         * input.c (struct fcache): New type.
47091         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
47092         New static constants.
47093         (diagnostic_file_cache_init, total_lines_num)
47094         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
47095         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
47096         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
47097         (get_next_line, read_next_line, goto_next_line, read_line_num):
47098         New static function definitions.
47099         (diagnostic_file_cache_fini): New function.
47100         (location_get_source_line): Take an additional output line_len
47101         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
47102         read_line_num.
47103         * diagnostic.c (diagnostic_finish): Call
47104         diagnostic_file_cache_fini.
47105         (adjust_line): Take an additional input parameter for the length
47106         of the line, rather than calculating it with strlen.
47107         (diagnostic_show_locus): Adjust the use of
47108         location_get_source_line and adjust_line with respect to their new
47109         signature.  While displaying a line now, do not stop at the first
47110         null byte.  Rather, display the zero byte as a space and keep
47111         going until we reach the size of the line.
47112         * Makefile.in: Add vec.o to OBJS-libcommon
47113
47114 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47115             Ilya Tocar  <ilya.tocar@intel.com>
47116
47117         * config/i386/avx512fintrin.h (_mm512_kmov): New.
47118         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
47119         (__builtin_ia32_kmov16): Ditto.
47120         * config/i386/i386.md (UNSPEC_KMOV): New.
47121         (kmovw): Ditto.
47122
47123 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47124
47125         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
47126         (_mm512_storeu_si512): Ditto.
47127
47128 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
47129
47130         PR target/52125
47131         * rtl.h (get_referenced_operands): Declare.
47132         * recog.c (get_referenced_operands): New function.
47133         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
47134         operands have been referenced when recording LO_SUM references.
47135
47136 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
47137
47138         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
47139
47140 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47141
47142         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
47143         Enable for generic and recent AMD targets.
47144
47145 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47146
47147         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
47148         ARG_SIZE note when adjustment was eliminated.
47149
47150 2014-01-22  Jeff Law  <law@redhat.com>
47151
47152         PR tree-optimization/59597
47153         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
47154         in file.  Accept new argument REGISTERING and use it to modify
47155         dump output appropriately.
47156         (register_jump_thread): Corresponding changes.
47157         (mark_threaded_blocks): Reinstate code to cancel unprofitable
47158         thread paths involving joiner blocks.  Add code to dump cancelled
47159         jump threading paths.
47160
47161 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
47162
47163         PR rtl-optimization/59477
47164         * lra-constraints.c (inherit_in_ebb): Process call for living hard
47165         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
47166
47167 2014-01-22  Tom Tromey  <tromey@redhat.com>
47168
47169         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
47170         PARAMS.
47171         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
47172
47173 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47174
47175         PR rtl-optimization/59896
47176         * lra-constraints.c (process_alt_operands): Check unused note for
47177         matched operands of insn with no output reloads.
47178
47179 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
47180
47181         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
47182         (mips_move_from_gpr_cost): Likewise.
47183
47184 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47185
47186         PR rtl-optimization/59858
47187         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
47188         ira_class_hard_regs_num.
47189         (process_alt_operands): Increase reject for dying matched operand.
47190
47191 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
47192
47193         PR target/59003
47194         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
47195         smaller than size, perform several stores or loads and stores
47196         at dst + count - size to store or copy all of size bytes, rather
47197         than just last modesize bytes.
47198
47199 2014-01-20  DJ Delorie  <dj@redhat.com>
47200
47201         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
47202         that CLOBBERs are REGs before propogating their values.
47203
47204 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
47205
47206         PR middle-end/59789
47207         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
47208         (cgraph_inline_failed_type): New function.
47209         * cgraph.h (DEFCIFCODE): Add type.
47210         (cgraph_inline_failed_type_t): New enum.
47211         (cgraph_inline_failed_type): New prototype.
47212         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
47213         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
47214         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
47215         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
47216         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
47217         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
47218         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
47219         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
47220         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
47221         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
47222         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
47223         OPTIMIZATION_MISMATCH.
47224         * tree-inline.c (expand_call_inline): Emit errors during
47225         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
47226
47227 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47228
47229         PR target/59685
47230         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
47231         mode attribute in insn output.
47232
47233 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
47234
47235         * output.h (output_constant): Delete.
47236         * varasm.c (output_constant): Make private.
47237
47238 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
47239
47240         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
47241
47242 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47243
47244         PR middle-end/59860
47245         * tree.h (fold_builtin_strcat): New prototype.
47246         * builtins.c (fold_builtin_strcat): No longer static.  Add len
47247         argument, if non-NULL, don't call c_strlen.  Optimize
47248         directly into __builtin_memcpy instead of __builtin_strcpy.
47249         (fold_builtin_2): Adjust fold_builtin_strcat caller.
47250         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
47251
47252 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47253
47254         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47255         for SImode_address_operand operands, having only a REG argument.
47256
47257 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
47258
47259         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
47260         loader name using mbig-endian.
47261         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
47262
47263 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47264
47265         * doc/invoke.texi (-march): Clarify documentation for AArch64.
47266         (-mtune): Likewise.
47267         (-mcpu): Likewise.
47268
47269 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
47270
47271         * config/aarch64/aarch64-protos.h
47272         (aarch64_cannot_change_mode_class_ptr): Declare.
47273         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
47274         aarch64_cannot_change_mode_class_ptr): New.
47275         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
47276         backend hook aarch64_cannot_change_mode_class.
47277
47278 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47279
47280         * common/config/aarch64/aarch64-common.c
47281         (aarch64_handle_option): Don't handle any option order logic here.
47282         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
47283         selected_cpu, warn on architecture version mismatch.
47284         (aarch64_override_options): Fix parsing order for option strings.
47285
47286 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47287             Iain Sandoe  <iain@codesourcery.com>
47288
47289         PR bootstrap/59496
47290         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
47291         warning.  Amend comment to reflect current functionality.
47292
47293 2014-01-20  Richard Biener  <rguenther@suse.de>
47294
47295         PR middle-end/59860
47296         * builtins.c (fold_builtin_strcat): Remove case better handled
47297         by tree-ssa-strlen.c.
47298
47299 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
47300
47301         * config/aarch64/aarch64.opt
47302         (mcpu, march, mtune): Make case-insensitive.
47303
47304 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47305
47306         PR target/59880
47307         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47308         if operands[1] is a REG or ZERO_EXTEND of a REG.
47309
47310 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
47311
47312         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
47313
47314 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
47315
47316         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
47317         long non-pic millicode calls.
47318
47319 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47320
47321         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
47322
47323 2014-01-19  Kito Cheng  <kito@0xlab.org>
47324
47325         * builtins.c (expand_movstr): Check movstr expand done or fail.
47326
47327 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47328             H.J. Lu  <hongjiu.lu@intel.com>
47329
47330         PR target/59379
47331         * config/i386/i386.md (*lea<mode>): Zero-extend return register
47332         to DImode for zero-extended addresses.
47333
47334 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
47335
47336         PR rtl-optimization/57763
47337         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47338         on the new indirect jump_insn and increment LABEL_NUSES (label).
47339
47340 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
47341
47342         PR bootstrap/59580
47343         PR bootstrap/59583
47344         * config.gcc (x86_archs): New variable.
47345         (x86_64_archs): Likewise.
47346         (x86_cpus): Likewise.
47347         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47348         --with-arch/--with-cpu= options.
47349         Support --with-arch=/--with-cpu={nehalem,westmere,
47350         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47351
47352 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47353
47354         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47355         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
47356
47357 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47358
47359         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47360
47361 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
47362
47363         PR target/58944
47364         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47365         clear cpp_get_options (parse_in)->warn_unused_macros for
47366         ix86_target_macros_internal with cpp_define.
47367
47368 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
47369
47370         * jump.c (delete_related_insns): Keep (use (insn))s.
47371         * reorg.c (redundant_insn): Check for barriers too.
47372
47373 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47374
47375         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
47376
47377 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
47378
47379         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
47380         call to $$dyncall when TARGET_LONG_CALLS is true.
47381
47382 2014-01-17  Jeff Law  <law@redhat.com>
47383
47384         * ree.c (combine_set_extension): Temporarily disable test for
47385         changing number of hard registers.
47386
47387 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47388
47389         PR middle-end/58125
47390         * ipa-inline-analysis.c (inline_free_summary):
47391         Do not free summary of aliases.
47392
47393 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47394
47395         PR middle-end/59706
47396         * gimplify.c (gimplify_expr): Use create_tmp_var
47397         instead of create_tmp_var_raw.  If cond doesn't have
47398         integral type, don't add the IFN_ANNOTATE builtin at all.
47399
47400 2014-01-17  Martin Jambor  <mjambor@suse.cz>
47401
47402         PR ipa/59736
47403         * ipa-cp.c (prev_edge_clone): New variable.
47404         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
47405         Also resize prev_edge_clone vector.
47406         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
47407         (ipcp_edge_removal_hook): New function.
47408         (ipcp_driver): Register ipcp_edge_removal_hook.
47409
47410 2014-01-17  Andrew Pinski  <apinski@cavium.com>
47411             Steve Ellcey  <sellcey@mips.com>
47412
47413         PR target/59462
47414         * config/mips/mips.c (mips_print_operand): Check operand mode instead
47415         of operator mode.
47416
47417 2014-01-17  Jeff Law  <law@redhat.com>
47418
47419         PR middle-end/57904
47420         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
47421         so that pass_ccp runs first.
47422
47423 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47424
47425         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
47426         (ix86_adjust_cost): Use !TARGET_XXX.
47427         (do_reorder_for_imul): Likewise.
47428         (swap_top_of_ready_list): Likewise.
47429         (ix86_sched_reorder): Likewise.
47430
47431 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47432
47433         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
47434         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
47435         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
47436         (intel_memset): New.  Duplicate slm_memset.
47437         (intel_cost): New.  Duplicate slm_cost.
47438         (m_INTEL): New macro.
47439         (processor_target_table): Add "intel".
47440         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
47441         with PROCESSOR_INTEL for "intel".
47442         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
47443         PROCESSOR_SILVERMONT.
47444         (ix86_issue_rate): Likewise.
47445         (ix86_adjust_cost): Likewise.
47446         (ia32_multipass_dfa_lookahead): Likewise.
47447         (swap_top_of_ready_list): Likewise.
47448         (ix86_sched_reorder): Likewise.
47449         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
47450         instead of TARGET_OPT_AGU.
47451         * config/i386/i386.h (TARGET_INTEL): New.
47452         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
47453         (processor_type): Add PROCESSOR_INTEL.
47454         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
47455         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
47456
47457 2014-01-17  Marek Polacek  <polacek@redhat.com>
47458
47459         PR c/58346
47460         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
47461         size is zero.
47462
47463 2014-01-17  Richard Biener  <rguenther@suse.de>
47464
47465         PR tree-optimization/46590
47466         * opts.c (default_options_table): Add entries for
47467         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
47468         all enabled at -O1 but not for -Og.
47469         * common.opt (fbranch-count-reg): Remove Init(1).
47470         (fmove-loop-invariants): Likewise.
47471         (ftree-pta): Likewise.
47472
47473 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47474
47475         * config/i386/i386.c (ix86_data_alignment): For compatibility with
47476         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
47477         decls to at least the GCC 4.8 used alignments.
47478
47479         PR fortran/59440
47480         * tree-nested.c (convert_nonlocal_reference_stmt,
47481         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
47482         of GIMPLE_BIND stmts, adjust associated decls.
47483
47484 2014-01-17  Richard Biener  <rguenther@suse.de>
47485
47486         PR tree-optimization/46590
47487         * vec.h (vec<>::bseach): New member function implementing
47488         binary search according to C89 bsearch.
47489         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
47490         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
47491         bitmap pointer again.  Make accesses_in_loop a flat array.
47492         (mem_ref_obstack): New global.
47493         (outermost_indep_loop): Adjust for mem_ref->stored changes.
47494         (mark_ref_stored): Likewise.
47495         (ref_indep_loop_p_2): Likewise.
47496         (set_ref_stored_in_loop): New helper function.
47497         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
47498         (memref_free): Adjust.
47499         (record_mem_ref_loc): Simplify.
47500         (gather_mem_refs_stmt): Adjust.
47501         (sort_locs_in_loop_postorder_cmp): New function.
47502         (analyze_memory_references): Sort accesses_in_loop after
47503         loop postorder number.
47504         (find_ref_loc_in_loop_cmp): New function.
47505         (for_all_locs_in_loop): Find relevant cluster of locs in
47506         accesses_in_loop and iterate without recursion.
47507         (execute_sm): Avoid uninit warning.
47508         (struct ref_always_accessed): Simplify.
47509         (ref_always_accessed::operator ()): Likewise.
47510         (ref_always_accessed_p): Likewise.
47511         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
47512         loop postorder numbers here.
47513         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
47514         numbers.
47515
47516 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47517
47518         PR c++/57945
47519         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
47520         on decls for which assemble_alias has been called.
47521
47522 2014-01-17  Nick Clifton  <nickc@redhat.com>
47523
47524         * config/msp430/msp430.opt: (mcpu): New option.
47525         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
47526         (msp430_option_override): Parse target_cpu.  If the MCU name
47527         matches a generic string, clear target_mcu.
47528         (msp430_attr): Allow numeric interrupt values up to 63.
47529         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
47530         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
47531         option.
47532         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
47533         Add mcpu matches.
47534         * config/msp430/msp430.md (popm): Use %J rather than %I.
47535         (addsi3): Use msp430_nonimmediate_operand for operand 2.
47536         (addhi_cy_i): Use immediate_operand for operand 2.
47537         * doc/invoke.texi: Document -mcpu option.
47538
47539 2014-01-17  Richard Biener  <rguenther@suse.de>
47540
47541         PR rtl-optimization/38518
47542         * df.h (df_analyze_loop): Declare.
47543         * df-core.c: Include cfgloop.h.
47544         (df_analyze_1): Split out main part of df_analyze.
47545         (df_analyze): Adjust.
47546         (loop_inverted_post_order_compute): New function.
47547         (loop_post_order_compute): Likewise.
47548         (df_analyze_loop): New function avoiding whole-function
47549         postorder computes.
47550         * loop-invariant.c (find_defs): Use df_analyze_loop.
47551         (find_invariants): Adjust.
47552         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
47553
47554 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
47555
47556         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
47557         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
47558
47559 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
47560
47561         * ipa-ref.c (ipa_remove_stmt_references): Fix references
47562         traversal when removing references.
47563
47564 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
47565
47566         PR ipa/59775
47567         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
47568
47569 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
47570
47571         PR middle-end/56791
47572         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
47573         pushing a reload for an autoinc when we had previously reloaded an
47574         inner part of the address.
47575
47576 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
47577
47578         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
47579         field.
47580         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
47581         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
47582         when not giving up or versioning for alias only because of
47583         loop->safelen.
47584         (vect_analyze_data_ref_dependences): Set to true.
47585         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
47586         is a GIMPLE_PHI.
47587         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
47588         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
47589         to the condition.
47590
47591         PR middle-end/58344
47592         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
47593
47594         PR target/59839
47595         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
47596         operand 0 predicate for gathers, use a new pseudo as subtarget.
47597
47598 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47599
47600         PR middle-end/59609
47601         * lra-constraints.c (process_alt_operands): Add printing debug info.
47602         Check absence of input/output reloads for matched operands too.
47603
47604 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47605
47606         PR rtl-optimization/59835
47607         * ira.c (ira_init_register_move_cost): Increase cost for
47608         impossible modes.
47609
47610 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
47611
47612         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
47613
47614 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
47615
47616         PR target/59780
47617         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
47618         non-register objects.  Use gen_(high/low)part more consistently.
47619         Fix assertions.
47620
47621 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
47622
47623         PR target/59844
47624         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
47625         endian support, remove tests for WORDS_BIG_ENDIAN.
47626         (p8_mfvsrd_3_<mode>): Likewise.
47627         (reload_gpr_from_vsx<mode>): Likewise.
47628         (reload_gpr_from_vsxsf): Likewise.
47629         (p8_mfvsrd_4_disf): Likewise.
47630
47631 2014-01-16  Richard Biener  <rguenther@suse.de>
47632
47633         PR rtl-optimization/46590
47634         * lcm.c (compute_antinout_edge): Use postorder iteration.
47635         (compute_laterin): Use inverted postorder iteration.
47636
47637 2014-01-16  Nick Clifton  <nickc@redhat.com>
47638
47639         PR middle-end/28865
47640         * varasm.c (output_constant): Return the number of bytes actually
47641         emitted.
47642         (output_constructor_array_range): Update the field size with the
47643         number of bytes emitted by output_constant.
47644         (output_constructor_regular_field): Likewise.  Also do not
47645         complain if the total number of bytes emitted is now greater
47646         than the expected fieldpos.
47647         * output.h (output_constant): Update prototype and descriptive comment.
47648
47649 2014-01-16  Marek Polacek  <polacek@redhat.com>
47650
47651         PR middle-end/59827
47652         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
47653         it is error_mark_node.
47654
47655 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
47656
47657         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
47658         VALID_AVX256_REG_OR_OI_MODE.
47659
47660 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
47661
47662         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
47663         current procedure should be profiled.
47664
47665 2014-01-15  Andrew Pinski  <apinski@cavium.com>
47666
47667         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
47668         of moving from/to the STACK_REG register class.
47669
47670 2014-01-15  Richard Henderson  <rth@redhat.com>
47671
47672         PR debug/54694
47673         * reginfo.c (global_regs_decl): Globalize.
47674         * rtl.h (global_regs_decl): Declare.
47675         * ira.c (do_reload): Diagnose frame_pointer_needed and it
47676         reserved via global_regs.
47677
47678 2014-01-15  Teresa Johnson  <tejohnson@google.com>
47679
47680         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
47681
47682 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
47683
47684         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
47685         and vmulosh rather than call gen_vec_widen_smult_*.
47686         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
47687         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
47688         (vec_widen_smult_even_v16qi): Likewise.
47689         (vec_widen_umult_even_v8hi): Likewise.
47690         (vec_widen_smult_even_v8hi): Likewise.
47691         (vec_widen_umult_odd_v16qi): Likewise.
47692         (vec_widen_smult_odd_v16qi): Likewise.
47693         (vec_widen_umult_odd_v8hi): Likewise.
47694         (vec_widen_smult_odd_v8hi): Likewise.
47695         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
47696         vmuloub rather than call gen_vec_widen_umult_*.
47697         (vec_widen_umult_lo_v16qi): Likewise.
47698         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
47699         vmulosb rather than call gen_vec_widen_smult_*.
47700         (vec_widen_smult_lo_v16qi): Likewise.
47701         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
47702         rather than call gen_vec_widen_umult_*.
47703         (vec_widen_umult_lo_v8hi): Likewise.
47704         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
47705         rather than call gen_vec_widen_smult_*.
47706         (vec_widen_smult_lo_v8hi): Likewise.
47707
47708 2014-01-15  Jeff Law  <law@redhat.com>
47709
47710         PR tree-optimization/59747
47711         * ree.c (find_and_remove_re): Properly handle case where a second
47712         eliminated extension requires widening a copy created for elimination
47713         of a prior extension.
47714         (combine_set_extension): Ensure that the number of hard regs needed
47715         for a destination register does not change when we widen it.
47716
47717 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
47718
47719         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
47720         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
47721         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
47722         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
47723         (avr-*-rtems*): Likewise.
47724         (bfin*-rtems*): Likewise.
47725         (moxie-*-rtems*): Likewise.
47726         (h8300-*-rtems*): Likewise.
47727         (i[34567]86-*-rtems*): Likewise.
47728         (lm32-*-rtems*): Likewise.
47729         (m32r-*-rtems*): Likewise.
47730         (m68k-*-rtems*): Likewise.
47731         (microblaze*-*-rtems*): Likewise.
47732         (mips*-*-rtems*): Likewise.
47733         (powerpc-*-rtems*): Likewise.
47734         (sh-*-rtems*): Likewise.
47735         (sparc-*-rtems*): Likewise.
47736         (sparc64-*-rtems*): Likewise.
47737         (v850-*-rtems*): Likewise.
47738         (m32c-*-rtems*): Likewise.
47739
47740 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
47741
47742         PR rtl-optimization/59511
47743         * ira.c (ira_init_register_move_cost): Use memory costs for some
47744         cases of register move cost calculations.
47745         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
47746         instead of BB frequency.
47747         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
47748         * lra-assigns.c (find_hard_regno_for): Ditto.
47749
47750 2014-01-15  Richard Biener  <rguenther@suse.de>
47751
47752         PR tree-optimization/59822
47753         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
47754         (vectorizable_load): Use it to hoist defs of uses of invariant
47755         loads out of the loop.
47756
47757 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
47758             Kugan Vivekanandarajah  <kuganv@linaro.org>
47759
47760         PR target/59695
47761         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
47762         truncation.
47763
47764 2014-01-15  Richard Biener  <rguenther@suse.de>
47765
47766         PR rtl-optimization/59802
47767         * lcm.c (compute_available): Use inverted postorder to seed
47768         the initial worklist.
47769
47770 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47771
47772         PR target/59803
47773         * config/s390/s390.c (s390_preferred_reload_class): Don't return
47774         ADDR_REGS for invalid symrefs in non-PIC code.
47775
47776 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
47777
47778         PR other/58712
47779         * builtins.c (determine_block_size): Initialize *probable_max_size
47780         even if len_rtx is CONST_INT.
47781
47782 2014-01-14  Andrew Pinski  <apinski@cavium.com>
47783
47784         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
47785         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
47786         (cortexa53_tunings): Likewise.
47787         (aarch64_sched_issue_rate): New function.
47788         (TARGET_SCHED_ISSUE_RATE): Define.
47789
47790 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47791
47792         * ira-costs.c (find_costs_and_classes): Add missed
47793         ira_init_register_move_cost_if_necessary.
47794
47795 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47796
47797         PR target/59787
47798         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
47799
47800 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
47801
47802         PR target/59794
47803         * config/i386/i386.c (type_natural_mode): Add a bool parameter
47804         to indicate if type is used for function return value.  Warn ABI
47805         change if the vector mode isn't available for function return value.
47806         (ix86_function_arg_advance): Pass false to type_natural_mode.
47807         (ix86_function_arg): Likewise.
47808         (ix86_gimplify_va_arg): Likewise.
47809         (function_arg_32): Don't warn ABI change.
47810         (ix86_function_value): Pass true to type_natural_mode.
47811         (ix86_return_in_memory): Likewise.
47812         (ix86_struct_value_rtx): Removed.
47813         (TARGET_STRUCT_VALUE_RTX): Likewise.
47814
47815 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
47816
47817         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
47818         converting a conditional jump into a conditional return.
47819
47820 2014-01-14  Richard Biener  <rguenther@suse.de>
47821
47822         PR tree-optimization/58921
47823         PR tree-optimization/59006
47824         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
47825         hoisting invariant stmts.
47826         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
47827         invariant loads on the preheader edge if possible.
47828
47829 2014-01-14  Joey Ye  <joey.ye@arm.com>
47830
47831         * doc/plugin.texi (Building GCC plugins): Update to C++.
47832
47833 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
47834
47835         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
47836         (_mm_rcp28_round_ss): Ditto.
47837         (_mm_rsqrt28_round_sd): Ditto.
47838         (_mm_rsqrt28_round_ss): Ditto.
47839         (_mm_rcp28_sd): Ditto.
47840         (_mm_rcp28_ss): Ditto.
47841         (_mm_rsqrt28_sd): Ditto.
47842         (_mm_rsqrt28_ss): Ditto.
47843         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
47844         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
47845         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
47846         (IX86_BUILTIN_RCP28SD): Ditto.
47847         (IX86_BUILTIN_RCP28SS): Ditto.
47848         (IX86_BUILTIN_RSQRT28SD): Ditto.
47849         (IX86_BUILTIN_RSQRT28SS): Ditto.
47850         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
47851         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
47852         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
47853         (ix86_expand_special_args_builtin): Expand new FTYPE.
47854         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
47855         (srcp14<mode>): Make insn unary.
47856         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
47857         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
47858         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
47859         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
47860         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
47861         Fix rounding: make it SAE only.
47862         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
47863         Ditto.
47864         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
47865         Ditto.
47866         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
47867         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
47868         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
47869         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
47870         (round_saeonly_mask_scalar_operand4): Ditto.
47871         (round_saeonly_mask_scalar_op3): Ditto.
47872         (round_saeonly_mask_scalar_op4): Ditto.
47873
47874 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47875
47876         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
47877         Implement -maltivec=be for vec_insert and vec_extract.
47878
47879 2014-01-10  DJ Delorie  <dj@redhat.com>
47880
47881         * config/msp430/msp430.md (call_internal): Don't allow memory
47882         references with SP as the base register.
47883         (call_value_internal): Likewise.
47884         * config/msp430/constraints.md (Yc): New.  For memory references
47885         that don't use SP as a base register.
47886
47887         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
47888         "an integer without a # prefix"
47889         * config/msp430/msp430.md (epilogue_helper): Use it.
47890
47891 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47892
47893         PR target/59617
47894         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
47895         AVX512F gather builtins.
47896         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
47897         on gather decls with INTEGER_TYPE masktype.
47898         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
47899         directly into the builtin rather than hoisting it before loop.
47900
47901         PR tree-optimization/59387
47902         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
47903         (scev_const_prop): If folded_casts and type has undefined overflow,
47904         use force_gimple_operand instead of force_gimple_operand_gsi and
47905         for each added stmt if it is assign with
47906         arith_code_with_undefined_signed_overflow, call
47907         rewrite_to_defined_overflow.
47908         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
47909         gimple-fold.h instead.
47910         (arith_code_with_undefined_signed_overflow,
47911         rewrite_to_defined_overflow): Moved to ...
47912         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
47913         rewrite_to_defined_overflow): ... here.  No longer static.
47914         Include gimplify-me.h.
47915         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
47916         rewrite_to_defined_overflow): New prototypes.
47917
47918 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47919
47920         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
47921
47922 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
47923
47924         * builtins.c (get_object_alignment_2): Minor tweak.
47925         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
47926
47927 2014-01-13  Christian Bruel  <christian.bruel@st.com>
47928
47929         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
47930         optimized non constant lengths.
47931
47932 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47933
47934         PR libgomp/59194
47935         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
47936         load as __atomic_load_N if possible.
47937
47938 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47939
47940         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
47941         target parameter.
47942         (rs6000_expand_builtin): Adjust call.
47943
47944 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47945
47946         PR target/58115
47947         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
47948         * config/rs6000/rs6000.c: Include target-globals.h.
47949         (rs6000_set_current_function): Instead of doing target_reinit
47950         unconditionally, use save_target_globals_default_opts and
47951         restore_target_globals.
47952
47953         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
47954         FPSCR.
47955         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
47956         (rs6000_expand_builtin): Handle mffs and mtfsf.
47957         (rs6000_init_builtins): Define mffs and mtfsf.
47958         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
47959         (rs6000_mffs): New pattern.
47960         (rs6000_mtfsf): New pattern.
47961
47962 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
47963
47964         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
47965         Start narrowing with START.  Apply candidate-use pair
47966         and check overall cost in narrowing.
47967         (iv_ca_prune): Pass new argument.
47968
47969 2014-01-10  Jeff Law  <law@redhat.com>
47970
47971         PR middle-end/59743
47972         * ree.c (combine_reaching_defs): Ensure the defining statement
47973         occurs before the extension when optimizing extensions with
47974         different source and destination hard registers.
47975
47976 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
47977
47978         PR ipa/58585
47979         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
47980         vtables into the type inheritance graph.
47981
47982 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47983
47984         PR rtl-optimization/59754
47985         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
47986         modes in the REGNO != REGNO case.
47987
47988 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47989
47990         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
47991
47992 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47993
47994         PR tree-optimization/59745
47995         * tree-predcom.c (tree_predictive_commoning_loop): Call
47996         free_affine_expand_cache if giving up because components is NULL.
47997
47998         * target-globals.c (save_target_globals): Allocate < 4KB structs using
47999         GC in payload of target_globals struct instead of allocating them on
48000         the heap and the larger structs separately using GC.
48001         * target-globals.h (struct target_globals): Make regs, hard_regs,
48002         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
48003         of GTY((skip)) and change type to void *.
48004         (reset_target_globals): Cast loads from those fields to corresponding
48005         types.
48006
48007 2014-01-10  Steve Ellcey  <sellcey@mips.com>
48008
48009         PR plugins/59335
48010         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
48011         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
48012         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
48013
48014 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
48015
48016         PR target/59744
48017         * aarch64-modes.def (CC_Zmode): New flags mode.
48018         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
48019         represents an equality.
48020         (aarch64_get_condition_code): Handle CC_Zmode.
48021         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
48022
48023 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
48024
48025         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
48026         extraction in good case.
48027
48028 2014-01-10  Richard Biener  <rguenther@suse.de>
48029
48030         PR tree-optimization/59374
48031         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
48032         checking after SLP discovery.  Mark stmts not participating
48033         in any SLP instance properly.
48034
48035 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48036
48037         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
48038         when handling a SET rtx.
48039
48040 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48041
48042         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
48043         (cortex-a57): Likewise.
48044         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
48045
48046 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
48047
48048         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
48049         non-iwmmxt builtins.
48050
48051 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
48052
48053         PR ipa/58252
48054         PR ipa/59226
48055         * ipa-devirt.c record_target_from_binfo): Take as argument
48056         stack of binfos and lookup matching one for virtual inheritance.
48057         (possible_polymorphic_call_targets_1): Update.
48058
48059 2014-01-10  Huacai Chen  <chenhc@lemote.com>
48060
48061         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
48062         kernel strings for Loongson-2E/2F/3A.
48063
48064 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48065
48066         PR middle-end/59670
48067         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
48068         is_gimple_call before calling gimple_call_internal_p.
48069
48070 2014-01-09  Steve Ellcey  <sellcey@mips.com>
48071
48072         * Makefile.in (TREE_FLOW_H): Remove.
48073         (TREE_SSA_H): Add file names from tree-flow.h.
48074         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
48075         * tree.h: Remove tree-flow.h reference.
48076         * hash-table.h: Remove tree-flow.h reference.
48077         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
48078         reference with tree-ssa-loop.h.
48079
48080 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48081
48082         * doc/invoke.texi: Add -maltivec={be,le} options, and document
48083         default element-order behavior for -maltivec.
48084         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
48085         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
48086         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
48087         when targeting big endian, at least for now.
48088         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
48089
48090 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48091
48092         PR middle-end/47735
48093         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
48094         var satisfies use_register_for_decl, just take into account type
48095         alignment, rather than decl alignment.
48096
48097         PR tree-optimization/59622
48098         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
48099         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
48100         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
48101         Don't devirtualize for inplace at all.  For targets.length () == 1,
48102         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
48103
48104 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48105
48106         * config/i386/i386.md (cpu): Remove the unused btver1.
48107
48108 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48109
48110         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
48111
48112 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48113
48114         PR target/58115
48115         * tree-core.h (struct target_globals): New forward declaration.
48116         (struct tree_target_option): Add globals field.
48117         * tree.h (TREE_TARGET_GLOBALS): Define.
48118         (prepare_target_option_nodes_for_pch): New prototype.
48119         * target-globals.h (struct target_globals): Define even if
48120         !SWITCHABLE_TARGET.
48121         * tree.c (prepare_target_option_node_for_pch,
48122         prepare_target_option_nodes_for_pch): New functions.
48123         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
48124         * config/i386/i386.c: Include target-globals.h.
48125         (ix86_set_current_function): Instead of doing target_reinit
48126         unconditionally, use save_target_globals_default_opts and
48127         restore_target_globals.
48128
48129 2014-01-09  Richard Biener  <rguenther@suse.de>
48130
48131         PR tree-optimization/59715
48132         * tree-cfg.h (split_critical_edges): Declare.
48133         * tree-cfg.c (split_critical_edges): Export.
48134         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
48135
48136 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
48137
48138         * cfgexpand.c (expand_stack_vars): Optionally disable
48139         asan stack protection.
48140         (expand_used_vars): Likewise.
48141         (partition_stack_vars): Likewise.
48142         * asan.c (asan_emit_stack_protection): Optionally disable
48143         after return stack usage.
48144         (instrument_derefs): Optionally disable memory access instrumentation.
48145         (instrument_builtin_call): Likewise.
48146         (instrument_strlen_call): Likewise.
48147         (asan_protect_global): Optionally disable global variables protection.
48148         * doc/invoke.texi: Added doc for new options.
48149         * params.def: Added new options.
48150         * params.h: Likewise.
48151
48152 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48153
48154         PR rtl-optimization/59724
48155         * ifcvt.c (cond_exec_process_if_block): Don't call
48156         flow_find_head_matching_sequence with 0 longest_match.
48157         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
48158         non-active insns if !stop_after.
48159         (try_head_merge_bb): Revert 2014-01-07 changes.
48160
48161 2014-01-08  Jeff Law  <law@redhat.com>
48162
48163         * ree.c (get_sub_rtx): New function, extracted from...
48164         (merge_def_and_ext): Here.
48165         (combine_reaching_defs): Use get_sub_rtx.
48166
48167 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
48168
48169         * cgraph.h (varpool_variable_node): Do not choke on null node.
48170
48171 2014-01-08  Catherine Moore  <clm@codesourcery.com>
48172
48173         * config/mips/mips.md (simple_return): Attempt to use JRC
48174         for microMIPS.
48175         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
48176
48177 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48178
48179         PR rtl-optimization/59137
48180         * reorg.c (steal_delay_list_from_target): Call update_block for
48181         elided insns.
48182         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
48183
48184 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48185
48186         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
48187         two duplicate entries.
48188
48189 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48190
48191         Revert:
48192         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
48193
48194         * config/mips/mips.c (mips_truncated_op_cost): New function.
48195         (mips_rtx_costs): Adjust test for BADDU.
48196         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
48197
48198         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
48199
48200         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
48201         (*baddu_si): ...this new pattern.
48202
48203 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48204
48205         PR ipa/59722
48206         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
48207
48208 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
48209
48210         PR middle-end/57748
48211         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
48212         inner_reference_p.
48213         (expand_expr, expand_normal): Adjust.
48214         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
48215         inner_reference_p. Use inner_reference_p to expand inner references.
48216         (store_expr): Adjust.
48217         * cfgexpand.c (expand_call_stmt): Adjust.
48218
48219 2014-01-08  Rong Xu  <xur@google.com>
48220
48221         * gcov-io.c (gcov_var): Move from gcov-io.h.
48222         (gcov_position): Ditto.
48223         (gcov_is_error): Ditto.
48224         (gcov_rewrite): Ditto.
48225         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
48226         only part to libgcc/libgcov.h.
48227
48228 2014-01-08  Marek Polacek  <polacek@redhat.com>
48229
48230         PR middle-end/59669
48231         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
48232
48233 2014-01-08  Marek Polacek  <polacek@redhat.com>
48234
48235         PR sanitizer/59667
48236         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
48237
48238 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48239
48240         PR rtl-optimization/59649
48241         * stor-layout.c (get_mode_bounds): For BImode return
48242         0 and STORE_FLAG_VALUE.
48243
48244 2014-01-08  Richard Biener  <rguenther@suse.de>
48245
48246         PR middle-end/59630
48247         * gimple.h (is_gimple_builtin_call): Remove.
48248         (gimple_builtin_call_types_compatible_p): New.
48249         (gimple_call_builtin_p): New overload.
48250         * gimple.c (is_gimple_builtin_call): Remove.
48251         (validate_call): Rename to ...
48252         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
48253         check return types.
48254         (validate_type): New static function.
48255         (gimple_call_builtin_p): New overload and adjust.
48256         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
48257         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
48258         (gimple_fold_stmt_to_constant_1): Likewise.
48259         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
48260
48261 2014-01-08  Richard Biener  <rguenther@suse.de>
48262
48263         PR middle-end/59471
48264         * gimplify.c (gimplify_expr): Gimplify register-register type
48265         VIEW_CONVERT_EXPRs to separate stmts.
48266
48267 2014-01-07  Jeff Law  <law@redhat.com>
48268
48269         PR middle-end/53623
48270         * ree.c (combine_set_extension): Handle case where source
48271         and destination registers in an extension insn are different.
48272         (combine_reaching_defs): Allow source and destination registers
48273         in extension to be different under limited circumstances.
48274         (add_removable_extension): Remove restriction that the
48275         source and destination registers in the extension are the same.
48276         (find_and_remove_re): Emit a copy from the extension's
48277         destination to its source after the defining insn if
48278         the source and destination registers are different.
48279
48280         PR middle-end/59285
48281         * ifcvt.c (merge_if_block): If we are merging a block with more than
48282         one successor with a block with no successors, remove any BARRIER
48283         after the second block.
48284
48285 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
48286
48287         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
48288
48289 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
48290
48291         PR target/59652
48292         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
48293         for 14-bit register offsets when INT14_OK_STRICT is false.
48294
48295 2014-01-07  Roland Stigge  <stigge@antcom.de>
48296             Michael Meissner  <meissner@linux.vnet.ibm.com>
48297
48298         PR 57386/target
48299         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
48300         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
48301
48302 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
48303
48304         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
48305         -mcpu.
48306
48307 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
48308
48309         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
48310         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
48311         rtx is const0_rtx or not.
48312
48313 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
48314
48315         PR target/58115
48316         * target-globals.c (save_target_globals): Remove this_fn_optab
48317         handling.
48318         * toplev.c: Include optabs.h.
48319         (target_reinit): Temporarily restore the global options if another
48320         set of options are in force.
48321
48322 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
48323
48324         PR rtl-optimization/58668
48325         * cfgcleanup.c (flow_find_cross_jump): Don't count
48326         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
48327         to determine what is counted.
48328         (flow_find_head_matching_sequence): Use active_insn_p to determine
48329         what is counted.
48330         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48331         counting change.
48332         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48333         determine what is counted.
48334
48335         PR tree-optimization/59643
48336         * tree-predcom.c (split_data_refs_to_components): If one dr is
48337         read and one write, determine_offset fails and the write isn't
48338         in the bad component, just put the read into the bad component.
48339
48340 2014-01-07  Mike Stump  <mikestump@comcast.net>
48341             Jakub Jelinek  <jakub@redhat.com>
48342
48343         PR pch/59436
48344         * tree-core.h (struct tree_optimization_option): Change optabs
48345         type from unsigned char * to void *.
48346         * optabs.c (init_tree_optimization_optabs): Adjust
48347         TREE_OPTIMIZATION_OPTABS initialization.
48348
48349 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
48350
48351         PR target/59644
48352         * config/i386/i386.h (struct machine_function): Add
48353         no_drap_save_restore field.
48354         * config/i386/i386.c (ix86_save_reg): Use
48355         !cfun->machine->no_drap_save_restore instead of
48356         crtl->stack_realign_needed.
48357         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48358         this function clears frame_pointer_needed.  Set
48359         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48360         and DRAP reg is needed.
48361
48362 2014-01-06  Marek Polacek  <polacek@redhat.com>
48363
48364         PR c/57773
48365         * doc/implement-c.texi: Mention that other integer types are
48366         permitted as bit-field types in strictly conforming mode.
48367
48368 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
48369
48370         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48371         is newly allocated.
48372
48373 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
48374
48375         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
48376
48377 2014-01-06  Martin Jambor  <mjambor@suse.cz>
48378
48379         PR ipa/59008
48380         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
48381         to int.
48382         * ipa-prop.c (ipa_print_node_params): Fix indentation.
48383
48384 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
48385
48386         PR debug/59350
48387         PR debug/59510
48388         * var-tracking.c (add_stores): Preserve the value of the source even if
48389         we don't record the store.
48390
48391 2014-01-06  Terry Guo  <terry.guo@arm.com>
48392
48393         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
48394
48395 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
48396
48397         PR bootstrap/59541
48398         * config/darwin.c (darwin_function_section): Adjust return values to
48399         correspond to optimisation changes made in r206070.
48400
48401 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
48402
48403         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
48404         from prefetch_block tune setting.
48405         (nocona_cost): Correct size of prefetch block to 64.
48406
48407 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
48408
48409         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
48410         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
48411         used to save the static chain register in the computation of the offset
48412         from which the FP registers need to be restored.
48413
48414 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
48415
48416         PR tree-optimization/59519
48417         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
48418         ICE if get_current_def (current_new_name) is already non-NULL, as long
48419         as it is a phi result of some other phi in *new_exit_bb that has
48420         the same argument.
48421
48422         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
48423         or vmovdqu* for misaligned_operand.
48424         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
48425         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
48426         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
48427         aligned_mem for AVX512F masked aligned load and store builtins and for
48428         non-temporal moves.
48429
48430 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
48431
48432         PR tree-optimization/59651
48433         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
48434         Address range for negative step should be added by TYPE_SIZE_UNIT.
48435
48436 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
48437
48438         * config/m68k/m68k.c (handle_move_double): Handle pushes with
48439         overlapping registers also for registers other than the stack pointer.
48440
48441 2014-01-03  Marek Polacek  <polacek@redhat.com>
48442
48443         PR other/59661
48444         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
48445         __builtin_FILE.
48446
48447 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
48448
48449         PR target/59625
48450         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
48451         asm goto as jump.
48452
48453         * config/i386/i386.md (MODE_SIZE): New mode attribute.
48454         (push splitter): Use <P:MODE_SIZE> instead of
48455         GET_MODE_SIZE (<P:MODE>mode).
48456         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
48457         (mov -1, reg peephole2): Likewise.
48458         * config/i386/sse.md (*mov<mode>_internal,
48459         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
48460         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
48461         *<code><mode>3, *andnot<mode>3<mask_name>,
48462         <mask_codefor><code><mode>3<mask_name>): Likewise.
48463         * config/i386/subst.md (mask_mode512bit_condition,
48464         sd_mask_mode512bit_condition): Likewise.
48465
48466 2014-01-02  Xinliang David Li  <davidxl@google.com>
48467
48468         PR tree-optimization/59303
48469         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
48470         (dump_predicates): Better output format.
48471         (pred_equal_p): New function.
48472         (is_neq_relop_p): Ditto.
48473         (is_neq_zero_form_p): Ditto.
48474         (pred_expr_equal_p): Ditto.
48475         (pred_neg_p): Ditto.
48476         (simplify_pred): Ditto.
48477         (simplify_preds_2): Ditto.
48478         (simplify_preds_3): Ditto.
48479         (simplify_preds_4): Ditto.
48480         (simplify_preds): Ditto.
48481         (push_pred): Ditto.
48482         (push_to_worklist): Ditto.
48483         (get_pred_info_from_cmp): Ditto.
48484         (is_degenerated_phi): Ditto.
48485         (normalize_one_pred_1): Ditto.
48486         (normalize_one_pred): Ditto.
48487         (normalize_one_pred_chain): Ditto.
48488         (normalize_preds): Ditto.
48489         (normalize_cond_1): Remove function.
48490         (normalize_cond): Ditto.
48491         (is_gcond_subset_of): Ditto.
48492         (is_subset_of_any): Ditto.
48493         (is_or_set_subset_of): Ditto.
48494         (is_and_set_subset_of): Ditto.
48495         (is_norm_cond_subset_of): Ditto.
48496         (pred_chain_length_cmp): Ditto.
48497         (convert_control_dep_chain_into_preds): Type change.
48498         (find_predicates): Ditto.
48499         (find_def_preds): Ditto.
48500         (destroy_predicates_vecs): Ditto.
48501         (find_matching_predicates_in_rest_chains): Ditto.
48502         (use_pred_not_overlap_with_undef_path_pred): Ditto.
48503         (is_pred_expr_subset): Ditto.
48504         (is_pred_chain_subset_of): Ditto.
48505         (is_included_in): Ditto.
48506         (is_superset_of): Ditto.
48507
48508 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48509
48510         Update copyright years.
48511
48512 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48513
48514         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
48515         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
48516         config/arc/arc.md, config/arc/arc.opt,
48517         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
48518         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
48519         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
48520         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
48521         config/linux-protos.h, config/linux.c, config/winnt-c.c,
48522         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
48523         vtable-verify.c, vtable-verify.h: Use the standard form for the
48524         copyright notice.
48525
48526 2014-01-02  Tobias Burnus  <burnus@net-b.de>
48527
48528         * gcc.c (process_command): Update copyright notice dates.
48529         * gcov-dump.c: Ditto.
48530         * gcov.c: Ditto.
48531         * doc/cpp.texi: Bump @copying's copyright year.
48532         * doc/cppinternals.texi: Ditto.
48533         * doc/gcc.texi: Ditto.
48534         * doc/gccint.texi: Ditto.
48535         * doc/gcov.texi: Ditto.
48536         * doc/install.texi: Ditto.
48537         * doc/invoke.texi: Ditto.
48538
48539 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
48540
48541         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
48542
48543 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
48544
48545         * config/i386/sse.md (*mov<mode>_internal): Guard
48546         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
48547
48548         PR rtl-optimization/59647
48549         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
48550         new_rtx into UNSIGNED_FLOAT rtxes.
48551 \f
48552 Copyright (C) 2014 Free Software Foundation, Inc.
48553
48554 Copying and distribution of this file, with or without modification,
48555 are permitted in any medium without royalty provided the copyright
48556 notice and this notice are preserved.