re PR sanitizer/64265 (r217669 broke tsan)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-15  Jakub Jelinek  <jakub@redhat.com>
2
3         PR sanitizer/64265
4         * tsan.c (instrument_func_entry): Insert __tsan_func_entry
5         call on edge from entry block to single succ instead
6         of after labels of single succ of entry block.
7
8 2014-12-15  Richard Biener  <rguenther@suse.de>
9
10         PR tree-optimization/64284
11         * tree-ssa-threadupdate.c (duplicate_seme_region): Mark
12         the loop for removal if we copied the loop header.
13
14 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
15
16         * ipa.c (process_references): Fix conditoinal on flag_optimize
17
18 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
19
20         PR ipa/61558
21         * symtab.c (symbol_table::insert_to_assembler_name_hash
22         symbol_table::unlink_from_assembler_name_hash): Do not ICE when 
23         DECL_ASSEMBLER_NAME is NULL.
24
25 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
26
27         * cgraphunit.c (analyze_functions): Always analyze targets of aliases.
28
29 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
30
31         PR lto/64043
32         * tree.c (virtual_method_call_p): Return false when OTR type has
33         no BINFO.
34
35 2014-12-14  Jan Hubicka  <hubicka@ucw.cz>
36
37         * cgraphunit.c (analyze_functions): Do not analyze extern inline
38         funtions when not optimizing; skip comdat locals.
39
40 2014-12-14  H.J. Lu  <hongjiu.lu@intel.com>
41
42         PR rtl-optimization/64037
43         * combine.c (setup_incoming_promotions): Pass the argument
44         before any promotions happen to promote_function_mode.
45
46 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
47
48         * config/nvptx/nvptx.h (ASM_OUTPUT_ALIGN): Define as a C statment.
49
50 2014-12-12  Vladimir Makarov  <vmakarov@redhat.com>
51
52         PR target/64110
53         * lra-constraints.c (process_alt_operands): Refuse alternative
54         when reload pseudo of given class can not hold value of given
55         mode.
56
57 2014-12-12  Thomas Schwinge  <thomas@codesourcery.com>
58
59         * gimple-walk.c (walk_gimple_op) <GIMPLE_OMP_FOR>: Also check
60         intermediate walk_tree results for for_incr.
61         <GIMPLE_OMP_TARGET>: Walk child_fn and data_arg, too.
62         <GIMPLE_OMP_CRITICAL, GIMPLE_OMP_ATOMIC_STORE>: Pretty printing.
63
64 2014-12-12  Richard Sandiford  <richard.sandiford@arm.com>
65
66         PR middle-end/64182
67         * wide-int.h (wi::div_round, wi::mod_round): Fix rounding of tied
68         cases.
69         * double-int.c (div_and_round_double): Fix handling of unsigned
70         cases.  Use same rounding approach as wide-int.h.
71
72 2014-12-12  Marek Polacek  <polacek@redhat.com>
73
74         PR middle-end/64274
75         * fold-const.c (fold_binary_loc): Add ANY_INTEGRAL_TYPE_P check.
76
77 2014-12-12  Jakub Jelinek  <jakub@redhat.com>
78
79         PR tree-optimization/64269
80         * tree-ssa-forwprop.c (simplify_builtin_call): Bail out if
81         len2 or diff are too large.
82
83 2014-12-12  Richard Biener  <rguenther@suse.de>
84
85         PR middle-end/64280
86         * tree-cfg.c (replace_uses_by): Guard assert properly.
87
88 2014-12-12  Anthony Green  <green@moxielogic.com>
89
90         * config/moxie/moxie.md: Add use of zex instruction.
91
92 2014-12-12  Marc Glisse  <marc.glisse@inria.fr>
93
94         * real.h (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
95         HONOR_SIGN_DEPENDENT_ROUNDING): Replace macros with 3 overloaded
96         declarations.
97         * real.c (HONOR_NANS): Fix indentation.
98         (HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
99         HONOR_SIGN_DEPENDENT_ROUNDING): Define three overloads.
100         * builtins.c (fold_builtin_cproj, fold_builtin_signbit,
101         fold_builtin_fmin_fmax, fold_builtin_classify): Simplify argument
102         of HONOR_*.
103         * fold-const.c (operand_equal_p, fold_comparison, fold_binary_loc):
104         Likewise.
105         * gimple-fold.c (gimple_val_nonnegative_real_p): Likewise.
106         * ifcvt.c (noce_try_move, noce_try_minmax, noce_try_abs): Likewise.
107         * omp-low.c (omp_reduction_init): Likewise.
108         * rtlanal.c (may_trap_p_1): Likewise.
109         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
110         * tree-ssa-dom.c (record_equality, record_edge_info): Likewise.
111         * tree-ssa-phiopt.c (value_replacement, abs_replacement): Likewise.
112         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
113         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
114
115 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
116
117         * ipa-inline.c (ipa_inline): Fix condition on when
118         TODO_remove_unreachable_functions is needed.
119
120 2014-12-12  Jan Hubicka  <hubicka@ucw.cz>
121
122         * ipa-devirt.c (possible_polymorphic_call_targets): Return early
123         if otr_type has no BINFO.
124
125 2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>
126
127         PR rtl-optimization/63917
128         * ifcvt.c (cc_in_cond): New function.
129         (end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
130         (noce_process_if_block, check_cond_move_block): Check CC references.
131
132 2014-12-11  Andrew Pinski  <apinski@cavium.com>
133
134         * config/aarch64/aarch64-protos.h (tune_params): Add align field.
135         * config/aarch64/aarch64.c (generic_tunings): Specify align.
136         (cortexa53_tunings): Likewise.
137         (cortexa57_tunings): Likewise.
138         (thunderx_tunings): Likewise.
139         (aarch64_override_options): Set align_loops, align_jumps,
140         align_functions based on what the tuning struct.
141
142 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
143
144         * doc/md.texi (Insn Lengths): Fix description of (pc).
145
146 2014-12-11  Jan Hubicka  <hubicka@ucw.cz>
147
148         PR ipa/61324
149         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
150         * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
151         * cgraphunit.c (symbol_table::process_new_functions): Add
152         IPA_SSA_AFTER_INLINING.
153         (ipa_passes): Update call of remove_unreachable_nodes.
154         (symbol_table::compile): Remove call of remove_unreachable_nodes.
155         * ipa-inline.c (inline_small_functions): Do not ICE with
156         -flto-partition=none
157         (ipa_inline): Update symtab->state; fix formatting
158         update call of remove_unreachable_nodes.
159         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
160         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
161         * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
162         (remove_unreachable_nodes): Update.
163         * ipa.c (process_references): Keep external references only
164         when optimizing.
165         (walk_polymorphic_call_targets): Keep possible polymorphic call
166         target only when devirtualizing.
167         (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
168         parameter.
169         (ipa_single_use): Update comment.
170         * ipa-pure-const.c (cdtor_p): New function.
171         (propagate_pure_const): Track if some cdtor was turned pure/const.
172         (execute): Return TODO_remove_functions if needed.
173         * ipa-comdats.c (ipa_comdats): Update comment.
174
175 2014-12-11  Aldy Hernandez  <aldyh@redhat.com>
176
177         * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
178         parameter.
179         (gen_inlined_subroutine_die): Same.
180         (gen_block_die): Same.
181         (decls_for_scope): Same.
182
183 2014-12-11  Renlin Li  <renlin.li@arm.com>
184
185         * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
186         AARCH64_FL_FOR_ARCH8.
187         * config/aarch64/aarch64.c (all_cores): Use FLAGS from
188         aarch64-cores.def file only.
189
190 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
191
192         PR fortran/44054
193         * diagnostic.c (diagnostic_action_after_output): Make it extern.
194         Take diagnostic_t argument instead of diagnostic_info. Count also
195         DK_WERROR towards max_errors.
196         (diagnostic_report_diagnostic): Update call according to the above.
197         (error_recursion): Likewise.
198         * diagnostic.h (diagnostic_action_after_output): Declare.
199         * pretty-print.c (pp_formatted_text_data): Delete.
200         (pp_append_r): Call output_buffer_append_r.
201         (pp_formatted_text): Call output_buffer_formatted_text.
202         (pp_last_position_in_text): Call output_buffer_last_position_in_text.
203         * pretty-print.h (output_buffer_formatted_text): New.
204         (output_buffer_append_r): New.
205         (output_buffer_last_position_in_text): New.
206
207 2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com
208
209         * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
210         message to say +no only when removing extension.
211
212 2014-12-11  Andrew MacLeod  <amacleod@redhat.com>
213
214         * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
215         for generator file.  Add comment indicating it is a generated file.
216         * config/tilepro/mul-tables.c: Update generated file.
217         * config/tilegx/mul-tables.c: Likewise.
218
219 2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
220
221         * combine.c (try_combine): Do not allow combining a PARALLEL I2
222         with a register move I3 if that I2 is an asm.
223
224 2014-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
225
226         * config/arm/arm_neon.h (vrndqn_f32): Rename to...
227         (vrndnq_f32): ... this.
228         (vrndqa_f32): Rename to...
229         (vrndaq_f32): ... this.
230         (vrndqp_f32): Rename to...
231         (vrndpq_f32): ... this.
232         (vrndqm_f32): Rename to...
233         (vrndmq_f32): ... this.
234         (vrndx_f32): New intrinsic.
235         (vrndxq_f32): Likewise.
236
237 2014-12-11  Marek Polacek  <polacek@redhat.com>
238
239         * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
240         (extract_muldiv_1): Likewise.
241         (maybe_canonicalize_comparison_1): Likewise.
242         (fold_comparison): Likewise.
243         (tree_binary_nonnegative_warnv_p): Likewise.
244         (tree_binary_nonzero_warnv_p): Likewise.
245         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
246         * tree-scalar-evolution.c (simple_iv): Likewise.
247         (scev_const_prop): Likewise.
248         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
249         * tree-vect-generic.c (expand_vector_operation): Likewise.
250         * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
251         (ANY_INTEGRAL_TYPE_P): Define.
252         (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
253         Add ANY_INTEGRAL_TYPE_CHECK.
254         (any_integral_type_check): New function.
255
256 2014-12-11  Tobias Burnus  <burnus@net-b.de>
257             Manuel López-Ibáñez  <manu@gcc.gnu.org>
258
259         * error.c (gfc_get_terminal_width): Renamed from
260         get_terminal_width and use same-named common function.
261         (gfc_error_init_1): Update call.
262
263 2014-12-10  Aldy Hernandez  <aldyh@redhat.com>
264
265         * gdbhooks.py (class DWDieRefPrinter): New class.
266         (build_pretty_printer): Register dw_die_ref's.
267
268 2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>
269
270         * config.gcc: Support "knl".
271         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
272         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
273         PROCESSOR_KNL.
274         * config/i386/i386.c (m_KNL): Define.
275         (processor_target_table): Add "knl".
276         (PTA_KNL): Define.
277         (ix86_issue_rate): Add PROCESSOR_KNL.
278         (ix86_adjust_cost): Ditto.
279         (ia32_multipass_dfa_lookahead): Ditto.
280         (get_builtin_code_for_version): Handle "knl".
281         (fold_builtin_cpu): Ditto.
282         * config/i386/i386.h (TARGET_KNL): Define.
283         (processor_type): Add PROCESSOR_KNL.
284         * config/i386/i386.md (attr "cpu"): Add knl.
285         * config/i386/x86-tune.def: Add m_KNL.
286
287 2014-12-10  Jan Hubicka  <hubicka@ucw.cz>
288
289         * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
290         * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
291         when it is not streamed to the given ltrans.
292         (compute_ltrans_boundary): Make code adding all polymorphic
293         call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
294         * common.opt (fdevirtualize-at-ltrans): New flag.
295
296 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
297
298         * varpool.c (varpool_node::get_create): Force output of vars with
299         "omp declare target" attribute.
300
301 2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
302
303         * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
304         * real.c: Include rtl.h and options.h.
305         (HONOR_NANS): Define three overloads.
306         * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
307         Simplify argument of HONOR_NANS.
308         * fold-const.c (combine_comparisons, fold_truth_not_expr,
309         fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
310         fold_comparison, fold_binary_loc): Likewise.
311         * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
312         * ipa-inline-analysis.c (add_clause,
313         set_cond_stmt_execution_predicate): Likewise.
314         * match.pd: Likewise.
315         * rtlanal.c (may_trap_p_1): Likewise.
316         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
317         * tree-if-conv.c (parse_predicate): Likewise.
318         * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
319         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
320         * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
321         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
322         * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
323
324 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
325
326         PR tree-optimization/62021
327         * omp-low.c (simd_clone_adjust_return_type): Use
328         vector of pointer_sized_int_node types instead vector of pointer
329         types.
330         (simd_clone_adjust_argument_types): Likewise.
331
332 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
333             Evgeny Stupachenko  <evstupac@gmail.com>
334
335         PR target/64252
336         * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
337         set dcopy.target to a new pseudo.
338
339 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
340
341         * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
342
343 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
344
345         * config/rs6000/40x.md (ppc403-compare): Remove "compare".
346         config/rs6000/440.md (ppc440-compare): Remove "compare".
347         config/rs6000/476.md (ppc476-compare): Remove "compare".
348         config/rs6000/601.md (ppc601-compare): Remove "compare".
349         config/rs6000/603.md (ppc603-compare): Remove "compare".
350         config/rs6000/6xx.md (ppc604-compare): Remove "compare".
351         config/rs6000/7450.md (ppc7450-compare): Remove "compare".
352         config/rs6000/7xx.md (ppc750-compare): Remove "compare".
353         config/rs6000/8540.md (ppc8540_su): Remove "compare".
354         config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
355         "compare".
356         config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
357         config/rs6000/e500mc.md (e500mc_su): Remove "compare".
358         config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
359         config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
360         config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
361         config/rs6000/mpc.md (mpccore-compare): Remove "compare".
362         config/rs6000/power4.md (power4-compare): Remove "compare".
363         config/rs6000/power5.md (power5-compare): Remove "compare".
364         config/rs6000/power6.md (power6-compare): Remove "compare".
365         config/rs6000/power7.md (power7-compare): Remove "compare".
366         config/rs6000/power8.md (power8-compare): Remove "compare".  Update
367         comment.
368         config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
369         (three times).
370         (is_cracked_insn): Remove TYPE_COMPARE case.
371         (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
372         config/rs6000/rs6000.md (type): Remove "compare".
373         (cell_micro): Remove "compare".
374         config/rs6000/rs64.md (rs64a-compare): Remove "compare".
375
376 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
377
378         * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
379         Change type from "compare" to "two".
380
381 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
382
383         PR target/64180
384         * config/rs6000/predicates.md (unsigned_comparison_operator): New.
385         (signed_comparison_operator): New.
386         * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
387         * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
388         (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
389         * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
390         add to addc,adde directly, if !TARGET_POWERPC64.
391         (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
392         if !TARGET_POWERPC64.
393         (neg<mode>2): Delete expander.
394         (*neg<mode>2): Rename to "neg<mode>2".
395         (addti3, subti3): Delete.
396         (addti3, subti3): New expanders.
397         (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
398         (cstore<mode>4_unsigned): New expander.
399         (cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
400         (cstore<mode>4 for FP): Remove superfluous quotes.
401         (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
402         *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
403         *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
404         compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
405         splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
406         *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
407         *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
408         *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
409         *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
410         *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
411         *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
412         *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
413         Delete.
414         (eq<mode>3, ne<mode>3): New.
415         (*neg_eq_<mode>, *neg_ne_<mode>): New.
416         (*plus_eq_<mode>, *plus_ne_<mode>): New.
417         (*minus_eq_<mode>, *minus_ne_<mode>): New.
418
419 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
420
421         PR target/64180
422         * config/rs6000/predicates.md (adde_operand): New.
423         * config/rs6000/rs6000.md (add<mode>3_carry): New.
424         (*add<mode>3_imm_carry_pos): New.
425         (*add<mode>3_imm_carry_0): New.
426         (*add<mode>3_imm_carry_m1): New.
427         (*add<mode>3_imm_carry_neg): New.
428         (add<mode>3_carry_in): New.
429         (*add<mode>3_carry_in_internal): New.
430         (add<mode>3_carry_in_0): New.
431         (add<mode>3_carry_in_m1): New.
432         (subf<mode>3_carry): New.
433         (*subf<mode>3_imm_carry_0): New.
434         (*subf<mode>3_imm_carry_m1): New.
435         (subf<mode>3_carry_in): New.
436         (*subf<mode>3_carry_in_internal): New.
437         (subf<mode>3_carry_in_0): New.
438         (subf<mode>3_carry_in_m1): New.
439         (subf<mode>3_carry_in_xx): New.
440
441 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
442
443         PR target/64180
444         * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
445         "*add<mode>3".
446         (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
447         Delete.
448         (*add<mode>3_dot, *add<mode>3_dot2): New.
449         (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
450
451 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
452
453         PR target/64180
454         * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
455         alternative.
456
457 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
458
459         PR target/64180
460         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
461         *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
462         to "b".  Increase length.
463         (splitters for these): Split to cmp+addi instead of addic.
464
465 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
466
467         PR target/64180
468         * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
469         (macho_low_di): Ditto.
470         * config/rs6000/rs6000.md (*largetoc_low): Ditto.
471         (tocref<mode>): Ditto.
472         (elf_low): Ditto.
473         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
474         (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
475         (mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
476         (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
477
478 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
479
480         PR target/64180
481         * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
482         (rs6000_md_asm_clobbers): New function.
483
484 2014-12-10  Felix Yang  <felix.yang@huawei.com>
485
486         * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
487         declaration of removed function.
488
489 2014-12-10  Richard Biener  <rguenther@suse.de>
490
491          * tree-ssa-loop-im.c
492          (move_computations_dom_walker::before_dom_children): Clear
493          SSA_NAME_RANGE_INFO on moved stmts.
494
495 2014-12-10  Martin Liska  <mliska@suse.cz>
496
497         * sreal.c (sreal::shift_right): New implementation
498         for int64_t as m_sig.
499         (sreal::normalize): Likewise.
500         (sreal::to_int): Likewise.
501         (sreal::operator+): Likewise.
502         (sreal::operator-): Likewise.
503         (sreal::operator*): Likewise.
504         (sreal::operator/): Likewise.
505         (sreal::signedless_minus): Removed.
506         (sreal::signedless_plus): Removed.
507         (sreal::debug): const keyword is added.
508         * sreal.h (sreal::operator<): New implementation
509         for int64_t as m_sig.
510         * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
511         with sreal::min ().
512
513 2014-12-10  Martin Liska  <mliska@suse.cz>
514
515         * gimple-iterator.h (gsi_start_bb_nondebug): New function.
516         * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
517         replaces loop based on precomputed number of non-debug statements.
518
519 2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
520
521         * config/linux.c (linux_has_ifunc_p): Remove.
522         * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
523
524 2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>
525
526         * contrib/check_GNU_style.sh (col): Got rid of cut operation
527         from the pipe chain and instead added cut inside awk command.
528
529 2014-12-10  Richard Biener  <rguenther@suse.de>
530
531         PR tree-optimization/64191
532         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
533         mark clobbers as necessary.
534         (eliminate_unnecessary_stmts): Keep clobbers live if we can.
535
536 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
537
538         PR target/63594
539         * config/i386/sse.md (vec_dupv4sf): Move after
540         <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
541         (*vec_dupv4si, *vec_dupv2di): Likewise.
542         (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
543         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
544         pattern.
545         (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
546         TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
547         is set too).
548         * config/i386/i386.c (enum ix86_builtins): Remove
549         IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
550         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
551         IX86_BUILTIN_PBROADCASTQ512_MEM.
552         (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
553         __builtin_ia32_pbroadcastq256_gpr_mask and
554         __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
555         regardless of OPTION_MASK_ISA_64BIT.
556         * config/i386/avx512fintrin.h (_mm512_set1_epi64,
557         _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
558         builtins regardless of whether TARGET_64BIT is defined or not.
559         * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
560         _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
561         Likewise.
562
563         * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
564         Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
565
566 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
567
568         PR target/53513
569         * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
570
571 2014-12-10  Marek Polacek  <polacek@redhat.com>
572
573         PR tree-optimization/61686
574         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
575         p->high.
576
577 2014-12-10  Kito Cheng  <kito@0xlab.org>
578
579         * doc/libgcc.texi: Update text to match implementation in
580         libgcc/libgcc2.c
581
582 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>
583
584         * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
585         gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
586         doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
587         param_is.
588
589 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
590
591         PR target/53513
592         * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
593         Document it.
594
595 2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
596
597         PR middle-end/64225
598         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
599         for BUILT_IN_POW when flag_errno_math is present.
600
601 2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>
602
603         * lto-wrapper.c (compile_offload_image): Start processing in_argv
604         from 0 instead of 1.
605         (run_gcc): Put offload objects into offload_argv, put LTO objects and
606         possible preceding arguments into lto_argv.
607         Pass offload_argv to compile_images_for_offload_targets instead of argv.
608         Use lto_argv for LTO recompilation instead of argv.
609
610 2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
611
612         * doc/install.texi: Describe --with-aix-soname option.
613
614 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
615
616         * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
617
618 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
619
620         PR target/63870
621         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
622         Delete.
623         * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
624         Delete.
625         * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
626         vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
627         (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
628         __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
629         __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
630         __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
631         __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
632         __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
633         __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
634         __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
635         __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
636         __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
637         __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
638         __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
639         (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
640         'q2' argument.
641         (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
642         __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
643         __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
644         __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
645         __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
646         __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
647         __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
648         __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
649         __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
650         __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
651         __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
652         __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
653         to __aarch64_vdup_lane_any.
654         (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
655         vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
656         vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
657         vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
658         vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
659         vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
660         vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
661         vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
662         vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
663         vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
664         vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
665         vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
666         vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
667         vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
668         vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
669         vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
670         vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
671         vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
672         vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
673         vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
674         vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
675         vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
676         vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
677         vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
678         vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
679         vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
680         vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
681         vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
682         vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
683         vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
684         __aarch64_vget_lane_any.
685
686 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
687
688         PR target/63870
689         * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
690         message for SIMD_ARG_CONSTANT.
691
692 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
693
694         PR target/63870
695         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
696         TYPES_BINOPV): Delete.
697         (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
698         AARCH64_SIMD_PATTERN_START.
699         (aarch64_init_simd_builtins): Register
700         __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
701         (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
702         AARCH64_SIMD_PATTERN_START.
703
704         * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
705         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
706
707         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
708         (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
709         __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
710         vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
711         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
712         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
713         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
714         vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
715
716 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
717
718         PR target/63950
719         * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
720         New.
721         (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
722         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
723         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
724         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
725         number of lanes.
726         (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
727         vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
728         vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
729         __aarch64_vset_lane_any rather than vset_lane_xxx.
730
731 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
732
733         * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
734         earlyclobbering result operand.
735
736         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
737         Remove final qualifier_internal.
738         (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
739
740 2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
741
742         * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
743         tuning parameters.
744         * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
745         Define.
746         (aarch64_reassociation_width): New function.
747         (generic_tunings): Add reassociation tuning parameters.
748         (cortexa53_tunings): Likewise.
749         (cortexa57_tunings): Likewise.
750         (thunderx_tunings): Likewise.
751
752 2014-12-09  Andrew Pinski  apinski@cavium.com
753             Kyrylo Tkachov  kyrylo.tkachov@arm.com
754
755         * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
756         (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
757         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
758
759 2014-12-09  David Malcolm  <dmalcolm@redhat.com>
760
761         PR jit/64166
762         * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
763         New function.
764         (gcc::dump_manager::get_dump_file_name): Split out bulk of
765         implementation into a new overloaded variant taking a
766         dump_file_info *.
767         * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
768         New function.
769         (gcc::dump_manager::get_dump_file_name): New overloaded variant of
770         this function, taking a dump_file_info *.
771
772 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
773
774         PR bootstrap/64213
775         Revert:
776         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
777
778         PR rtl-optimization/64037
779         * combine.c (setup_incoming_promotions): Pass the argument
780         before any promotions happen to promote_function_mode.
781
782 2014-12-09  Richard Biener  <rguenther@suse.de>
783
784         PR tree-optimization/64193
785         * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
786         and valueize the VUSE before looking up the def stmt.
787         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
788         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
789         to walk_non_aliased_vuses.
790         (vn_reference_lookup): Likewise.
791         * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
792         callback to walk_non_aliased_vuses.
793
794 2014-12-09  Richard Biener  <rguenther@suse.de>
795
796         PR middle-end/64199
797         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
798
799 2014-12-09  Richard Biener  <rguenther@suse.de>
800
801         PR tree-optimization/64191
802         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
803         not relevant (nor are their uses).
804
805 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
806
807         * lto/lto-partition.c (privatize_symbol_name): Correctly
808         privatize instrumentation clones.
809
810 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
811
812         * lto-cgraph.c (input_cgraph_1): Don't break existing
813         instrumentation clone references.
814         * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
815         instrumented_version references appropriately.
816
817 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
818
819         PR bootstrap/63995
820         * tree-chkp.c (chkp_make_static_bounds): Share bounds var
821         between nodes sharing assembler name.
822
823 2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
824
825         PR target/64204
826         * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
827         constant moves if -mupper-regs-df.
828
829         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
830         0.0L to TFmode.
831         (movtd_64bit_nodm): Likewise.
832         (mov<mode>_32bit, FMOVE128 case): Likewise.
833
834 2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>
835
836         * simplify-rtx.c (simplify_relational_operation_1): Handle
837         simplification identities for BICS patterns.
838
839 2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>
840
841         * config/nvptx/nvptx.c: Convert htabs to hash_table.
842
843 2014-12-08  David Edelsohn  <dje.gcc@gmail.com>
844
845         PR target/64226
846         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
847         [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
848         TARGET_TOC. Always use rs6000_emit_move.
849
850 2014-12-08  Mark Wielaard  <mjw@redhat.com>
851
852         PR debug/60782
853         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
854
855 2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>
856
857         PR target/61692
858         * cfgexpand.c (expand_asm_operands): Count all inline asm params.
859
860 2014-12-08  David Malcolm  <dmalcolm@redhat.com>
861
862         PR jit/63854
863         * cgraph.h (xstrdup_for_dump): New function.
864         * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
865         within fprintf with xstrdup_for_dump.
866         (cgraph_edge::make_speculative): Likewise.
867         (cgraph_edge::resolve_speculation): Likewise.
868         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
869         (cgraph_node::dump): Likewise.
870         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
871         * ipa-cp.c (perhaps_add_new_callers): Likewise.
872         * ipa-inline.c (report_inline_failed_reason): Likewise.
873         (want_early_inline_function_p): Likewise.
874         (edge_badness): Likewise.
875         (update_edge_key): Likewise.
876         (flatten_function): Likewise.
877         (inline_always_inline_functions): Likewise.
878         * ipa-profile.c (ipa_profile): Likewise.
879         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
880         (ipa_make_edge_direct_to_target): Likewise.
881         (remove_described_reference): Likewise.
882         (propagate_controlled_uses): Likewise.
883         * ipa-utils.c (ipa_merge_profiles): Likewise.
884
885 2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
886
887         PR ipa/64049
888         * ipa-polymorphic-call.c
889         (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
890
891 2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>
892
893         * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
894         New define_insn.
895         * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
896         Likewise.
897
898 2014-12-08  Felix Yang  <felix.yang@huawei.com>
899             Haijian Zhang  <z.zhanghaijian@huawei.com>
900             Jiji Jiang  <jiangjiji@huawei.com>
901             Pengfei Sui  <suipengfei@huawei.com>
902
903         * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
904         builtin functions.
905         (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
906         vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
907         (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
908         vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
909         vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
910         vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
911         vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
912         vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
913         vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
914         vrsubhn_high_u64): Likewise.
915         * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
916         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
917         * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
918         * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
919         subhn2, rsubhn2, urecpe): New builtins.
920
921 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
922
923         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
924         * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
925
926 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
927
928         * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
929         (expand_vec_perm_vpermi2_vpshub2): New.
930         (ix86_expand_vec_perm_const_1): Use it.
931         (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
932         * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
933
934 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
935
936         * tree-chkp.c (chkp_build_returned_bound): Don't predict
937         return bounds for strchr calls.
938
939 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
940
941         * tree-chkp.c (chkp_call_returns_bounds_p): New.
942         (chkp_build_returned_bound): Use zero bounds as
943         returned by calls not returning bounds.
944
945 2014-12-08  Richard Biener  <rguenther@suse.de>
946
947         * builtins.c (fold_builtin_0): Remove unused ignore parameter.
948         (fold_builtin_1): Likewise.
949         (fold_builtin_3): Likewise.
950         (fold_builtin_varargs): Likewise.
951         (fold_builtin_2): Likewise.  Do not fold stpcpy here.
952         (fold_builtin_n): Adjust.
953         (fold_builtin_stpcpy): Move to gimple-fold.c.
954         (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
955         (gimple_fold_builtin): Fold stpcpy here.
956
957 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
958
959         * symtab.c (symtab_node::verify): Check for section attribute before
960         asserting something isn't in a section and a comdat group.
961
962 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
963
964         PR target/50751
965         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
966
967 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
968
969         * compare-elim.c: Fix head comment.
970         (conforming_compare): Remove redundant test.
971         (can_eliminate_compare): New function extracted from...
972         (before_dom_children): ...here.  Use it, replace direct uses of
973         flag_non_call_exceptions and tidy up.
974         (maybe_select_cc_mode): Tidy up.
975
976 2014-12-07  Felix Yang  <felix.yang@huawei.com>
977             Shanyao Chen  <chenshanyao@huawei.com>
978
979         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
980         patterns.
981         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
982         builtins.
983         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
984         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
985         vcntq_u8): Rewrite using builtin functions.
986
987 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
988
989         * symtab.c (symtab_node::equal_address_to): New function.
990         * cgraph.h (symtab_node::equal_address_to): Declare.
991         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
992         * c-family/c-common.c: Refuse weaks for symbols that can not change
993         visibility.
994
995 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
996
997         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
998
999 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
1000             Sebastian Pop  <s.pop@samsung.com>
1001             Brian Rzycki  <b.rzycki@samsung.com>
1002
1003         PR tree-optimization/54742
1004         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
1005         max-fsm-thread-paths): New.
1006
1007         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
1008         max-fsm-thread-paths): Documented.
1009
1010         * tree-cfg.c (split_edge_bb_loc): Export.
1011         * tree-cfg.h (split_edge_bb_loc): Declared extern.
1012
1013         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
1014         original value of cond when simplification fails.
1015         (fsm_find_thread_path): New.
1016         (fsm_find_control_statement_thread_paths): New.
1017         (thread_through_normal_block): Call find_control_statement_thread_paths.
1018
1019         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
1020         EDGE_FSM_THREAD.
1021         (verify_seme): New.
1022         (duplicate_seme_region): New.
1023         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
1024         calling duplicate_seme_region.
1025
1026         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
1027
1028 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
1029
1030         PR target/64200
1031         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
1032         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
1033
1034 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
1035
1036         PR sanitizer/64170
1037         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
1038         non-NULL, call maybe_get_dominating_check on it even if g is
1039         non-NULL.
1040
1041 2014-12-05  Jeff Law  <law@redhat.com>
1042
1043         * doc/md.texi: Note problems using function calls to determine
1044         insn lengths and point readers to a potential workaround.
1045
1046 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
1047
1048         * combine.c (is_parallel_of_n_reg_sets)
1049         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
1050
1051 2014-12-05  Andrew Pinski  <apinski@cavium.com>
1052
1053         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
1054         than CF10 so 2 is appended on the code.
1055         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
1056         (bswap<mode>2): This so it matches for the optabs.
1057
1058 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1059
1060         * regrename.c (find_best_rename_reg): Rename to ...
1061         (find_rename_reg): This. Also add a parameter to skip tick check.
1062         * regrename.h: Likewise.
1063         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
1064
1065 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1066
1067         PR ipa/64192
1068         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
1069         from bits to bytes after checking they are byte-aligned.
1070
1071 2014-12-05  Renlin Li  <renlin.li@arm.com>
1072
1073         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
1074         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
1075         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
1076         IDENT to SCHED.
1077
1078 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
1079
1080         * config/aarch64/aarch64.md (load_pair<mode>): Split to
1081         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
1082         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
1083         from load_pair<mode>.  New alternative to support int/fp
1084         registers in fp/int mode patterns.
1085         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
1086         store_pairsf and store_pairdi.
1087         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
1088         from store_pair<mode>.  New alternative to support int/fp
1089         registers in fp/int mode patterns.
1090         (*load_pair_extendsidi2_aarch64): New pattern.
1091         (*load_pair_zero_extendsidi2_aarch64): New pattern.
1092         (aarch64-ldpstp.md): Include.
1093         * config/aarch64/aarch64-ldpstp.md: New file.
1094         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
1095         New.
1096         (extract_base_offset_in_addr): New.
1097         (aarch64_operands_ok_for_ldpstp): New.
1098         (aarch64_operands_adjust_ok_for_ldpstp): New.
1099         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
1100         (TARGET_SCHED_FUSION_PRIORITY): New hook.
1101         (fusion_load_store): New functon.
1102         (extract_base_offset_in_addr): New function.
1103         (aarch64_gen_adjusted_ldpstp): New function.
1104         (aarch64_sched_fusion_priority): New function.
1105         (aarch64_operands_ok_for_ldpstp): New function.
1106         (aarch64_operands_adjust_ok_for_ldpstp): New function.
1107
1108 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1109
1110         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
1111         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
1112         DWARF_REG_TO_UNWIND_COLUMN.
1113
1114 2014-12-05  Olivier Hainque  <hainque@adacore.com>
1115
1116         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
1117         one particular reg for expand_builtin_init_dwarf_reg_sizes.
1118         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
1119         account for dwarf register spans.
1120
1121 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1122
1123         PR target/64003
1124         * config/i386/i386.md (*jcc_1_bnd): New.
1125         (*jcc_2_bnd): New.
1126         (jump_bnd): New.
1127         (*jcc_1): Remove bnd prefix.
1128         (*jcc_2): Likewise.
1129         (jump): Likewise.
1130
1131 2014-12-05  Renlin Li  <renlin.li@arm.com>
1132
1133         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
1134         selected_tune.
1135         (aarch64_override_options): Use selected_cpu's tuning.
1136
1137 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
1138
1139         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
1140         alignment to section name. Increase default alignment to word.
1141
1142 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1143
1144         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
1145         (cgraph_edge): New method redirect_callee_duplicating_thunks.
1146         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
1147         created thunks.
1148         (redirect_edge_duplicating_thunks): Turned into edge method
1149         redirect_callee_duplicating_thunks.
1150         (cgraph_node::expand_all_artificial_thunks): New method.
1151         (create_clone): Call expand_all_artificial_thunks.
1152         * ipa-cp.c (perhaps_add_new_callers): Call
1153         redirect_callee_duplicating_thunks instead of redirect_callee.
1154         Also call expand_all_artificial_thunks.
1155
1156 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1157
1158         PR target/64056
1159         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.
1160
1161 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1162
1163         * diagnostic.h (diagnostic_expand_location): New inline function.
1164         * diagnostic.c (diagnostic_build_prefix): Use it.
1165         (diagnostic_show_locus): Likewise.
1166
1167 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
1168
1169         PR bootstrap/64189
1170         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
1171         * configure: Regenerated.
1172
1173 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1174
1175         * diagnostic.c (diagnostic_color_init): New.
1176         * diagnostic.h: Declare.
1177         * gcc.c (driver::global_initializations): Use it.
1178         (driver_handle_option): Handle -fdiagnostics-color_.
1179         * toplev.c: Do not include diagnostic-color.h.
1180         (process_options): Do not initialize color diagnostics here.
1181         * common.opt (fdiagnostics-color=): Add Driver.
1182         * opts-global.c (init_options_once): Initialize color here.
1183         * opts.c (common_handle_option): Use diagnostics_color_init.
1184         * diagnostic-color.h: Fix comment.
1185
1186 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1187
1188         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
1189         (NIY): Likewise.
1190         (buffer): Rename this variable to...
1191         (tree_pp): ...this.
1192
1193         (do_niy): Rename param from "buffer" to "pp".
1194         (dump_decl_name): Likewise.
1195         (dump_function_name): Likewise.
1196         (dump_function_declaration): Likewise.
1197         (dump_array_domain): Likewise.
1198         (dump_omp_clause): Likewise.
1199         (dump_omp_clauses): Likewise.
1200         (dump_location): Likewise.
1201         (dump_block_node): Likewise.
1202         (dump_generic_node): Likewise.
1203         (print_declaration): Likewise.
1204         (print_struct_decl): Likewise.
1205         (print_call_name): Likewise.
1206         (pretty_print_string): Likewise.
1207         (newline_and_indent): Likewise.
1208
1209         (print_generic_decl): Update for renaming of "buffer" to
1210         "tree_pp".
1211         (print_generic_stmt): Likewise.
1212         (print_generic_stmt_indented): Likewise.
1213         (print_generic_expr): Likewise.
1214         (maybe_init_pretty_print): Likewise.
1215
1216 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1217
1218         PR jit/63854
1219         * tree-pretty-print.c: Eliminate include of <new>.
1220         (buffer): Convert this variable from a pretty_printer to a
1221         pretty_printer *.
1222         (initialized): Eliminate this variable in favor of the NULL-ness
1223         of "buffer".
1224         (print_generic_decl): Update for "buffer" becoming a pointer.
1225         (print_generic_stmt): Likewise.
1226         (print_generic_stmt_indented): Likewise.
1227         (print_generic_expr): Likewise.
1228         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
1229         heap and using its non-NULL-ness to ensure idempotency.
1230
1231 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1232
1233         PR jit/63854
1234         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
1235         ipa_add_new_function on function_insertion_hook_holder being
1236         non-NULL.
1237         * ipa-reference.c (ipa_reference_c_finalize): Remove
1238         node_removal_hook_holder and node_duplication_hook_holder if
1239         they've been added to symtab.
1240         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
1241         before cgraph_c_finalize so that the former can access "symtab".
1242
1243 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1244
1245         * doc/cfg.texi (GIMPLE statement iterators): Add note about
1246         gphi_iterator, and use one in the example.
1247         * doc/gimple.texi (Tuple specific accessors): Add missing
1248         GIMPLE_GOTO section and menu item.
1249         (gimple_build_asm, gimple gimple_build_assign_with_ops)
1250         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
1251         description of removed functions.
1252         (gimple_build_assign, gimple_build_bind, gimple_build_call,
1253         gimple_build_call_from_tree, gimple_build_call_vec,
1254         gimple_build_catch, gimple_build_cond,
1255         gimple_build_cond_from_tree, gimple_build_debug_bind,
1256         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
1257         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
1258         gimple_build_omp_continue, gimple_build_omp_critical,
1259         gimple_build_omp_for, gimple_build_omp_parallel,
1260         gimple_build_omp_sections, gimple_build_omp_single,
1261         gimple_build_return, gimple_build_resx, gimple_build_switch,
1262         gimple_build_try): Update return type within description to
1263         reflect changes in gimple.h to using gimple subclasses.
1264         (gimple_build_asm_vec): Update return type, params and
1265         description.
1266         (gimple_asm_ninputs): Update param.
1267         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1268         gimple_asm_set_input_op, gimple_asm_output_op
1269         gimple_asm_set_output_op, gimple_asm_clobber_op,
1270         gimple_asm_set_clobber_op, gimple_asm_string,
1271         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1272         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1273         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1274         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1275         gimple_call_return_type, gimple_call_set_chain,
1276         gimple_call_set_tail, gimple_call_tail_p,
1277         gimple_call_copy_skip_args, gimple_catch_types,
1278         gimple_catch_types_ptr, gimple_catch_handler,
1279         gimple_catch_set_types, gimple_catch_set_handler,
1280         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1281         gimple_cond_true_label, gimple_cond_set_true_label,
1282         gimple_cond_set_false_label, gimple_cond_false_label,
1283         gimple_cond_make_false, gimple_cond_make_true,
1284         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1285         gimple_eh_must_not_throw_fndecl,
1286         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1287         gimple_label_set_label, gimple_goto_set_dest,
1288         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1289         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1290         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1291         gimple_omp_continue_control_def,
1292         gimple_omp_continue_control_def_ptr,
1293         gimple_omp_continue_set_control_def,
1294         gimple_omp_continue_control_use,
1295         gimple_omp_continue_control_use_ptr,
1296         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1297         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1298         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1299         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1300         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1301         gimple_omp_parallel_data_arg_ptr,
1302         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1303         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1304         gimple_resx_set_region, gimple_return_retval,
1305         gimple_return_set_retval, gimple_switch_num_labels,
1306         gimple_switch_set_num_labels, gimple_switch_index,
1307         gimple_switch_set_index, gimple_switch_label,
1308         gimple_switch_set_label, gimple_switch_default_label,
1309         gimple_switch_set_default_label, gimple_try_set_eval,
1310         gimple_try_set_cleanup): Update initial param within description
1311         to reflect changes in gimple.h to using gimple subclasses.
1312         (Adding a new GIMPLE statement code): Update to reflect gimple
1313         statement subclassing.
1314
1315 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
1316             H.J. Lu  <hongjiu.lu@intel.com>
1317
1318         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1319         Linux/x86-64 linker supports PIE with copy reloc.
1320         * config.in: Regenerated.
1321         * configure: Likewise.
1322
1323         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1324         pc-relative address for undefined, non-weak, non-function
1325         symbol reference in 64-bit PIE if linker supports PIE with
1326         copy reloc.
1327
1328         * doc/sourcebuild.texi: Document pie_copyreloc target.
1329
1330 2014-12-04  Marek Polacek  <polacek@redhat.com>
1331
1332         PR middle-end/56917
1333         * fold-const.c (fold_unary_loc): Perform the negation in A's type
1334         when transforming ~ (A - 1) or ~ (A + -1) to -A.
1335
1336 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1337
1338         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1339
1340 2014-12-04  Richard Biener  <rguenther@suse.de>
1341
1342         * doc/match-and-simplify.texi: Update for recent changes.
1343
1344 2014-12-04  Martin Jambor  <mjambor@suse.cz>
1345
1346         * ipa-prop.h (ipa_alignment): New type.
1347         (ipa_jump_func): New field alignment.
1348         (ipcp_transformation_summary) New type.
1349         (ipcp_grow_transformations_if_necessary): Declare.
1350         (ipa_node_agg_replacements): Removed.
1351         (ipcp_transformations): Declare.
1352         (ipcp_get_transformation_summary): New function.
1353         (ipa_get_agg_replacements_for_node): Use it.
1354         * ipa-cp.c (ipcp_param_lattices): New field alignment.
1355         (print_all_lattices): Also print alignment.
1356         (alignment_bottom_p): New function.
1357         (set_alignment_to_bottom): Likewise.
1358         (set_all_contains_variable): Also set alignment to bottom.
1359         (initialize_node_lattices): Likewise.
1360         (propagate_alignment_accross_jump_function): New function.
1361         (propagate_constants_accross_call): Call it.
1362         (ipcp_store_alignment_results): New function.
1363         (ipcp_driver): Call it.
1364         * ipa-prop.c (ipa_node_agg_replacements): Removed.
1365         (ipcp_transformations): New.
1366         (ipa_print_node_jump_functions_for_edge): Also print alignment.
1367         (ipa_set_jf_unknown): New function.
1368         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
1369         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
1370         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
1371         (ipcp_grow_transformations_if_necessary): New function.
1372         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
1373         (ipa_node_removal_hook): Likewise.
1374         (ipa_node_duplication_hook): Also duplicate alignment results.
1375         (ipa_write_jump_function): Also stream alignments.
1376         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
1377         alignments.
1378         (write_agg_replacement_chain): Renamed to
1379         write_ipcp_transformation_info, also stream alignments.
1380         (read_agg_replacement_chain): Renamed to
1381         read_ipcp_transformation_info, also stream alignments.
1382         (ipa_prop_write_all_agg_replacement): Renamed to
1383         ipcp_write_transformation_summaries. Stream always.
1384         (ipa_prop_read_all_agg_replacement): Renamed to
1385         ipcp_read_transformation_summaries.
1386         (ipcp_update_alignments): New function.
1387         (ipcp_transform_function): Call it, free also alignments.
1388
1389 2014-12-04  Richard Biener  <rguenther@suse.de>
1390
1391         * gimple-fold.c (replace_stmt_with_simplification): Properly
1392         fail when maybe_push_res_to_seq fails.
1393
1394 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1395
1396         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
1397
1398 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1399
1400         * doc/install.texi: Remove mentions of cloog and ppl.
1401         * doc/invoke.texi: Likewise
1402
1403 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
1404
1405         PR c++/56493
1406         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1407         Handle COMPOUND_EXPR.
1408
1409 2014-12-04  Richard Biener  <rguenther@suse.de>
1410
1411         * builtins.c (target_newline): Export.
1412         (target_percent_s_newline): Likewise.
1413         (fold_builtin_1): Do not fold printf functions here.
1414         (fold_builtin_2): Likewise.
1415         (fold_builtin_3): Likewise, do not fold strncat.
1416         (fold_builtin_strncat): Move to gimple-fold.c.
1417         (fold_builtin_printf): Likewise.
1418         * builtins.h (target_newline): Declare.
1419         (target_percent_s_newline): Likewise.
1420         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
1421         builtins.c and gimplify.
1422         (gimple_fold_builtin_printf): Likewise.
1423         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
1424         vprintf, printf_chk and vprintf_chk here.
1425
1426 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
1427
1428         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
1429         (floatunssidf2_internal): Same.
1430         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
1431         (rs6000_emit_int_cmove): Same.
1432         (rs6000_sched_reorder): Same.
1433         (altivec_expand_vec_perm_const): Same.
1434         (rs6000_expand_vec_perm_const_1): Same.
1435
1436 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1437
1438         PR rtl-optimization/64010
1439         * reload.c (push_reload): Before reusing a register contained
1440         in an operand as input reload register, ensure that it is not
1441         used in CALL_INSN_FUNCTION_USAGE.
1442
1443 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
1444
1445         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
1446         if it exists.
1447
1448 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1449
1450         * expmed.c (expand_mult): Use std::swap.
1451
1452         PR c/59708
1453         * expmed.c (expand_widening_mult): Return const0_rtx if
1454         coeff is 0.
1455
1456         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
1457         (gimple_build_assign): Document the new overloads.
1458
1459 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1460
1461         PR target/64019
1462         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1463         not create LO_SUM address for constant addresses if the type can
1464         go in Altivec registers.
1465
1466 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1467
1468         PR fortran/44054
1469         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
1470         (pp_flush): Flush only if flush_p.
1471         (pp_really_flush): New.
1472         * pretty-print.h (struct output_buffer): Add flush_p.
1473         (pp_really_flush): Declare.
1474
1475 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1476
1477         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
1478         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
1479         (GENGTYPE_OBJS): New.
1480         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
1481         Remove explicit dependencies.
1482         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
1483         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
1484         instead of -DGENERATOR_FILE.
1485         (CFLAGS-errors.o): New.
1486         * gengtype.c: Instead of testing GENERATOR_FILE define, test
1487         HOST_GENERATOR_FILE.  If defined, include config.h and define
1488         GENERATOR_FILE afterwards, otherwise include bconfig.h.
1489         * gengtype-parse.c: Likewise.
1490         * gengtype-state.c: Likewise.
1491         * gengtype-lex.l: Likewise.
1492         * errors.c: Likewise.
1493
1494 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1495
1496         * config/epiphany/epiphany.c (epiphany_override_options):
1497         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
1498         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
1499         reverse_condition_maybe_unordered if flag_finite_math_only is set.
1500
1501 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
1502
1503         Revert:
1504
1505         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
1506         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1507         when architecture is older than ARMv7.
1508
1509 2014-12-03  Richard Biener  <rguenther@suse.de>
1510
1511         * builtins.c (target_percent_c): Export.
1512         (fold_builtin_fprintf): Move to gimple-fold.c.
1513         (fold_builtin_2): Do not fold fprintf functions.
1514         (fold_builtin_3): Likewise.
1515         (fold_builtin_4): Remove.
1516         (fold_builtin_n): Do not call fold_builtin_4.
1517         * builtins.h (target_percent_c): Declare.
1518         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
1519         builtins.c and gimplify.
1520         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
1521         fprintf_chk and vfprintf_chk here.
1522
1523 2014-12-03  Martin Jambor  <mjambor@suse.cz>
1524
1525         PR ipa/64153
1526         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1527         type sizes before view_converting.
1528
1529 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
1530
1531         PR rtl-optimization/64151
1532         PR rtl-optimization/64156
1533         * ira-costs.c (scan_one_insn): Revert r218266.
1534
1535 2014-12-03  Richard Biener  <rguenther@suse.de>
1536
1537         * builtins.c (fold_builtin_fpclassify): Change to take
1538         array of arguments instead of CALL_EXPR tree.
1539         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
1540         (fold_builtin_n): Dispatch to fold_builtin_varargs.
1541         (fold_call_expr): Always use fold_builtin_n.
1542         (fold_builtin_call_array): Change to not build the unfolded call,
1543         always use fold_builtin_n.
1544         (fold_builtin_varargs): Change to take array of arguments instead
1545         of CALL_EXPR tree.
1546         (fold_call_stmt): Always use fold_builtin_n.
1547         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
1548         * fold-const.c (fold_build_call_array_loc): Build the call
1549         if fold_builtin_call_array returned NULL_TREE.
1550         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
1551         a CALL_EXPR and use fold_builtin_call_array instead of
1552         fold_call_expr.
1553
1554 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
1555
1556         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
1557         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
1558         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
1559         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
1560         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
1561         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
1562         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
1563         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
1564         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
1565         Change VDQ to VDQ_I.
1566
1567         (mul<mode>3): Change VDQM to VDQ_BHSI.
1568         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
1569         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
1570         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
1571         
1572         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
1573         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
1574         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
1575         Change VDW to VD_BHSI.
1576         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
1577         Change VDIC to VD_BHSI.
1578
1579         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
1580         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
1581         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
1582
1583         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
1584         VDIC, VDQQHS): Remove.
1585         (Vwtype): Update comment (changing VDW to VD_BHSI).
1586
1587 2014-12-03  Richard Biener  <rguenther@suse.de>
1588
1589         PR middle-end/14541
1590         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
1591         * match.pd: ... here as patterns.
1592
1593 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
1594
1595         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
1596         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
1597         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
1598         reservation order.
1599
1600 2014-12-03  Tom de Vries  <tom@codesourcery.com>
1601
1602         PR rtl-optimization/63957
1603         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
1604         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
1605         flag_ipa_ra.
1606         (get_call_reg_set_usage): Same.
1607         * lra-assigns.c (lra_assign): Same.
1608         * lra-constraints.c (need_for_call_save_p): Same.
1609         * lra-lives.c (process_bb_lives): Same.
1610         * lra.c (lra): Same.
1611         * calls.c (expand_call): Same.
1612         (emit_library_call_value_1): Same.
1613         * config/arm/arm.c (arm_option_override): Same.
1614         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
1615         OPT_fipa_ra.
1616         * target.def (call_fusage_contains_non_callee_clobbers): Replace
1617         fuse-caller-save with fipa-ra.
1618         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
1619         * common.opt: Same.
1620
1621 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
1622
1623         * sanopt.c (maybe_get_single_definition): New function.
1624         (maybe_get_dominating_check): Ditto.
1625         (can_remove_asan_check): Ditto.
1626         (struct tree_map_traits): New struct.
1627         (struct sanopt_ctx): Use custom traits for asan_check_map.
1628         (maybe_optimize_ubsan_null_ifn): Move code to
1629         maybe_get_dominating_check.
1630         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
1631         into account when optimizing.
1632         (sanopt_optimize_walker): Optimize ASan checks even when
1633         recovering.
1634
1635 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
1636
1637         * config/i386/constraints.md (Yr): New.
1638         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
1639         (REG_CLASS_NAMES): Likewise.
1640         (REG_CLASS_CONTENTS): Likewise.
1641         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
1642         which use only NO_REX_SSE_REGS.
1643         (vec_set<mode>_0): Likewise.
1644         (*vec_setv4sf_sse4_1): Likewise.
1645         (sse4_1_insertps): Likewise.
1646         (*sse4_1_extractps): Likewise.
1647         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
1648         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
1649         (*sse4_1_<code><mode>3<mask_name>): Likewise.
1650         (*sse4_1_<code><mode>3): Likewise.
1651         (*sse4_1_eqv2di3): Likewise.
1652         (sse4_2_gtv2di3): Likewise.
1653         (*vec_extractv4si): Likewise.
1654         (*vec_concatv2si_sse4_1): Likewise.
1655         (vec_concatv2di): Likewise.
1656         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
1657         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
1658         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
1659         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
1660         (<sse4_1_avx2>_mpsadbw): Likewise.
1661         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
1662         (<sse4_1_avx2>_pblendvb): Likewise.
1663         (sse4_1_pblendw): Likewise.
1664         (sse4_1_phminposuw): Likewise.
1665         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
1666         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
1667         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
1668         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
1669         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
1670         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1671         (sse4_1_ptest): Likewise.
1672         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
1673         (sse4_1_round<ssescalarmodesuffix>): Likewise.
1674         * config/i386/subst.md (mask_prefix4): New.
1675         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
1676
1677 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
1678
1679         PR rtl-optimization/52714
1680         * combine.c (try_combine): Allow combining two insns into two
1681         new insns if at least one of those is a noop.
1682
1683 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
1684
1685         * target.def (fusion_priority): Wrap code with @smallexample.
1686         * doc/tm.texi: Regenerated.
1687
1688 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1689
1690         * diagnostic.c (diagnostic_show_locus): Honor override_column when
1691         placing the caret.
1692
1693 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
1694
1695         * asan.c: (asan_finish_file): Use default priority for constructors
1696         in kernel mode.
1697
1698 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1699
1700         PR target/64115
1701         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1702         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1703
1704 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1705
1706         PR target/64108
1707         * config/i386/i386.c (decide_alg): Stop only if there aren't
1708         any usable algorithms.
1709
1710 2014-12-02  Tom de Vries  <tom@codesourcery.com>
1711
1712         PR rtl-optimization/63718
1713         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
1714         Thumb1.
1715
1716 2014-12-02  Richard Biener  <rguenther@suse.de>
1717
1718         * match.pd: When combining divisions exclude the degenerate
1719         case involving INT_MIN from overflow handling.
1720
1721 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1722
1723         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
1724
1725 2014-12-02  Martin Jambor  <mjambor@suse.cz>
1726
1727         PR ipa/63814
1728         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
1729         (cgraph_edge_brings_value_p): New parameter dest, use
1730         same_node_or_its_all_contexts_clone_p and check availability.
1731         (cgraph_edge_brings_value_p): Likewise.
1732         (get_info_about_necessary_edges): New parameter dest, pass it to
1733         cgraph_edge_brings_value_p.  Update caller.
1734         (gather_edges_for_value): Likewise.
1735         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
1736         both the destination and availability.
1737
1738 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
1739
1740         PR target/64113
1741         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1742         using post-reload splitter.  Use peephole2 pass instead.
1743         (call_value_osf_tlsldm): Ditto.
1744         (TLS_CALL): New int iterator.
1745         (tls): New int attribute.
1746         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1747         and call_value_tlsldm using TLS_CALL int iterator.
1748
1749 2014-12-02  Richard Biener  <rguenther@suse.de>
1750             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
1751
1752         * genmatch.c: Include hash-set.h.
1753         (fatal_at): Add source_location overload.
1754         (parser::record_operlist): New method.
1755         (parser::push_simplify): Likewise.
1756         (parser::oper_lists_set): New member.
1757         (parser::oper_lists): Likewise.
1758         (parser::parse_operation): Record seen operator list references.
1759         (parser::parse_c_expr): Likewise.
1760         (parser::parse_simplify): Init oper_lists_set and oper_lists
1761         and use push_simplify.
1762         (parser::parser): Init oper_lists_set and oper_lists.
1763
1764 2014-12-02  Richard Biener  <rguenther@suse.de>
1765
1766         * match.pd: Restrict division combining to trunc_div and
1767         exact_div.
1768
1769 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
1770
1771         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
1772         Remove NULL last argument from create_tmp_var calls.
1773         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
1774         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
1775         * config/i386/i386.c (add_condition_to_bb,
1776         ix86_atomic_assign_expand_fenv): Likewise.
1777         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
1778         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1779         * config/aarch64/aarch64-builtins.c
1780         (aarch64_atomic_assign_expand_fenv): Likewise.
1781         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1782         Likewise.
1783         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
1784         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
1785         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1786
1787         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
1788         gimple_build_assign instead of gimple_build_assign_with_ops and swap
1789         the order of first two arguments.
1790         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
1791         Likewise.  Remove last NULL_TREE argument.
1792
1793 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1794
1795         PR rtl-optimization/59278
1796         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
1797
1798 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1799
1800         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
1801
1802 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1803
1804         * combine.c (is_parallel_of_n_reg_sets): New function.
1805         (can_split_parallel_of_n_reg_sets): New function.
1806         (try_combine): If I2 is a PARALLEL of two SETs, split it into
1807         two insns if possible.
1808
1809 2014-12-01  Tobias Burnus  <burnus@net-b.de>
1810             Jack Howarth  <howarth@bromo.med.uc.edu>
1811
1812         PR middle-end/64017
1813         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
1814         New check.
1815         * doc/install.texi (ISL): Permit ISL 0.14.
1816         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
1817         Conditionally use ISL 0.13+ functions.
1818         * graphite-interchange.c: Make 'extern "C"' conditional.
1819         * graphite-isl-ast-to-gimple.c: Ditto.
1820         * graphite-poly.c: Ditto.
1821         * graphite-sese-to-poly.c: Ditto.
1822         * config.in: Regenerate.
1823         * gcc/configure: Regenerate.
1824
1825 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1826
1827         * combine.c (distribute_links): Handle multiple SETs.
1828
1829 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1830
1831         * combine.c (struct insn_link): New field `regno'.
1832         (alloc_insn_link): New parameter `regno'.  Use it.
1833         (find_single_use): Check the new field.
1834         (can_combine_def_p, can_combine_use_p): New functions.  Split
1835         off from ...
1836         (create_log_links): ... here.  Correct data type of `regno'.
1837         Adjust call to alloc_insn_link.
1838         (adjust_for_new_dest): Find regno, use it in call to
1839         alloc_insn_link.
1840         (try_combine): Check reg_used_between_p when combining a PARALLEL
1841         as earlier insn.  Adjust call to alloc_insn_link.
1842         (distribute_links): Check the new field.
1843
1844 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1845
1846         PR jit/63854
1847         * real.c (real_from_string): Add missing mpfr_clear.
1848
1849 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1850
1851         PR jit/63854
1852         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
1853         release of stmts by converting it to an auto_vec.
1854
1855 2014-12-01  Richard Biener  <rguenther@suse.de>
1856
1857         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
1858         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
1859         bootstrap with old GCC.
1860         (generic-match.o-warn): Likewise.
1861
1862 2014-12-01  Richard Biener  <rguenther@suse.de>
1863
1864         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
1865         Properly handle FIXED_CST shifts by INTEGER_CST.
1866         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
1867         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
1868         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
1869         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
1870         (fold_binary_loc): ... here.  Call const_binop overload
1871         with result type.
1872
1873 2014-12-01  Marek Polacek  <polacek@redhat.com>
1874             Jakub Jelinek  <jakub@redhat.com>
1875
1876         PR sanitizer/64121
1877         * ubsan.c (instrument_object_size): Stop searching if the base
1878         occurs in abnormal phi.
1879
1880 2014-12-01  Marek Polacek  <polacek@redhat.com>
1881
1882         PR sanitizer/63956
1883         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
1884
1885 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
1886
1887         * gimple.h (gimple_build_assign_stat): Remove prototype.
1888         (gimple_build_assign): Remove define.  Add overload prototypes
1889         with tree lhs and either a tree rhs, or enum tree_code and
1890         1, 2 or 3 tree operands.
1891         * gimple.c (gimple_build_assign_stat): Renamed to...
1892         (gimple_build_assign): ... this.  Add overloads with
1893         enum tree_code and 1, 2 or 3 tree operands.
1894         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
1895         Rename the 3 operand overload to ...
1896         (gimple_build_assign_1): ... this.  Make it static inline.
1897         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
1898         instead of gimple_build_assign_with_ops, swap the order of first
1899         two arguments and adjust formatting where necessary.
1900         * tree-vect-slp.c (vect_get_constant_vectors,
1901         vect_create_mask_and_perm): Likewise.
1902         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1903         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1904         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1905         * tsan.c (instrument_builtin_call): Likewise.
1906         * tree-chkp.c (chkp_compute_bounds_for_assignment,
1907         chkp_generate_extern_var_bounds): Likewise.
1908         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1909         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
1910         * gimple-builder.c (build_assign, build_type_cast): Likewise.
1911         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
1912         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
1913         gimple_mod_subtract): Likewise.
1914         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1915         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1916         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
1917         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
1918         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
1919         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
1920         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
1921         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
1922         adjust_bool_pattern_cast, adjust_bool_pattern,
1923         vect_recog_bool_pattern): Likewise.
1924         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
1925         insert_initializers, introduce_cast_before_cand,
1926         replace_one_candidate): Likewise.
1927         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
1928         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
1929         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
1930         Likewise.
1931         * tree-tailcall.c (adjust_return_value_with_ops,
1932         update_accumulator_with_ops): Likewise.
1933         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
1934         * tree-ssa-reassoc.c (build_and_add_sum,
1935         optimize_range_tests_to_bit_test, update_ops,
1936         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1937         negate_value, repropagate_negates, attempt_builtin_powi,
1938         reassociate_bb): Likewise.
1939         * tree-vect-loop.c (vect_is_simple_reduction_1,
1940         get_initial_def_for_induction, vect_create_epilog_for_reduction):
1941         Likewise.
1942         * ipa-split.c (split_function): Likewise.
1943         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
1944         abs_replacement, neg_replacement): Likewise.
1945         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
1946         * tree-vrp.c (simplify_truth_ops_using_ranges,
1947         simplify_float_conversion_using_ranges,
1948         simplify_internal_call_using_ranges): Likewise.
1949         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
1950         * tree-vect-generic.c (expand_vector_divmod,
1951         optimize_vector_constructor): Likewise.
1952         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
1953         instrument_bool_enum_load): Likewise.
1954         * tree-ssa-loop-manip.c (create_iv): Likewise.
1955         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
1956         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
1957         expand_cilk_for, simd_clone_adjust): Likewise.
1958         * trans-mem.c (expand_transaction): Likewise.
1959         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
1960         vect_setup_realignment, vect_permute_load_chain,
1961         vect_shift_permute_load_chain): Likewise.
1962         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1963         vectorizable_simd_clone_call, vect_gen_widened_results_half,
1964         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
1965         vectorizable_shift, vectorizable_operation, vectorizable_store,
1966         permute_vec_elements, vectorizable_load): Likewise.
1967
1968 2014-12-01  Richard Biener  <rguenther@suse.de>
1969
1970         PR middle-end/64111
1971         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
1972         htab_hash_pointer to not break PCH.
1973
1974 2014-12-01  Richard Biener  <rguenther@suse.de>
1975
1976         PR tree-optimization/15346
1977         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
1978         add -Wno-unused-but-set-variable.
1979         * match.pd: Combine two successive divisions.
1980
1981 2014-12-01  Richard Biener  <rguenther@suse.de>
1982
1983         PR middle-end/64126
1984         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
1985         and -1 - A -> ~A.
1986         * fold-const.c (fold_binary_loc): Remove transforms here.
1987
1988 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
1989
1990         * config/mips/mips.c (mips16_build_call_stub): Move the save of
1991         the return address in $18 ahead of passing arguments to FPRs.
1992
1993 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
1994
1995         PR target/64055
1996         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
1997         values in array domain.
1998
1999 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
2000
2001         PR tree-optimization/63941
2002         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
2003         DOM_BB has non-true predicate, conditionally set non-true predicate
2004         for BB.
2005
2006 2014-12-01  Martin Jambor  <mjambor@suse.cz>
2007
2008         PR ipa/63551
2009         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
2010         value of the argument to the type of the value in the condition.
2011
2012 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
2013
2014         PR target/63986
2015         PR target/51244
2016         * config/sh/sh.c (sh_unspec_insn_p,
2017         sh_insn_operands_modified_between_p): New functions.
2018         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
2019         are modified or if it has side effects, may trap or is volatile.
2020
2021 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
2022
2023         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
2024         create_tmp_reg): Add default NULL value to last argument.
2025         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
2026         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
2027         last argument from create_tmp_var_raw, create_tmp_var,
2028         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
2029         * tree-ssa-strlen.c (get_string_length): Likewise.
2030         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
2031         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2032         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
2033         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2034         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
2035         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
2036         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
2037         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
2038         * tsan.c (instrument_expr, instrument_builtin_call,
2039         instrument_func_entry): Likewise.
2040         * varpool.c (add_new_static_var): Likewise.
2041         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
2042         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
2043         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
2044         gimplify_init_ctor_eval_range, gimplify_init_constructor,
2045         gimplify_omp_atomic, gimplify_expr): Likewise.
2046         * gimple-builder.c (build_assign, build_type_cast): Likewise.
2047         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
2048         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
2049         vect_loop_versioning): Likewise.
2050         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
2051         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
2052         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
2053         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
2054         vect_recog_over_widening_pattern): Likewise.
2055         * tree-sra.c (build_ref_for_offset, create_access_replacement):
2056         Likewise.
2057         * tree-cfg.c (make_blocks): Likewise.
2058         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
2059         Likewise.
2060         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
2061         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
2062         Likewise.
2063         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
2064         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
2065         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
2066         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
2067         * tree-ssa-reassoc.c (build_and_add_sum,
2068         optimize_range_tests_to_bit_test, update_ops,
2069         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
2070         negate_value, repropagate_negates): Likewise.
2071         * tree-vect-loop.c (vect_is_simple_reduction_1,
2072         vect_create_epilog_for_reduction): Likewise.
2073         * ipa-split.c (split_function): Likewise.
2074         * tree-inline.c (remap_ssa_name, setup_one_parameter,
2075         declare_return_variable, tree_function_versioning): Likewise.
2076         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
2077         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
2078         Likewise.
2079         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
2080         neg_replacement): Likewise.
2081         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
2082         Likewise.
2083         * tree-vrp.c (simplify_truth_ops_using_ranges,
2084         simplify_float_conversion_using_ranges,
2085         simplify_internal_call_using_ranges): Likewise.
2086         * tree-switch-conversion.c (emit_case_bit_tests,
2087         build_one_array, build_arrays, gen_def_assigns): Likewise.
2088         * gimple-fold.c (gimple_fold_builtin_memory_op,
2089         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
2090         * tree-vect-generic.c (expand_vector_divmod,
2091         optimize_vector_constructor): Likewise.
2092         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
2093         ubsan_expand_objsize_ifn, instrument_si_overflow,
2094         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
2095         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
2096         * tree-ssa-loop-manip.c (create_iv,
2097         tree_transform_and_unroll_loop): Likewise.
2098         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
2099         lower_rec_input_clauses, lower_lastprivate_clauses,
2100         expand_parallel_call, expand_omp_for_static_chunk,
2101         expand_omp_atomic_pipeline, expand_omp_target,
2102         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
2103         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
2104         lower_depend_clauses, lower_omp_target, lower_omp_1,
2105         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
2106         * tree-parloops.c (take_address_of, create_phi_for_local_result,
2107         create_call_for_reduction_1, separate_decls_in_region,
2108         create_parallel_loop): Likewise.
2109         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
2110         handle_scalar_deps_crossing_scop_limits): Likewise.
2111         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
2112         expand_assign_tm, expand_call_tm, expand_transaction,
2113         ipa_tm_insert_gettmclone_call): Likewise.
2114         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
2115         Likewise.
2116         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
2117         vectorizable_call, vectorizable_simd_clone_call,
2118         vectorizable_conversion, vectorizable_store, permute_vec_elements,
2119         vectorizable_load): Likewise.
2120
2121 2014-11-29  Tobias Burnus  <burnus@net-b.de>
2122             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2123
2124         * opt-functions.awk (lang_enabled_by): Support || for
2125         enabled-by.
2126         * optc-gen.awk: Ditto.
2127         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
2128         || syntax.
2129
2130 2014-11-28  Mike Stump  <mikestump@comcast.net>
2131
2132         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
2133         (bitmap_ior_and_compl): Likewise.
2134
2135 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2136
2137         PR target/64061
2138         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
2139         subreg.
2140
2141 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
2142
2143         PR target/64093
2144         * config/rs6000/rs6000.md (and<mode>3): Don't generate
2145         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
2146
2147 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2148
2149         PR rtl-optimization/64087
2150         * lra-lives.c (process_bb_lives): Add debug output.
2151         (lra_create_live_ranges): Don't remove dead insn on the second
2152         call of lra_create_live_ranges_1.
2153
2154 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
2155
2156         PR rtl-optimization/64037
2157         * combine.c (setup_incoming_promotions): Pass the argument
2158         before any promotions happen to promote_function_mode.
2159
2160 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
2161
2162         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
2163         permutations to loads group of size 3.
2164
2165 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
2166
2167         * config/arm/arm.md (copysignsf3): New pattern.
2168         (copysigndf3): Likewise.
2169
2170 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2171             Ilya Verbin  <ilya.verbin@intel.com>
2172
2173         * omp-low.c (lower_omp_critical): Mark critical sections
2174         inside target functions as offloadable.
2175
2176 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2177
2178         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
2179         file contains sections with LTO and offload IR, respectively.
2180
2181 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2182
2183         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
2184         (symbol_table::compile): Set flag_generate_offload if there is something
2185         to offload.
2186         * common.opt (flag_generate_offload): New Variable declaration.
2187         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
2188         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
2189         flag_generate_offload is set.
2190         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
2191         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
2192         is set.
2193         * toplev.c (compile_file): Emit LTO marker if offload info has been
2194         previously emitted.  Do not emit lto_slim marker if
2195         flag_generate_offload is without flag_generate_lto.
2196         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
2197
2198 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2199
2200         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
2201         * config/arm/arm-tables.opt: Regenerate.
2202         * config/arm/arm-tune.md: Regenerate.
2203         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
2204         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
2205         MULTILIB_MATCHES.
2206
2207 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2208
2209         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
2210         Include cortex-a17.md.
2211         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
2212         * config/arm/arm-cores.def (cortex-a17): New entry.
2213         * config/arm/arm-tables.opt: Regenerate.
2214         * config/arm/arm-tune.md: Regenerate.
2215         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
2216         * config/arm/cortex-a17.md: New file.
2217         * config/arm/cortex-a17-neon.md: New file.
2218         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
2219         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
2220
2221 2014-11-28  Richard Biener  <rguenther@suse.de>
2222
2223         PR middle-end/64084
2224         * genmatch.c (dt_node::gen_kids_1): New function, split out
2225         from dt_node::gen_kids.
2226         (decision_tree::cmp_node): DT_TRUE are generally not equal.
2227         (decision_tree::find_node): Treat DT_TRUE as barrier for
2228         node CSE on the same level.
2229         (dt_node::append_node): Do not keep DT_TRUE last.
2230         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
2231
2232 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2233
2234         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2235         -march=armv8-a+crc.
2236
2237 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
2238
2239         * config/i386/i386.md (preferred_for_size): New attribute
2240         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
2241         attribute to conditionally disable alternative 1.
2242         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
2243         and prefered_for_speed attributes to conditionally disable
2244         alternative 1.
2245         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
2246         preferred_for_size attribute to conditionally disable
2247         alternatives 3 and 4.
2248         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
2249         preferred_for_size and prefered_for_speed attributes to conditionally
2250         disable alternatives 3 and 4.
2251         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
2252
2253 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2254
2255         * dwarf2out.c (set_block_origin_self): Skip nested functions.
2256
2257 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
2258
2259         PR target/63833
2260         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
2261         R15_REG for 64-bit.
2262         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2263
2264 2014-11-27  Martin Liska  <mliska@suse.cz>
2265             David Malcolm  <dmalcolm@redhat.com>
2266
2267         * ipa-icf.c (sem_function::equals_private): int* is replaced with
2268         auto_vec.
2269         (sem_function::bb_dict_test): Likewise.
2270         * ipa-icf.h: Likewise.
2271
2272 2014-11-27  Richard Biener  <rguenther@suse.de>
2273
2274         PR middle-end/64088
2275         * fold-const.c (const_unop): Re-instantiate missing condition
2276         before calling fold_abs_const.
2277
2278         PR tree-optimization/64088
2279         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2280         the stmt break from the loop over use operands.
2281
2282 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
2283
2284         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2285         Define.
2286         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2287         (fold_builtin_cpu): Ditto.
2288         * doc/extend.texi: Documment it.
2289
2290 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
2291
2292         PR middle-end/64067
2293         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2294         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2295         not only if modifier is EXPAND_INITIALIZER, but whenever
2296         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2297
2298         PR tree-optimization/64024
2299         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2300         field.  Add simd_clone_info field.
2301         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2302         (STMT_VINFO_SIMD_CLONE_INFO): Define.
2303         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2304         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2305         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
2306         base and linear_step from analysis phase and use it during transform
2307         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2308         multiplied by linear_step.
2309         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2310
2311         PR lto/64025
2312         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
2313         if it is CONSTANT_P other than CONST_INT.
2314
2315 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2316
2317         PR target/59593
2318         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2319         based on mode size.
2320         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2321         make it TARGET_EITHER.
2322         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2323         and move HFmode handling from consttable_4 to it.
2324         (consttable_4): Move HFmode handling to consttable_2 pattern.
2325         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2326         (consttable_2): Ditto.
2327
2328 2014-11-27  Richard Biener  <rguenther@suse.de>
2329
2330         * tree-ssa-sccvn.c (try_to_simplify): Allow
2331         gimple_fold_stmt_to_constant_1 to follow SSA edges.
2332
2333 2014-11-27  Richard Biener  <rguenther@suse.de>
2334
2335         PR tree-optimization/64083
2336         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2337         forcibly mark loop for removal the wrong way.
2338
2339 2014-11-27  Richard Biener  <rguenther@suse.de>
2340
2341         PR middle-end/63704
2342         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2343         and instead return false when !fstrict-aliasing.
2344
2345 2014-11-27  Richard Biener  <rguenther@suse.de>
2346
2347         PR tree-optimization/61634
2348         * tree-vect-slp.c: Include gimple-walk.h.
2349         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
2350         down the SLP tree for one scalar statement.
2351         (vect_detect_hybrid_slp_1): New walker function.
2352         (vect_detect_hybrid_slp_2): Likewise.
2353         (vect_detect_hybrid_slp): Properly handle pattern statements
2354         in a pre-scan over all loop stmts.
2355
2356 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2357
2358         Revert:
2359         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2360         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
2361         aarch64_convert_mode, aarch64_gen_ccmp_first,
2362         aarch64_gen_ccmp_next): New functions.
2363         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
2364
2365 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
2366
2367         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
2368         without -pie or -shared, error on -fsanitize=thread -static instead.
2369
2370 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2371
2372         PR ipa/61190
2373         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
2374         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2375         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
2376         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
2377         Add new optional parameter exclude_virtual_thunks.
2378         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
2379         optional parameter exclude_virtual_thunks.
2380         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
2381         (cgraph_node::set_pure_flag): Likewise.
2382         (cgraph_node::function_symbol): Simplified.
2383         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2384         * ipa-pure-const.c (analyze_function): For virtual thunks set
2385         pure_const_state to IPA_NEITHER.
2386         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
2387
2388 2014-11-26  Richard Biener  <rguenther@suse.de>
2389
2390         PR middle-end/63738
2391         * tree-data-ref.c (split_constant_offset_1): Do not follow
2392         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2393
2394 2014-11-26  Richard Biener  <rguenther@suse.de>
2395
2396         * fold-const.h (const_unop): Declare.
2397         (const_binop): Likewise.
2398         * fold-const.c (const_binop): Export overload that expects
2399         a type parameter and dispatches to fold_relational_const as well.
2400         Check both operand kinds for guarding the transforms.
2401         (const_unop): New function, with constant folding from fold_unary_loc.
2402         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
2403         Remove constant folding done there from the simplifications.
2404         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
2405         (fold_negate_expr): Remove dead code from the REAL_CST case.
2406         Avoid building garbage in the COMPLEX_CST case.
2407         * gimple-match-head.c (gimple_resimplify1): Dispatch to
2408         const_unop.
2409         (gimple_resimplify2): Dispatch to const_binop.
2410         (gimple_simplify): Likewise.
2411
2412 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2413
2414         PR bootstrap/63995
2415         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
2416         debug statement when searching for a new position for
2417         bounds load/creation statement.
2418
2419 2014-11-26  Marek Polacek  <polacek@redhat.com>
2420
2421         PR sanitizer/63788
2422         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
2423         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
2424         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
2425
2426 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2427
2428         PR lto/64075
2429         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
2430         proper size for function_code bitfield.
2431         (pack_ts_function_decl_value_fields): Likewise.
2432
2433 2014-11-21  Mark Wielaard  <mjw@redhat.com>
2434
2435         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
2436         * opts.c (common_handle_option): Accept -gdwarf-5.
2437         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
2438         DW_LANG_C_plus_plus_14.
2439         (lower_bound_default): Likewise. Plus DW_LANG_C11.
2440         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
2441         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
2442         (output_compilation_unit_header): Output at most a DWARFv4 header.
2443         (output_skeleton_debug_sections): Likewise.
2444         (output_line_info): Likewise.
2445         (output_aranges): Document header version number.
2446
2447 2014-11-26  Richard Biener  <rguenther@suse.de>
2448
2449         * gimple-fold.c (get_symbol_constant_value): Allow all
2450         GIMPLE register type zero-constants.
2451
2452 2014-11-26  Mark Wielaard  <mjw@redhat.com>
2453
2454         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
2455         function decl has TREE_THIS_VOLATILE.
2456
2457 2014-11-26  Richard Biener  <rguenther@suse.de>
2458
2459         PR tree-optimization/62238
2460         * tree-predcom.c (ref_at_iteration): Unshare the expression
2461         before gimplifying it.
2462         (prepare_initializers_chain): Discard unused seq.
2463
2464 2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>
2465
2466         * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
2467         for p5600.
2468
2469 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2470
2471         * ira-lives.c (process_bb_node_lives): Make code with conditional
2472         REAL_PIC_OFFSET_TABLE_REGNUM.
2473
2474 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2475
2476         PR target/63527
2477         * ira-lives.c (process_bb_node_lives): Check and remove conflict
2478         of pic pseudo with pic hard reg.
2479
2480 2014-11-25  Rohit  <rohitarulraj@freescale.com>
2481
2482         PR bootstrap/63703
2483         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2484         added GCC hard register numbers for SPE high registers.
2485
2486 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2487
2488         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
2489         before removing it, not after.
2490
2491 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2492
2493         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
2494         PATTERN call.
2495
2496 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2497
2498         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
2499         of addic.
2500
2501 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2502
2503         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
2504         (rest of file): Replace those with code resp. CODE.
2505
2506 2014-11-25  Tom de Vries  <tom@codesourcery.com>
2507
2508         * tree-cfg.c (verify_sese): New function.
2509         (move_sese_region_to_fn): Call verify_sese.
2510         * tree-cfg.h (verify_sese): Declare.
2511
2512 2014-11-25  Richard Biener  <rguenther@suse.de>
2513
2514         PR lto/64065
2515         * lto-streamer-out.c (output_struct_function_base): Stream
2516         last_clique field.
2517         * lto-streamer-in.c (input_struct_function_base): Likewise.
2518
2519 2014-11-25  Martin Liska  <mliska@suse.cz>
2520
2521         PR bootstrap/64050
2522         PR ipa/64060
2523         * sreal.c (sreal::operator+): Addition fixed.
2524         (sreal::signedless_plus): Negative numbers are
2525         handled correctly.
2526         (sreal::operator-): Subtraction is fixed.
2527         (sreal::signedless_minus): Negative numbers are
2528         handled correctly.
2529         * sreal.h (sreal::operator<): Equal negative numbers
2530         are compared correctly.
2531         (sreal::shift): New checking asserts are introduced.
2532         Operation is fixed.
2533
2534 2014-11-25  Richard Biener  <rguenther@suse.de>
2535
2536         PR tree-optimization/61927
2537         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2538         of group and pattern analysis to the one in GCC 4.8.
2539
2540 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
2541             Jakub Jelinek  <jakub@redhat.com>
2542
2543         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
2544         strlen, strncpy.
2545         * lto-wrapper.c (append_offload_options): Likewise.
2546
2547 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2548
2549         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
2550         load the static chain if the call was originally direct.
2551
2552 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
2553
2554         PR ipa/64059
2555         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
2556         devirtualization is disabled.
2557
2558 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2559
2560         PR target/63965
2561         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2562         Altivec & -16 mask if the type is not valid for Altivec registers.
2563         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2564         reg) that occurs during push_reload processing.
2565
2566         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2567         alternative for moving constant vectors which are easy altivec
2568         constants to GPRs.  Set the length attribute each of the
2569         alternatives.
2570
2571         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
2572         work in progress patch was committed instead of the fixes for
2573         63965.
2574         * config/rs6000/rs6000.c: Likewise.
2575
2576 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2577
2578         PR ipa/63671
2579         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
2580         and -fno-devirtualize more carefully.
2581         (can_remove_node_now_p): Update.
2582
2583 2014-11-24  Andrew Pinski  <apinski@cavium.com>
2584
2585         PR rtl-opt/63972
2586         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
2587
2588 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2589
2590         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
2591
2592 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2593
2594         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2595         Refactor by combining switch statements and make arrays into scalars.
2596
2597 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
2598
2599         PR c++/58561
2600         * dbxout.c: Include stringpool.h
2601         (dbxout_type) [default]: Ignore auto type.
2602
2603 2014-11-24  Richard Biener  <rguenther@suse.de>
2604
2605         PR tree-optimization/63679
2606         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
2607         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
2608         to properly leave off at -1.
2609         (fully_constant_vn_reference_p): Generalize folding from
2610         constant initializers.
2611         (vn_reference_lookup_3): When looking through aggregate copies
2612         handle offsetted reads and try simplifying the result to
2613         a constant.
2614         * gimple-fold.h (fold_ctor_reference): Export.
2615         * gimple-fold.c (fold_ctor_reference): Likewise.
2616
2617 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
2618
2619         * simplify-rtx.c (simplify_ternary_operation): Simplify
2620         vec_merge (vec_duplicate (vec_select)).
2621
2622 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2623
2624         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
2625         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
2626         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
2627
2628 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2629
2630         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
2631         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
2632         (cortexa57_tunings): Likewise.
2633         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
2634
2635 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2636
2637         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
2638         in the not conditional jump case.
2639         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2640         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2641
2642 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2643
2644         * config/aarch64/aarch64.c: Include tm-constrs.h
2645         (AARCH64_FUSE_ADRP_ADD): Define.
2646         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
2647         (cortexa53_tunings): Likewise.
2648         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
2649
2650 2014-11-24  Martin Liska  <mliska@suse.cz>
2651
2652         * ipa-inline.c (edge_badness): long is replaced by sreal
2653         as fibonacci_heap template type.
2654         (update_edge_key): Likewise.
2655         (inline_small_functions): Likewise.
2656
2657 2014-11-24  Martin Liska  <mliska@suse.cz>
2658
2659         * predict.c (propagate_freq): More elegant sreal API is used.
2660         (estimate_bb_frequencies): Precomputed constants replaced by integer
2661         constants.
2662         * sreal.c (sreal::normalize): New function.
2663         (sreal::to_int): Likewise.
2664         (sreal::operator+): Likewise.
2665         (sreal::operator-): Likewise.
2666         (sreal::signedless_plus): Likewise.
2667         (sreal::signedless_minus): Likewise.
2668         (sreal::operator/): Negative number support is added.
2669         * sreal.h: Definition of new functions added.
2670         (inline sreal operator<<): New function.
2671         (inline sreal operator>>): Likewise.
2672
2673 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2674
2675         * config/aarch64/aarch64-protos.h (struct tune_params): Add
2676         fuseable_ops field.
2677         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
2678         (cortexa53_tunings): Likewise.
2679         (cortexa57_tunings): Likewise.
2680         (thunderx_tunings): Likewise.
2681         (aarch64_macro_fusion_p): New function.
2682         (aarch_macro_fusion_pair_p): Likewise.
2683         (TARGET_SCHED_MACRO_FUSION_P): Define.
2684         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2685         (AARCH64_FUSE_MOV_MOVK): Likewise.
2686         (AARCH64_FUSE_NOTHING): Likewise.
2687
2688 2014-11-24  Martin Liska  <mliska@suse.cz>
2689
2690         PR lto/63968
2691         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
2692         with replace_key method.
2693         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
2694         (fibonacci_heap::replace_key_data): Likewise.
2695         (fibonacci_heap::replace_key): New method that can even increment key,
2696         this operation costs O(log N).
2697         (fibonacci_heap::extract_min): New argument.
2698         (fibonacci_heap::delete_node): Likewise.
2699
2700 2014-11-24  Richard Biener  <rguenther@suse.de>
2701
2702         PR tree-optimization/55334
2703         * function.h (struct function): Add last_clique member.
2704         * tree-inline.c (remap_dependence_clique): New function.
2705         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
2706         (copy_tree_body_r): Likewise.
2707         (copy_cfg_body): Free dependence map.
2708         (copy_gimple_seq_and_replace_locals): Likewise.
2709         * tree-pretty-print.c (dump_generic_node): Dump
2710         dependence info.
2711         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
2712         to answer alias query.
2713         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
2714         tree-pretty-print.h and gimple-walk.h.
2715         (struct variable_info): Add is_restrict_var flag and ruid
2716         member.
2717         (new_var_info): Initialize is_restrict_var.
2718         (make_constraint_from_restrict): Likewise.
2719         (create_variable_info_for): Exclude restricts from global vars
2720         from new handling.
2721         (intra_create_variable_infos): But not those from parameters.
2722         (visit_loadstore): New function.
2723         (maybe_set_dependence_info): Likewise.
2724         (compute_dependence_clique): Likewise.
2725         (compute_may_aliases): Call compute_dependence_clique.
2726         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
2727         to fake MEM_REF.
2728         (dr_may_alias_p): Use recorded dependence info to answer
2729         alias query.
2730         * tree-core.h (struct tree_base): Add clique, base struct in
2731         union.
2732         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
2733         (MR_DEPENDENCE_BASE): Likewise.
2734         * tree-inline.h (dependence_hasher): New hash-map kind.
2735         (struct copy_body_data): Add dependence_map pointer.
2736         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
2737         throwing away dependence info.
2738         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
2739         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
2740
2741 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
2742
2743         PR target/53976
2744         * config/sh/sh_optimize_sett_clrt.cc
2745         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2746         of void.  Abort at complex edges.
2747         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2748         returned false.
2749
2750 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
2751
2752         PR other/63694
2753         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
2754         declarations.
2755         * configure: Regenerated.
2756         * config.in: Regenerated.
2757
2758 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2759
2760         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
2761         clones as having abstract origin used.
2762         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
2763         origin check.
2764         (clone_inlined_nodes): Copy abstract originflag.
2765         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
2766         abstract origin node.
2767
2768 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
2769
2770         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
2771         * config/i386/i386.c (ix86_option_override_internal): Do not increase
2772         PARAM_MAX_COMPLETELY_PEELED_INSNS.
2773
2774 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2775
2776         PR target/63783
2777         PR target/51244
2778         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2779         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
2780         Adjust related comments throughout the file.
2781
2782 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2783
2784         PR target/63986
2785         PR target/51244
2786         * config/sh/sh.c (sh_is_logical_t_store_expr,
2787         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
2788         (sh_split_movrt_negc_to_movt_xor): New function.
2789         (sh_find_set_of_reg): Move to ...
2790         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
2791         to template function.
2792         (set_of_reg): Use rtx_insn* for insn member.
2793         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
2794         rtx_insn* for insn argument.
2795         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
2796         sequence using new sh_split_movrt_negc_to_movt_xor function.
2797         (movrt_xor): Allow also for SH2A.
2798         (*movt_movrt): Delete insns and splits.
2799
2800 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
2801
2802         PR tree-optimization/60770
2803         * tree-sra.c (clobber_subtree): New function.
2804         (sra_modify_constructor_assign): Call it.
2805
2806 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
2807
2808         PR target/63897
2809         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
2810         argument.
2811         (process_bb_lives): Rename dead_insn_p on remove_p
2812         and global_live_info_p on dead_insn_p.  Calculate local live info
2813         unconditionally.  Remove last argument in calls mark_regno_live and
2814         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
2815         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
2816         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
2817         flag of live info change.
2818         (lra_create_live_ranges): New.
2819
2820 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2821
2822         PR target/63848
2823         PR target/63975
2824         * internal-fn.c (expand_arith_overflow_result_store,
2825         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
2826         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
2827         adjust arguments to those functions.  Use unsignedp = true for
2828         EQ, NE, GEU, LEU, LTU and GTU comparisons.
2829
2830         PR tree-optimization/64006
2831         * tree-vrp.c (stmt_interesting_for_vrp): Return true
2832         for {ADD,SUB,MUL}_OVERFLOW internal calls.
2833         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
2834         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
2835         immediate uses would change their value ranges and return
2836         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
2837         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
2838         interesting for vrp.
2839
2840 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2841
2842         PR target/63965
2843         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2844         Altivec & -16 mask if the type is not valid for Altivec registers.
2845         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2846         reg) that occurs during push_reload processing.
2847
2848         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2849         alternative for moving constant vectors which are easy altivec
2850         constants to GPRs.  Set the length attribute each of the
2851         alternatives.
2852
2853 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
2854
2855         * configure.ac: When checking for MIPS .module support ensure that
2856         o32 FPXX is supported to avoid a second configure check.
2857         * configure: Regenerate.
2858
2859 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
2860
2861         * config/aarch64/iterators.md (VS): New mode iterator.
2862         (vsi2qi): New mode attribute.
2863         (VSI2QI): Likewise.
2864         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
2865         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
2866         * config/aarch64/aarch64-builtins.c
2867         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
2868
2869 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
2870
2871         PR bootstrap/63784
2872         * configure: Regenerated.
2873
2874 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2875
2876         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
2877
2878 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2879
2880         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
2881         OPTION_MASK_ISA_PCOMMIT_SET): New.
2882         (ix86_handle_option): Handle OPT_mpcommit.
2883         * config.gcc: Add pcommitintrin.h
2884         * config/i386/pcommitintrin.h: New file.
2885         * config/i386/cpuid.h (bit_PCOMMIT): Define.
2886         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
2887         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2888         __PCOMMIT__.
2889         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
2890         (PTA_PCOMMIT): Define.
2891         (ix86_option_override_internal): Handle new option.
2892         (ix86_valid_target_attribute_inner_p): Add pcommit.
2893         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
2894         (bdesc_special_args): Add __builtin_ia32_pcommit.
2895         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
2896         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
2897         (pcommit): New instruction.
2898         * config/i386/i386.opt: Add mpcommit.
2899         * config/i386/x86intrin.h: Include pcommitintrin.h.
2900
2901 2014-11-20  Mark Wielaard  <mjw@redhat.com>
2902
2903         PR debug/38757
2904         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
2905         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
2906         (darwin_override_options): Likewise.
2907         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
2908         Likewise.
2909         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2910         Likewise.
2911         * dbxout.c (get_lang_number): Likewise.
2912         (dbxout_type): Likewise.
2913         (dbxout_symbol_location): Likewise.
2914         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
2915         also for DW_LANG_{C,C99,ObjC}.
2916         (highest_c_language): New function.
2917         (gen_compile_unit_die): Call highest_c_language to merge LTO
2918         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
2919         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
2920         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
2921         * langhooks.h (struct lang_hooks): Add version comment to name.
2922         (lang_GNU_C): New function declaration.
2923         (lang_GNU_CXX): Likewise.
2924         * langhooks.c (lang_GNU_C): New function.
2925         (lang_GNU_CXX): Likewise.
2926         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
2927
2928 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2929
2930         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
2931         OPTION_MASK_ISA_CLWB_SET): New.
2932         (ix86_handle_option): Handle OPT_mclwb.
2933         * config.gcc: Add clwbintrin.h.
2934         * config/i386/clwbintrin.h: New file.
2935         * config/i386/cpuid.h (bit_CLWB): Define.
2936         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
2937         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2938         __CLWB__.
2939         * config/i386/i386.c (ix86_target_string): Add -mclwb.
2940         (PTA_CLWB): Define.
2941         (ix86_option_override_internal): Handle new option.
2942         (ix86_valid_target_attribute_inner_p): Add clwb.
2943         (ix86_builtins): Add IX86_BUILTIN_CLWB.
2944         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
2945         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
2946         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
2947         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
2948         (clwb): New instruction.
2949         * config/i386/i386.opt: Add mclwb.
2950         * config/i386/x86intrin.h: Include clwbintrin.h.
2951
2952 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2953
2954         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
2955         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
2956         (ix86_handle_option): Handle OPT_mavx512vbmi.
2957         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
2958         * config/i386/avx512vbmiintrin.h: New file.
2959         * config/i386/avx512vbmivlintrin.h: Ditto.
2960         * config/i386/cpuid.h (bit_AVX512VBMI): New.
2961         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
2962         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2963         __AVX512VBMI__.
2964         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
2965         (PTA_AVX512VBMI): Define.
2966         (ix86_option_override_internal): Handle new options.
2967         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
2968         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
2969         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
2970         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
2971         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
2972         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
2973         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
2974         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
2975         IX86_BUILTIN_VPERMI2VARQI128.
2976         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
2977         __builtin_ia32_vpmultishiftqb256_mask,
2978         __builtin_ia32_vpmultishiftqb128_mask,
2979         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
2980         __builtin_ia32_vpermt2varqi512_maskz,
2981         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
2982         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
2983         __builtin_ia32_vpermt2varqi256_maskz,
2984         __builtin_ia32_vpermt2varqi128_mask,
2985         __builtin_ia32_vpermt2varqi128_maskz,
2986         __builtin_ia32_vpermi2varqi256_mask,
2987         __builtin_ia32_vpermi2varqi128_mask.
2988         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
2989         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
2990         * config/i386/i386.opt: Add mavx512vbmi.
2991         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
2992         avx512vbmivlintrin.h.
2993         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
2994         (VI1_AVX512VL): New iterator.
2995         (<avx512>_permvar<mode><mask_name>): Use it.
2996         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
2997         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
2998         (<avx512>_vpermi2var<mode>3_mask): Ditto.
2999         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
3000         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
3001         (<avx512>_vpermt2var<mode>3_mask): Ditto.
3002         (vpmultishiftqb<mode><mask_name>): Ditto.
3003
3004 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3005
3006         PR rtl-optimization/63952
3007         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
3008         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
3009         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
3010
3011 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
3012
3013         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
3014         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
3015         (ix86_handle_option): Handle OPT_mavx512ifma.
3016         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
3017         * config/i386/avx512ifmaintrin.h: New file.
3018         * config/i386/avx512ifmaivlntrin.h: Ditto.
3019         * config/i386/cpuid.h (bit_AVX512IFMA): New.
3020         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3021         avx512ifma.
3022         * config/i386/i386-c.c (ix86_target_macros_internal): Define
3023         __AVX512IFMA__.
3024         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
3025         (PTA_AVX512IFMA): Define.
3026         (ix86_option_override_internal): Handle new options.
3027         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
3028         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
3029         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
3030         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
3031         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
3032         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
3033         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
3034         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
3035         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
3036         __builtin_ia32_vpmadd52luq512_maskz,
3037         __builtin_ia32_vpmadd52huq512_mask,
3038         __builtin_ia32_vpmadd52huq512_maskx,
3039         __builtin_ia32_vpmadd52luq256_mask,
3040         __builtin_ia32_vpmadd52luq256_maskz,
3041         __builtin_ia32_vpmadd52huq256_mask,
3042         __builtin_ia32_vpmadd52huq256_maskz,
3043         __builtin_ia32_vpmadd52luq128_mask,
3044         __builtin_ia32_vpmadd52luq128_maskz,
3045         __builtin_ia32_vpmadd52huq128_mask,
3046         __builtin_ia32_vpmadd52huq128_maskz,
3047         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
3048         * config/i386/i386.opt: Add mavx512ifma.
3049         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
3050         avx512ifmavlintrin.h.
3051         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
3052         UNSPEC_VPMADD52HUQ.
3053         (VPMADD52): New iterator.
3054         (vpmadd52type): New attribute.
3055         (vpamdd52huq<mode>_maskz): New.
3056         (vpamdd52luq<mode>_maskz): Ditto.
3057         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
3058         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
3059
3060 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
3061
3062         Revert:
3063         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
3064         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
3065
3066 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
3067
3068         * config/mips/mips.c (mips_process_sync_loop): Place a 
3069         nop in the delay slot of the branch likely instruction.
3070         (mips_output_sync_loop): Ensure mips_branch_likely is 
3071         set before calling mips_output_sync_loop.
3072         (mips_sync_loop_insns): Likewise.
3073
3074 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3075
3076         PR/target 63673
3077         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
3078         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
3079         double.
3080
3081 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
3082
3083         Forward-port from 2014-10-30 4_9-branch r216934
3084
3085         PR target/63633
3086         * config/avr/avr-protos.h (regmask): New inline function.
3087         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
3088         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
3089         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
3090         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
3091         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
3092         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
3093         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
3094         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
3095         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
3096         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
3097         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
3098         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
3099         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
3100         needed.
3101
3102 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3103
3104         PR target/61137
3105         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
3106         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
3107
3108 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
3109
3110         * config/aarch64/aarch64-simd.md
3111         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
3112         output mnemonic and operands.
3113         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
3114         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
3115
3116 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3117
3118         * config/i386/i386.c (ix86_option_override_internal): Increase
3119         PARAM_MAX_COMPLETELY_PEELED_INSNS.
3120
3121 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
3122
3123         PR target/60451
3124         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
3125         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
3126         replace for V16QI, V16HI and V32QI modes.
3127         (ix86_expand_vec_perm_const_1): Add new expand.
3128
3129 2014-11-21  Nick Clifton  <nickc@redhat.com>
3130
3131         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
3132         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
3133         (rl78_expand_prologue): Save the ES register in interrupt handlers
3134         that use it.
3135         (rl78_expand_epilogue): Restore the ES register if necessary.
3136         (rl78_start_function): Mention if the function uses the ES
3137         register.
3138         (rl78_lo16): Record the use of the ES register.
3139         (transcode_memory_rtx): Likewise.
3140
3141 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3142
3143         PR tree-optimization/61773
3144         * tree-ssa-strlen.c (get_string_length): Don't assert
3145         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
3146
3147         PR target/63910
3148         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
3149         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
3150         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
3151
3152 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
3153
3154         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
3155         HOST_WIDE_INT_M1U instead of ~0.
3156         (includes_rldicr_lshift_p): Likewise.
3157
3158 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3159
3160         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
3161         we need to look into its operand to determine if it is a valid
3162         address.
3163
3164 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3165
3166         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
3167         vaarg_p argument and create correct CFI info.
3168         (nds32_expand_prologue): Pass true or false to
3169         nds32_emit_stack_push_multiple function.
3170
3171 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3172
3173         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
3174         as RTX_FRAME_RELATED_P rtx.
3175
3176 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3177
3178         * config/nds32/nds32.opt (march): Add help message.
3179
3180 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
3181
3182         * tree-vrp.c (test_for_singularity): New parameter
3183         strict_overflow_p.  Set *strict_overflow_p to true if signed
3184         overflow must be undefined for the return value to satisfy the
3185         conditional.
3186         (simplify_cond_using_ranges): Don't perform the simplification
3187         if it violates overflow rules.
3188
3189 2014-11-20  Marek Polacek  <polacek@redhat.com>
3190
3191         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
3192
3193 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
3194
3195         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3196         condition would be removed due to undefined behaviour.
3197
3198 2014-11-20  Andrew Pinski  <apinski@cavium.com>
3199
3200         PR ipa/63981
3201         PR ipa/63982
3202         * ipa-polymorphic-call.c (possible_placement_new):
3203         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
3204         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
3205         (extr_type_from_vtbl_ptr_store): Likewise.
3206
3207 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
3208
3209         * config/rs6000/constraints.md: Avoid signed integer overflows.
3210         * config/rs6000/predicates.md: Likewise.
3211         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
3212         (includes_rldic_lshift_p): Likewise.
3213         (includes_rldicr_lshift_p): Likewise. 
3214         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
3215         * loop-iv.c (determine_max_iter): Likewise.
3216         (iv_number_of_iterations): Likewise.
3217         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
3218         * varasm.c (get_section_anchor): Likewise.
3219
3220 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
3221
3222         PR target/63870
3223         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
3224         expression to aarch64_simd_lane_bounds.
3225         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
3226         prototype.
3227         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
3228         call to aarch64_simd_lane_bounds.
3229         (aarch64_get_lanedi): Likewise.
3230         (aarch64_ld2_lane<mode>): Likewise.
3231         (aarch64_ld3_lane<mode>): Likewise.
3232         (aarch64_ld4_lane<mode>): Likewise.
3233         (aarch64_im_lane_boundsi): Likewise.
3234         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
3235         parameter. Report calling function in error message if exp is non-NULL.
3236
3237 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3238
3239         PR target/60111
3240         * config/sh/sh.c: Use signed char for signed field.
3241
3242 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3243
3244         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
3245         hash_table.
3246
3247 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3248
3249         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
3250         tree-scalar-evolution.c: Replace htab with hash_table.
3251
3252 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3253
3254         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
3255         (lto_free_function_in_decl_state): Likewise.
3256         * lto-streamer-out.c (copy_function_or_variable): Likewise.
3257         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
3258         (lto_file_decl_data_num_ ## name ## s): Likewise.
3259         (struct lto_tree_ref_table): Remove.
3260         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
3261
3262 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3263
3264         * hash-map.h (hash_map::iterator): New class.
3265         (hash_map::begin): New method.
3266         (hash_map::end): Likewise.
3267         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3268         replace splay_tree with hash_map.
3269
3270 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3271
3272         * hash-table.h (hash_table::hash_table): Call alloc_entries.
3273         (hash_table::alloc_entries): new method.
3274         (hash_table::expand): Call alloc_entries.
3275         (hash_table::empty): Likewise.
3276
3277 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3278
3279         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3280         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3281
3282 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3283
3284         * doc/gty.texi: Document the new cache gty attribute.
3285         * gengtype.c (finish_cache_funcs): New function.
3286         (write_roots): Call gt_clear_cache on global variables with the cache
3287         gty attribute.
3288         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3289         * ggc.h (gt_clear_caches): New declaration.
3290         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3291         memory.
3292         (gt_cleare_cache): New function.
3293         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3294
3295 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3296
3297         * combine.c (try_combine): Prefer to delete dead SETs inside
3298         a PARALLEL over keeping them.
3299
3300 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3301
3302         * combine.c (combine_validate_cost): Always print the insn costs
3303         to the dump file.
3304
3305 2014-11-20  Richard Henderson <rth@redhat.com>
3306
3307         PR target/63977
3308         * config/i386/i386.c (ix86_static_chain): Reinstate the check
3309         for DECL_STATIC_CHAIN.
3310
3311 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
3312
3313         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3314         Fixup prototype.
3315         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3316         aarch64_cannot_force_const_mem, aarch64_classify_address,
3317         aarch64_classify_symbolic_expression): Fixup call to
3318         aarch64_classify_symbol.
3319         (aarch64_classify_symbol): Add range-checking for
3320         symbol + offset addressing for tiny and small models.
3321
3322 2014-11-20  Richard Biener  <rguenther@suse.de>
3323
3324         PR middle-end/63962
3325         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3326         Guard with single-use operand 0.
3327
3328 2014-11-20   Richard Biener  <rguenther@suse.de>
3329
3330         PR tree-optimization/63677
3331         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3332         (avail_exprs_stack): Make a vector of pairs.
3333         (struct hash_expr_elt): Replace stmt member with vop member.
3334         (expr_elt_hasher::equal): Simplify.
3335         (initialize_hash_element): Adjust.
3336         (initialize_hash_element_from_expr): Likewise.
3337         (dom_opt_dom_walker::thread_across_edge): Likewise.
3338         (record_cond): Likewise.
3339         (dom_opt_dom_walker::before_dom_children): Likewise.
3340         (print_expr_hash_elt): Likewise.
3341         (remove_local_expressions_from_table): Restore previous state
3342         if requested.
3343         (record_equivalences_from_stmt): Record &x + CST as constant
3344         &MEM[&x, CST] for further propagation.
3345         (vuse_eq): New function.
3346         (lookup_avail_expr): For loads use the alias oracle to see
3347         whether a candidate from the expr hash is usable.
3348         (avail_expr_hash): Do not hash VUSEs.
3349
3350 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3351
3352         PR target/59593
3353         * config/arm/arm.md (*movhi_insn): Use right formatting
3354         for immediate.
3355
3356 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
3357
3358         PR sanitizer/63845
3359         * function.c (assign_parms): Move init of pic_offset_table_rtx
3360         from here to...
3361         * cfgexpand.c (expand_used_vars): ...here.
3362
3363 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3364
3365         * tree.c (free_lang_data_in_type): If BINFO has no important
3366         information in it, set it to NULL.
3367         (get_binfo_at_offset): Do not walk fields, only bases.
3368         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
3369         to be NULL.
3370         * ipa-polymorphic-call.c (record_known_type): Likewise.
3371
3372 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3373
3374         PR jit/63854
3375         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
3376         congruence_class_group *.
3377
3378 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
3379
3380         PR target/63947
3381         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
3382         Output "b" and "nb" suffix for FP mode.
3383
3384 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3385
3386         PR bootstrap/63963
3387         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
3388         DECL_FUNCTION_SPECIFIC_TARGET
3389         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
3390         DECL_FUNCTION_SPECIFIC_TARGET.
3391
3392 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3393
3394         PR jit/63854
3395         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
3396
3397 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3398
3399         PR jit/63854
3400         * lra.c (lra): After creating live ranges in preparation for call
3401         to lra_inheritance, set live_p to true.
3402
3403 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3404
3405         PR jit/63854
3406         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
3407         "path", delete it.
3408         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
3409
3410 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3411
3412         PR jit/63854
3413         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
3414         vec<> to auto_vec<> to fix a leak.
3415
3416 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3417
3418         PR jit/63854
3419         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
3420
3421 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3422
3423         PR jit/63854
3424         * ira-costs.c (ira_costs_c_finalize): New function.
3425         * ira.h (ira_costs_c_finalize): New prototype.
3426         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
3427
3428 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3429
3430         PR jit/63854
3431         * ipa-reference.c (ipa_reference_c_finalize): Release
3432         optimization_summary_obstack.
3433
3434 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3435
3436         PR jit/63854
3437         * toplev.c (toplev::finalize): Free opts_obstack.
3438
3439 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3440
3441         PR jit/63854
3442         * toplev.c (toplev::finalize): Clean up save_decoded_options.
3443
3444 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3445
3446         PR jit/63854
3447         * bb-reorder.c
3448         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
3449         local bbs_in_hot_partition from vec<> to auto_vec<>.
3450
3451 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3452
3453         PR jit/63854
3454         * config/alpha/alpha.c (alpha_option_override): Remove static from
3455         "handle_trap_shadows_info" and "align_insns_info".
3456         * config/i386/i386.c (ix86_option_override): Likewise for
3457         "insert_vzeroupper_info".
3458         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
3459         "rl78_devirt_info" and "rl78_move_elim_info".
3460         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
3461         "analyze_swaps_info".
3462         * context.c (gcc::context::~context): New.
3463         * context.h (gcc::context::~context): New.
3464         * dumpfile.c (dump_files): Add "false" initializers for new field
3465         "owns_strings".
3466         (gcc::dump_manager::~dump_manager): New.
3467         (gcc::dump_manager::dump_register): Add param "take_ownership".
3468         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
3469         (gcc::dump_manager::~dump_manager): New.
3470         (gcc::dump_manager::dump_register): Add param "take_ownership".
3471         * pass_manager.h (gcc::pass_manager::operator delete): New.
3472         (gcc::pass_manager::~pass_manager): New.
3473         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
3474         new "owns_strings" argument to dump_register.
3475         (pass_manager::operator delete): New.
3476         (delete_pass_tree): New function.
3477         (pass_manager::~pass_manager): New.
3478         * statistics.c (statistics_early_init): Pass "false" to
3479         new "owns_strings" argument to dump_register.
3480         * toplev.c (toplev::finalize): Clean up the context and thus the
3481         things it owns.
3482
3483 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3484
3485         PR jit/63854
3486         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
3487         obstack_free when cleaning up valid_mode_changes_obstack.
3488
3489 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3490
3491         PR jit/63854
3492         * opts.c (finalize_options_struct): New.
3493         * opts.h (finalize_options_struct): New.
3494         * toplev.c (toplev::finalize): Call finalize_options_struct
3495         on global_options and global_options_set.
3496
3497 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3498             Jakub Jelinek  <jakub@redhat.com>
3499
3500         PR driver/36312
3501         PR driver/63837
3502         * gcc.c (process_command): Don't check for input/output
3503         filename equality if output is HOST_BIT_BUCKET.
3504         * toplev.c (init_asm_output): Likewise.
3505
3506 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3507
3508         Merger of git branch "gimple-classes-v2-option-3".
3509
3510         * ChangeLog.gimple-classes: New.
3511
3512         * coretypes.h (struct gcond): Add forward decl.
3513         (struct gdebug): Likewise.
3514         (struct ggoto): Likewise.
3515         (struct glabel): Likewise.
3516         (struct gswitch): Likewise.
3517         (struct gassign): Likewise.
3518         (struct gasm): Likewise.
3519         (struct gcall): Likewise.
3520         (struct gtransaction): Likewise.
3521         (struct greturn): Likewise.
3522         (struct gbind): Likewise.
3523         (struct gcatch): Likewise.
3524         (struct geh_filter): Likewise.
3525         (struct geh_mnt): Likewise.
3526         (struct geh_else): Likewise.
3527         (struct gresx): Likewise.
3528         (struct geh_dispatch): Likewise.
3529         (struct gphi): Likewise.
3530         (struct gtry): Likewise.
3531         (struct gomp_atomic_load): Likewise.
3532         (struct gomp_atomic_store): Likewise.
3533         (struct gomp_continue): Likewise.
3534         (struct gomp_critical): Likewise.
3535         (struct gomp_for): Likewise.
3536         (struct gomp_parallel): Likewise.
3537         (struct gomp_task): Likewise.
3538         (struct gomp_sections): Likewise.
3539         (struct gomp_single): Likewise.
3540         (struct gomp_target): Likewise.
3541         (struct gomp_teams): Likewise.
3542
3543         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
3544         for renaming of gimple subclasses.
3545
3546         * gdbhooks.py: Update.
3547
3548         * gimple-iterator.c (gsi_for_phi): New.
3549         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3550         to gphi_iterator.
3551         * gimple-iterator.h (struct gphi_iterator): New subclass of
3552         gimple_stmt_iterator.
3553         (gsi_for_phi): New prototype.
3554         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3555         to gphi_iterator.
3556         (gsi_next_nonvirtual_phi): Strengthen param from
3557         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
3558         gimple to gphi *.
3559
3560         * gsstruct.def: Update for renamings of classes.
3561
3562         * gimple.c (gimple_build_return): Strengthen return type from
3563         gimple to greturn *.
3564         (gimple_call_reset_alias_info): Strengthen param to gcall *.
3565         (gimple_build_call_1): Strengthen return type from gimple to
3566         gcall *.
3567         (gimple_build_call_vec): Likewise.
3568         (gimple_build_call): Likewise.
3569         (gimple_build_call_valist): Likewise.
3570         (gimple_build_call_internal_1): Likewise.
3571         (gimple_build_call_internal): Likewise.
3572         (gimple_build_call_internal_vec): Likewise.
3573         (gimple_build_call_from_tree): Likewise.
3574         (gimple_build_assign_stat): Strengthen return type from gimple to
3575         gassign *.
3576         (gimple_build_assign_with_ops): Likewise.
3577         (gimple_build_assign_with_ops): Likewise.
3578         (gimple_build_cond): Strengthen return type from gimple to
3579         gcond *.
3580         (gimple_build_cond_from_tree): Likewise.
3581         (gimple_cond_set_condition_from_tree): Require a gcond *.
3582         (gimple_build_label): Strengthen return type from gimple to
3583         glabel *.
3584         (gimple_build_goto): Strengthen return type from gimple to
3585         ggoto *.
3586         (gimple_build_bind): Strengthen return type from gimple to
3587         gbind *.
3588         (gimple_build_asm_1): Strengthen return type from gimple to
3589         gasm *.
3590         (gimple_build_asm_vec): Likewise.
3591         (gimple_build_catch): Strengthen return type from gimple to
3592         gcatch *.
3593         (gimple_build_eh_filter): Strengthen return type from gimple to
3594         geh_filter *.
3595         (gimple_build_eh_must_not_throw): Strengthen return type from
3596         gimple to geh_mnt *.
3597         (gimple_build_eh_else): Strengthen return type from gimple to
3598         geh_else *.
3599         (gimple_build_try): Update for renaming of gimple_statement_try to
3600         gtry.
3601         (gimple_build_resx): Strengthen return type from gimple to
3602         gresx *.
3603         (gimple_build_switch_nlabels): Strengthen return type from gimple
3604         to gswitch *.
3605         (gimple_build_switch): Likewise.
3606         (gimple_build_eh_dispatch): Strengthen return type from gimple to
3607         geh_dispatch *.
3608         (gimple_build_debug_bind_stat): Strengthen return type from gimple
3609         to gdebug *.
3610         (gimple_build_debug_source_bind_stat): Strengthen return type from
3611         gimple to gdebug *.
3612         (gimple_build_omp_critical): Strengthen return type from gimple to
3613         gomp_critical *.
3614         (gimple_build_omp_for): Strengthen return type from gimple to
3615         gomp_for *.
3616         (gimple_build_omp_parallel): Strengthen return type from gimple to
3617         gomp_parallel *.
3618         (gimple_build_omp_task): Strengthen return type from gimple to
3619         gomp_task *.
3620         (gimple_build_omp_continue): Strengthen return type from gimple to
3621         gomp_continue *.
3622         (gimple_build_omp_sections): Strengthen return type from gimple to
3623         gomp_sections *.
3624         (gimple_build_omp_single): Strengthen return type from gimple to
3625         gomp_single *.
3626         (gimple_build_omp_target): Strengthen return type from gimple to
3627         gomp_target *.
3628         (gimple_build_omp_teams): Strengthen return type from gimple to
3629         gomp_teams *.
3630         (gimple_build_omp_atomic_load): Strengthen return type from gimple
3631         to gomp_atomic_load *.
3632         (gimple_build_omp_atomic_store): Strengthen return type from gimple
3633         to gomp_atomic_store *.
3634         (gimple_build_transaction): Strengthen return type from gimple
3635         to gtransaction *.
3636         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
3637         (gimple_call_fnspec): Require a const gcall *.
3638         (gimple_call_arg_flags): Likewise.
3639         (gimple_call_return_flags): Likewise.
3640         (gimple_set_bb): Add a checked cast.
3641         (gimple_copy): Within the cases, add locals of the appropriate
3642         subclass and use in place of "stmt" and "copy" for typesafety.
3643         (gimple_has_side_effects): Add a checked cast.
3644         (gimple_could_trap_p_1): Likewise.
3645         (gimple_call_copy_skip_args): Require a gcall *, and return one.
3646         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3647         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
3648         dyn_cast, introducing local "return_stmt" and using ti in place
3649         of "stmt".
3650
3651         * gimple.h (gimple_vec): Eliminate this typedef.
3652         (struct gimple_statement_call): Rename to...
3653         (struct gcall): ...this.
3654         (struct gimple_statement_bind): Rename to...
3655         (struct gbind): ...this.
3656         (struct gimple_statement_catch): Rename to...
3657         (struct gcatch): ...this.
3658         (struct gimple_statement_eh_filter): Rename to...
3659         (struct geh_filter): ...this.
3660         (struct gimple_statement_eh_else): Rename to...
3661         (struct geh_else): ...this.
3662         (struct gimple_statement_eh_mnt): Rename to...
3663         (struct geh_mnt): ...this.
3664         (struct gimple_statement_phi): Rename to...
3665         (struct gphi): ...this.
3666         (struct gimple_statement_resx): Rename to...
3667         (struct gresx): ...this.
3668         (struct gimple_statement_eh_dispatch): Rename to...
3669         (struct geh_dispatch): ...this.
3670         (struct gimple_statement_try): Rename to...
3671         (struct gtry): ...this.
3672         (struct gimple_statement_asm): Rename to...
3673         (struct gasm): ...this.
3674         (struct gimple_statement_omp_critical): Rename to...
3675         (struct gomp_critical): ...this.
3676         (struct gimple_statement_omp_for): Rename to...
3677         (struct gomp_for): ...this.
3678         (struct gimple_statement_omp_parallel): Rename to...
3679         (struct gomp_parallel): ...this.
3680         (struct gimple_statement_omp_target): Rename to...
3681         (struct gomp_target): ...this.
3682         (struct gimple_statement_omp_task): Rename to...
3683         (struct gomp_task): ...this.
3684         (struct gimple_statement_omp_sections): Rename to...
3685         (struct gomp_sections): ...this.
3686         (struct gimple_statement_omp_continue): Rename to...
3687         (struct gomp_continue): ...this.
3688         (struct gimple_statement_omp_single): Rename to...
3689         (struct gomp_single): ...this.
3690         (struct gimple_statement_omp_teams): Rename to...
3691         (struct gomp_teams): ...this.
3692         (struct gimple_statement_omp_atomic_load): Rename to...
3693         (struct gomp_atomic_load): ...this.
3694         (struct gimple_statement_omp_atomic_store :): Rename to...
3695         (struct gomp_atomic_store :): ...this.
3696         (struct gimple_statement_transaction): Rename to...
3697         (struct gtransaction): ...this.
3698         (struct gcond): New subclass.
3699         (struct gdebug): New subclass.
3700         (struct ggoto): New subclass.
3701         (struct glabel): New subclass.
3702         (struct gswitch): New subclass.
3703         (struct gassign): New subclass.
3704         (struct greturn): New subclass.
3705         (is_a_helper <gimple_statement_asm *>::test): Rename to...
3706         (is_a_helper <gasm *>::test): ...this.
3707         (is_a_helper <gimple_statement_bind *>::test): Rename to...
3708         (is_a_helper <gbind *>::test): ...this.
3709         (is_a_helper <gassign *>::test): New.
3710         (is_a_helper <gimple_statement_call *>::test): Rename to...
3711         (is_a_helper <gcall *>::test): ...this.
3712         (is_a_helper <gimple_statement_catch *>::test): Rename to...
3713         (is_a_helper <gcatch *>::test): ...this.
3714         (is_a_helper <gimple_statement_resx *>::test): Rename to...
3715         (is_a_helper <gresx *>::test): ...this.
3716         (is_a_helper <gcond *>::test): New.
3717         (is_a_helper <gdebug *>::test): New.
3718         (is_a_helper <ggoto *>::test): New.
3719         (is_a_helper <glabel *>::test): New.
3720         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
3721         (is_a_helper <geh_dispatch *>::test): ...this.
3722         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
3723         (is_a_helper <geh_else *>::test): ...this.
3724         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
3725         (is_a_helper <geh_filter *>::test): ...this.
3726         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
3727         (is_a_helper <geh_mnt *>::test): ...this.
3728         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
3729         (is_a_helper <gomp_atomic_load *>::test): ...this.
3730         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
3731         (is_a_helper <gomp_atomic_store *>::test): ...this.
3732         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
3733         (is_a_helper <gomp_continue *>::test): ...this.
3734         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
3735         (is_a_helper <gomp_critical *>::test): ...this.
3736         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
3737         (is_a_helper <gomp_for *>::test): ...this.
3738         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
3739         (is_a_helper <gomp_parallel *>::test): ...this.
3740         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
3741         (is_a_helper <gomp_target *>::test): ...this.
3742         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
3743         (is_a_helper <gomp_sections *>::test): ...this.
3744         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
3745         (is_a_helper <gomp_single *>::test): ...this.
3746         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
3747         (is_a_helper <gomp_teams *>::test): ...this.
3748         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
3749         (is_a_helper <gomp_task *>::test): ...this.
3750         (is_a_helper <gimple_statement_phi *>::test): Rename to...
3751         (is_a_helper <gphi *>::test): ...this.
3752         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
3753         (is_a_helper <gtransaction *>::test): ...this.
3754         (is_a_helper <greturn *>::test): New.
3755         (is_a_helper <gswitch *>::test): New.
3756         (is_a_helper <gimple_statement_try *>::test): Rename to...
3757         (is_a_helper <gtry *>::test): ...this.
3758         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
3759         (is_a_helper <const gasm *>::test): ...this.
3760         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
3761         (is_a_helper <const gbind *>::test): ...this.
3762         (is_a_helper <const gimple_statement_call *>::test): Rename to...
3763         (is_a_helper <const gcall *>::test): ...this.
3764         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
3765         (is_a_helper <const gcatch *>::test): ...this.
3766         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
3767         (is_a_helper <const gresx *>::test): ...this.
3768         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
3769         (is_a_helper <const geh_dispatch *>::test): ...this.
3770         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
3771         (is_a_helper <const geh_filter *>::test): ...this.
3772         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
3773         Rename to...
3774         (is_a_helper <const gomp_atomic_load *>::test): ...this.
3775         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
3776         Rename to...
3777         (is_a_helper <const gomp_atomic_store *>::test): ...this.
3778         (is_a_helper <const gimple_statement_omp_continue *>::test):
3779         Rename to...
3780         (is_a_helper <const gomp_continue *>::test): ...this.
3781         (is_a_helper <const gimple_statement_omp_critical *>::test):
3782         Rename to...
3783         (is_a_helper <const gomp_critical *>::test): ...this.
3784         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
3785         (is_a_helper <const gomp_for *>::test): ...this.
3786         (is_a_helper <const gimple_statement_omp_parallel *>::test):
3787         Rename to...
3788         (is_a_helper <const gomp_parallel *>::test): ...this.
3789         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
3790         (is_a_helper <const gomp_target *>::test): ...this.
3791         (is_a_helper <const gimple_statement_omp_sections *>::test):
3792         Rename to...
3793         (is_a_helper <const gomp_sections *>::test): ...this.
3794         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
3795         (is_a_helper <const gomp_single *>::test): ...this.
3796         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
3797         (is_a_helper <const gomp_teams *>::test): ...this.
3798         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
3799         (is_a_helper <const gomp_task *>::test): ...this.
3800         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
3801         (is_a_helper <const gphi *>::test): ...this.
3802         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
3803         (is_a_helper <const gtransaction *>::test): ...this.
3804         (gimple_build_return): Strengthen return type to greturn *.
3805         (gimple_call_reset_alias_info): Require a gcall *.
3806         (gimple_build_call_vec): Return a gcall *.
3807         (gimple_build_call): Likewise.
3808         (gimple_build_call_valist): Likewise.
3809         (gimple_build_call_internal): Likewise.
3810         (gimple_build_call_internal_vec): Likewise.
3811         (gimple_build_call_from_tree): Likewise.
3812         (gimple_build_assign_stat): Return a gassign *.
3813         (gimple_build_assign_with_ops): Likewise.
3814         (gimple_build_cond): Return a gcond *.
3815         (gimple_build_cond_from_tree): Likewise.
3816         (gimple_cond_set_condition_from_tree): Require a gcond *.
3817         (gimple_build_label): Return a glabel *.
3818         (gimple_build_goto): Return a ggoto *.
3819         (gimple_build_bind): Return a gbind *.
3820         (gimple_build_asm_vec): Return a gasm *.
3821         (gimple_build_catch): Return a gcatch *.
3822         (gimple_build_eh_filter): Return a geh_filter *.
3823         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
3824         (gimple_build_eh_else): Return a geh_else *.
3825         (gimple_build_try): Return a gtry *.
3826         (gimple_build_resx): Return a gresx *.
3827         (gimple_build_switch_nlabels): Return a gswitch *.
3828         (gimple_build_switch): Return a gswitch *.
3829         (gimple_build_eh_dispatch): Return a geh_dispatch *.
3830         (gimple_build_debug_bind_stat): Return a gdebug *.
3831         (gimple_build_debug_source_bind_stat): Return a gdebug *.
3832         (gimple_build_omp_critical): Return a gomp_critical *.
3833         (gimple_build_omp_for): Return a gomp_for *.
3834         (gimple_build_omp_parallel): Return a gomp_parallel *.
3835         (gimple_build_omp_task): Return a gomp_task *.
3836         (gimple_build_omp_continue): Return a gomp_continue *.
3837         (gimple_build_omp_sections): Return a gomp_sections *.
3838         (gimple_build_omp_single): Return a gomp_single *.
3839         (gimple_build_omp_target): Return a gomp_target *.
3840         (gimple_build_omp_teams): Return a gomp_teams *.
3841         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
3842         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
3843         (gimple_build_transaction): Return a gtransaction *.
3844         (gimple_call_arg_flags): Require a const gcall *.
3845         (gimple_call_return_flags): Likewise.
3846         (gimple_call_copy_skip_args): Require and return a gcall *.
3847         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3848         (gimple_seq_first_stmt_as_a_bind): New.
3849         (gimple_assign_nontemporal_move_p): Require a const gassign *
3850         rather than a const_gimple.
3851         (gimple_call_internal_fn): Update for renaming to gcall.
3852         (gimple_call_fntype): Likewise.
3853         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
3854         (gimple_call_set_fn): Likewise.
3855         (gimple_call_set_internal_fn): Likewise.
3856         (gimple_call_set_chain): Likewise.
3857         (gimple_call_set_tail): Likewise.
3858         (gimple_call_tail_p): Likewise.
3859         (gimple_call_set_return_slot_opt): Likewise.
3860         (gimple_call_return_slot_opt_p): Likewise.
3861         (gimple_call_set_from_thunk): Likewise.
3862         (gimple_call_from_thunk_p): Likewise.
3863         (gimple_call_set_va_arg_pack): Likewise.
3864         (gimple_call_va_arg_pack_p): Likewise.
3865         (gimple_call_set_nothrow): Likewise.
3866         (gimple_call_nothrow_p): Likewise.
3867         (gimple_call_set_alloca_for_var): Likewise.
3868         (gimple_call_alloca_for_var_p): Likewise.
3869         (gimple_call_use_set): Likewise.
3870         (gimple_call_clobber_set): Likewise.
3871         (gimple_call_return_type): Require a const gcall * rather than a
3872         const_gimple.
3873         (gimple_call_chain_ptr): Likewise.
3874         (gimple_call_copy_flags): Require a pair of gcall *.
3875         (gimple_cond_set_code): Require a gcond * rather than a gimple
3876         (gimple_cond_set_lhs): Likewise.
3877         (gimple_cond_set_rhs): Likewise.
3878         (gimple_cond_set_true_label): Likewise.
3879         (gimple_cond_set_false_label): Likewise.
3880         (gimple_cond_make_false): Likewise.
3881         (gimple_cond_make_true): Likewise.
3882         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
3883         const_gimple.
3884         (gimple_cond_rhs_ptr): Likewise.
3885         (gimple_cond_true_label): Likewise.
3886         (gimple_cond_false_label): Likewise.
3887         (gimple_cond_true_p): Likewise.
3888         (gimple_cond_false_p): Likewise.
3889         (gimple_cond_set_condition): Likewise.
3890         (gimple_label_label): Require a const glabel *.
3891         (gimple_label_set_label): Require a glabel *.
3892         (gimple_goto_set_dest): Require a ggoto *.
3893         (gimple_bind_vars): Require a const gbind *.
3894         (gimple_bind_block): Likewise.
3895         (gimple_bind_set_vars): Require a gbind *.
3896         (gimple_bind_append_vars): Likewise.
3897         (gimple_bind_body_ptr): Likewise.
3898         (gimple_bind_body): Likewise.
3899         (gimple_bind_set_body): Likewise.
3900         (gimple_bind_add_stmt): Likewise.
3901         (gimple_bind_add_seq): Likewise.
3902         (gimple_bind_set_block): Likewise.
3903         (gimple_asm_ninputs): Require a const gasm *.
3904         (gimple_asm_noutputs): Likewise.
3905         (gimple_asm_nclobbers): Likewise.
3906         (gimple_asm_nlabels): Likewise.
3907         (gimple_asm_input_op): Likewise.
3908         (gimple_asm_input_op_ptr): Likewise.
3909         (gimple_asm_output_op): Likewise.
3910         (gimple_asm_output_op_ptr): Likewise.
3911         (gimple_asm_clobber_op): Likewise.
3912         (gimple_asm_label_op): Likewise.
3913         (gimple_asm_string): Likewise.
3914         (gimple_asm_volatile_p): Likewise.
3915         (gimple_asm_input_p): Likewise.
3916         (gimple_asm_set_input_op): Require a gasm *.
3917         (gimple_asm_set_output_op): Likewise.
3918         (gimple_asm_set_clobber_op): Likewise.
3919         (gimple_asm_set_label_op): Likewise.
3920         (gimple_asm_set_volatile): Likewise.
3921         (gimple_asm_set_input): Likewise.
3922         (gimple_catch_types): Require a const gcatch *.
3923         (gimple_catch_types_ptr): Require a gcatch *.
3924         (gimple_catch_handler_ptr): Likewise.
3925         (gimple_catch_handler): Likewise.
3926         (gimple_catch_set_types): Likewise.
3927         (gimple_catch_set_handler): Likewise.
3928         (gimple_eh_filter_types): Update for renaming of subclass to
3929         geh_filter.
3930         (gimple_eh_filter_types_ptr): Likewise.
3931         (gimple_eh_filter_failure_ptr): Likewise.
3932         (gimple_eh_filter_set_types): Require a geh_filter *.
3933         (gimple_eh_filter_set_failure): Likewise.
3934         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
3935         (gimple_eh_must_not_throw_set_fndecl): Likewise.
3936         (gimple_eh_else_n_body_ptr): Require a geh_else *.
3937         (gimple_eh_else_n_body): Likewise.
3938         (gimple_eh_else_e_body_ptr): Likewise.
3939         (gimple_eh_else_e_body): Likewise.
3940         (gimple_eh_else_set_n_body): Likewise.
3941         (gimple_eh_else_set_e_body): Likewise.
3942         (gimple_try_set_kind): Require a gtry *.
3943         (gimple_try_set_catch_is_cleanup): Likewise.
3944         (gimple_try_set_eval): Likewise.
3945         (gimple_try_set_cleanup): Likewise.
3946         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
3947         (gimple_try_cleanup_ptr): Likewise.
3948         (gimple_phi_capacity): Update for renaming of subclass to gphi.
3949         (gimple_phi_num_args): Likewise.
3950         (gimple_phi_result): Likewise.
3951         (gimple_phi_result_ptr): Likewise.
3952         (gimple_phi_arg): Likewise.
3953         (gimple_phi_set_result): Require a gphi *.
3954         (gimple_phi_set_arg): Likewise.
3955         (gimple_phi_arg_def_ptr): Likewise.
3956         (gimple_phi_arg_edge): Likewise.
3957         (gimple_phi_arg_location): Likewise.
3958         (gimple_phi_arg_location_from_edge): Likewise.
3959         (gimple_phi_arg_set_location): Likewise.
3960         (gimple_phi_arg_has_location): Likewise.
3961         (gimple_resx_region): Require a const gresx *.
3962         (gimple_resx_set_region): Require a gresx *.
3963         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
3964         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
3965         (gimple_switch_num_labels): Require a const gswitch *.
3966         (gimple_switch_set_num_labels): Likewise.
3967         (gimple_switch_index): Likewise.
3968         (gimple_switch_index_ptr): Likewise.
3969         (gimple_switch_label): Likewise.
3970         (gimple_switch_default_label): Likewise.
3971         (gimple_switch_set_index): Require a gswitch *.
3972         (gimple_switch_set_label): Likewise.
3973         (gimple_switch_set_default_label): Likewise.
3974         (gimple_omp_critical_name): Require a const gomp_critical *.
3975         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
3976         (gimple_omp_critical_set_name): Likewise.
3977         (gimple_omp_for_set_kind): Require a gomp_for *.
3978         (gimple_omp_for_set_combined_p): Likewise.
3979         (gimple_omp_for_set_combined_into_p): Likewise.
3980         (gimple_omp_for_clauses): Update for renaming of subclass to
3981         gomp_for.
3982         (gimple_omp_for_clauses_ptr): Likewise.
3983         (gimple_omp_for_set_clauses): Likewise.
3984         (gimple_omp_for_collapse): Likewise.
3985         (gimple_omp_for_index): Likewise.
3986         (gimple_omp_for_index_ptr): Likewise.
3987         (gimple_omp_for_set_index): Likewise.
3988         (gimple_omp_for_initial): Likewise.
3989         (gimple_omp_for_initial_ptr): Likewise.
3990         (gimple_omp_for_set_initial): Likewise.
3991         (gimple_omp_for_final): Likewise.
3992         (gimple_omp_for_final_ptr): Likewise.
3993         (gimple_omp_for_set_final): Likewise.
3994         (gimple_omp_for_incr): Likewise.
3995         (gimple_omp_for_incr_ptr): Likewise.
3996         (gimple_omp_for_set_incr): Likewise.
3997         (gimple_omp_for_pre_body): Likewise.
3998         (gimple_omp_for_set_pre_body): Likewise.
3999         (gimple_omp_parallel_clauses): Update for renaming of subclass to
4000         gomp_parallel.
4001         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
4002         (gimple_omp_parallel_set_clauses): Likewise.
4003         (gimple_omp_parallel_child_fn_ptr): Likewise.
4004         (gimple_omp_parallel_set_child_fn): Likewise.
4005         (gimple_omp_parallel_data_arg_ptr): Likewise.
4006         (gimple_omp_parallel_set_data_arg): Likewise.
4007         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
4008         (gimple_omp_parallel_data_arg): Likewise.
4009         (gimple_omp_task_clauses): Update for renaming of subclass to
4010         gomp_task.
4011         (gimple_omp_task_clauses_ptr): Likewise.
4012         (gimple_omp_task_set_clauses): Likewise.
4013         (gimple_omp_task_child_fn): Likewise.
4014         (gimple_omp_task_child_fn_ptr): Likewise.
4015         (gimple_omp_task_set_child_fn): Likewise.
4016         (gimple_omp_task_data_arg): Likewise.
4017         (gimple_omp_task_data_arg_ptr): Likewise.
4018         (gimple_omp_task_set_data_arg): Likewise.
4019         (gimple_omp_taskreg_clauses): Whitespace fixes.
4020         (gimple_omp_taskreg_clauses_ptr): Likewise.
4021         (gimple_omp_taskreg_set_clauses): Likewise.
4022         (gimple_omp_taskreg_child_fn): Likewise.
4023         (gimple_omp_taskreg_child_fn_ptr): Likewise.
4024         (gimple_omp_taskreg_set_child_fn): Likewise.
4025         (gimple_omp_taskreg_data_arg): Likewise.
4026         (gimple_omp_taskreg_data_arg_ptr): Likewise.
4027         (gimple_omp_taskreg_set_data_arg): Likewise.
4028         (gimple_omp_task_copy_fn): Update for renaming of subclass to
4029         gomp_task.
4030         (gimple_omp_task_copy_fn_ptr): Likewise.
4031         (gimple_omp_task_set_copy_fn): Likewise.
4032         (gimple_omp_task_arg_size): Likewise.
4033         (gimple_omp_task_arg_size_ptr): Likewise.
4034         (gimple_omp_task_set_arg_size): Likewise.
4035         (gimple_omp_task_arg_align): Likewise.
4036         (gimple_omp_task_arg_align_ptr): Likewise.
4037         (gimple_omp_task_set_arg_align): Likewise.
4038         (gimple_omp_single_clauses): Update for renaming of subclass to
4039         gomp_single.
4040         (gimple_omp_single_clauses_ptr): Likewise.
4041         (gimple_omp_single_set_clauses): Likewise.
4042         (gimple_omp_target_clauses): Update for renaming of subclass to
4043         gomp_target.
4044         (gimple_omp_target_clauses_ptr): Likewise.
4045         (gimple_omp_target_set_clauses): Require a gomp_target *.
4046         (gimple_omp_target_set_kind): Likewise.
4047         (gimple_omp_target_child_fn_ptr): Likewise.
4048         (gimple_omp_target_set_child_fn): Likewise.
4049         (gimple_omp_target_data_arg_ptr): Likewise.
4050         (gimple_omp_target_set_data_arg): Likewise.
4051         (gimple_omp_target_child_fn): Require a const gomp_target *.
4052         (gimple_omp_target_data_arg): Likewise.
4053         (gimple_omp_teams_clauses): Update for renaming of subclass to
4054         gomp_teams.
4055         (gimple_omp_teams_clauses_ptr): Likewise.
4056         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
4057         (gimple_omp_sections_clauses): Update for renaming of subclass to
4058         gomp_sections.
4059         (gimple_omp_sections_clauses_ptr): Likewise.
4060         (gimple_omp_sections_set_clauses): Likewise.
4061         (gimple_omp_sections_control): Likewise.
4062         (gimple_omp_sections_control_ptr): Likewise.
4063         (gimple_omp_sections_set_control): Likewise.
4064         (gimple_omp_for_set_cond): Likewise.
4065         (gimple_omp_for_cond): Likewise.
4066         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
4067         (gimple_omp_atomic_store_val_ptr): Likewise.
4068         (gimple_omp_atomic_load_set_lhs): Likewise.
4069         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
4070         (gimple_omp_atomic_load_lhs): Likewise.
4071         (gimple_omp_atomic_load_rhs): Likewise.
4072         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
4073         (gimple_omp_atomic_load_set_rhs): Likewise.
4074         (gimple_omp_atomic_load_rhs_ptr): Likewise.
4075         (gimple_omp_continue_control_def): Require a const gomp_continue *.
4076         (gimple_omp_continue_control_use): Likewise.
4077         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
4078         (gimple_omp_continue_set_control_def): Likewise.
4079         (gimple_omp_continue_control_use_ptr): Likewise.
4080         (gimple_omp_continue_set_control_use): Likewise.
4081         (gimple_transaction_body_ptr): Require a gtransaction *.
4082         (gimple_transaction_body): Likewise.
4083         (gimple_transaction_label_ptr): Likewise.
4084         (gimple_transaction_label): Require a const gtransaction *.
4085         (gimple_transaction_subcode): Likewise.
4086         (gimple_transaction_set_body): Require a gtransaction *.
4087         (gimple_transaction_set_label): Likewise.
4088         (gimple_transaction_set_subcode): Likewise.
4089         (gimple_return_retval_ptr): Require a const greturn *.
4090         (gimple_return_retval): Likewise.
4091         (gimple_return_set_retval): Require a greturn *.
4092         (gimple_expr_type): Introduce local "call_stmt" and use in place of
4093         "stmt" for typesafety.
4094
4095         * asan.c: Use gimple subclasses.
4096         * auto-profile.c: Likewise.
4097         * builtins.c: Likewise.
4098         * builtins.h: Likewise.
4099         * cfgexpand.c: Likewise.
4100         * cfgloop.c: Likewise.
4101         * cfgloopmanip.c: Likewise.
4102         * cgraph.c: Likewise.
4103         * cgraph.h: Likewise.
4104         * cgraphbuild.c: Likewise.
4105         * cgraphclones.c: Likewise.
4106         * cgraphunit.c: Likewise.
4107         * expr.h: Likewise.
4108         * gimple-builder.c: Likewise.
4109         * gimple-builder.h: Likewise.
4110         * gimple-fold.c: Likewise.
4111         * gimple-low.c: Likewise.
4112         * gimple-pretty-print.c: Likewise.
4113         * gimple-ssa-isolate-paths.c: Likewise.
4114         * gimple-ssa-strength-reduction.c: Likewise.
4115         * gimple-streamer-in.c: Likewise.
4116         * gimple-streamer-out.c: Likewise.
4117         * gimple-walk.c: Likewise.
4118         * gimplify-me.c: Likewise.
4119         * gimplify.c: Likewise.
4120         * gimplify.h: Likewise.
4121         * graphite-scop-detection.c: Likewise.
4122         * graphite-sese-to-poly.c: Likewise.
4123         * internal-fn.c: Likewise.
4124         * internal-fn.def:: Likewise.
4125         * internal-fn.h: Likewise.
4126         * ipa-icf-gimple.c: Likewise.
4127         * ipa-icf-gimple.h: Likewise.
4128         * ipa-icf.c: Likewise.
4129         * ipa-inline-analysis.c: Likewise.
4130         * ipa-prop.c: Likewise.
4131         * ipa-prop.h: Likewise.
4132         * ipa-pure-const.c: Likewise.
4133         * ipa-split.c: Likewise.
4134         * lto-streamer-in.c: Likewise.
4135         * lto-streamer-out.c: Likewise.
4136         * omp-low.c: Likewise.
4137         * predict.c: Likewise.
4138         * sanopt.c: Likewise.
4139         * sese.c: Likewise.
4140         * ssa-iterators.h: Likewise.
4141         * stmt.c: Likewise.
4142         * trans-mem.c: Likewise.
4143         * tree-call-cdce.c: Likewise.
4144         * tree-cfg.c: Likewise.
4145         * tree-cfg.h: Likewise.
4146         * tree-cfgcleanup.c: Likewise.
4147         * tree-chkp.c: Likewise.
4148         * tree-chkp.h: Likewise.
4149         * tree-complex.c: Likewise.
4150         * tree-data-ref.c: Likewise.
4151         * tree-dfa.c: Likewise.
4152         * tree-eh.c: Likewise.
4153         * tree-eh.h: Likewise.
4154         * tree-emutls.c: Likewise.
4155         * tree-if-conv.c: Likewise.
4156         * tree-inline.c: Likewise.
4157         * tree-inline.h: Likewise.
4158         * tree-into-ssa.c: Likewise.
4159         * tree-into-ssa.h: Likewise.
4160         * tree-loop-distribution.c: Likewise.
4161         * tree-nrv.c: Likewise.
4162         * tree-object-size.c: Likewise.
4163         * tree-outof-ssa.c: Likewise.
4164         * tree-parloops.c: Likewise.
4165         * tree-phinodes.c: Likewise.
4166         * tree-phinodes.h: Likewise.
4167         * tree-predcom.c: Likewise.
4168         * tree-profile.c: Likewise.
4169         * tree-scalar-evolution.c: Likewise.
4170         * tree-scalar-evolution.h
4171         * tree-sra.cn_function):
4172         * tree-ssa-alias.c: Likewise.
4173         * tree-ssa-alias.h: Likewise.
4174         * tree-ssa-ccp.c: Likewise.
4175         * tree-ssa-coalesce.c: Likewise.
4176         * tree-ssa-copy.c: Likewise.
4177         * tree-ssa-copyrename.c: Likewise.
4178         * tree-ssa-dce.c: Likewise.
4179         * tree-ssa-dom.c: Likewise.
4180         * tree-ssa-forwprop.c: Likewise.
4181         * tree-ssa-ifcombine.c: Likewise.
4182         * tree-ssa-live.c: Likewise.
4183         * tree-ssa-loop-im.c: Likewise.
4184         * tree-ssa-loop-ivcanon.c: Likewise.
4185         * tree-ssa-loop-ivopts.c: Likewise.
4186         * tree-ssa-loop-manip.c: Likewise.
4187         * tree-ssa-loop-niter.c: Likewise.
4188         * tree-ssa-loop-prefetch.c: Likewise.
4189         * tree-ssa-loop-unswitch.c: Likewise.
4190         * tree-ssa-math-opts.c: Likewise.
4191         * tree-ssa-operands.c: Likewise.
4192         * tree-ssa-phiopt.c: Likewise.
4193         * tree-ssa-phiprop.c: Likewise.
4194         * tree-ssa-pre.c: Likewise.
4195         * tree-ssa-propagate.c: Likewise.
4196         * tree-ssa-propagate.h: Likewise.
4197         * tree-ssa-reassoc.c: Likewise.
4198         * tree-ssa-sccvn.c: Likewise.
4199         * tree-ssa-sccvn.h: Likewise.
4200         * tree-ssa-sink.c: Likewise.
4201         * tree-ssa-strlen.c
4202         * tree-ssa-structalias.c
4203         * tree-ssa-tail-merge.c: Likewise.
4204         * tree-ssa-ter.c: Likewise.
4205         * tree-ssa-threadedge.c: Likewise.
4206         * tree-ssa-threadedge.h: Likewise.
4207         * tree-ssa-threadupdate.c: Likewise.
4208         * tree-ssa-uncprop.c: Likewise.
4209         * tree-ssa-uninit.c: Likewise.
4210         * tree-ssa.c: Likewise.
4211         * tree-stdarg.c: Likewise.
4212         * tree-switch-conversion.c: Likewise.
4213         * tree-tailcall.c: Likewise.
4214         * tree-vect-data-refs.c: Likewise.
4215         * tree-vect-generic.c: Likewise.
4216         * tree-vect-loop-manip.c: Likewise.
4217         * tree-vect-loop.c: Likewise.
4218         * tree-vect-patterns.c: Likewise.
4219         * tree-vect-slp.c: Likewise.
4220         * tree-vect-stmts.c: Likewise.
4221         * tree-vectorizer.h: Likewise.
4222         * tree-vrp.c: Likewise.
4223         * tree.c: Likewise.
4224         * ubsan.c: Likewise.
4225         * value-prof.c: Likewise.
4226         * value-prof.h: Likewise.
4227         * vtable-verify.c: Likewise.
4228
4229 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4230
4231         * config/rs6000/constraints.md: Avoid signed integer overflows.
4232         * config/rs6000/predicates.md: Likewise.
4233
4234 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4235
4236         PR target/63424
4237         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
4238
4239 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4240
4241         PR middle-end/63762
4242         * ira.c (ira): Update preferred class.
4243
4244 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4245
4246         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
4247         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4248         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
4249         inline overload to use it.  Add unary arg overload.
4250         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
4251         (gimple_assign_set_rhs_from_tree): Use
4252         gimple_assign_set_rhs_with_ops instead of
4253         gimple_assign_set_rhs_with_ops_1.
4254         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4255         (gimple_assign_set_rhs_with_ops): ... this.
4256         * ipa-split.c (split_function): Remove last NULL argument
4257         from gimple_build_assign_with_ops call.
4258         * tree-ssa-loop-im.c
4259         (move_computations_dom_walker::before_dom_children): Likewise.
4260         * tsan.c (instrument_builtin_call): Likewise.
4261         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4262         vectorizable_conversion, vectorizable_load): Likewise.
4263         * tree-vect-loop.c (vect_is_simple_reduction_1,
4264         get_initial_def_for_induction): Likewise.
4265         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4266         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4267         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4268         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4269         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4270         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4271         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4272         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4273         neg_replacement): Likewise.
4274         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4275         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4276         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4277         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4278         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4279         simd_clone_adjust): Likewise.
4280         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4281         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4282         replace_one_candidate): Likewise.
4283         * gimple-builder.c (build_type_cast): Likewise.
4284         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4285         (forward_propagate_addr_expr_1): Remove last NULL argument
4286         from gimple_assign_set_rhs_with_ops call.
4287         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4288         instead of gimple_assign_set_rhs_with_ops_1.
4289         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4290         argument from gimple_build_assign_with_ops call.
4291         (repropagate_negates): Remove last NULL argument from
4292         gimple_assign_set_rhs_with_ops call.
4293         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4294         last NULL argument from gimple_build_assign_with_ops call.
4295         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
4296         from gimple_assign_set_rhs_with_ops call.
4297         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4298         Remove last NULL argument from gimple_build_assign_with_ops call.
4299         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
4300         of gimple_assign_set_rhs_with_ops_1.
4301         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4302         instead of gimple_assign_set_rhs_with_ops_1.
4303         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4304         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4305         from gimple_build_assign_with_ops call.
4306         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4307         from gimple_assign_set_rhs_with_ops call.
4308         * tree-vrp.c (simplify_truth_ops_using_ranges,
4309         simplify_bit_ops_using_ranges): Remove last NULL argument from
4310         gimple_assign_set_rhs_with_ops call.
4311         (simplify_float_conversion_using_ranges,
4312         simplify_internal_call_using_ranges): Remove last NULL argument from
4313         gimple_build_assign_with_ops call.
4314
4315 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
4316
4317         PR target/61915
4318         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4319         cost.
4320
4321 2014-11-19  Marek Polacek  <polacek@redhat.com>
4322
4323         PR sanitizer/63690
4324         * ubsan.c (instrument_object_size): Check for MEM_REF.
4325
4326 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
4327
4328         PR regression/63868
4329         * cgraph.c (cgraph_node::create): Guard g->have_offload with
4330         ifdef ENABLE_OFFLOADING.
4331         * omp-low.c (create_omp_child_function): Likewise.
4332         (expand_omp_target): Guard node->mark_force_output and offload_funcs
4333         with ifdef ENABLE_OFFLOADING.
4334         * varpool.c (varpool_node::get_create): Guard g->have_offload and
4335         offload_vars with ifdef ENABLE_OFFLOADING.
4336
4337 2014-11-19  Felix Yang  <felix.yang@huawei.com>
4338             Shanyao Chen  <chenshanyao@huawei.com>
4339
4340         PR target/59593
4341         * config/arm/arm.md (define_attr "arch"): Add v6t2.
4342         (define_attr "arch_enabled"): Add test for the above.
4343         (*movhi_insn_arch4): Add new alternative.
4344
4345 2014-11-19  Richard Henderson  <rth@redhat.com>
4346
4347         * c-family/c-common.c (c_common_reswords): Add
4348         __builtin_call_with_static_chain.
4349         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
4350         * c/c-parser.c (c_parser_postfix_expression): Handle it.
4351         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
4352
4353         * calls.c (prepare_call_address): Allow decl or type for first arg.
4354         (expand_call): Pass type to prepare_call_address if no decl.
4355         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
4356         the function doesn't use it; fold it otherwise.
4357         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
4358         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
4359         function calls.
4360
4361         * targhooks.c (default_static_chain): Remove check for
4362         DECL_STATIC_CHAIN.
4363         * config/moxie/moxie.c (moxie_static_chain): Likewise.
4364         * config/i386/i386.c (ix86_static_chain): Allow decl or type
4365         as the first argument.
4366         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
4367         of the unused first parameter.
4368         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
4369         may be a type.
4370         * target.def (static_chain): Likewise.
4371
4372 2014-11-19  Renlin Li  <renlin.li@arm.com>
4373
4374     * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
4375         __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
4376
4377 2014-11-19  Marek Polacek  <polacek@redhat.com>
4378
4379         PR sanitizer/63879
4380         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
4381         !TYPE_OVERFLOW_SANITIZED.
4382         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
4383         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
4384         is 0.
4385
4386 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
4387
4388         * collect2.c (main): Don't call fatal_error before
4389         diagnostic_initialize.
4390         * lto-wrapper.c (main): Likewise.
4391
4392 2014-11-19  Tom de Vries  <tom@codesourcery.com>
4393
4394         PR tree-optimization/62167
4395         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
4396         conservatively.
4397         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
4398         assigns.
4399
4400 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4401
4402         PR tree-optimization/63915
4403         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
4404         true instead of false as last argument to gsi_replace.
4405
4406         PR sanitizer/63520
4407         * internal-fn.c (expand_ubsan_result_store): New function.
4408         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
4409         Use it instead of just emit_move_insn.
4410
4411 2014-11-19  Richard Biener  <rguenther@suse.de>
4412
4413         PR tree-optimization/63844
4414         * omp-low.c (fixup_child_record_type): Use a restrict qualified
4415         referece type for the receiver parameter.
4416
4417 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4418
4419         PR sanitizer/63913
4420         * ubsan.c: Include tree-eh.h.
4421         (instrument_bool_enum_load): Handle loads that can throw.
4422
4423         PR rtl-optimization/63843
4424         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
4425         optimization of ashiftrt of subreg of lshiftrt, check that code
4426         is ASHIFTRT.
4427
4428 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
4429
4430         * attribs.c (decl_attributes): Remove always true condition,
4431         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
4432
4433 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4434
4435         PR target/63937
4436         * target.def (use_by_pieces_infrastructure_p): Take unsigned
4437         HOST_WIDE_INT as the size parameter.
4438         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
4439         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
4440         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
4441         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
4442         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
4443         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
4444         * config/aarch64/aarch64.c
4445         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
4446         * doc/tm.texi: Regenerate.
4447
4448 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
4449
4450         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
4451         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
4452         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
4453         (good_cloning_opportunity_p): Likewise.
4454         (ipa-cp gate): Enable ipa-cp with LTO.
4455         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
4456         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
4457         inheritance.
4458         * ipa-inline-transform.c (inline_transform): Check if there are inlines
4459         to apply even at -O0.
4460         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
4461         (analyze_functions): Build type inheritance graph.
4462         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
4463         (want_early_inline_function_p, want_inline_small_function_p):
4464         Likewise.
4465         (check_callers): Likewise.
4466         (edge_badness): Likewise.
4467         (inline_small_functions): Always be ready for indirect inlining
4468         to happend.
4469         (ipa_inline): Always use want_inline_function_to_all_callers_p.
4470         (early_inline_small_functions): Use opt_for_fn.
4471         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
4472         (estimate_function_body_sizes): Likewise.
4473         (compute_inline_parameters): Likewise.
4474         (estimate_edge_devirt_benefit): Likewise.
4475         (inline_analyze_function): Likewise.
4476         * ipa-devirt.c (ipa_devirt): Likewise.
4477         (gate): Use in_lto_p.
4478         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
4479         (try_make_edge_direct_virtual_call): Likewise.
4480         (update_indirect_edges_after_inlining): Likewise.
4481         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
4482         * common.opt (findirect-inlining): Turn into optimization.
4483         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
4484         (pure_const_generate_summary): Likewise.
4485         (gate_pure_const): Always enable with in_lto_p.
4486
4487 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4488
4489         * config/mips/mips.md (compression): Add `micromips32' setting.
4490         (enabled, length): Handle it.
4491         (shift_compression): Replace `micromips' with `micromips32' in
4492         the `compression' attribute.
4493         (*add<mode>3, sub<mode>3): Likewise.
4494
4495 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4496
4497         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
4498         range, a jump otherwise.
4499
4500 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4501
4502         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
4503         Split into...
4504         (cortex_a15_gp_to_vfp): ...This.
4505         (cortex_a15_fp_to_gp): ...And this.
4506         Define and comment bypass from vfp operations to fp->gp moves.
4507
4508 2014-11-18  Martin Liska  <mliska@suse.cz>
4509
4510         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
4511
4512 2014-11-18  Martin Liska  <mliska@suse.cz>
4513
4514         * bt-load.c (add_btr_def): New fibonacci_heap is used.
4515         (migrate_btr_defs): Likewise.
4516
4517 2014-11-18  Martin Liska  <mliska@suse.cz>
4518
4519         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
4520
4521 2014-11-18  Martin Liska  <mliska@suse.cz>
4522
4523         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
4524         (find_traces): Likewise.
4525         (find_traces_1_round): Likewise.
4526
4527 2014-11-18  Martin Liska  <mliska@suse.cz>
4528
4529         * fibonacci_heap.h: New file.
4530         (fibonacci_heap::insert): Created from fibheap_insert.
4531         (fibonacci_heap::empty): Created from fibheap_empty.
4532         (fibonacci_heap::nodes): Created from fibheap_nodes.
4533         (fibonacci_heap::min_key): Created from fibheap_min_key.
4534         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
4535         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
4536         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
4537         (fibonacci_heap::min): Created from fibheap_min.
4538         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
4539         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
4540         (fibonacci_heap::union_with): Created from fibheap_union.
4541         * ipa-inline.c (update_edge_key): New heap API is used.
4542         (update_caller_keys): Likewise.
4543         (update_callee_keys): Likewise.
4544         (lookup_recursive_calls): Likewise.
4545         (recursive_inlining): Likewise.
4546         (add_new_edges_to_heap): Likewise.
4547         (heap_edge_removal_hook): Likewise.
4548         (inline_small_functions): Likewise.
4549
4550 2014-11-18  Marek Polacek  <polacek@redhat.com>
4551
4552         PR sanitizer/63866
4553         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
4554         put it into TYPE_NAME and TYPE_STUB_DECL.
4555         * ubsan.c (ubsan_type_descriptor_type): New variable.
4556         Function renamed to ...
4557         (ubsan_get_type_descriptor_type): ... this.  Cache
4558         return value in ubsan_type_descriptor_type variable.
4559         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
4560         TYPE_NAME and TYPE_STUB_DECL.
4561         (ubsan_get_source_location_type): Create a TYPE_DECL for
4562         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
4563         (ubsan_type_descriptor, ubsan_create_data): Call
4564         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
4565         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
4566
4567 2014-11-18  Felix Yang  <felix.yang@huawei.com>
4568
4569         * config/aarch64/aarch64.c (doloop_end): New pattern.
4570         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
4571
4572 2014-11-18  Jason Merrill  <jason@redhat.com>
4573
4574         * tree.c (warn_deprecated_use): Show declaration with inform.
4575
4576 2014-11-18  Richard Biener  <rguenther@suse.de>
4577
4578         PR tree-optimization/63914
4579         * tree-ssa-ccp.c (canonicalize_value): Remove float value
4580         canonicalization.
4581         (valid_lattice_transition): Allow (partial) transition
4582         from NaN to non-NaN if !HONOR_NANS.
4583         (set_lattice_value): Check for valid lattice transitions
4584         only when checking is enabled.
4585
4586 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
4587
4588         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
4589
4590 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
4591
4592         * config/arm/neon-testgen.ml (emit_prologue): Handle new
4593         compile_test_optim argument.
4594         (emit_automatics): Rename to emit_variables. Support variable
4595         indentation of its output.
4596         (compile_test_optim): New function.
4597         (test_intrinsic): Call compile_test_optim.
4598         * config/arm/neon.ml (features): Add Compiler_optim.
4599         (ops): Add Compiler_optim feature to Vbic and Vorn.
4600         (type_in_crypto_only): Replace 'or' by '||'.
4601         (reinterp): Likewise.
4602         (reinterpq): Likewise.
4603
4604 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
4605
4606         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
4607         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
4608         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
4609         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
4610         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
4611         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
4612         pointer dereference.
4613
4614 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
4615
4616         * tree.c (element_mode, integer_truep): New functions.
4617         * tree.h (element_mode, integer_truep): Declare them.
4618         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
4619         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
4620         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
4621         fold_strip_sign_ops): Use element_mode.
4622         (fold_binary_loc): Use element_mode and element_precision.
4623         * match.pd: Use integer_truep, element_mode, element_precision,
4624         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
4625         vectors. Simplify A/-A.
4626
4627 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4628
4629         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
4630         manual swapping implementation.
4631         (movcond_addsi): Likewise.
4632         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
4633         (arm_select_dominance_cc_mode): Likewise.
4634         (arm_reload_out_hi): Likewise.
4635         (gen_operands_ldrd_strd): Likewise.
4636         (output_move_double): Likewise.
4637         (arm_print_operand_address): Likewise.
4638         (thumb_output_move_mem_multiple): Likewise.
4639         (SWAP_RTX): Delete.
4640
4641 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4642
4643         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
4644         (COPYSIGNF_QUALIFIERS): Likewise.
4645         (CREATE_QUALIFIERS): Likewise.
4646         (DUP_QUALIFIERS): Likewise.
4647         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4648         (FLOAT_NARROW_QUALIFIERS): Likewise.
4649         (REINTERP_QUALIFIERS): Likewise.
4650         (RINT_QUALIFIERS): Likewise.
4651         (SPLIT_QUALIFIERS): Likewise.
4652         (FIXCONV_QUALIFIERS): Likewise.
4653         (SCALARMUL_QUALIFIERS): Likewise.
4654         (SCALARMULL_QUALIFIERS): Likewise.
4655         (SCALARMULH_QUALIFIERS): Likewise.
4656         (SELECT_QUALIFIERS): Likewise.
4657         (VTBX_QUALIFIERS): Likewise.
4658         (SHIFTIMM_QUALIFIERS): Likewise.
4659         (SCALARMAC_QUALIFIERS): Likewise.
4660         (LANEMUL_QUALIFIERS): Likewise.
4661         (LANEMULH_QUALIFIERS): Likewise.
4662         (LANEMULL_QUALIFIERS): Likewise.
4663         (SHIFTACC_QUALIFIERS): Likewise.
4664         (SHIFTINSERT_QUALIFIERS): Likewise.
4665         (VTBL_QUALIFIERS): Likewise.
4666         (LOADSTRUCT_QUALIFIERS): Likewise.
4667         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4668         (STORESTRUCT_QUALIFIERS): Likewise.
4669         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4670         (neon_builtin_type_mode): Delete.
4671         (v8qi_UP): Map to V8QImode.
4672         (v8qi_UP): Map to V8QImode.
4673         (v4hi_UP): Map to V4HImode.
4674         (v4hf_UP): Map to V4HFmode.
4675         (v2si_UP): Map to V2SImode.
4676         (v2sf_UP): Map to V2SFmode.
4677         (di_UP): Map to DImode.
4678         (v16qi_UP): Map to V16QImode.
4679         (v8hi_UP): Map to V8HImode.
4680         (v4si_UP): Map to V4SImode.
4681         (v4sf_UP): Map to V4SFmode.
4682         (v2di_UP): Map to V2DImode.
4683         (ti_UP): Map to TImode.
4684         (ei_UP): Map to EImode.
4685         (oi_UP): Map to OImode.
4686         (neon_itype): Delete.
4687         (neon_builtin_datum): Remove itype, make mode a machine_mode.
4688         (VAR1): Update accordingly.
4689         (arm_init_neon_builtins): Use machine_mode directly.
4690         (neon_dereference_pointer): Likewise.
4691         (arm_expand_neon_args): Use qualifiers to decide operand types.
4692         (arm_expand_neon_builtin): Likewise.
4693         * config/arm/arm_neon_builtins.def: Remap operation type for
4694         many builtins.
4695
4696 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4697
4698         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
4699         (enum arm_simd_type): Likewise.
4700         (struct arm_simd_type_info): Likewise
4701         (arm_mangle_builtin_scalar_type): Likewise.
4702         (arm_mangle_builtin_vector_type): Likewise.
4703         (arm_mangle_builtin_type): Likewise.
4704         (arm_simd_builtin_std_type): Likewise.
4705         (arm_lookup_simd_builtin_type): Likewise.
4706         (arm_simd_builtin_type): Likewise.
4707         (arm_init_simd_builtin_types): Likewise.
4708         (arm_init_simd_builtin_scalar_types): Likewise.
4709         (arm_init_neon_builtins): Rewrite using qualifiers.
4710         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
4711         * config/arm/arm-simd-builtin-types.def: New file.
4712         * config/arm/t-arm (arm-builtins.o): Depend on it.
4713         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
4714         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
4715         (int16x4_t): Likewise.
4716         (int32x2_t): Likewise.
4717         (float16x4_t): Likewise.
4718         (float32x2_t): Likewise.
4719         (poly8x8_t): Likewise.
4720         (poly16x4_t): Likewise.
4721         (uint8x8_t): Likewise.
4722         (uint16x4_t): Likewise.
4723         (uint32x2_t): Likewise.
4724         (int8x16_t): Likewise.
4725         (int16x8_t): Likewise.
4726         (int32x4_t): Likewise.
4727         (int64x2_t): Likewise.
4728         (float32x4_t): Likewise.
4729         (poly8x16_t): Likewise.
4730         (poly16x8_t): Likewise.
4731         (uint8x16_t): Likewise.
4732         (uint16x8_t): Likewise.
4733         (uint32x4_t): Likewise.
4734         (uint64x2_t): Likewise.
4735
4736 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4737
4738         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
4739         (neon_itype): Add new types corresponding to the types used in
4740         qualifiers names.
4741         (arm_unop_qualifiers): New.
4742         (arm_bswap_qualifiers): Likewise.
4743         (arm_binop_qualifiers): Likewise.
4744         (arm_ternop_qualifiers): Likewise.
4745         (arm_getlane_qualifiers): Likewise.
4746         (arm_lanemac_qualifiers): Likewise.
4747         (arm_setlane_qualifiers): Likewise.
4748         (arm_combine_qualifiers): Likewise.
4749         (arm_load1_qualifiers): Likewise.
4750         (arm_load1_lane_qualifiers): Likewise.
4751         (arm_store1_qualifiers): Likewise.
4752         (arm_storestruct_lane_qualifiers): Likewise.
4753         (UNOP_QUALIFIERS): Likewise.
4754         (DUP_QUALIFIERS): Likewise.
4755         (SPLIT_QUALIFIERS): Likewise.
4756         (CONVERT_QUALIFIERS): Likewise.
4757         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4758         (FLOAT_NARROW_QUALIFIERS): Likewise.
4759         (RINT_QUALIFIERS): Likewise.
4760         (COPYSIGNF_QUALIFIERS): Likewise.
4761         (CREATE_QUALIFIERS): Likewise.
4762         (REINTERP_QUALIFIERS): Likewise.
4763         (BSWAP_QUALIFIERS): Likewise.
4764         (BINOP_QUALIFIERS): Likewise.
4765         (FIXCONV_QUALIFIERS): Likewise.
4766         (SCALARMUL_QUALIFIERS): Likewise.
4767         (SCALARMULL_QUALIFIERS): Likewise.
4768         (SCALARMULH_QUALIFIERS): Likewise.
4769         (TERNOP_QUALIFIERS): Likewise.
4770         (SELECT_QUALIFIERS): Likewise.
4771         (VTBX_QUALIFIERS): Likewise.
4772         (GETLANE_QUALIFIERS): Likewise.
4773         (SHIFTIMM_QUALIFIERS): Likewise.
4774         (LANEMAC_QUALIFIERS): Likewise.
4775         (SCALARMAC_QUALIFIERS): Likewise.
4776         (SETLANE_QUALIFIERS): Likewise.
4777         (SHIFTINSERT_QUALIFIERS): Likewise.
4778         (SHIFTACC_QUALIFIERS): Likewise.
4779         (LANEMUL_QUALIFIERS): Likewise.
4780         (LANEMULL_QUALIFIERS): Likewise.
4781         (LANEMULH_QUALIFIERS): Likewise.
4782         (COMBINE_QUALIFIERS): Likewise.
4783         (VTBL_QUALIFIERS): Likewise.
4784         (LOAD1_QUALIFIERS): Likewise.
4785         (LOADSTRUCT_QUALIFIERS): Likewise.
4786         (LOAD1LANE_QUALIFIERS): Likewise.
4787         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4788         (STORE1_QUALIFIERS): Likewise.
4789         (STORESTRUCT_QUALIFIERS): Likewise.
4790         (STORE1LANE_QUALIFIERS): Likewise.
4791         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4792         (neon_builtin_datum): Keep track of qualifiers.
4793         (VAR1): Likewise.
4794
4795 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4796
4797         * config/arm/arm-builtins.c (VAR1): Add a comma.
4798         (VAR2): Rewrite in terms of VAR1.
4799         (VAR3-10): Likewise.
4800         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
4801         * config/arm/arm_neon_builtins.def: Remove trailing commas.
4802
4803 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4804
4805         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
4806         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
4807         * config/arm/arm-builtins.c: New.
4808         * config/arm/t-arm (arm_builtins.o): New.
4809         * config/arm/arm-protos.h (arm_expand_builtin): New.
4810         (arm_builtin_decl): Likewise.
4811         (arm_init_builtins): Likewise.
4812         (arm_atomic_assign_expand_fenv): Likewise.
4813         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
4814         (arm_init_builtins): Likewise.
4815         (arm_init_iwmmxt_builtins): Likewise
4816         (safe_vector_operand): Likewise
4817         (arm_expand_binop_builtin): Likewise
4818         (arm_expand_unop_builtin): Likewise
4819         (arm_expand_builtin): Likewise
4820         (arm_builtin_decl): Likewise
4821         (insn_flags): Remove static.
4822         (tune_flags): Likewise.
4823         (enum arm_builtins): Move to config/arm/arm-builtins.c.
4824         (arm_init_neon_builtins): Likewise.
4825         (struct builtin_description): Likewise.
4826         (arm_init_iwmmxt_builtins): Likewise.
4827         (arm_init_fp16_builtins): Likewise.
4828         (arm_init_crc32_builtins): Likewise.
4829         (arm_init_builtins): Likewise.
4830         (arm_builtin_decl): Likewise.
4831         (safe_vector_operand): Likewise.
4832         (arm_expand_ternop_builtin): Likewise.
4833         (arm_expand_binop_builtin): Likewise.
4834         (arm_expand_unop_builtin): Likewise.
4835         (neon_dereference_pointer): Likewise.
4836         (arm_expand_neon_args): Likewise.
4837         (arm_expand_neon_builtin): Likewise.
4838         (neon_split_vcombine): Likewise.
4839         (arm_expand_builtin): Likewise.
4840         (arm_builtin_vectorized_function): Likewise.
4841         (arm_atomic_assign_expand_fenv): Likewise.
4842
4843 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4844
4845         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
4846         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
4847         (FL_ARCH3M): Likewise.
4848         (FL_MODE26): Likewise.
4849         (FL_MODE32): Likewise.
4850         (FL_ARCH4): Likewise.
4851         (FL_ARCH5): Likewise.
4852         (FL_THUMB): Likewise.
4853         (FL_LDSCHED): Likewise.
4854         (FL_STRONG): Likewise.
4855         (FL_ARCH5E): Likewise.
4856         (FL_XSCALE): Likewise.
4857         (FL_ARCH6): Likewise.
4858         (FL_VFPV2): Likewise.
4859         (FL_WBUF): Likewise.
4860         (FL_ARCH6K): Likewise.
4861         (FL_THUMB2): Likewise.
4862         (FL_NOTM): Likewise.
4863         (FL_THUMB_DIV): Likewise.
4864         (FL_VFPV3): Likewise.
4865         (FL_NEON): Likewise.
4866         (FL_ARCH7EM): Likewise.
4867         (FL_ARCH7): Likewise.
4868         (FL_ARM_DIV): Likewise.
4869         (FL_ARCH8): Likewise.
4870         (FL_CRC32): Likewise.
4871         (FL_SMALLMUL): Likewise.
4872         (FL_IWMMXT): Likewise.
4873         (FL_IWMMXT2): Likewise.
4874         (FL_TUNE): Likewise.
4875         (FL_FOR_ARCH2): Likewise.
4876         (FL_FOR_ARCH3): Likewise.
4877         (FL_FOR_ARCH3M): Likewise.
4878         (FL_FOR_ARCH4): Likewise.
4879         (FL_FOR_ARCH4T): Likewise.
4880         (FL_FOR_ARCH5): Likewise.
4881         (FL_FOR_ARCH5T): Likewise.
4882         (FL_FOR_ARCH5E): Likewise.
4883         (FL_FOR_ARCH5TE): Likewise.
4884         (FL_FOR_ARCH5TEJ): Likewise.
4885         (FL_FOR_ARCH6): Likewise.
4886         (FL_FOR_ARCH6J): Likewise.
4887         (FL_FOR_ARCH6K): Likewise.
4888         (FL_FOR_ARCH6Z): Likewise.
4889         (FL_FOR_ARCH6ZK): Likewise.
4890         (FL_FOR_ARCH6T2): Likewise.
4891         (FL_FOR_ARCH6M): Likewise.
4892         (FL_FOR_ARCH7): Likewise.
4893         (FL_FOR_ARCH7A): Likewise.
4894         (FL_FOR_ARCH7VE): Likewise.
4895         (FL_FOR_ARCH7R): Likewise.
4896         (FL_FOR_ARCH7M): Likewise.
4897         (FL_FOR_ARCH7EM): Likewise.
4898         (FL_FOR_ARCH8A): Likewise.
4899         * config/arm/arm-protos.h: Take definitions moved from arm.c.
4900
4901 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4902
4903         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
4904         parameter, rearrange switch statement accordingly.
4905         (arm_evpc_neon_vrev): Remove "Magic Word".
4906         * config/arm/unspecs.md (unspec): Split many UNSPECs to
4907         rounding, or signed/unsigned variants.
4908         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
4909         (vcondu<mode><mode>): Likewise.
4910         (neon_vadd): Remove "Magic Word" operand.
4911         (neon_vaddl): Remove "Magic Word" operand, convert to use
4912         signed/unsigned iterator.
4913         (neon_vaddw): Likewise.
4914         (neon_vhadd): Likewise, also iterate over "rounding" forms.
4915         (neon_vqadd): Remove "Magic Word" operand, convert to use
4916         signed/unsigned iterator.
4917         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
4918         over "rounding" forms.
4919         (neon_vmul): Remove "Magic Word" operand, iterate over
4920         polynomial/float instruction forms.
4921         (neon_vmla): Remove "Magic Word" operand.
4922         (neon_vfma): Likewise.
4923         (neon_vfms): Likewise.
4924         (neon_vmls): Likewise.
4925         (neon_vmlal): Remove "Magic Word" operand, iterate over
4926         signed/unsigned forms.
4927         (neon_vmlsl): Likewise.
4928         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
4929         forms.
4930         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
4931         signed/unsigned forms.
4932         (neon_vqdmlsl): Likewise.
4933         (neon_vmull): Likewise.
4934         (neon_vqdmull): Remove "Magic Word" operand.
4935         (neon_vsub): Remove "Magic Word" operand.
4936         (neon_vsubl): Remove "Magic Word" operand, convert to use
4937         signed/unsigned iterator.
4938         (neon_vsubw): Likewise.
4939         (neon_vhsub): Likewise.
4940         (neon_vqsub): Likewise.
4941         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
4942         over "rounding" forms.
4943         (neon_vceq): Remove "Magic Word" operand.
4944         (neon_vcge): Likewise.
4945         (neon_vcgeu): Likewise.
4946         (neon_vcgt): Likewise.
4947         (neon_vcgtu): Likewise.
4948         (neon_vcle): Likewise.
4949         (neon_vclt): Likewise.
4950         (neon_vcage): Likewise.
4951         (neon_vcagt): Likewise.
4952         (neon_vabd): Remove "Magic Word" operand, iterate over
4953         signed/unsigned forms, and split out...
4954         (neon_vabdf): ...this as new.
4955         (neon_vabdl): Remove "Magic Word" operand, iterate over
4956         signed/unsigned forms.
4957         (neon_vaba): Likewise.
4958         (neon_vmax): Remove "Magic Word" operand, iterate over
4959         signed/unsigned and max/min forms, and split out...
4960         (neon_v<maxmin>f): ...this as new.
4961         (neon_vmin): Delete.
4962         (neon_vpadd): Remove "Magic Word" operand.
4963         (neon_vpaddl): Remove "Magic Word" operand, iterate over
4964         signed/unsigned variants.
4965         (neon_vpadal): Likewise.
4966         (neon_vpmax): Remove "Magic Word" operand, iterate over
4967         signed/unsigned and max/min forms, and split out...
4968         (neon_vp<maxmin>f): ...this as new.
4969         (neon_vpmin): Delete.
4970         (neon_vrecps): Remove "Magic Word" operand.
4971         (neon_vrsqrts): Likewise.
4972         (neon_vabs): Likewise.
4973         (neon_vqabs): Likewise.
4974         (neon_vneg): Likewise.
4975         (neon_vqneg): Likewise.
4976         (neon_vcls): Likewise.
4977         (neon_vcnt): Likewise.
4978         (neon_vrecpe): Likewise.
4979         (neon_vrsqrte): Likewise.
4980         (neon_vmvn): Likewise.
4981         (neon_vget_lane): Likewise.
4982         (neon_vget_laneu): New.
4983         (neon_vget_lanedi): Remove "Magic Word" operand.
4984         (neon_vget_lanev2di): Likewise.
4985         (neon_vcvt): Remove "Magic Word" operand, iterate over
4986         signed/unsigned variants.
4987         (neon_vcvt_n): Likewise.
4988         (neon_vmovn): Remove "Magic Word" operand.
4989         (neon_vqmovn): Remove "Magic Word" operand, iterate over
4990         signed/unsigned variants.
4991         (neon_vmovun): Remove "Magic Word" operand.
4992         (neon_vmovl): Remove "Magic Word" operand, iterate over
4993         signed/unsigned variants.
4994         (neon_vmul_lane): Remove "Magic Word" operand.
4995         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
4996         signed/unsigned variants.
4997         (neon_vqdmull_lane): Remove "Magic Word" operand.
4998         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
4999         rounding variants.
5000         (neon_vmla_lane): Remove "Magic Word" operand.
5001         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
5002         signed/unsigned variants.
5003         (neon_vqdmlal_lane): Remove "Magic Word" operand.
5004         (neon_vmls_lane): Likewise.
5005         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
5006         signed/unsigned variants.
5007         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
5008         (neon_vmul_n): Remove "Magic Word" operand.
5009         (neon_vmull_n): Rename to...
5010         (neon_vmulls_n): ...this, remove "Magic Word" operand.
5011         (neon_vmullu_n): New.
5012         (neon_vqdmull_n): Remove "Magic Word" operand.
5013         (neon_vqdmulh_n): Likewise.
5014         (neon_vqrdmulh_n): New.
5015         (neon_vmla_n): Remove "Magic Word" operand.
5016         (neon_vmls_n): Likewise.
5017         (neon_vmlal_n): Rename to...
5018         (neon_vmlals_n): ...this, remove "Magic Word" operand.
5019         (neon_vmlalu_n): New.
5020         (neon_vqdmlal_n): Remove "Magic Word" operand.
5021         (neon_vmlsl_n): Rename to...
5022         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
5023         (neon_vmlslu_n): New.
5024         (neon_vqdmlsl_n): Remove "Magic Word" operand.
5025         (neon_vrev64): Remove "Magic Word" operand.
5026         (neon_vrev32): Likewise.
5027         (neon_vrev16): Likewise.
5028         (neon_vshl): Remove "Magic Word" operand, iterate over
5029         signed/unsigned and "rounding" forms.
5030         (neon_vqshl): Likewise.
5031         (neon_vshr_n): Likewise.
5032         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
5033         "rounding" forms.
5034         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
5035         signed/unsigned and "rounding" forms.
5036         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
5037         "rounding" forms.
5038         (neon_vshl_n): Remove "Magic Word" operand.
5039         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
5040         signed/unsigned variants.
5041         (neon_vqshlu_n): Remove "Magic Word" operand.
5042         (neon_vshll_n): Remove "Magic Word" operand, iterate over
5043         signed/unsigned variants.
5044         (neon_vsra_n): Remove "Magic Word" operand, iterate over
5045         signed/unsigned and "rounding" forms.
5046         * config/arm/iterators.md (VPF): New.
5047         (VADDL): Likewise.
5048         (VADDW): Likewise.
5049         (VHADD): Likewise.
5050         (VQADD): Likewise.
5051         (VADDHN): Likewise.
5052         (VMLAL): Likewise.
5053         (VMLAL_LANE): Likewise.
5054         (VLMSL): Likewise.
5055         (VMLSL_LANE): Likewise.
5056         (VQDMULH): Likewise,
5057         (VQDMULH_LANE): Likewise.
5058         (VMULL): Likewise.
5059         (VMULL_LANE): Likewise.
5060         (VSUBL): Likewise.
5061         (VSUBW): Likewise.
5062         (VHSUB): Likewise.
5063         (VQSUB): Likewise.
5064         (VSUBHN): Likewise.
5065         (VABD): Likewise.
5066         (VABDL): Likewise.
5067         (VMAXMIN): Likewise.
5068         (VMAXMINF): Likewise.
5069         (VPADDL): Likewise.
5070         (VPADAL): Likewise.
5071         (VPMAXMIN): Likewise.
5072         (VPMAXMINF): Likewise.
5073         (VCVT_US): Likewise.
5074         (VCVT_US_N): Likewise.
5075         (VQMOVN): Likewise.
5076         (VMOVL): Likewise.
5077         (VSHL): Likewise.
5078         (VQSHL): Likewise.
5079         (VSHR_N): Likewise.
5080         (VSHRN_N): Likewise.
5081         (VQSHRN_N): Likewise.
5082         (VQSHRUN_N): Likewise.
5083         (VQSHL_N): Likewise.
5084         (VSHLL_N): Likewise.
5085         (VSRA_N): Likewise.
5086         (pf): Likewise.
5087         (sup): Likewise.
5088         (r): Liekwise.
5089         (maxmin): Likewise.
5090         (shift_op): Likewise.
5091         * config/arm/arm_neon_builtins.def (vaddl): Split to...
5092         (vaddls): ...this and...
5093         (vaddlu): ...this.
5094         (vaddw): Split to...
5095         (vaddws): ...this and...
5096         (vaddwu): ...this.
5097         (vhadd): Split to...
5098         (vhadds): ...this and...
5099         (vhaddu): ...this and...
5100         (vrhadds): ...this and...
5101         (vrhaddu): ...this.
5102         (vqadd): Split to...
5103         (vqadds): ...this and...
5104         (vqaddu): ...this.
5105         (vaddhn): Split to itself and...
5106         (vraddhn): ...this.
5107         (vmul): Split to...
5108         (vmulf): ...this and...
5109         (vmulp): ...this.
5110         (vmlal): Split to...
5111         (vmlals): ...this and...
5112         (vmlalu): ...this.
5113         (vmlsl): Split to...
5114         (vmlsls): ...this and...
5115         (vmlslu): ...this.
5116         (vqdmulh): Split to itself and...
5117         (vqrdmulh): ...this.
5118         (vmull): Split to...
5119         (vmullp): ...this and...
5120         (vmulls): ...this and...
5121         (vmullu): ...this.
5122         (vmull_n): Split to...
5123         (vmulls_n): ...this and...
5124         (vmullu_n): ...this.
5125         (vmull_lane): Split to...
5126         (vmulls_lane): ...this and...
5127         (vmullu_lane): ...this.
5128         (vqdmulh_n): Split to itself and...
5129         (vqrdmulh_n): ...this.
5130         (vqdmulh_lane): Split to itself and...
5131         (vqrdmulh_lane): ...this.
5132         (vshl): Split to...
5133         (vshls): ...this and...
5134         (vshlu): ...this and...
5135         (vrshls): ...this and...
5136         (vrshlu): ...this.
5137         (vqshl): Split to...
5138         (vqshls): ...this and...
5139         (vqrshlu): ...this and...
5140         (vqrshls): ...this and...
5141         (vqrshlu): ...this.
5142         (vshr_n): Split to...
5143         (vshrs_n): ...this and...
5144         (vshru_n): ...this and...
5145         (vrshrs_n): ...this and...
5146         (vrshru_n): ...this.
5147         (vshrn_n): Split to itself and...
5148         (vrshrn_n): ...this.
5149         (vqshrn_n): Split to...
5150         (vqshrns_n): ...this and...
5151         (vqshrnu_n): ...this and...
5152         (vqrshrns_n): ...this and...
5153         (vqrshrnu_n): ...this.
5154         (vqshrun_n): Split to itself and...
5155         (vqrshrun_n): ...this.
5156         (vqshl_n): Split to...
5157         (vqshl_s_n): ...this and...
5158         (vqshl_u_n): ...this.
5159         (vshll_n): Split to...
5160         (vshlls_n): ...this and...
5161         (vshllu_n): ...this.
5162         (vsra_n): Split to...
5163         (vsras_n): ...this and...
5164         (vsrau_n): ...this and.
5165         (vrsras_n): ...this and...
5166         (vrsrau_n): ...this and.
5167         (vsubl): Split to...
5168         (vsubls): ...this and...
5169         (vsublu): ...this.
5170         (vsubw): Split to...
5171         (vsubws): ...this and...
5172         (vsubwu): ...this.
5173         (vqsub): Split to...
5174         (vqsubs): ...this and...
5175         (vqsubu): ...this.
5176         (vhsub): Split to...
5177         (vhsubs): ...this and...
5178         (vhsubu): ...this.
5179         (vsubhn): Split to itself and...
5180         (vrsubhn): ...this.
5181         (vabd): Split to...
5182         (vabds): ...this and...
5183         (vabdu): ...this and...
5184         (vabdf): ...this.
5185         (vabdl): Split to...
5186         (vabdls): ...this and...
5187         (vabdlu): ...this.
5188         (vaba): Split to...
5189         (vabas): ...this and...
5190         (vabau): ...this and...
5191         (vabal): Split to...
5192         (vabals): ...this and...
5193         (vabalu): ...this.
5194         (vmax): Split to...
5195         (vmaxs): ...this and...
5196         (vmaxu): ...this and...
5197         (vmaxf): ...this.
5198         (vmin): Split to...
5199         (vmins): ...this and...
5200         (vminu): ...this and...
5201         (vminf): ...this.
5202         (vpmax): Split to...
5203         (vpmaxs): ...this and...
5204         (vpmaxu): ...this and...
5205         (vpmaxf): ...this.
5206         (vpmin): Split to...
5207         (vpmins): ...this and...
5208         (vpminu): ...this and...
5209         (vpminf): ...this.
5210         (vpaddl): Split to...
5211         (vpaddls): ...this and...
5212         (vpaddlu): ...this.
5213         (vpadal): Split to...
5214         (vpadals): ...this and...
5215         (vpadalu): ...this.
5216         (vget_laneu): New.
5217         (vqmovn): Split to...
5218         (vqmovns): ...this and...
5219         (vqmovnu): ...this.
5220         (vmovl): Split to...
5221         (vmovls): ...this and...
5222         (vmovlu): ...this.
5223         (vmlal_lane): Split to...
5224         (vmlals_lane): ...this and...
5225         (vmlalu_lane): ...this.
5226         (vmlsl_lane): Split to...
5227         (vmlsls_lane): ...this and...
5228         (vmlslu_lane): ...this.
5229         (vmlal_n): Split to...
5230         (vmlals_n): ...this and...
5231         (vmlalu_n): ...this.
5232         (vmlsl_n): Split to...
5233         (vmlsls_n): ...this and...
5234         (vmlslu_n): ...this.
5235         (vext): Make type "SHIFTINSERT".
5236         (vcvt): Split to...
5237         (vcvts): ...this and...
5238         (vcvtu): ...this.
5239         (vcvt_n): Split to...
5240         (vcvts_n): ...this and...
5241         (vcvtu_n): ...this.
5242         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
5243         (vaddl_s16): Likewise.
5244         (vaddl_s32): Likewise.
5245         (vaddl_u8): Likewise.
5246         (vaddl_u16): Likewise.
5247         (vaddl_u32): Likewise.
5248         (vaddw_s8): Likewise.
5249         (vaddw_s16): Likewise.
5250         (vaddw_s32): Likewise.
5251         (vaddw_u8): Likewise.
5252         (vaddw_u16): Likewise.
5253         (vaddw_u32): Likewise.
5254         (vhadd_s8): Likewise.
5255         (vhadd_s16): Likewise.
5256         (vhadd_s32): Likewise.
5257         (vhadd_u8): Likewise.
5258         (vhadd_u16): Likewise.
5259         (vhadd_u32): Likewise.
5260         (vhaddq_s8): Likewise.
5261         (vhaddq_s16): Likewise.
5262         (vhaddq_s32): Likewise.
5263         (vhaddq_u8): Likewise.
5264         (vhaddq_u16): Likewise.
5265         (vrhadd_s8): Likewise.
5266         (vrhadd_s16): Likewise.
5267         (vrhadd_s32): Likewise.
5268         (vrhadd_u8): Likewise.
5269         (vrhadd_u16): Likewise.
5270         (vrhadd_u32): Likewise.
5271         (vrhaddq_s8): Likewise.
5272         (vrhaddq_s16): Likewise.
5273         (vrhaddq_s32): Likewise.
5274         (vrhaddq_u8): Likewise.
5275         (vrhaddq_u16): Likewise.
5276         (vrhaddq_u32): Likewise.
5277         (vqadd_s8): Likewise.
5278         (vqadd_s16): Likewise.
5279         (vqadd_s32): Likewise.
5280         (vqadd_s64): Likewise.
5281         (vqadd_u8): Likewise.
5282         (vqadd_u16): Likewise.
5283         (vqadd_u32): Likewise.
5284         (vqadd_u64): Likewise.
5285         (vqaddq_s8): Likewise.
5286         (vqaddq_s16): Likewise.
5287         (vqaddq_s32): Likewise.
5288         (vqaddq_s64): Likewise.
5289         (vqaddq_u8): Likewise.
5290         (vqaddq_u16): Likewise.
5291         (vqaddq_u32): Likewise.
5292         (vqaddq_u64): Likewise.
5293         (vaddhn_s16): Likewise.
5294         (vaddhn_s32): Likewise.
5295         (vaddhn_s64): Likewise.
5296         (vaddhn_u16): Likewise.
5297         (vaddhn_u32): Likewise.
5298         (vaddhn_u64): Likewise.
5299         (vraddhn_s16): Likewise.
5300         (vraddhn_s32): Likewise.
5301         (vraddhn_s64): Likewise.
5302         (vraddhn_u16): Likewise.
5303         (vraddhn_u32): Likewise.
5304         (vraddhn_u64): Likewise.
5305         (vmul_p8): Likewise.
5306         (vmulq_p8): Likewise.
5307         (vqdmulh_s16): Likewise.
5308         (vqdmulh_s32): Likewise.
5309         (vqdmulhq_s16): Likewise.
5310         (vqdmulhq_s32): Likewise.
5311         (vqrdmulh_s16): Likewise.
5312         (vqrdmulh_s32): Likewise.
5313         (vqrdmulhq_s16): Likewise.
5314         (vqrdmulhq_s32): Likewise.
5315         (vmull_s8): Likewise.
5316         (vmull_s16): Likewise.
5317         (vmull_s32): Likewise.
5318         (vmull_u8): Likewise.
5319         (vmull_u16): Likewise.
5320         (vmull_u32): Likewise.
5321         (vmull_p8): Likewise.
5322         (vqdmull_s16): Likewise.
5323         (vqdmull_s32): Likewise.
5324         (vmla_s8): Likewise.
5325         (vmla_s16): Likewise.
5326         (vmla_s32): Likewise.
5327         (vmla_f32): Likewise.
5328         (vmla_u8): Likewise.
5329         (vmla_u16): Likewise.
5330         (vmla_u32): Likewise.
5331         (vmlaq_s8): Likewise.
5332         (vmlaq_s16): Likewise.
5333         (vmlaq_s32): Likewise.
5334         (vmlaq_f32): Likewise.
5335         (vmlaq_u8): Likewise.
5336         (vmlaq_u16): Likewise.
5337         (vmlaq_u32): Likewise.
5338         (vmlal_s8): Likewise.
5339         (vmlal_s16): Likewise.
5340         (vmlal_s32): Likewise.
5341         (vmlal_u8): Likewise.
5342         (vmlal_u16): Likewise.
5343         (vmlal_u32): Likewise.
5344         (vqdmlal_s16): Likewise.
5345         (vqdmlal_s32): Likewise.
5346         (vmls_s8): Likewise.
5347         (vmls_s16): Likewise.
5348         (vmls_s32): Likewise.
5349         (vmls_f32): Likewise.
5350         (vmls_u8): Likewise.
5351         (vmls_u16): Likewise.
5352         (vmls_u32): Likewise.
5353         (vmlsq_s8): Likewise.
5354         (vmlsq_s16): Likewise.
5355         (vmlsq_s32): Likewise.
5356         (vmlsq_f32): Likewise.
5357         (vmlsq_u8): Likewise.
5358         (vmlsq_u16): Likewise.
5359         (vmlsq_u32): Likewise.
5360         (vmlsl_s8): Likewise.
5361         (vmlsl_s16): Likewise.
5362         (vmlsl_s32): Likewise.
5363         (vmlsl_u8): Likewise.
5364         (vmlsl_u16): Likewise.
5365         (vmlsl_u32): Likewise.
5366         (vqdmlsl_s16): Likewise.
5367         (vqdmlsl_s32): Likewise.
5368         (vfma_f32): Likewise.
5369         (vfmaq_f32): Likewise.
5370         (vfms_f32): Likewise.
5371         (vfmsq_f32): Likewise.
5372         (vsubl_s8): Likewise.
5373         (vsubl_s16): Likewise.
5374         (vsubl_s32): Likewise.
5375         (vsubl_u8): Likewise.
5376         (vsubl_u16): Likewise.
5377         (vsubl_u32): Likewise.
5378         (vsubw_s8): Likewise.
5379         (vsubw_s16): Likewise.
5380         (vsubw_s32): Likewise.
5381         (vsubw_u8): Likewise.
5382         (vsubw_u16): Likewise.
5383         (vsubw_u32): Likewise.
5384         (vhsub_s8): Likewise.
5385         (vhsub_s16): Likewise.
5386         (vhsub_s32): Likewise.
5387         (vhsub_u8): Likewise.
5388         (vhsub_u16): Likewise.
5389         (vhsub_u32): Likewise.
5390         (vhsubq_s8): Likewise.
5391         (vhsubq_s16): Likewise.
5392         (vhsubq_s32): Likewise.
5393         (vhsubq_u8): Likewise.
5394         (vhsubq_u16): Likewise.
5395         (vhsubq_u32): Likewise.
5396         (vqsub_s8): Likewise.
5397         (vqsub_s16): Likewise.
5398         (vqsub_s32): Likewise.
5399         (vqsub_s64): Likewise.
5400         (vqsub_u8): Likewise.
5401         (vqsub_u16): Likewise.
5402         (vqsub_u32): Likewise.
5403         (vqsub_u64): Likewise.
5404         (vqsubq_s8): Likewise.
5405         (vqsubq_s16): Likewise.
5406         (vqsubq_s32): Likewise.
5407         (vqsubq_s64): Likewise.
5408         (vqsubq_u8): Likewise.
5409         (vqsubq_u16): Likewise.
5410         (vqsubq_u32): Likewise.
5411         (vqsubq_u64): Likewise.
5412         (vsubhn_s16): Likewise.
5413         (vsubhn_s32): Likewise.
5414         (vsubhn_s64): Likewise.
5415         (vsubhn_u16): Likewise.
5416         (vsubhn_u32): Likewise.
5417         (vsubhn_u64): Likewise.
5418         (vrsubhn_s16): Likewise.
5419         (vrsubhn_s32): Likewise.
5420         (vrsubhn_s64): Likewise.
5421         (vrsubhn_u16): Likewise.
5422         (vrsubhn_u32): Likewise.
5423         (vrsubhn_u64): Likewise.
5424         (vceq_s8): Likewise.
5425         (vceq_s16): Likewise.
5426         (vceq_s32): Likewise.
5427         (vceq_f32): Likewise.
5428         (vceq_u8): Likewise.
5429         (vceq_u16): Likewise.
5430         (vceq_u32): Likewise.
5431         (vceq_p8): Likewise.
5432         (vceqq_s8): Likewise.
5433         (vceqq_s16): Likewise.
5434         (vceqq_s32): Likewise.
5435         (vceqq_f32): Likewise.
5436         (vceqq_u8): Likewise.
5437         (vceqq_u16): Likewise.
5438         (vceqq_u32): Likewise.
5439         (vceqq_p8): Likewise.
5440         (vcge_s8): Likewise.
5441         (vcge_s16): Likewise.
5442         (vcge_s32): Likewise.
5443         (vcge_f32): Likewise.
5444         (vcge_u8): Likewise.
5445         (vcge_u16): Likewise.
5446         (vcge_u32): Likewise.
5447         (vcgeq_s8): Likewise.
5448         (vcgeq_s16): Likewise.
5449         (vcgeq_s32): Likewise.
5450         (vcgeq_f32): Likewise.
5451         (vcgeq_u8): Likewise.
5452         (vcgeq_u16): Likewise.
5453         (vcgeq_u32): Likewise.
5454         (vcle_s8): Likewise.
5455         (vcle_s16): Likewise.
5456         (vcle_s32): Likewise.
5457         (vcle_f32): Likewise.
5458         (vcle_u8): Likewise.
5459         (vcle_u16): Likewise.
5460         (vcle_u32): Likewise.
5461         (vcleq_s8): Likewise.
5462         (vcleq_s16): Likewise.
5463         (vcleq_s32): Likewise.
5464         (vcleq_f32): Likewise.
5465         (vcleq_u8): Likewise.
5466         (vcleq_u16): Likewise.
5467         (vcleq_u32): Likewise.
5468         (vcgt_s8): Likewise.
5469         (vcgt_s16): Likewise.
5470         (vcgt_s32): Likewise.
5471         (vcgt_f32): Likewise.
5472         (vcgt_u8): Likewise.
5473         (vcgt_u16): Likewise.
5474         (vcgt_u32): Likewise.
5475         (vcgtq_s8): Likewise.
5476         (vcgtq_s16): Likewise.
5477         (vcgtq_s32): Likewise.
5478         (vcgtq_f32): Likewise.
5479         (vcgtq_u8): Likewise.
5480         (vcgtq_u16): Likewise.
5481         (vcgtq_u32): Likewise.
5482         (vclt_s8): Likewise.
5483         (vclt_s16): Likewise.
5484         (vclt_s32): Likewise.
5485         (vclt_f32): Likewise.
5486         (vclt_u8): Likewise.
5487         (vclt_u16): Likewise.
5488         (vclt_u32): Likewise.
5489         (vcltq_s8): Likewise.
5490         (vcltq_s16): Likewise.
5491         (vcltq_s32): Likewise.
5492         (vcltq_f32): Likewise.
5493         (vcltq_u8): Likewise.
5494         (vcltq_u16): Likewise.
5495         (vcltq_u32): Likewise.
5496         (vcage_f32): Likewise.
5497         (vcageq_f32): Likewise.
5498         (vcale_f32): Likewise.
5499         (vcaleq_f32): Likewise.
5500         (vcagt_f32): Likewise.
5501         (vcagtq_f32): Likewise.
5502         (vcalt_f32): Likewise.
5503         (vcaltq_f32): Likewise.
5504         (vtst_s8): Likewise.
5505         (vtst_s16): Likewise.
5506         (vtst_s32): Likewise.
5507         (vtst_u8): Likewise.
5508         (vtst_u16): Likewise.
5509         (vtst_u32): Likewise.
5510         (vtst_p8): Likewise.
5511         (vtstq_s8): Likewise.
5512         (vtstq_s16): Likewise.
5513         (vtstq_s32): Likewise.
5514         (vtstq_u8): Likewise.
5515         (vtstq_u16): Likewise.
5516         (vtstq_u32): Likewise.
5517         (vtstq_p8): Likewise.
5518         (vabd_s8): Likewise.
5519         (vabd_s16): Likewise.
5520         (vabd_s32): Likewise.
5521         (vabd_f32): Likewise.
5522         (vabd_u8): Likewise.
5523         (vabd_u16): Likewise.
5524         (vabd_u32): Likewise.
5525         (vabdq_s8): Likewise.
5526         (vabdq_s16): Likewise.
5527         (vabdq_s32): Likewise.
5528         (vabdq_f32): Likewise.
5529         (vabdq_u8): Likewise.
5530         (vabdq_u16): Likewise.
5531         (vabdq_u32): Likewise.
5532         (vabdl_s8): Likewise.
5533         (vabdl_s16): Likewise.
5534         (vabdl_s32): Likewise.
5535         (vabdl_u8): Likewise.
5536         (vabdl_u16): Likewise.
5537         (vabdl_u32): Likewise.
5538         (vaba_s8): Likewise.
5539         (vaba_s16): Likewise.
5540         (vaba_s32): Likewise.
5541         (vaba_u8): Likewise.
5542         (vaba_u16): Likewise.
5543         (vaba_u32): Likewise.
5544         (vabaq_s8): Likewise.
5545         (vabaq_s16): Likewise.
5546         (vabaq_s32): Likewise.
5547         (vabaq_u8): Likewise.
5548         (vabaq_u16): Likewise.
5549         (vabaq_u32): Likewise.
5550         (vabal_s8): Likewise.
5551         (vabal_s16): Likewise.
5552         (vabal_s32): Likewise.
5553         (vabal_u8): Likewise.
5554         (vabal_u16): Likewise.
5555         (vabal_u32): Likewise.
5556         (vmax_s8): Likewise.
5557         (vmax_s16): Likewise.
5558         (vmax_s32): Likewise.
5559         (vmax_f32): Likewise.
5560         (vmax_u8): Likewise.
5561         (vmax_u16): Likewise.
5562         (vmax_u32): Likewise.
5563         (vmaxq_s8): Likewise.
5564         (vmaxq_s16): Likewise.
5565         (vmaxq_s32): Likewise.
5566         (vmaxq_f32): Likewise.
5567         (vmaxq_u8): Likewise.
5568         (vmaxq_u16): Likewise.
5569         (vmaxq_u32): Likewise.
5570         (vmin_s8): Likewise.
5571         (vmin_s16): Likewise.
5572         (vmin_s32): Likewise.
5573         (vmin_f32): Likewise.
5574         (vmin_u8): Likewise.
5575         (vmin_u16): Likewise.
5576         (vmin_u32): Likewise.
5577         (vminq_s8): Likewise.
5578         (vminq_s16): Likewise.
5579         (vminq_s32): Likewise.
5580         (vminq_f32): Likewise.
5581         (vminq_u8): Likewise.
5582         (vminq_u16): Likewise.
5583         (vminq_u32): Likewise.
5584         (vpadd_s8): Likewise.
5585         (vpadd_s16): Likewise.
5586         (vpadd_s32): Likewise.
5587         (vpadd_f32): Likewise.
5588         (vpadd_u8): Likewise.
5589         (vpadd_u16): Likewise.
5590         (vpadd_u32): Likewise.
5591         (vpaddl_s8): Likewise.
5592         (vpaddl_s16): Likewise.
5593         (vpaddl_s32): Likewise.
5594         (vpaddl_u8): Likewise.
5595         (vpaddl_u16): Likewise.
5596         (vpaddl_u32): Likewise.
5597         (vpaddlq_s8): Likewise.
5598         (vpaddlq_s16): Likewise.
5599         (vpaddlq_s32): Likewise.
5600         (vpaddlq_u8): Likewise.
5601         (vpaddlq_u16): Likewise.
5602         (vpaddlq_u32): Likewise.
5603         (vpadal_s8): Likewise.
5604         (vpadal_s16): Likewise.
5605         (vpadal_s32): Likewise.
5606         (vpadal_u8): Likewise.
5607         (vpadal_u16): Likewise.
5608         (vpadal_u32): Likewise.
5609         (vpadalq_s8): Likewise.
5610         (vpadalq_s16): Likewise.
5611         (vpadalq_s32): Likewise.
5612         (vpadalq_u8): Likewise.
5613         (vpadalq_u16): Likewise.
5614         (vpadalq_u32): Likewise.
5615         (vpmax_s8): Likewise.
5616         (vpmax_s16): Likewise.
5617         (vpmax_s32): Likewise.
5618         (vpmax_f32): Likewise.
5619         (vpmax_u8): Likewise.
5620         (vpmax_u16): Likewise.
5621         (vpmax_u32): Likewise.
5622         (vpmin_s8): Likewise.
5623         (vpmin_s16): Likewise.
5624         (vpmin_s32): Likewise.
5625         (vpmin_f32): Likewise.
5626         (vpmin_u8): Likewise.
5627         (vpmin_u16): Likewise.
5628         (vpmin_u32): Likewise.
5629         (vrecps_f32): Likewise.
5630         (vrecpsq_f32): Likewise.
5631         (vrsqrts_f32): Likewise.
5632         (vrsqrtsq_f32): Likewise.
5633         (vshl_s8): Likewise.
5634         (vshl_s16): Likewise.
5635         (vshl_s32): Likewise.
5636         (vshl_s64): Likewise.
5637         (vshl_u8): Likewise.
5638         (vshl_u16): Likewise.
5639         (vshl_u32): Likewise.
5640         (vshl_u64): Likewise.
5641         (vshlq_s8): Likewise.
5642         (vshlq_s16): Likewise.
5643         (vshlq_s32): Likewise.
5644         (vshlq_s64): Likewise.
5645         (vshlq_u8): Likewise.
5646         (vshlq_u16): Likewise.
5647         (vshlq_u32): Likewise.
5648         (vshlq_u64): Likewise.
5649         (vrshl_s8): Likewise.
5650         (vrshl_s16): Likewise.
5651         (vrshl_s32): Likewise.
5652         (vrshl_s64): Likewise.
5653         (vrshl_u8): Likewise.
5654         (vrshl_u16): Likewise.
5655         (vrshl_u32): Likewise.
5656         (vrshl_u64): Likewise.
5657         (vrshlq_s8): Likewise.
5658         (vrshlq_s16): Likewise.
5659         (vrshlq_s32): Likewise.
5660         (vrshlq_s64): Likewise.
5661         (vrshlq_u8): Likewise.
5662         (vrshlq_u16): Likewise.
5663         (vrshlq_u32): Likewise.
5664         (vrshlq_u64): Likewise.
5665         (vqshl_s8): Likewise.
5666         (vqshl_s16): Likewise.
5667         (vqshl_s32): Likewise.
5668         (vqshl_s64): Likewise.
5669         (vqshl_u8): Likewise.
5670         (vqshl_u16): Likewise.
5671         (vqshl_u32): Likewise.
5672         (vqshl_u64): Likewise.
5673         (vqshlq_s8): Likewise.
5674         (vqshlq_s16): Likewise.
5675         (vqshlq_s32): Likewise.
5676         (vqshlq_s64): Likewise.
5677         (vqshlq_u8): Likewise.
5678         (vqshlq_u16): Likewise.
5679         (vqshlq_u32): Likewise.
5680         (vqshlq_u64): Likewise.
5681         (vqrshl_s8): Likewise.
5682         (vqrshl_s16): Likewise.
5683         (vqrshl_s32): Likewise.
5684         (vqrshl_s64): Likewise.
5685         (vqrshl_u8): Likewise.
5686         (vqrshl_u16): Likewise.
5687         (vqrshl_u32): Likewise.
5688         (vqrshl_u64): Likewise.
5689         (vqrshlq_s8): Likewise.
5690         (vqrshlq_s16): Likewise.
5691         (vqrshlq_s32): Likewise.
5692         (vqrshlq_s64): Likewise.
5693         (vqrshlq_u8): Likewise.
5694         (vqrshlq_u16): Likewise.
5695         (vqrshlq_u32): Likewise.
5696         (vqrshlq_u64): Likewise.
5697         (vshr_n_s8): Likewise.
5698         (vshr_n_s16): Likewise.
5699         (vshr_n_s32): Likewise.
5700         (vshr_n_s64): Likewise.
5701         (vshr_n_u8): Likewise.
5702         (vshr_n_u16): Likewise.
5703         (vshr_n_u32): Likewise.
5704         (vshr_n_u64): Likewise.
5705         (vshrq_n_s8): Likewise.
5706         (vshrq_n_s16): Likewise.
5707         (vshrq_n_s32): Likewise.
5708         (vshrq_n_s64): Likewise.
5709         (vshrq_n_u8): Likewise.
5710         (vshrq_n_u16): Likewise.
5711         (vshrq_n_u32): Likewise.
5712         (vshrq_n_u64): Likewise.
5713         (vrshr_n_s8): Likewise.
5714         (vrshr_n_s16): Likewise.
5715         (vrshr_n_s32): Likewise.
5716         (vrshr_n_s64): Likewise.
5717         (vrshr_n_u8): Likewise.
5718         (vrshr_n_u16): Likewise.
5719         (vrshr_n_u32): Likewise.
5720         (vrshr_n_u64): Likewise.
5721         (vrshrq_n_s8): Likewise.
5722         (vrshrq_n_s16): Likewise.
5723         (vrshrq_n_s32): Likewise.
5724         (vrshrq_n_s64): Likewise.
5725         (vrshrq_n_u8): Likewise.
5726         (vrshrq_n_u16): Likewise.
5727         (vrshrq_n_u32): Likewise.
5728         (vrshrq_n_u64): Likewise.
5729         (vshrn_n_s16): Likewise.
5730         (vshrn_n_s32): Likewise.
5731         (vshrn_n_s64): Likewise.
5732         (vshrn_n_u16): Likewise.
5733         (vshrn_n_u32): Likewise.
5734         (vshrn_n_u64): Likewise.
5735         (vrshrn_n_s16): Likewise.
5736         (vrshrn_n_s32): Likewise.
5737         (vrshrn_n_s64): Likewise.
5738         (vrshrn_n_u16): Likewise.
5739         (vrshrn_n_u32): Likewise.
5740         (vrshrn_n_u64): Likewise.
5741         (vqshrn_n_s16): Likewise.
5742         (vqshrn_n_s32): Likewise.
5743         (vqshrn_n_s64): Likewise.
5744         (vqshrn_n_u16): Likewise.
5745         (vqshrn_n_u32): Likewise.
5746         (vqshrn_n_u64): Likewise.
5747         (vqrshrn_n_s16): Likewise.
5748         (vqrshrn_n_s32): Likewise.
5749         (vqrshrn_n_s64): Likewise.
5750         (vqrshrn_n_u16): Likewise.
5751         (vqrshrn_n_u32): Likewise.
5752         (vqrshrn_n_u64): Likewise.
5753         (vqshrun_n_s16): Likewise.
5754         (vqshrun_n_s32): Likewise.
5755         (vqshrun_n_s64): Likewise.
5756         (vqrshrun_n_s16): Likewise.
5757         (vqrshrun_n_s32): Likewise.
5758         (vqrshrun_n_s64): Likewise.
5759         (vshl_n_s8): Likewise.
5760         (vshl_n_s16): Likewise.
5761         (vshl_n_s32): Likewise.
5762         (vshl_n_s64): Likewise.
5763         (vshl_n_u8): Likewise.
5764         (vshl_n_u16): Likewise.
5765         (vshl_n_u32): Likewise.
5766         (vshl_n_u64): Likewise.
5767         (vshlq_n_s8): Likewise.
5768         (vshlq_n_s16): Likewise.
5769         (vshlq_n_s32): Likewise.
5770         (vshlq_n_s64): Likewise.
5771         (vshlq_n_u8): Likewise.
5772         (vshlq_n_u16): Likewise.
5773         (vshlq_n_u32): Likewise.
5774         (vshlq_n_u64): Likewise.
5775         (vqshl_n_s8): Likewise.
5776         (vqshl_n_s16): Likewise.
5777         (vqshl_n_s32): Likewise.
5778         (vqshl_n_s64): Likewise.
5779         (vqshl_n_u8): Likewise.
5780         (vqshl_n_u16): Likewise.
5781         (vqshl_n_u32): Likewise.
5782         (vqshl_n_u64): Likewise.
5783         (vqshlq_n_s8): Likewise.
5784         (vqshlq_n_s16): Likewise.
5785         (vqshlq_n_s32): Likewise.
5786         (vqshlq_n_s64): Likewise.
5787         (vqshlq_n_u8): Likewise.
5788         (vqshlq_n_u16): Likewise.
5789         (vqshlq_n_u32): Likewise.
5790         (vqshlq_n_u64): Likewise.
5791         (vqshlu_n_s8): Likewise.
5792         (vqshlu_n_s16): Likewise.
5793         (vqshlu_n_s32): Likewise.
5794         (vqshlu_n_s64): Likewise.
5795         (vqshluq_n_s8): Likewise.
5796         (vqshluq_n_s16): Likewise.
5797         (vqshluq_n_s32): Likewise.
5798         (vqshluq_n_s64): Likewise.
5799         (vshll_n_s8): Likewise.
5800         (vshll_n_s16): Likewise.
5801         (vshll_n_s32): Likewise.
5802         (vshll_n_u8): Likewise.
5803         (vshll_n_u16): Likewise.
5804         (vshll_n_u32): Likewise.
5805         (vsra_n_s8): Likewise.
5806         (vsra_n_s16): Likewise.
5807         (vsra_n_s32): Likewise.
5808         (vsra_n_s64): Likewise.
5809         (vsra_n_u8): Likewise.
5810         (vsra_n_u16): Likewise.
5811         (vsra_n_u32): Likewise.
5812         (vsra_n_u64): Likewise.
5813         (vsraq_n_s8): Likewise.
5814         (vsraq_n_s16): Likewise.
5815         (vsraq_n_s32): Likewise.
5816         (vsraq_n_s64): Likewise.
5817         (vsraq_n_u8): Likewise.
5818         (vsraq_n_u16): Likewise.
5819         (vsraq_n_u32): Likewise.
5820         (vsraq_n_u64): Likewise.
5821         (vrsra_n_s8): Likewise.
5822         (vrsra_n_s16): Likewise.
5823         (vrsra_n_s32): Likewise.
5824         (vrsra_n_s64): Likewise.
5825         (vrsra_n_u8): Likewise.
5826         (vrsra_n_u16): Likewise.
5827         (vrsra_n_u32): Likewise.
5828         (vrsra_n_u64): Likewise.
5829         (vrsraq_n_s8): Likewise.
5830         (vrsraq_n_s16): Likewise.
5831         (vrsraq_n_s32): Likewise.
5832         (vrsraq_n_s64): Likewise.
5833         (vrsraq_n_u8): Likewise.
5834         (vrsraq_n_u16): Likewise.
5835         (vrsraq_n_u32): Likewise.
5836         (vrsraq_n_u64): Likewise.
5837         (vabs_s8): Likewise.
5838         (vabs_s16): Likewise.
5839         (vabs_s32): Likewise.
5840         (vabs_f32): Likewise.
5841         (vabsq_s8): Likewise.
5842         (vabsq_s16): Likewise.
5843         (vabsq_s32): Likewise.
5844         (vabsq_f32): Likewise.
5845         (vqabs_s8): Likewise.
5846         (vqabs_s16): Likewise.
5847         (vqabs_s32): Likewise.
5848         (vqabsq_s8): Likewise.
5849         (vqabsq_s16): Likewise.
5850         (vqabsq_s32): Likewise.
5851         (vneg_s8): Likewise.
5852         (vneg_s16): Likewise.
5853         (vneg_s32): Likewise.
5854         (vneg_f32): Likewise.
5855         (vnegq_s8): Likewise.
5856         (vnegq_s16): Likewise.
5857         (vnegq_s32): Likewise.
5858         (vnegq_f32): Likewise.
5859         (vqneg_s8): Likewise.
5860         (vqneg_s16): Likewise.
5861         (vqneg_s32): Likewise.
5862         (vqnegq_s8): Likewise.
5863         (vqnegq_s16): Likewise.
5864         (vqnegq_s32): Likewise.
5865         (vmvn_s8): Likewise.
5866         (vmvn_s16): Likewise.
5867         (vmvn_s32): Likewise.
5868         (vmvn_u8): Likewise.
5869         (vmvn_u16): Likewise.
5870         (vmvn_u32): Likewise.
5871         (vmvn_p8): Likewise.
5872         (vmvnq_s8): Likewise.
5873         (vmvnq_s16): Likewise.
5874         (vmvnq_s32): Likewise.
5875         (vmvnq_u8): Likewise.
5876         (vmvnq_u16): Likewise.
5877         (vmvnq_u32): Likewise.
5878         (vmvnq_p8): Likewise.
5879         (vcls_s8): Likewise.
5880         (vcls_s16): Likewise.
5881         (vcls_s32): Likewise.
5882         (vclsq_s8): Likewise.
5883         (vclsq_s16): Likewise.
5884         (vclsq_s32): Likewise.
5885         (vclz_s8): Likewise.
5886         (vclz_s16): Likewise.
5887         (vclz_s32): Likewise.
5888         (vclz_u8): Likewise.
5889         (vclz_u16): Likewise.
5890         (vclz_u32): Likewise.
5891         (vclzq_s8): Likewise.
5892         (vclzq_s16): Likewise.
5893         (vclzq_s32): Likewise.
5894         (vclzq_u8): Likewise.
5895         (vclzq_u16): Likewise.
5896         (vclzq_u32): Likewise.
5897         (vcnt_s8): Likewise.
5898         (vcnt_u8): Likewise.
5899         (vcnt_p8): Likewise.
5900         (vcntq_s8): Likewise.
5901         (vcntq_u8): Likewise.
5902         (vcntq_p8): Likewise.
5903         (vrecpe_f32): Likewise.
5904         (vrecpe_u32): Likewise.
5905         (vrecpeq_f32): Likewise.
5906         (vrecpeq_u32): Likewise.
5907         (vrsqrte_f32): Likewise.
5908         (vrsqrte_u32): Likewise.
5909         (vrsqrteq_f32): Likewise.
5910         (vrsqrteq_u32): Likewise.
5911         (vget_lane_s8): Likewise.
5912         (vget_lane_s16): Likewise.
5913         (vget_lane_s32): Likewise.
5914         (vget_lane_f32): Likewise.
5915         (vget_lane_u8): Likewise.
5916         (vget_lane_u16): Likewise.
5917         (vget_lane_u32): Likewise.
5918         (vget_lane_p8): Likewise.
5919         (vget_lane_p16): Likewise.
5920         (vget_lane_s64): Likewise.
5921         (vget_lane_u64): Likewise.
5922         (vgetq_lane_s8): Likewise.
5923         (vgetq_lane_s16): Likewise.
5924         (vgetq_lane_s32): Likewise.
5925         (vgetq_lane_f32): Likewise.
5926         (vgetq_lane_u8): Likewise.
5927         (vgetq_lane_u16): Likewise.
5928         (vgetq_lane_u32): Likewise.
5929         (vgetq_lane_p8): Likewise.
5930         (vgetq_lane_p16): Likewise.
5931         (vgetq_lane_s64): Likewise.
5932         (vgetq_lane_u64): Likewise.
5933         (vcvt_s32_f32): Likewise.
5934         (vcvt_f32_s32): Likewise.
5935         (vcvt_f32_u32): Likewise.
5936         (vcvt_u32_f32): Likewise.
5937         (vcvtq_s32_f32): Likewise.
5938         (vcvtq_f32_s32): Likewise.
5939         (vcvtq_f32_u32): Likewise.
5940         (vcvtq_u32_f32): Likewise.
5941         (vcvt_n_s32_f32): Likewise.
5942         (vcvt_n_f32_s32): Likewise.
5943         (vcvt_n_f32_u32): Likewise.
5944         (vcvt_n_u32_f32): Likewise.
5945         (vcvtq_n_s32_f32): Likewise.
5946         (vcvtq_n_f32_s32): Likewise.
5947         (vcvtq_n_f32_u32): Likewise.
5948         (vcvtq_n_u32_f32): Likewise.
5949         (vmovn_s16): Likewise.
5950         (vmovn_s32): Likewise.
5951         (vmovn_s64): Likewise.
5952         (vmovn_u16): Likewise.
5953         (vmovn_u32): Likewise.
5954         (vmovn_u64): Likewise.
5955         (vqmovn_s16): Likewise.
5956         (vqmovn_s32): Likewise.
5957         (vqmovn_s64): Likewise.
5958         (vqmovn_u16): Likewise.
5959         (vqmovn_u32): Likewise.
5960         (vqmovn_u64): Likewise.
5961         (vqmovun_s16): Likewise.
5962         (vqmovun_s32): Likewise.
5963         (vqmovun_s64): Likewise.
5964         (vmovl_s8): Likewise.
5965         (vmovl_s16): Likewise.
5966         (vmovl_s32): Likewise.
5967         (vmovl_u8): Likewise.
5968         (vmovl_u16): Likewise.
5969         (vmovl_u32): Likewise.
5970         (vmul_lane_s16): Likewise.
5971         (vmul_lane_s32): Likewise.
5972         (vmul_lane_f32): Likewise.
5973         (vmul_lane_u16): Likewise.
5974         (vmul_lane_u32): Likewise.
5975         (vmulq_lane_s16): Likewise.
5976         (vmulq_lane_s32): Likewise.
5977         (vmulq_lane_f32): Likewise.
5978         (vmulq_lane_u16): Likewise.
5979         (vmulq_lane_u32): Likewise.
5980         (vmla_lane_s16): Likewise.
5981         (vmla_lane_s32): Likewise.
5982         (vmla_lane_f32): Likewise.
5983         (vmla_lane_u16): Likewise.
5984         (vmla_lane_u32): Likewise.
5985         (vmlaq_lane_s16): Likewise.
5986         (vmlaq_lane_s32): Likewise.
5987         (vmlaq_lane_f32): Likewise.
5988         (vmlaq_lane_u16): Likewise.
5989         (vmlaq_lane_u32): Likewise.
5990         (vmlal_lane_s16): Likewise.
5991         (vmlal_lane_s32): Likewise.
5992         (vmlal_lane_u16): Likewise.
5993         (vmlal_lane_u32): Likewise.
5994         (vqdmlal_lane_s16): Likewise.
5995         (vqdmlal_lane_s32): Likewise.
5996         (vmls_lane_s16): Likewise.
5997         (vmls_lane_s32): Likewise.
5998         (vmls_lane_f32): Likewise.
5999         (vmls_lane_u16): Likewise.
6000         (vmls_lane_u32): Likewise.
6001         (vmlsq_lane_s16): Likewise.
6002         (vmlsq_lane_s32): Likewise.
6003         (vmlsq_lane_f32): Likewise.
6004         (vmlsq_lane_u16): Likewise.
6005         (vmlsq_lane_u32): Likewise.
6006         (vmlsl_lane_s16): Likewise.
6007         (vmlsl_lane_s32): Likewise.
6008         (vmlsl_lane_u16): Likewise.
6009         (vmlsl_lane_u32): Likewise.
6010         (vqdmlsl_lane_s16): Likewise.
6011         (vqdmlsl_lane_s32): Likewise.
6012         (vmull_lane_s16): Likewise.
6013         (vmull_lane_s32): Likewise.
6014         (vmull_lane_u16): Likewise.
6015         (vmull_lane_u32): Likewise.
6016         (vqdmull_lane_s16): Likewise.
6017         (vqdmull_lane_s32): Likewise.
6018         (vqdmulhq_lane_s16): Likewise.
6019         (vqdmulhq_lane_s32): Likewise.
6020         (vqdmulh_lane_s16): Likewise.
6021         (vqdmulh_lane_s32): Likewise.
6022         (vqrdmulhq_lane_s16): Likewise.
6023         (vqrdmulhq_lane_s32): Likewise.
6024         (vqrdmulh_lane_s16): Likewise.
6025         (vqrdmulh_lane_s32): Likewise.
6026         (vmul_n_s16): Likewise.
6027         (vmul_n_s32): Likewise.
6028         (vmul_n_f32): Likewise.
6029         (vmul_n_u16): Likewise.
6030         (vmul_n_u32): Likewise.
6031         (vmulq_n_s16): Likewise.
6032         (vmulq_n_s32): Likewise.
6033         (vmulq_n_f32): Likewise.
6034         (vmulq_n_u16): Likewise.
6035         (vmulq_n_u32): Likewise.
6036         (vmull_n_s16): Likewise.
6037         (vmull_n_s32): Likewise.
6038         (vmull_n_u16): Likewise.
6039         (vmull_n_u32): Likewise.
6040         (vqdmull_n_s16): Likewise.
6041         (vqdmull_n_s32): Likewise.
6042         (vqdmulhq_n_s16): Likewise.
6043         (vqdmulhq_n_s32): Likewise.
6044         (vqdmulh_n_s16): Likewise.
6045         (vqdmulh_n_s32): Likewise.
6046         (vqrdmulhq_n_s16): Likewise.
6047         (vqrdmulhq_n_s32): Likewise.
6048         (vqrdmulh_n_s16): Likewise.
6049         (vqrdmulh_n_s32): Likewise.
6050         (vmla_n_s16): Likewise.
6051         (vmla_n_s32): Likewise.
6052         (vmla_n_f32): Likewise.
6053         (vmla_n_u16): Likewise.
6054         (vmla_n_u32): Likewise.
6055         (vmlaq_n_s16): Likewise.
6056         (vmlaq_n_s32): Likewise.
6057         (vmlaq_n_f32): Likewise.
6058         (vmlaq_n_u16): Likewise.
6059         (vmlaq_n_u32): Likewise.
6060         (vmlal_n_s16): Likewise.
6061         (vmlal_n_s32): Likewise.
6062         (vmlal_n_u16): Likewise.
6063         (vmlal_n_u32): Likewise.
6064         (vqdmlal_n_s16): Likewise.
6065         (vqdmlal_n_s32): Likewise.
6066         (vmls_n_s16): Likewise.
6067         (vmls_n_s32): Likewise.
6068         (vmls_n_f32): Likewise.
6069         (vmls_n_u16): Likewise.
6070         (vmls_n_u32): Likewise.
6071         (vmlsq_n_s16): Likewise.
6072         (vmlsq_n_s32): Likewise.
6073         (vmlsq_n_f32): Likewise.
6074         (vmlsq_n_u16): Likewise.
6075         (vmlsq_n_u32): Likewise.
6076         (vmlsl_n_s16): Likewise.
6077         (vmlsl_n_s32): Likewise.
6078         (vmlsl_n_u16): Likewise.
6079         (vmlsl_n_u32): Likewise.
6080         (vqdmlsl_n_s16): Likewise.
6081         (vqdmlsl_n_s32): Likewise.
6082
6083 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6084
6085         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
6086         Add cost of alu.arith in simple SImode case.
6087
6088 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
6089
6090         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
6091         registers.
6092
6093 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
6094
6095         * opts.c (finish_options): Disable aggressive opts for sanitizer.  
6096         (common_handle_option): Move code to finish_options.  
6097
6098 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
6099
6100         PR sanitizer/63802
6101         * stor-layout.c (min_align_of_type): Respect user alignment
6102         more.
6103
6104 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
6105
6106         * passes.c (remove_cgraph_node_from_order): New.
6107         (do_per_function_toporder): Register cgraph removal
6108         hook.
6109
6110 2014-11-17  Terry Guo  <terry.guo@arm.com>
6111
6112         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
6113         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
6114         (generic_vfp): Likewise.
6115         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
6116
6117 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
6118
6119         PR rtl-optimization/63906
6120         * lra-remat.c (operand_to_remat): Check SP and
6121         frame_pointer_required.
6122
6123 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
6124
6125         * doc/invoke.texi (floop-unroll-and-jam): Document
6126         (loop-unroll-jam-size): Likewise.
6127         (loop-unroll-jam-depth): Likewise.
6128         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
6129         (getScheduleForBandList): Replaced unsafe union_map reuse.
6130
6131 2014-11-17  Andrew Pinski  <apinski@cavium.com>
6132
6133         * config/aarch64/thunderx.md: Remove copyright which should not
6134         have been there.
6135
6136 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
6137             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6138
6139         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
6140         Altivec style vector loads that ignore the bottom 3 bits of the
6141         address.
6142         (rs6000_debug_addr_mask): New function to print the addr_mask
6143         values if debugging.
6144         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
6145         out addr_mask.
6146         (rs6000_setup_reg_addr_masks): Add support for Altivec style
6147         vector loads that ignore the bottom 3 bits of the address.  Allow
6148         pre-increment and pre-decrement on floating point, even if the
6149         -mupper-regs-{sf,df} options were used.
6150         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
6151         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
6152         placement for direct move support.
6153         (rs6000_option_override_internal): Add checks for -mupper-regs-df
6154         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
6155         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
6156         depending on the underlying cpu.
6157         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
6158         (rs6000_secondary_reload_toc_costs): Helper function to identify
6159         costs of a TOC load for secondary reload support.
6160         (rs6000_secondary_reload_memory): Helper function for secondary
6161         reload, to determine if a particular memory operation is directly
6162         handled by the hardware, or if it needs support from secondary
6163         reload to create a valid address.
6164         (rs6000_secondary_reload): Rework code, to be clearer.  If the
6165         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
6166         reload scalar values, since the FPR registers have D-form
6167         addressing. Move most of the code handling memory to the function
6168         rs6000_secondary_reload_memory, and use the reg_addr structure to
6169         determine what type of address modes are supported.  Print more
6170         debug information if -mdebug=addr.
6171         (rs6000_secondary_reload_inner): Rework entire function to be more
6172         general.  Use the reg_addr bits to determine what type of
6173         addressing is supported.
6174         (rs6000_preferred_reload_class): Rework.  Move constant handling
6175         into a single place.  Prefer using FLOAT_REGS for scalar floating
6176         point.
6177         (rs6000_secondary_reload_class): Use a FPR register to move a
6178         value from an Altivec register to a GPR, and vice versa.  Move VSX
6179         handling above traditional floating point.
6180
6181         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
6182         Delete some spaces in the constraints.
6183         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
6184         allow using FPR registers to load/store an Altivec register for
6185         scalar floating point types.
6186         (SF->SF move peephole2): Likewise.
6187         (DFmode splitter): Add a define_split to move floating point
6188         constants to the constant pool before register allocation.
6189         Normally constants are put into the pool immediately, but
6190         -ffast-math delays putting them into the constant pool for the
6191         reciprocal approximation support.
6192         (SFmode splitter): Likewise.
6193
6194         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
6195         (-mupper-regs-sf): Likewise.
6196
6197         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6198         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
6199         -mupper-regs-sf.
6200         (-mupper-regs): New combination option that sets -mupper-regs-sf
6201         and -mupper-regs-df by default if the cpu supports the instructions.
6202
6203         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6204         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
6205
6206         * config/rs6000/predicates.md (memory_fp_constant): New predicate
6207         to return true if the operand is a floating point constant that
6208         must be put into the constant pool, before register allocation
6209         occurs.
6210
6211         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
6212         -mupper-regs-df by default.
6213         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
6214         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
6215         various -mcpu=... options.
6216         (power7 cpu): Enable -mupper-regs-df by default.
6217
6218         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6219         -mupper-regs.
6220
6221 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6222
6223         * ira-conflicts.c (build_conflict_bit_table): Add the current
6224         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
6225
6226 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6227
6228         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
6229         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
6230         (devirtualization_time_bonus): Use it.
6231         (ipcp_discover_new_direct_edges): Likewise.
6232         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
6233         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
6234
6235 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6236
6237         * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
6238         to optimization_default_node.
6239
6240 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6241
6242         * cgraphunit.c (analyze_functions): Use opt_for_fn.
6243         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
6244
6245 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6246
6247         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
6248         (cgraph_node::cannot_return_p): Likewise.
6249         (cgraph_edge::cannot_lead_to_return_p): Likewise.
6250         (cgraph_edge::maybe_hot_p): Likewise.
6251
6252 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6253
6254         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
6255         (optimize_function_for_size_p): Likewise.
6256         (probably_never_executed): Likewise; replace cfun by fun.
6257
6258 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6259
6260         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
6261         variant reading from memory and assembling to ld1.
6262
6263         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6264         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6265         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6266         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6267         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6268         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6269         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6270
6271 2014-11-17  Jason Merrill  <jason@redhat.com>
6272
6273         * tree-inline.c (copy_fn): New.
6274         * tree-inline.h: Declare it.
6275
6276 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6277
6278         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6279         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6280         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6281         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6282         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6283         * config/aarch64/iterators.md (VD1): Remove.
6284
6285 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6286
6287         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6288         AARCH64_FL_CRYPTO from feature flags.
6289         (cortex-a57): Likewise.
6290         (cortex-a57.cortex-a53): Likewise.
6291
6292 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6293
6294         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6295         DECL_FUNCTION_SPECIFIC_TARGET.
6296         * i386.c (ix86_set_current_function): Handle explicit default options.
6297
6298 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6299
6300         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6301         instead of BNDmode.
6302         (expand_builtin_mempcpy_with_bounds): Likewise.
6303         (expand_builtin_memset_with_bounds): Likewise.
6304
6305 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6306
6307         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6308         ipa-ref.h, plugin-api.h.
6309         (get_string_length): Handle calls with bounds.
6310         (adjust_last_stmt): Likewise.
6311         (handle_builtin_strchr): Likewise.
6312         (handle_builtin_strcpy): Likewise.
6313         (handle_builtin_memcpy): Likewise.
6314         (handle_builtin_strcat): Likewise.
6315
6316 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6317
6318         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6319         (chkp_get_nochk_fndecl): New.
6320         (chkp_optimize_string_function_calls): New.
6321         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6322         * tree-cfg.h (insert_cond_bb): New.
6323         * tree-cfg.c (insert_cond_bb): New.
6324
6325 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6326
6327         * tree-core.h (built_in_class): Add builtin codes to be used
6328         by Pointer Bounds Checker for instrumented builtin functions.
6329         * tree-streamer-in.c: Include ipa-chkp.h.
6330         (streamer_get_builtin_tree): Created instrumented decl if
6331         required.
6332         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6333         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6334         function decls.
6335         (chkp_maybe_clone_builtin_fndecl): New.
6336         (chkp_maybe_create_clone): Support builtin function decls.
6337         (chkp_versioning): Clone builtin functions.
6338         * tree-chkp.c (chkp_instrument_normal_builtin): New.
6339         (chkp_add_bounds_to_call_stmt): Support builtin functions.
6340         (chkp_replace_function_pointer): Likewise.
6341         * builtins.c (expand_builtin_memcpy_args): New.
6342         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6343         (expand_builtin_memcpy_with_bounds): New.
6344         (expand_builtin_mempcpy_with_bounds): New.
6345         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
6346         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
6347         (expand_builtin_memset_with_bounds): New.
6348         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
6349         (expand_builtin_with_bounds): New.
6350         * builtins.h (expand_builtin_with_bounds): New.
6351         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
6352
6353 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
6354
6355         * gimple.h (gimple_set_visited, gimple_visited_p)
6356         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
6357         comments to these accessors.
6358
6359 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
6360
6361         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
6362         Set avr_log_details to "all".
6363
6364 2014-11-17  Richard Biener  <rguenther@suse.de>
6365
6366         PR middle-end/63898
6367         * match.pd: Guard X / CST -> X * CST' transform against
6368         zero CST.
6369
6370 2014-11-17  Terry Guo  <terry.guo@arm.com>
6371
6372         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
6373         format.
6374
6375 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6376
6377         * ifcvt.c (HAVE_cbranchcc4): Define.
6378         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6379         Use HAVE_cbranchcc4.
6380
6381 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6382
6383         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
6384         aarch64_convert_mode, aarch64_gen_ccmp_first,
6385         aarch64_gen_ccmp_next): New functions.
6386         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
6387
6388 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6389
6390         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
6391         * aarch64.c (aarch64_nzcv_codes): New data.
6392         (aarch64_ccmp_mode_to_code): New.
6393         (aarch64_print_operand): Output nzcv.
6394         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
6395         New patterns.
6396         (cstore<mode>4): Handle ccmp_cc_register.
6397         * config/aarch64/predicates.md (const0_operand): New.
6398
6399 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6400
6401         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
6402         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
6403         extacted from aarch64_get_condition_code.
6404         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
6405         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
6406
6407 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6408
6409         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
6410         aarch64_ccmp_operand): New constraints.
6411
6412 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6413
6414         * Makefile.in: Add ccmp.o.
6415         * ccmp.c: New file.
6416         * ccmp.h: New file.
6417         * expr.c: include "ccmp.h"
6418         (expand_cond_expr_using_cmove): Handle VOIDmode.
6419         (expand_expr_real_1): Try to expand ccmp.
6420
6421 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6422
6423         * cfgexpand.c (expand_gimple_cond): Check ccmp.
6424         * expmed.c (emit_cstore): Make it global.
6425         * expmed.h: #include "insn-codes.h"
6426         (emit_cstore): New prototype.
6427         * expr.c (expand_operands): Make it global.
6428         * expr.h (expand_operands): New prototype.
6429         * optabs.c (get_rtx_code): Make it global.
6430         * optabs.h (get_rtx_code): New prototype.
6431
6432 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6433
6434         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
6435         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6436         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6437
6438 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
6439
6440         PR middle-end/63790
6441         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
6442         Always combine comparisons or conversions from booleans.
6443
6444 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6445
6446         * ipa-polymorphic-call.c
6447         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
6448         (ipa_polymorphic_call_context::meet_speculation_with): New function.
6449         (ipa_polymorphic_call_context::combine_with): Handle types in construction
6450         better.
6451         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
6452         speculation.
6453         (ipa_polymorphic_call_context::meet_with): New function.
6454         * cgraph.h (class ipa_polymorphic_call_context): Add
6455         meet_width, meet_speculation_with; constify speculation_consistent_p.
6456         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
6457         context.
6458         (propagate_context_accross_jump_function): Likewise; be more cureful.
6459         about set_contains_variable.
6460         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
6461         (find_more_scalar_values_for_callers_subset): Fix.
6462         (find_more_contexts_for_caller_subset): Perform meet operation.
6463
6464 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6465
6466         * passes.c (execute_one_pass): Do not apply all transforms prior
6467         every simple IPA pass.
6468         * cgraphunit.c: Do not include fibheap.h
6469         (expand_thunk): Use get_untransformed_body.
6470         (cgraph_node::expand): Likewise.
6471         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
6472         * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
6473         (cgraph_node::get_untransformed_body): Break out from ...
6474         (cgraph_node::get_body): ... here; add code to apply all transforms.
6475         * cgraph.h (cgraph_node): Add get_untransformed_body.
6476         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
6477         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6478         * tree-inline.c (expand_call_inline): LIkewise.
6479         * i386.c (ix86_reset_to_default_globals): Break out from ...
6480         (ix86_set_current_function): ... here;
6481         (ix86_reset_previous_fndecl): Use it.
6482         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
6483
6484 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
6485
6486         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
6487         * doc/tm.texi: Regenerate.
6488
6489 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
6490
6491         * config/sh/sh.c: Do not include algorithm.
6492         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
6493         to swap values.
6494         (sh_emit_compare_and_branch): Ditto.
6495         (sh_emit_compare_and_set): Ditto.
6496         * config/sh/sh.md (replacement peephole2): Ditto.
6497         (cstore4_media): Ditto.
6498         (*fmasf4): Ditto.
6499
6500 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6501
6502         * lra-remat.c (cand_transf_func): Process regno for
6503         rematerialization too.
6504         * lra.c (lra): Switch on rematerialization pass.
6505
6506 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6507
6508         * lra.c (lra): Switch off rematerialization pass.
6509
6510 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
6511
6512         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
6513         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
6514         instead of builtins.
6515         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
6516         typedefs.
6517         (_mm_sqrt_sd): Fix comment.
6518         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6519         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6520         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6521         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
6522         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
6523         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
6524         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
6525         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
6526         Use vector extensions instead of builtins.
6527         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
6528         _mm_mullo_epi32): Likewise.
6529         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
6530         New typedefs.
6531         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
6532         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
6533         Use vector extensions instead of builtins.
6534         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
6535         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
6536         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
6537         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
6538         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
6539         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
6540         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
6541         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
6542         New typedefs.
6543         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
6544         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
6545         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
6546         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
6547         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
6548         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
6549         _mm512_div_ps): Use vector extensions instead of builtins.
6550         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
6551         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
6552         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
6553         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
6554         Likewise.
6555
6556 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
6557
6558         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
6559         * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
6560         * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
6561         * opth-gen.awk: Add prototype of cl_optimization_hash.
6562         * tree-streamer-in.c (unpack_ts_optimization): Remove.
6563         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
6564         * tree-streamer-out.c (pack_ts_optimization): Remove.
6565         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
6566
6567 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
6568
6569         * common.opt (flag_loop_unroll_and_jam): New flag.
6570         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
6571         jam flag.
6572         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
6573         * graphite-poly.h (struct poly_bb:map_sepclass): New field
6574         * graphite-poly.c (new_poly_bb): Initialization for new field.
6575         (apply_poly_transforms): Support for unroll and jam flag.
6576         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
6577         separation class.
6578         (generate_luj_sepclass_opt): Build the separation class option.
6579         (generate_luj_options): Set unroll and jam options.
6580         (set_options): Support for unroll and jam options.
6581         (scop_to_isl_ast): Likewise
6582         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
6583         computing the separating class map.
6584         (optimize_isl): Support for the separating class map.
6585         (apply_schedule_map_to_scop): Likewise.
6586         (getScheduleMap): Likewise.
6587         (getScheduleForBand): Likewise.
6588         (getScheduleForBandList): Likewise.
6589         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
6590         * toplev.c (process_options) Likewise.
6591
6592 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6593
6594         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
6595         from...
6596         (replace_loop_annotate): ...here.  Call it on the header and on the
6597         latch block, if any.  Restore proper behavior of final cleanup.
6598
6599 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6600
6601         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
6602         for max-completely-peeled-insns limit.
6603
6604 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6605
6606         * ipa-prop.h (ipa_known_type_data): Remove.
6607         (ipa_binfo_from_known_type_jfunc): Remove.
6608
6609 2014-11-14  Andrew Pinski  <apinski@cavium.com>
6610
6611         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
6612         over to thunderx.
6613         * config/aarch64/aarch64.md: Include thunderx.md.
6614         (generic_sched): Set to no for thunderx.
6615         * config/aarch64/thunderx.md: New file.
6616
6617 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6618
6619         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
6620         tests for 0.0.
6621
6622         * config/rs6000/vector.md (VEC_R): Move secondary reload support
6623         insns to rs6000.md from vector.md.
6624         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
6625         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
6626         (vec_reload_and_plus_<mptrsize>): Likewise.
6627
6628         * config/rs6000/rs6000.md (Fa): New mode attribute to give
6629         constraint for the Altivec registers for a type.
6630         (RELOAD): New mode iterator for all of the types that have
6631         secondary reload address support to load up a base register.
6632         (extendsfdf2_fpr): Use correct constraint.
6633         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
6634         instruction.
6635         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
6636         Generate the non-VSX instruction if all registers were FPRs.  Do
6637         not use the patterns in vsx.md for scalar operations.
6638         (floatsi<mode>2_lfiwax_mem): Likewise.
6639         (floatunssi<mode>2_lfiwzx): Likewise.
6640         (floatunssi<mode>2_lfiwzx_mem): Likewise.
6641         (fix_trunc<mode>di2_fctidz): Likewise.
6642         (fixuns_trunc<mode>di2_fctiduz): Likewise.
6643         (fctiwz_<mode>): Likewise.
6644         (fctiwuz_<mode>): Likewise.
6645         (friz): Likewise.
6646         (floatdidf2_fpr): Likewise.
6647         (floatdidf2_mem): Likewise.
6648         (floatunsdidf2): Likewise.
6649         (floatunsdidf2_fcfidu): Likewise.
6650         (floatunsdidf2_mem): Likewise.
6651         (floatdisf2_fcfids): Likewise.
6652         (floatdisf2_mem): Likewise.
6653         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
6654         it more obvious that the code is for pre-ISA 2.06 machines.
6655         (floatdisf2_internal2): Likewise.
6656         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
6657         Generate the non-VSX instruction if all registers were FPRs.  Do
6658         not use the patterns in vsx.md for scalar operations.
6659         (floatunsdisf2_mem): Likewise.
6660         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
6661         handlers here from vector.md, and expand the types we generate
6662         reload handlers for.
6663         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
6664         (vec_reload_and_plus_<mptrsize>): Likewise.
6665
6666         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
6667         vector forms of the instructions.  Move VSX scalar forms to
6668         rs6000.md, and add support for -mupper-regs-sf.
6669         (vsx_floatuns<VSi><mode>2): Likewise.
6670         (vsx_fix_trunc<mode><VSi>2): Likewise.
6671         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
6672         (vsx_float_fix_<mode>2): Delete DF version, rename to
6673         vsx_float_fix_v2df2.
6674         (vsx_float_fix_v2df2): Likewise.
6675
6676 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6677
6678         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
6679         (ipa_pass_through_data): Removed field type_preserved.
6680         (ipa_ancestor_jf_data): removed fields type and type_preserved.
6681         (ipa_jump_func): Removed field known_type.
6682         (ipa_get_jf_known_type_offset): Removed.
6683         (ipa_get_jf_known_type_base_type): Likewise.
6684         (ipa_get_jf_known_type_component_type): Likewise.
6685         (ipa_get_jf_ancestor_type): Likewise.
6686         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
6687         (ipa_get_jf_pass_through_result): Likewise.
6688         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
6689         (values_equal_for_ipcp_p): Removed BINFO handling.
6690         (ipa_get_indirect_edge_target_1): Updated comment.
6691         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
6692         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
6693         (ipa_set_jf_known_type): Removed.
6694         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
6695         all callers.
6696         (ipa_set_jf_arith_pass_through): Likewise.
6697         (ipa_set_ancestor_jf): Likewise.
6698         (ipa_binfo_from_known_type_jfunc): Removed.
6699         (prop_type_change_info): Removed fields known_current_type and
6700         multiple_types_encountered.
6701         (extr_type_from_vtbl_ptr_store): Removed.
6702         (check_stmt_for_type_change): Do not attempt to identify changed type.
6703         (detect_type_change_from_memory_writes): Do not set the removed fields,
6704         always set jfunc to unknown.
6705         (compute_complex_assign_jump_func): Do not detect dynamic type change.
6706         (compute_complex_ancestor_jump_func): Likewise.
6707         (compute_known_type_jump_func): Removed.
6708         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
6709         change.  Do not comute known type jump functions.
6710         (combine_known_type_and_ancestor_jfs): Removed.
6711         (update_jump_functions_after_inlining): Removed handling of
6712         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
6713         (ipa_write_jump_function): Do not stream removed fields or known type
6714         jump functions.
6715         (ipa_read_jump_function): Likewise.
6716
6717 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
6718
6719         * lra-int.h (lra_create_live_ranges): Add parameter.
6720         * lra-lives.c (temp_bitmap): Move higher.
6721         (initiate_live_solver): Move temp_bitmap initialization into
6722         lra_live_ranges_init.
6723         (finish_live_solver): Move temp_bitmap clearing into
6724         live_ranges_finish.
6725         (process_bb_lives): Add parameter.  Use it to control live info
6726         update and dead insn elimination.  Pass it to mark_regno_live and
6727         mark_regno_dead.
6728         (lra_create_live_ranges): Add parameter.  Pass it to
6729         process_bb_lives.
6730         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
6731         initiate_live_solver and finish_live_solver.
6732         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
6733         Use temp_bitmap to update avail_cands.
6734         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
6735         check with lra_need_for_spill_p after live range pass.  Switch on
6736         rematerialization pass.
6737
6738 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6739
6740         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
6741         agg_preserved flag instead.
6742         (ipa_get_jf_ancestor_type_preserved): Likewise.
6743         (ipa_node_params): Rename known_vals to known_csts, update all users.
6744         New field known_contexts.
6745         (ipa_get_indirect_edge_target): Update prototype.
6746         (ipcp_poly_ctx_values_pool): Declare.
6747         (ipa_context_from_jfunc): Likewise.
6748         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
6749         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
6750         parameter newline of method dump.
6751         * ipa-cp.c (ctxlat): New field.
6752         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
6753         (ipcp_poly_ctx_values_pool):New variable.
6754         (ipa_get_poly_ctx_lat): New function.
6755         (print_ipcp_constant_value): New overloaded function for contexts.
6756         (print_all_lattices): Also print contexts.
6757         (ipa_topo_info): New field contexts;
6758         (set_all_contains_variable): Also set the flag in the context lattice.
6759         (initialize_node_lattices): Likewise for flag bottom.
6760         (ipa_get_jf_ancestor_result): Removed BINFO handling.
6761         (ipa_value_from_jfunc): Likewise.
6762         (ipa_context_from_jfunc): New function.
6763         (values_equal_for_ipcp_p): New overloaded function for contexts.
6764         (allocate_and_init_ipcp_value): Construct the value.
6765         (allocate_and_init_ipcp_value): New overloaded function for contexts.
6766         (propagate_scalar_accross_jump_function): Removed handling of
6767         KNOWN_TYPE jump functions.
6768         (propagate_context_accross_jump_function): New function.
6769         (propagate_constants_accross_call): Also propagate contexts.
6770         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
6771         (ipa_get_indirect_edge_target): Likewise.
6772         (devirtualization_time_bonus): Likewise.
6773         (gather_context_independent_values): Create and populate known_contexts
6774         vector rather than known_binfos.
6775         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
6776         (estimate_local_effects): Likewise.
6777         (add_all_node_vals_to_toposort): Also add contexts to teir topological
6778         sort.
6779         (ipcp_propagate_stage): Also propagate effects of contexts.
6780         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
6781         ipa_get_indirect_edge_target_1.
6782         (cgraph_edge_brings_value_p): New overloaded function for contexts.
6783         (create_specialized_node): Work on contexts rather than BINFOs.
6784         (find_more_contexts_for_caller_subset): New function.
6785         (known_contexts_useful_p): New function.
6786         (copy_useful_known_contexts): Likewise.
6787         (modify_known_vectors_with_val): Likewise.
6788         (ipcp_val_in_agg_replacements_p): Renamed to
6789         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
6790         non-aggregate.
6791         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
6792         (decide_about_value): Work on contexts rather than BINFOs.
6793         (decide_whether_version_node): Likewise.
6794         (ipcp_driver): Initialize the new alloc pool.
6795         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
6796         printing of edge contexts.
6797         (ipa_set_ancestor_jf): Replace assert with conditional setting of
6798         type_preserved to false.
6799         (update_jump_functions_after_inlining): Use access function instead of
6800         reading agg_preserved directly.  Store combined context in the ancestor
6801         case.
6802         (try_make_edge_direct_virtual_call): Work on contexts rather than
6803         BINFOs.
6804         (update_indirect_edges_after_inlining): Get context from
6805         ipa_context_from_jfunc.
6806         (ipa_free_node_params_substructures): Free also known_contexts.
6807         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
6808         (ipa_free_all_structures_after_iinln): Likewise.
6809         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
6810         contexts rather than BINFOs.
6811         (estimate_edge_devirt_benefit): Likewise.
6812         (estimate_edge_size_and_time): Likewise.
6813         (estimate_calls_size_and_time): Likewise.
6814         (estimate_node_size_and_time): Likewise.
6815         (estimate_ipcp_clone_size_and_time): Likewise.
6816         (do_estimate_edge_time): Likewise.
6817         (do_estimate_edge_size): Likewise.
6818         (do_estimate_edge_hints): Likewise.
6819         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
6820         parameter newline, ouput newline only when it is set.
6821         (ipa_polymorphic_call_context::equal_to): New method.
6822
6823 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6824
6825         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
6826         users converted to the same specialization as the using class/function
6827         or specialization on tree.
6828         (ipcp_value): Likewise.
6829         (ipcp_lattice): Likewise.
6830         (ipcp_agg_lattice): Now derived from tree specialization of
6831         ipcp_lattice.
6832         (values_topo): Moved to new class value_topo_info.
6833         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
6834         Updated all callers.
6835         (print_lattice): Turned into ipcp_lattice::print.  Updated all
6836         callers.
6837         (value_topo_info): New class template.
6838         (ipa_topo_info): New field constants.  New constructor.
6839         (build_toporder_info): Do not clear stack_top, only checkign assert
6840         it.
6841         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
6842         Updated all callers.
6843         (set_lattice_contains_variable): Turned into
6844         ipcp_lattice::set_contains_variable.  Updated all callers.
6845         (add_value_source): Turned into ipcp_value::add_source.  Updated all
6846         callers.
6847         (allocate_and_init_ipcp_value): New function.
6848         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
6849         parameter got default a value.  Updated all callers.
6850         (add_scalar_value_to_lattice): Removed, users converted to using
6851         ipcp_lattice::add_value with default value of the last parameter.
6852         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
6853         all callers.
6854         (propagate_effects): Made method of value_topo_info.
6855         (cgraph_edge_brings_value_p): Now a template function.
6856         (get_info_about_necessary_edges): Likewise.
6857         (gather_edges_for_value): Likewise.
6858         (perhaps_add_new_callers): Likewise.
6859         (decide_about_value): Likewise.
6860         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
6861
6862 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6863
6864         * doc/install.texi (--with-diagnostics-color=): Document.
6865
6866         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
6867         IFN_GOMP_SIMD_LANE without lhs as useless.
6868
6869         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
6870         (varying_state): Add true for can_free.
6871         (check_call): For builtin or internal !nonfreeing_call_p set
6872         local->can_free.
6873         (check_stmt): For asm volatile and asm with "memory" set
6874         local->can_free.
6875         (analyze_function): Clear local->can_free initially, continue
6876         calling check_stmt until all flags are computed, dump can_free
6877         flag.
6878         (pure_const_write_summary): Write can_free flag.
6879         (pure_const_read_summary): Read it back.
6880         (propagate_pure_const): Propagate also can_free flag, set
6881         w->nonfreeing_fn if it is false after propagation.
6882         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
6883         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
6884         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
6885         Also return true for IFN_ABNORMAL_DISPATCHER.
6886         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
6887         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
6888         (input_overwrite_node): Read it back.
6889
6890 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6891             Marek Polacek  <polacek@redhat.com>
6892
6893         * sanopt.c: Include tree-ssa-operands.h.
6894         (struct sanopt_info): Add has_freeing_call_p,
6895         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
6896         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
6897         being_visited_p fields.
6898         (struct sanopt_ctx): Add asan_check_map field.
6899         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
6900         maybe_optimize_asan_check_ifn): New functions.
6901         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
6902         internal calls.
6903         (pass_sanopt::execute): Call sanopt_optimize even for
6904         -fsanitize=address.
6905         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
6906         internal calls.
6907
6908 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6909
6910         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
6911         'if (extract_scalar_result)' to the only place that it is true.
6912
6913 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
6914
6915         * config.gcc (default_gnu_indirect_function): Set to yes
6916         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
6917         Android nor uclibc.
6918
6919 2014-11-14  Felix Yang  <felix.yang@huawei.com>
6920             Jiji Jiang  <jiangjiji@huawei.com>
6921
6922         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
6923         VALL mode iterator instead of VALLDI.
6924
6925 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6926
6927         * optc-save-gen.awk: Output cl_target_option_eq,
6928         cl_target_option_hash, cl_target_option_stream_out,
6929         cl_target_option_stream_in functions.
6930         * opth-gen.awk: Output prototypes for
6931         cl_target_option_eq and cl_target_option_hash.
6932         * lto-streamer.h (cl_target_option_stream_out,
6933         cl_target_option_stream_in): Declare.
6934         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
6935         (cl_option_hash_eq): Use cl_target_option_eq.
6936         * tree-streamer-in.c (unpack_value_fields): Stream in
6937         TREE_TARGET_OPTION.
6938         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
6939         DECL_FUNCTION_SPECIFIC_TARGET.
6940         (hash_tree): Hash TREE_TARGET_OPTION; visit
6941         DECL_FUNCTION_SPECIFIC_TARGET.
6942         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
6943         TS_TARGET_OPTION.
6944         (streamer_write_tree_body): Output TS_TARGET_OPTION.
6945
6946 2014-11-14  Richard Biener  <rguenther@suse.de>
6947
6948         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
6949         valueization hook defaulted to no_follow_ssa_edges.
6950         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
6951         2nd valueization hook to gimple_simplify.
6952         * tree-ssa-ccp.c (valueize_op_1): New function to be
6953         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6954         (ccp_fold): Adjust.
6955         * tree-vrp.c (vrp_valueize_1): New function to be
6956         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6957         (vrp_visit_assignment_or_call): Adjust.
6958
6959 2014-11-14  Marek Polacek  <polacek@redhat.com>
6960
6961         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
6962         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
6963         folding with TYPE_OVERFLOW_SANITIZED.
6964
6965 2014-11-14  Marek Polacek  <polacek@redhat.com>
6966
6967         PR sanitizer/63839
6968         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
6969         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
6970         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
6971         Define.
6972         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
6973         instrument BUILT_IN_UNREACHABLE here.
6974         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
6975         const.
6976         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
6977         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
6978         SANITIZE_UNREACHABLE.
6979         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
6980         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
6981
6982 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6983
6984         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
6985         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
6986
6987 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6988
6989         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
6990         BYTES_BIG_ENDIAN.
6991         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
6992         vect_create_epilog_for_reduction): Likewise.
6993         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
6994
6995 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6996
6997         PR target/63724
6998         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
6999         numerical immediate handling to...
7000         (aarch64_internal_mov_immediate): ...this. New.
7001         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
7002         (aarch64_mov_operand_p): Relax predicate.
7003         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
7004         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
7005         for 'n'.
7006         (*movdi_aarch64): Likewise.
7007
7008 2014-11-14  Richard Biener  <rguenther@suse.de>
7009
7010         * match.pd: Implement more binary patterns exercised by
7011         fold_stmt.
7012         * fold-const.c (sing_bit_p): Export.
7013         (exact_inverse): Likewise.
7014         (fold_binary_loc): Remove patterns here.
7015         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
7016         * fold-const.h (sing_bit_p): Declare.
7017         (exact_inverse): Likewise.
7018
7019 2014-11-14  Marek Polacek  <polacek@redhat.com>
7020
7021         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
7022
7023 2014-11-14  Richard Biener  <rguenther@suse.de>
7024
7025         * genmatch.c (add_operator): Allow CONSTRUCTOR.
7026         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
7027         (parser::parse_op): Allow to iterate over predicates.
7028
7029 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
7030
7031         * configure.ac (--with-diagnostics-color): New configure
7032         option, default to --with-diagnostics-color=auto.
7033         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
7034         to determine -fdiagnostics-color= option default.
7035         * doc/invoke.texi (-fdiagnostics-color=): Document new
7036         default.
7037         * configure: Regenerated.
7038         * config.in: Regenerated.
7039
7040 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7041
7042         PR tree-optimization/63841
7043         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7044
7045 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
7046
7047         * timevar.def (TV_SCHED_FUSION): New time var.
7048         * passes.def (pass_sched_fusion): New pass.
7049         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
7050         (extract_base_offset_in_addr, fusion_load_store): New.
7051         (arm_sched_fusion_priority): New.
7052         (arm_option_override): Disable scheduling fusion by default
7053         on non-armv7 processors or ldrd/strd isn't preferred.
7054         * sched-int.h (struct _haifa_insn_data): New field.
7055         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
7056         * sched-rgn.c (rest_of_handle_sched_fusion): New.
7057         (pass_data_sched_fusion, pass_sched_fusion): New.
7058         (make_pass_sched_fusion): New.
7059         * haifa-sched.c (sched_fusion): New.
7060         (insn_cost): Handle sched_fusion.
7061         (priority): Handle sched_fusion by calling target hook.
7062         (enum rfs_decision): New enum value.
7063         (rfs_str): New element for RFS_FUSION.
7064         (rank_for_schedule): Support sched_fusion.
7065         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
7066         (schedule_block, fix_tick_ready): Handle sched_fusion.
7067         * common.opt (flag_schedule_fusion): New.
7068         * tree-pass.h (make_pass_sched_fusion): New.
7069         * target.def (fusion_priority): New.
7070         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
7071         * doc/tm.texi: Regenerated.
7072         * doc/invoke.texi (-fschedule-fusion): New.
7073
7074 2014-11-13  Rong Xu  <xur@google.com>
7075
7076         PR debug/63581
7077         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
7078         footer, instead of unconditionally overwritten.
7079
7080 2014-11-14  Martin Jambor  <mjambor@suse.cz>
7081
7082         * cgraph.h (clear_outer_type): Make public.  Fix comment.
7083         * ipa-devirt.c (possible_polymorphic_call_targets): Use
7084         clear_outer_type when resetting the context.
7085
7086 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
7087
7088         PR bootstrap/63853
7089         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
7090         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
7091
7092 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7093
7094         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
7095         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
7096         * tree-inline.c (estimate_operator_cost): Likewise.
7097         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
7098         Likewise.
7099
7100         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
7101         against VEC_RSHIFT_EXPR.
7102
7103         * optabs.h (expand_vec_shift_expr): Remove.
7104         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
7105         (expand_vec_shift_expr): Remove.
7106         * tree.def (VEC_RSHIFT_EXPR): Remove
7107
7108 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7109
7110         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
7111         (shift_amt_for_vec_perm_mask): New.
7112         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
7113         and mask appropriate.
7114
7115         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
7116         (have_whole_vector_shift): New.
7117         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
7118         looking for vec_shr_optab.
7119         (vect_create_epilog_for_reduction): Likewise; also rename local variable
7120         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
7121         instead of VEC_RSHIFT_EXPRs.
7122
7123         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
7124
7125 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
7126
7127         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
7128         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
7129
7130         * tree_vec_data_refs.c (vect_permute_load_chain,
7131         vec_permute_store_chain, vec_shift_permute_load_chain): Replace
7132         vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
7133
7134         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
7135         Likewise.
7136         (vect_gen_perm_mask_checked): New.
7137         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
7138         (vect_gen_perm_mask_any): ...this.
7139         (perm_mask_for_reverse): Call can_vec_perm_p and
7140         vect_gen_perm_mask_checked.
7141
7142 2014-11-13  Felix Yang  <felix.yang@huawei.com>
7143
7144         * ipa-utils.h: Fix typo in comments.
7145         * ipa-profile.c: Likewise.
7146         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
7147
7148 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7149
7150         PR tree-optimization/63841
7151         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7152
7153 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7154
7155         PR tree-optimization/63841
7156         * tree.c (initializer_zerop): A clobber does not zero initialize.
7157
7158 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7159
7160         * optabs.c (prepare_operand): Gracefully fail if the mode of X
7161         does not match the operand mode expected by the insn pattern.
7162
7163 2014-11-13  Richard Biener  <rguenther@suse.de>
7164
7165         * match.pd: Add tcc_comparison, inverted_tcc_comparison
7166         and inverted_tcc_comparison_with_nans operator lists.
7167         Use tcc_comparison in the truth_valued_p predicate definition.
7168         Restrict logical_inverted_value with bit_xor to integral types.
7169         Build a boolean true for simplifying x |^ !x because of
7170         vector types.  Implement patterns from forward_propagate_comparison
7171         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
7172         (get_prop_dest_stmt): Likewise.
7173         (pass_forwprop::execute): Do not call it.
7174         * fold-const.c (fold_unary_loc): Remove the pattern here.
7175
7176 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7177             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7178
7179         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
7180         tmake_file.
7181         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
7182         accelerator compiler.
7183         * config/i386/intelmic-mkoffload.c: New file.
7184         * config/i386/t-intelmic: Ditto.
7185
7186 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7187             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7188             Ilya Verbin  <ilya.verbin@intel.com>
7189
7190         * common.opt (foffload, foffload-abi): New options.
7191         * config/i386/i386.c (ix86_offload_options): New static function.
7192         (TARGET_OFFLOAD_OPTIONS): Define.
7193         * coretypes.h (enum offload_abi): New enum.
7194         * doc/tm.texi: Regenerate.
7195         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
7196         * gcc.c (offload_targets): New static variable.
7197         (handle_foffload_option): New static function.
7198         (driver_handle_option): Handle OPT_foffload_.
7199         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
7200         according to offload_targets.
7201         * hooks.c (hook_charptr_void_null): New hook.
7202         * hooks.h (hook_charptr_void_null): Declare.
7203         * lto-opts.c: Include lto-section-names.h.
7204         (lto_write_options): Append options from target offload_options hook and
7205         store them to offload_lto section.  Do not store target-specific,
7206         driver and diagnostic options in offload_lto section.
7207         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
7208         OPT_foffload_abi_.
7209         (append_compiler_options, append_linker_options)
7210         (append_offload_options): New static functions.
7211         (compile_offload_image): Add new arguments with options.
7212         Call append_compiler_options and append_offload_options.
7213         (compile_images_for_offload_targets): Add new arguments with options.
7214         (find_and_merge_options): New static function.
7215         (run_gcc): Outline options handling into the new functions:
7216         find_and_merge_options, append_compiler_options, append_linker_options.
7217         * opts.c (common_handle_option): Don't handle OPT_foffload_.
7218         Forbid OPT_foffload_abi_ for non-offload compiler.
7219         * target.def (offload_options): New target hook.
7220
7221 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7222             Bernd Schmidt  <bernds@codesourcery.com>
7223             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7224             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7225
7226         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
7227         (process_command): Tweak path construction for the possibility
7228         of being configured as an offload compiler.
7229         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
7230         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
7231         (driver::set_up_specs): Tweak path construction for the possibility of
7232         being configured as an offload compiler.
7233         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
7234         (offload_names, offloadbegin, offloadend): New static variables.
7235         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
7236         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
7237         New static functions.
7238         (run_gcc): Determine whether offload sections are present.  If so, run
7239         compile_images_for_offload_targets and return the names of new generated
7240         objects to linker.  If there are offload sections, but no LTO sections,
7241         then return the copies of input objects without link-time recompilation.
7242
7243 2014-11-13  Richard Biener  <rguenther@suse.de>
7244
7245         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
7246
7247 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7248             Bernd Schmidt  <bernds@codesourcery.com>
7249             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7250             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7251
7252         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
7253         * cgraphunit.c: Include omp-low.h.
7254         * doc/tm.texi: Regenerate.
7255         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
7256         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
7257         * lto-cgraph.c (output_offload_tables): New function.
7258         (input_offload_tables): Likewise.
7259         * lto-section-in.c (lto_section_name): Add "offload_table".
7260         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
7261         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7262         * lto-streamer-out.c (lto_output): Call output_offload_tables.
7263         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7264         (output_offload_tables, input_offload_tables): Declare.
7265         * omp-low.c: Include common/common-target.h and lto-section-names.h.
7266         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7267         (expand_omp_target): Add child_fn into offload_funcs vector.
7268         (add_decls_addresses_to_decl_constructor): New function.
7269         (omp_finish_file): Likewise.
7270         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7271         * target.def (record_offload_symbol): New DEFHOOK.
7272         * toplev.c: Include omp-low.h.
7273         (compile_file): Call omp_finish_file.
7274         * varpool.c: Include omp-low.h.
7275         (varpool_node::get_create): Add decl into offload_vars vector.
7276
7277 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7278             Ilya Tocar  <ilya.tocar@intel.com>
7279             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7280             Bernd Schmidt  <bernds@codesourcery.com>
7281
7282         * cgraph.c: Include context.h.
7283         (cgraph_node::create): Set node->offloadable and g->have_offload if
7284         decl have "omp declare target" attribute.
7285         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7286         * cgraphunit.c: Include lto-section-names.h.
7287         (ipa_passes): Call ipa_write_summaries if there is something to write to
7288         OFFLOAD_SECTION_NAME_PREFIX sections.
7289         (symbol_table::compile): Set flag_generate_lto if there is something to
7290         offload.
7291         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7292         * context.c (gcc::context::context): Initialize have_offload with false.
7293         * context.h (class context): Add have_offload flag.
7294         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7295         flag_generate_lto.
7296         (inline_free_summary): Always remove hooks.
7297         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7298         from non-offloadable nodes while streaming a node into offload section.
7299         (reachable_from_other_partition_p): Likewise.
7300         (select_what_to_stream): New function.
7301         (compute_ltrans_boundary): Do not call
7302         lto_set_symtab_encoder_in_partition if the node should not be streamed.
7303         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7304         (section_name_prefix): Declare.
7305         * lto-streamer.c (section_name_prefix): New variable.
7306         (lto_get_section_name): Use section_name_prefix instead of
7307         LTO_SECTION_NAME_PREFIX.
7308         * lto-streamer.h (select_what_to_stream): Declare.
7309         * omp-low.c: Include context.h.
7310         (is_targetreg_ctx): New function.
7311         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7312         (create_omp_child_function, check_omp_nesting_restrictions): Use new
7313         is_targetreg_ctx function.  Replace usage of "omp declare target"
7314         attribute with a cgraph_node flag offloadable.
7315         (expand_omp_target): Set mark_force_output for offloadable functions.
7316         (lower_omp_critical): Set offloadable flag for omp critical symbol.
7317         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
7318         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
7319         if the node should not be streamed out.
7320         * tree-pass.h (ipa_write_summaries): New bool argument.
7321         * varpool.c: Include context.h.
7322         (varpool_node::get_create): Set node->offloadable and g->have_offload if
7323         decl have "omp declare target" attribute.
7324
7325 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7326             Thomas Schwinge  <thomas@codesourcery.com>
7327             Ilya Verbin  <ilya.verbin@intel.com>
7328             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7329
7330         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7331         (enable_as_accelerator): New variables substituted by configure.
7332         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7333         being configured as an offload compiler.
7334         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7335         ACCEL_DIR_SUFFIX.
7336         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7337         install for the offload compiler.
7338         * config.in: Regenerate.
7339         * configure: Regenerate.
7340         * configure.ac (real_target_noncanonical, accel_dir_suffix)
7341         (enable_as_accelerator): Compute new variables.
7342         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
7343         (OFFLOAD_TARGETS): List of target names suitable for offloading.
7344         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
7345         * doc/install.texi (Options specification): Document
7346         --enable-as-accelerator-for and --enable-offload-targets.
7347
7348 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
7349
7350         PR tree-optimization/63828
7351         * ipa-polymorphic-call.c (possible_placement_new): Check
7352         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
7353
7354 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7355
7356         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
7357         (REVERSIBLE_CC_MODE): Fix example.
7358         (REVERSE_CONDITION): Fix typo.
7359         * doc/tm.texi: Regenerate.
7360
7361 2014-11-13  Tom de Vries  <tom@codesourcery.com>
7362
7363         * omp-low.c (pass_data_expand_omp): Set properties_provided to
7364         PROP_gimple_eomp.
7365         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
7366         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
7367         exit if gate is false.
7368         (pass_data pass_data_expand_omp_ssa): New pass_data.
7369         (class pass_expand_omp_ssa): New pass.
7370         (make_pass_expand_omp_ssa): New function.
7371         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
7372         instead of NEXT_PASS.
7373         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
7374         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
7375         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
7376         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
7377         cfun->omp_expand_needed.
7378         * tree-pass.h: Add define PROP_gimple_eomp.
7379         (make_pass_expand_omp_ssa): Declare.
7380
7381 2014-11-13  Marek Polacek  <polacek@redhat.com>
7382
7383         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
7384         * fold-const.c (fold_binary_loc): Use it.
7385         * match.pd: Likewise.
7386
7387 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
7388
7389         * lra-lives.c (struct bb_data): Rename to ...
7390         (struct bb_data_pseudos): ... this.
7391         (initiate_live_solver): Update struct name.
7392
7393 2014-11-13  Richard Biener  <rguenther@suse.de>
7394
7395         * match.pd: Implement conditional expression patterns.
7396         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
7397         them here.
7398         (combine_cond_exprs): Remove.
7399         (pass_forwprop::execute): Do not call combine_cond_exprs.
7400         * fold-const.c (fold_ternary_loc): Remove patterns here.
7401         (pedantic_omit_one_operand_loc): Remove.
7402
7403 2014-12-13  Richard Biener  <rguenther@suse.de>
7404
7405         PR middle-end/61559
7406         * match.pd: Implement bswap patterns for transforms checked by
7407         gcc.dg/builtin-bswap-8.c.
7408
7409 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
7410
7411         * lra.c (lra): Switch off rematerialization pass.
7412
7413 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
7414
7415         * common.opt (flra-remat): New.
7416         * opts.c (default_options_table): Add entry for flra_remat.
7417         * timevar_def (TV_LRA_REMAT): New.
7418         * doc/invoke.texi (-flra-remat): Add description of the new
7419         option.
7420         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
7421         lra-saves.c.  Add lra-remat.c.
7422         * Makefile.in (OBJS): Add lra-remat.o.
7423         * lra-remat.c: New file.
7424         * lra.c: Add info about the rematerialization pass in the top
7425         comment.
7426         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
7427         Process unallocatable regs too.
7428         (lra_constraint_new_insn_uid_start): Remove.
7429         (lra): Add code for calling rematerialization sub-pass.
7430         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
7431         (lra_constrain_insn, lra_remat): New prototypes.
7432         (lra_eliminate_regs_1): Add parameter.
7433         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
7434         Process unallocatable hard regs too.
7435         (process_bb_lives): Ditto.
7436         * lra-spills.c (remove_pseudos): Add argument to
7437         lra_eliminate_regs_1 call.
7438         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
7439         for sp offset calculation.
7440         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
7441         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
7442         calculation.
7443         (process_insn_for_elimination): Add argument for
7444         eliminate_regs_in_insn call.
7445         * lra-constraints.c (get_equiv_with_elimination):  Add argument
7446         for lra_eliminate_regs_1 call.
7447         (process_addr_reg): Add parameter.  Use it.
7448         (process_address_1): Ditto.  Add argument for process_addr_reg
7449         call.
7450         (process_address): Ditto.
7451         (curr_insn_transform): Add parameter.  Use it.  Add argument for
7452         process_address calls.
7453         (lra_constrain_insn): New function.
7454         (lra_constraints): Add argument for curr_insn_transform call.
7455
7456 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7457
7458         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
7459         (print_ignored_options): Fix quoting.
7460         * opts.c (common_handle_option): Likewise.
7461         (set_debug_level): Likewise.
7462         * toplev.c (process_options): Likewise.
7463
7464 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7465
7466         PR ipa/63838
7467         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
7468         chain instead of node->indirect_calls.  Put !can_throw into
7469         conditions of all the loops.
7470
7471 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7472
7473         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
7474         set pic_offset_table_rtx.
7475
7476 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
7477
7478         * common/config/mips/mips-common.c (mips_handle_option): Ensure
7479         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
7480         * config.gcc (--with-fp-32): New option.
7481         (--with-odd-spreg-32): Likewise.
7482         * config.in (HAVE_AS_DOT_MODULE): New config define.
7483         * config/mips/mips-protos.h
7484         (mips_secondary_memory_needed): New prototype.
7485         (mips_hard_regno_caller_save_mode): Likewise.
7486         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
7487         (mips_get_arg_info): Assert that V2SFmode is only handled specially
7488         with TARGET_PAIRED_SINGLE_FLOAT.
7489         (mips_return_mode_in_fpr_p): Likewise.
7490         (mips16_call_stub_mode_suffix): Likewise.
7491         (mips_get_reg_raw_mode): New static function.
7492         (mips_return_fpr_pair): O32 return values span two registers.
7493         (mips16_build_call_stub): Likewise.
7494         (mips_function_value_regno_p): Support both FP return registers.
7495         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
7496         specific cases for TARGET_FPXX to move via memory.
7497         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
7498         than UNITS_PER_FPREG 'span' one register.
7499         (mips_dwarf_frame_reg_mode): New static function.
7500         (mips_file_start): Switch to using .module instead of .gnu_attribute.
7501         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
7502         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
7503         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
7504         slots with two CFI directives even for O32 FP64.
7505         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
7506         saving/restoring callee-saved registers.
7507         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
7508         (mips_secondary_memory_needed): New function.
7509         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
7510         odd-numbered single-precision registers when using TARGET_FLOATXX.
7511         Implement -modd-spreg and defaults.
7512         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
7513         callee-saved behaviour.
7514         (mips_hard_regno_caller_save_mode): Implement.
7515         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
7516         (TARGET_GET_RAW_ARG_MODE): Define target hook.
7517         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
7518         * config/mips/mips.h (TARGET_FLOAT32): New macro.
7519         (TARGET_O32_FP64A_ABI): Likewise.
7520         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
7521         _MIPS_SPFPSET builtin define.
7522         (MIPS_FPXX_OPTION_SPEC): New macro.
7523         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
7524         --with-odd-spreg-32=* to -m[no-]odd-spreg.
7525         (ISA_HAS_ODD_SPREG): New macro.
7526         (ISA_HAS_MXHC1): True for anything other than -mfp32.
7527         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
7528         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
7529         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
7530         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7531         (SECONDARY_MEMORY_NEEDED): Likewise.
7532         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
7533         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
7534         FP64A ABI extensions.
7535         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
7536         TARGET_FLOAT64.
7537         * config/mips/mips.opt (mfpxx): New target option.
7538         (modd-spreg): Likewise.
7539         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
7540         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
7541         fp64 sysroot.
7542         * config/mips/t-mti-elf: Remove fp64 multilib.
7543         * config/mips/t-mti-linux: Likewise.
7544         * configure.ac: Detect .module support.
7545         * configure: Regenerate.
7546         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
7547         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
7548         options.
7549
7550 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7551
7552         PR target/63815
7553         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
7554         from ...
7555         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
7556         (x86_output_mi_thunk): Set PIC register to %r11.  Call
7557         ix86_init_large_pic_reg to initialize PIC register.
7558
7559 2014-11-12  Kai Tietz  <ktietz@redhat.com>
7560
7561         * sdbout.c (sdbout_symbol): Eliminate register only
7562         if decl isn't a global variable.
7563
7564 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
7565
7566         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
7567
7568         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
7569         qualifier_lane_index.
7570         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
7571         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
7572         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
7573
7574         (aarch64_types_getlane_qualifiers): Rename to...
7575         (aarch64_types_binop_imm_qualifiers): ...this.
7576         (TYPES_SHIFTIMM): Follow renaming.
7577         (TYPES_GETLANE): Rename to...
7578         (TYPE_GETREG): ...this.
7579
7580         (aarch64_types_setlane_qualifiers): Rename to...
7581         (aarch64_type_ternop_imm_qualifiers): ...this.
7582         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
7583         (TYPES_SETLANE): Follow renaming above, and rename self to...
7584         (TYPE_SETREG): ...this.
7585
7586         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
7587         (aarch64_simd_expand_args): Add range check and endianness-flip.
7588
7589         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
7590
7591         * config/aarch64/aarch64-simd.md
7592         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
7593         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
7594         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
7595
7596         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
7597         (aarch64_sq<r>dmulh_lane<mode>): ...this.
7598
7599         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
7600         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
7601
7602         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
7603         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
7604
7605         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
7606         (aarch64_sqdmull_lane<mode>): ...this.
7607
7608         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
7609         (aarch64_sqdmull_laneq<mode>): ...this.
7610
7611         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
7612         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
7613         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
7614         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
7615
7616         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
7617         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
7618         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
7619         bounds check and lane flip.
7620
7621         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
7622         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
7623         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
7624
7625         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
7626         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
7627         renaming of TERNOP_LANE to QUADOP_LANE.
7628
7629         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
7630         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
7631         qualifiers to TERNOP_LANE.
7632
7633 2014-11-12  Tobias Burnus  <burnus@net-b.de>
7634
7635         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
7636         * configure.ac: Ditto.
7637         * graphite-interchange.c: Remove HAVE_CLOOG block.
7638         * config.in: Regenerate.
7639         * configure: Regenerate.
7640
7641 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
7642
7643         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
7644         caller-save.
7645         (EPILOGUE_USES): Guard the check by epilogue_completed.
7646         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
7647         LR.
7648         (aarch64_can_eliminate): Check LR_REGNUM liveness.
7649
7650 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7651
7652         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
7653
7654 2014-11-12  Marek Polacek  <polacek@redhat.com>
7655
7656         * fold-const.c (fold_binary_loc): Don't fold if the result
7657         is undefined.
7658         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
7659         -(-A) -> A): Likewise.
7660
7661 2014-11-12  Richard Biener  <rguenther@suse.de>
7662
7663         Merge from match-and-simplify branch
7664         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7665
7666         * genmatch.c (user_id): Add new member is_oper_list.
7667         (user_id::user_id): Add new default argument.
7668         (parser::parse_operator_list): New function.
7669         (parser::parse_for): Allow operator-list.
7670         (parser::parse_pattern): Call parser::parse_operator_list.
7671         (parser::parse_operation): Reject operator-list.
7672         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
7673
7674         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7675
7676         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
7677
7678         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7679
7680         * genmatch.c (parser::parse_op): Check if predicate is used in
7681         result operand.
7682
7683         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7684
7685         * genmatch.c (parser::parse_for): Make sure to have a valid
7686         token to report errors at.
7687
7688         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7689
7690         * genmatch.c (parser): Add new member parsing_match_operand.
7691         (parser::parse_operation): Check for conditional convert in result
7692         operand.
7693         (parser::parse_expr): Check for commutative operator in result operand.
7694         Check for :type in match operand.
7695         (parser::parse_simplify): Set/unset parsing_match_operand.
7696         (parser::parser): Initialize parsing_match_operand.
7697
7698         2014-10-28  Richard Biener  <rguenther@suse.de>
7699
7700         * genmatch.c (parser::parse_for): Properly check for already
7701         defined operators.
7702
7703         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7704
7705         * genmatch.c (error_cb): Adjust for printing warnings.
7706         (warning_at): New function.
7707         (user_id): Add new member used.
7708         (get_operator): Mark user_id as used.
7709         (parse_for): Warn for unused operators.
7710
7711 2014-11-12  Richard Biener  <rguenther@suse.de>
7712
7713         * match.pd: Implement simple complex operations cancelling.
7714         * fold-const.c (fold_unary_loc): Remove them here.
7715
7716 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
7717
7718         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
7719         Define __NO_MATH_ERRNO__ if -fno-math-errno.
7720         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
7721
7722 2014-11-12  Richard Biener  <rguenther@suse.de>
7723
7724         * genmatch.c (::gen_transform): Add capture_info and
7725         expand_compares arguments.
7726         (struct expr): Add is_generic flag.
7727         (lower_cond): New functions lowering [VEC_]COND_EXPR
7728         conditions to a GENERIC and a GIMPLE variant.
7729         (lower): Call lower_cond.
7730         (cmp_operand): Also compare the is_generic flag.
7731         (capture_info::cinfo): Add cond_expr_cond_p flag.
7732         (capture_info::capture_info): Pass down whether the
7733         expression argument is a COND_EXPR condition.
7734         (capture_info::walk_match): Likewise, mark captures
7735         capturing COND_EXPR conditions with cond_expr_cond_p.
7736         (expr::gen_transform): Pass down whether we need to
7737         expand compares from COND_EXPR conditions.
7738         (capture::gen_transform): Expand compares substituted
7739         from COND_EXPR conditions into non-COND_EXPR conditions.
7740         (dt_operand::gen_gimple_expr): Handle explicitely marked
7741         GENERIC expressions as generic.
7742         (dt_simplify::gen): Pass whether we need to expand
7743         conditions to gen_transform.  Handle capture results
7744         which are from COND_EXPR conditions.
7745         (main): Pass gimple flag down to lower.
7746
7747 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7748
7749         PR c/59708
7750         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
7751         * builtins.c (fold_builtin_arith_overflow): New function.
7752         (fold_builtin_3): Use it.
7753         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
7754         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
7755         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
7756         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
7757         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
7758         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
7759         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
7760         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
7761         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
7762         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
7763         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
7764         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
7765         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
7766         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
7767         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
7768         * expr.c (write_complex_part): Remove prototype, no longer static.
7769         * expr.h (write_complex_part): New prototype.
7770         * function.c (aggregate_value_p): For internal functions return 0.
7771         * gimple-fold.c (arith_overflowed_p): New functions.
7772         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
7773         * gimple-fold.h (arith_overflowed_p): New prototype.
7774         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
7775         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
7776         functions.
7777         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
7778         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
7779         never used.
7780         * gimplify.c (gimplify_call_expr): Handle gimplification of
7781         internal calls with lhs.
7782         * internal-fn.c (get_range_pos_neg, get_min_precision,
7783         expand_arith_overflow_result_store): New functions.
7784         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
7785         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7786         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7787         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
7788         (ubsan_expand_si_overflow_neg_check): Renamed to ...
7789         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
7790         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
7791         0 as first argument expansion.
7792         (ubsan_expand_si_overflow_mul_check): Renamed to ...
7793         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7794         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7795         Handle MUL_OVERFLOW expansion.
7796         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
7797         arguments for it.
7798         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
7799         expand_neg_overflow, prepare arguments for it.
7800         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
7801         for it.
7802         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
7803         expand_MUL_OVERFLOW): New functions.
7804         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
7805         internal functions.
7806         * tree-vrp.c (check_for_binary_op_overflow): New function.
7807         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
7808         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
7809         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
7810         internal functions.
7811         * optabs.def (umulv4_optab): New optab.
7812         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
7813         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
7814         * doc/extend.texi (Integer Overflow Builtins): Document
7815         __builtin_*_overflow.
7816
7817 2014-11-12  Richard Biener  <rguenther@suse.de>
7818
7819         * genmatch.c (capture_info::capture_info): Add missing
7820         COND_EXPR handling.
7821         (capture_info::walk_match): Fix COND_EXPR handling.
7822         (capture_info::walk_result): Likewise.
7823
7824 2014-11-12  Richard Biener  <rguenther@suse.de>
7825
7826         PR middle-end/63821
7827         * match.pd: Add missing conversion to the -(T)-X pattern.
7828
7829 2014-11-12  Richard Biener  <rguenther@suse.de>
7830
7831         PR bootstrap/63819
7832         * hash-table.h: Include ggc.h also for generator programs.
7833         * genmatch.c (ggc_internal_cleared_alloc): Properly define
7834         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
7835
7836 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7837
7838         PR tree-optimization/63761
7839         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
7840         rather than taking it as a parameter. Add some comments to explain the
7841         gsi_move_before in case of load and why canonicalization of bswap into
7842         a rotation is only done for 16bit values.
7843         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
7844         refer to the statement just before cur_stmt. Ignore 16bit bswap that
7845         are already in canonical form. Adapt bswap_replace to removal of its
7846         gsi parameter.
7847
7848 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
7849
7850         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
7851         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
7852         (for_each_rtx_in_insn): Delete.
7853         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
7854         * df-core.c: Remove reference to for_each_rtx in comment.
7855
7856 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
7857
7858         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
7859         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
7860         * doc/aarch64-acle-intrinsics.texi: Remove.
7861         * doc/arm-acle-intrinsics.texi: Remove.
7862         * doc/arm-neon-intrinsics.texi: Remove.
7863         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
7864         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
7865         Extension section. Add references to public ACLE specification.
7866
7867 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
7868
7869         * tree-vrp.c (register_edge_assert_for_2): Change return type to
7870         void and adjust accordingly.
7871         (register_edge_assert_for_1): Likewise.
7872         (register_edge_assert_for): Likewise.
7873         (find_conditional_asserts): Likewise.
7874         (find_switch_asserts): Likewise.
7875         (find_assert_locations_1): Likewise.
7876         (find_assert_locations): Likewise.
7877         (insert_range_insertions): Inspect the need_assert_for bitmap.
7878
7879 2014-11-11  Andrew Pinski  <apinski@cavium.com>
7880
7881         Bug target/61997
7882         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
7883         aarch64-builtins.c.
7884         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
7885         at the end of the file.
7886
7887 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
7888             Manuel López-Ibáñez  <manu@gcc.gnu.org>
7889
7890         PR driver/36312
7891         * diagnostic-core.h: Add prototype for fatal_error.
7892         * diagnostic.c (fatal_error): New function fatal_error.
7893         * gcc.c (store_arg): Remove have_o_argbuf_index.
7894         (process_command): Check if input and output files are the same.
7895         * toplev.c (init_asm_output): Check if input and output files are
7896         the same.
7897
7898 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7899
7900         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
7901
7902 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7903
7904         PR target/61535
7905         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
7906         smaller than 8 bytes.
7907         (sparc_function_arg_1): Tweak.
7908         (sparc_function_value_1): Tweak.
7909
7910 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
7911
7912         * ChangeLog.jit: New.
7913         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
7914         sphinx is installed, falling back to "texinfo" otherwise.
7915         (FULL_DRIVER_NAME): New variable, adapted from the
7916         install-driver target.  New target, a symlink within the builddir,
7917         linked to "xgcc", for use when running the JIT library from the
7918         builddir.
7919         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
7920         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
7921         out.
7922         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
7923         sphinx is installed, falling back to "texinfo" otherwise.
7924         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
7925         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
7926         * configure: Regenerate.
7927         * doc/install.texi (--enable-host-shared): Specify that this is
7928         required when building libgccjit.
7929         (Tools/packages necessary for modifying GCC): Add Sphinx.
7930         * timevar.def (TV_JIT_REPLAY): New.
7931         (TV_ASSEMBLE): New.
7932         (TV_LINK): New.
7933         (TV_LOAD): New.
7934
7935 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7936
7937         PR target/63610
7938         * configure: Regenerate.
7939
7940 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
7941
7942         * config/aarch64/aarch64-simd.md
7943         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
7944         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
7945         are punning between float vectors and integer vectors.
7946
7947 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7948
7949         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
7950         open-coded swap with std::swap to swap values.
7951         (alpha_emit_setcc): Ditto.
7952         (alpha_emit_conditional_move): Ditto.
7953         (alpha_split_tmode_pair): Ditto.
7954
7955 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
7956
7957         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
7958         permutations on power of 2 cases.
7959
7960 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7961
7962         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
7963         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
7964
7965 2014-11-11  Richard Biener  <rguenther@suse.de>
7966
7967         * tree-core.h (pedantic_lvalues): Remove.
7968         * fold-const.c (pedantic_lvalues): Likewise.
7969         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
7970
7971 2014-11-11  Martin Liska  <mliska@suse.cz>
7972
7973         PR ipa/63622
7974         PR ipa/63795
7975         * ipa-icf.c (sem_function::merge): Add new target symbol alias
7976         support guard.
7977         (sem_variable::merge): Likewise.
7978         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
7979
7980 2014-11-11  Richard Biener  <rguenther@suse.de>
7981
7982         * match.pd: Implement patterns from associate_plusminus
7983         and factor in differences from the fold-const.c implementation.
7984         * fold-const.c (fold_binary_loc): Remove patterns here.
7985         * tree-ssa-forwprop.c (associate_plusminus): Remove.
7986         (pass_forwprop::execute): Don't call it.
7987         * tree.c (tree_nop_conversion_p): New function, factored
7988         from tree_nop_conversion.
7989         * tree.h (tree_nop_conversion_p): Declare.
7990
7991 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7992
7993         * system.h: Include algorithm and utility.
7994         * rtl.h: Do not include utility here.
7995         * wide-int.h: Ditto.
7996         * tree-vect-data-refs.c (swap): Remove template.
7997         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
7998
7999 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8000
8001         PR bootstrap/63699
8002         PR bootstrap/63750
8003         * system.h: Include <string> before "safe-ctype.h"
8004         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
8005         calls to min/max with wi namespace.
8006         * ipa-chkp.c: Don't include <string>.
8007
8008 2014-11-11  Terry Guo  <terry.guo@arm.com>
8009
8010         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
8011         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
8012         registers.
8013         (*thumb1_movhf): Likewise.
8014
8015 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8016
8017         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
8018         instead of INT64_MAX.
8019
8020 2014-11-11  Tobias Burnus  <burnus@net-b.de>
8021
8022         * doc/install.texi (Prerequisites): Remove CLooG.
8023
8024 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
8025
8026         * ipa-inline.c (edge_badness): Adjust.
8027         (inline_small_functions): Likewise.
8028         * predict.c (propagate_freq): Likewise.
8029         (estimate_bb_frequencies): Likewise.
8030         * sreal.c (sreal::dump): Rename from dump_sreal.
8031         (debug): Adjust.
8032         (copy): Remove function.
8033         (sreal::shift_right): Rename from sreal_sift_right.
8034         (sreal::normalize): Rename from normalize.
8035         (sreal_init): Remove function.
8036         (sreal::to_int): Rename from sreal_to_int.
8037         (sreal_compare): Remove function.
8038         (sreal::operator+): Rename from sreal_add.
8039         (sreal::operator-): Rename from sreal_sub.
8040         (sreal::operator*): Rename from sreal_mul.
8041         (sreal::operator/): Rename from sreal_div.
8042         * sreal.h (class sreal): Adjust.
8043         (inline sreal &operator+=): New operator.
8044         (inline sreal &operator-=): Likewise.
8045         (inline sreal &operator/=): Likewise.
8046         (inline sreal &operator*=): Likewise.
8047         (inline bool operator!=): Likewise.
8048         (inline bool operator>): Likewise.
8049         (inline bool operator<=): Likewise.
8050         (inline bool operator>=): Likewise.
8051
8052 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
8053
8054         * sched-deps.c (sched_analyze_1): Check pending list if it is not
8055         less than MAX_PENDING_LIST_LENGTH.
8056         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
8057
8058 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8059
8060         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
8061         swap with std::swap to swap values.
8062         (ix86_fixup_binary_operands): Ditto.
8063         (ix86_binary_operator_ok): Ditto.
8064         (ix86_prepare_fp_compare_args): Ditto.
8065         (ix86_expand_branch): Ditto.
8066         (ix86_expand_carry_flag_compare): Ditto.
8067         (ix86_expand_int_movcc): Ditto.
8068         (ix86_prepare_sse_fp_compare_args): Ditto.
8069         (ix86_expand_sse_fp_minmax): Ditto.
8070         (ix86_expand_int_vcond): Ditto.
8071         (ix86_split_long_move): Ditto.
8072         (ix86_expand_sse_comi): Ditto.
8073         (ix86_expand_sse_compare_and_jump): Ditto.
8074         (ix86_expand_sse_compare_mask): Ditto.
8075         * config/i386/i386.md (*add<mode>_1): Ditto.
8076         (addsi_1_zext): Ditto.
8077         (*addhi_1): Ditto.
8078         (*addqi_1): Ditto.
8079         (*add<mode>_2): Ditto.
8080         (*addsi_2_zext): Ditto.
8081         (*add<mode>_3): Ditto.
8082         (*addsi_3_zext): Ditto.
8083         (*add<mode>_5): Ditto.
8084         (absneg splitter): Ditto.
8085
8086 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
8087
8088         Revert:
8089         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
8090
8091         PR target/63620
8092         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
8093         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
8094         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
8095         be reloaded through memory.
8096         (*pushxf): Ditto.
8097         (*pushdf): Ditto.
8098
8099 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
8100             Martin Liska  <mliska@suse.cz>
8101
8102         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
8103         (func_checker::compare_gimple_call): Compare gimple_call_fn,
8104         gimple_call_chain, gimple_call_fntype and call flags.
8105
8106 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
8107
8108         PR rtl-optimization/63620
8109         PR rtl-optimization/63799
8110         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
8111         and setting PIC pseudo insns.
8112         (lra_create_live_ranges): Fix the typo.
8113
8114 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
8115
8116         PR middle-end/63748
8117         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
8118         SSA copies whose source and destination names both occur in
8119         abnormal PHIs.
8120
8121 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
8122
8123         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
8124         * common.opt: Remove using of fgraphite-code-generator flag.
8125         * flag-types.h: Likewise.
8126         * graphite.c: Remove using of CLooG.
8127         * graphite-blocking.c: Likewise.
8128         * graphite-dependences.c: Likewise.
8129         * graphite-poly.c: Likewise.
8130         * graphite-poly.h: Likewise.
8131         * graphite-scop-detection.c: Likewise.
8132         * graphite-sese-to-poly.c: Likewise.
8133         * graphite-clast-to-gimple.c: Removed.
8134         * graphite-clast-to-gimple.h: Likewise.
8135         * graphite-htab.h: Likewise.
8136
8137 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
8138
8139         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
8140         Add.
8141
8142 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8143
8144         * config/frv/frv.c (frv_io_handle_use_1): Delete.
8145         (frv_io_handle_use): Use find_all_hard_regs.
8146
8147 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8148
8149         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
8150         than an rtx *.  Take the regstate_t directly rather than via a void *.
8151         Return a bool rather than an int.  Iterate over all subrtxes here.
8152         (frv_registers_conflict_p): Update accordingly.
8153
8154 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8155
8156         * config/frv/frv.c: Include rtl-iter.h.
8157         (frv_acc_group_1): Delete.
8158         (frv_acc_group): Use FOR_EACH_SUBRTX.
8159
8160 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8161
8162         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
8163         (frv_clear_registers_used): Delete.
8164         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
8165
8166 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
8167
8168         PR bootstrap/63573
8169         * calls.c (initialize_argument_information): When emitting thunk call
8170         use original memory placement of the argument.
8171
8172 2014-11-10  Renlin Li  <renlin.li@arm.com>
8173
8174         PR middle-end/61529
8175         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
8176
8177 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8178
8179         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
8180         bswaphi if available.
8181
8182 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
8183
8184         * config/nvptx/nvptx.c: New file.
8185         * config/nvptx/nvptx.h: New file.
8186         * config/nvptx/nvptx-protos.h: New file.
8187         * config/nvptx/nvptx.md: New file.
8188         * config/nvptx/t-nvptx: New file.
8189         * config/nvptx/nvptx.opt: New file.
8190         * common/config/nvptx/nvptx-common.c: New file.
8191         * config.gcc: Handle nvptx-*-*.
8192
8193 2014-11-10  Richard Biener  <rguenther@suse.de>
8194
8195         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
8196         released operands on the free list.
8197
8198 2014-11-10  Richard Biener  <rguenther@suse.de>
8199
8200         * match.pd: Implement pattern from simplify_mult.
8201         * tree-ssa-forwprop.c (simplify_mult): Remove.
8202         (pass_forwprop::execute): Do not call simplify_mult.
8203
8204 2014-11-10  Richard Biener  <rguenther@suse.de>
8205
8206         PR tree-optimization/63800
8207         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
8208         we can restore the previous availability in after_dom_children.
8209         (eliminate_dom_walker::after_dom_children): Restore
8210         previous availability.
8211
8212 2014-11-10  Richard Biener  <rguenther@suse.de>
8213
8214         PR middle-end/63798
8215         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
8216         properly treat the embedded multiplication as commutative
8217         when looking for feeding negates.
8218
8219 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
8220
8221         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
8222
8223 2014-11-10  Martin Liska  <mliska@suse.cz>
8224
8225         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
8226         for the test because of default char signedness
8227         on powerpc64 target.
8228
8229 2014-11-10  Richard Biener  <rguenther@suse.de>
8230
8231         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
8232         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
8233         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
8234
8235 2014-11-10  Richard Biener  <rguenther@suse.de>
8236
8237         * match.pd: Move rest of the conversion combining patterns
8238         from tree-ssa-forwprop.c.
8239         * tree-ssa-forwprop.c (combine_conversions): Remove.
8240         (pass_forwprop::execute): Do not call it.
8241
8242 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
8243
8244         * gimple-low.c (lower_function_body): Clear the location of the first
8245         inserted representative return if it also fills in for the fallthru.
8246
8247 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8248
8249         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
8250         that bb is always executed to early exit. Use predicate of
8251         cd-equivalent block for join blocks if it exists.
8252         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
8253         (tree_if_conversion): Free post-dominance information.
8254
8255 2014-11-09  Jason Merrill  <jason@redhat.com>
8256
8257         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
8258         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
8259         (_mm_mask_cvtusepi32_storeu_epi16)
8260         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
8261
8262 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8263
8264         * config/avr/predicates.md (low_io_address_operand): Fix typo.
8265
8266 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
8267
8268         PR rtl-optimization/63620
8269         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8270         name.  Move to lra.c.  Make it external.
8271         (substitute_pseudo_within_insn): Ditto.
8272         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8273         the new names.
8274         (undo_optional_reloads): Ditto.
8275         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8276         New prototypes.
8277         (lra_substitute_pseudo_within_insn): Ditto.
8278         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8279         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
8280         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
8281         bb_killed_pseudos.
8282         (struct bb_data, bb_data_t, bb_data): New.
8283         (get_bb_data, get_bb_data_by_index): Ditto.
8284         (all_hard_regs_bitmap): New.
8285         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8286         (initiate_live_solver, finish_live_solver): New.
8287         (process_bb_lives): Change return type.  Add code updating local
8288         live data and removing dead insns.  Pass new argument to
8289         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
8290         life info.  Return the result.
8291         (lra_create_live_ranges): Add code to do global pseudo live
8292         analysis.
8293         (lra_live_ranges_init): Call initiate_live_solver.
8294         (lra_live_ranges_finish): Call finish_live_solver.
8295         * lra.c (lra_dump_bitmap_with_title): New.
8296         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8297         from lra-constraints.c.
8298
8299 2014-11-09  Richard Biener  <rguenther@suse.de>
8300
8301         * match.pd: Add patterns convering two conversions in a row
8302         from fold-const.c.
8303         * fold-const.c (fold_unary_loc): Remove them here.
8304         * tree-ssa-forwprop.c (combine_conversions): Likewise.
8305         * genmatch.c (dt_node::gen_kids): Check whether we may
8306         follow SSA use-def chains.
8307
8308 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8309
8310         * config/aarch64/aarch64.c: Include rtl-iter.h.
8311         (aarch64_tls_operand_p_1): Delete.
8312         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8313
8314 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8315
8316         * config/arm/arm.c (arm_note_pic_base): Delete.
8317         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8318
8319 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8320
8321         * config/arm/arm.c: Include rtl-iter.h.
8322         (arm_tls_referenced_p_1): Delete.
8323         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8324
8325 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8326
8327         * config/arm/aarch-common.c: Include rtl-iter.h.
8328         (search_term, arm_find_sub_rtx_with_search_term): Delete.
8329         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8330         (arm_get_set_operands): Pass the insn pattern rather than the
8331         insn itself.
8332         (arm_no_early_store_addr_dep): Likewise.
8333
8334 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
8335
8336         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8337         related, if any.
8338         (thumb_set_return_address): Likewise.
8339
8340 2014-11-07  Jeff Law  <law@redhat.com>
8341
8342         PR tree-optimization/61515
8343         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
8344         stack rather than looking at every SSA_NAME's value.
8345
8346 2014-11-07  Richard Biener  <rguenther@suse.de>
8347
8348         PR tree-optimization/63605
8349         * fold-const.c (fold_binary_loc): Properly use element_precision
8350         for types that may not be scalar.
8351
8352 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
8353
8354         PR target/63534
8355         * config/i386/i386.md (builtin_setjmp_receiver): Use
8356         pic_offset_table_rtx for PIC register.
8357         (nonlocal_goto_receiver): Delete.
8358
8359 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
8360
8361         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
8362         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
8363
8364 2014-11-07  Martin Liska  <mliska@suse.cz>
8365
8366         PR ipa/63580
8367         * cgraphunit.c (cgraph_node::create_wrapper):
8368         TREE_ADDRESSABLE is set to false for a newly created thunk.
8369
8370 2014-11-07  Martin Liska  <mliska@suse.cz>
8371
8372         PR ipa/63747
8373         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
8374         Missing checking for CASE_LOW and CASE_HIGH added.
8375
8376 2014-11-07  Martin Liska  <mliska@suse.cz>
8377
8378         PR ipa/63595
8379         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
8380         is correctly handled for thunks created by IPA ICF.
8381
8382 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
8383 2014-11-07  Richard Biener  <rguenther@suse.de>
8384
8385         PR tree-optimization/63676
8386         * gimple-fold.c (fold_gimple_assign): Do not fold node when
8387         TREE_CLOBBER_P be true.
8388
8389 2014-11-07  Richard Biener  <rguenther@suse.de>
8390
8391         PR middle-end/63770
8392         * match.pd: Guard conflicting GENERIC pattern properly.
8393
8394 2014-11-07  Richard Biener  <rguenther@suse.de>
8395
8396         * match.pd: Add patterns for POINTER_PLUS_EXPR association
8397         and special patterns from tree-ssa-forwprop.c
8398         * fold-const.c (fold_binary_loc): Remove them here.
8399         * tree-ssa-forwprop.c (to_purge): New global bitmap.
8400         (fwprop_set_lattice_val): New function.
8401         (fwprop_invalidate_lattice): Likewise.
8402         (remove_prop_source_from_use): Instead of purging dead EH
8403         edges record blocks to do that in to_purge.
8404         (tidy_after_forward_propagate_addr): Likewise.
8405         (forward_propagate_addr_expr): Invalidate the lattice for
8406         SSA names we release.
8407         (simplify_conversion_from_bitmask): Likewise.
8408         (simplify_builtin_call): Likewise.
8409         (associate_pointerplus_align): Remove.
8410         (associate_pointerplus_diff): Likewise.
8411         (associate_pointerplus): Likewise.
8412         (fold_all_stmts): Merge with ...
8413         (pass_forwprop::execute): ... the original loop over all
8414         basic-blocks.  Delay purging dead EH edges and invalidate
8415         the lattice for SSA names we release.
8416
8417 2014-11-07  Terry Guo  <terry.guo@arm.com>
8418
8419         * config/arm/arm.opt (masm-syntax-unified): New option.
8420         * doc/invoke.texi (-masm-syntax-unified): Document new option.
8421         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
8422         (ASM_APP_ON): Redefined.
8423         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
8424         code always use UAL syntax.
8425         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
8426         * config/arm/thumb1.md: Likewise.
8427
8428 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
8429
8430         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
8431         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
8432         or in_call_delay.
8433         
8434 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
8435
8436         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
8437         Set default_mips_arch and default_mips_abi instead of tm_defines.
8438         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
8439         of tm_defines.
8440         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
8441         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
8442         based on MIPS_ABI_DEFAULT.
8443         (STANDARD_STARTFILE_PREFIX_2): Ditto.
8444
8445 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
8446
8447         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
8448         cases of extended identifiers.
8449
8450 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
8451
8452         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
8453
8454 2014-11-06  DJ Delorie  <dj@redhat.com>
8455
8456         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
8457         conditional.
8458         (movhicc_<code>_<mode>): Likewise.
8459         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
8460         subregs.
8461         (m32c_eh_return_data_regno): Change to using memregs to avoid
8462         tying up all the compute regs.
8463         (m32c_legitimate_address_p) Subregs are not valid addresses.
8464
8465 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
8466
8467         * function.c (thread_prologue_and_epilogue_insns): No longer static.
8468         * function.h (thread_prologue_and_epilogue_insns): Declare.
8469
8470         * target.def (assemble_undefined_decl): New hooks.
8471         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
8472         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
8473         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
8474         * doc/tm.texi: Regenerate.
8475         * output.h (assemble_undefined_decl): Declare.
8476         (get_fnname_from_decl): Declare.
8477         * varasm.c (assemble_undefined_decl): New function.
8478         (get_fnname_from_decl): New function.
8479         * final.c (rest_of_handle_final): Use it.
8480         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
8481         for nodes without a definition.
8482
8483         * target.def (call_args, end_call_args): New hooks.
8484         * hooks.c (hook_void_rtx_tree): New empty function.
8485         * hooks.h (hook_void_rtx_tree): Declare.
8486         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
8487         * doc/tm.texi: Regenerate.
8488         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
8489         hooks.
8490         (expand_library_call_value_1): Use the two new hooks.
8491
8492         * expr.c (use_reg_mode): Just return for pseudo registers.
8493
8494         * combine.c (try_combine): Don't allow a call as one of the source
8495         insns.
8496
8497         * target.def (decl_end): New hook.
8498         * varasm.c (assemble_variable_contents, assemble_constant_contents):
8499         Use it.
8500         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
8501         * doc/tm.texi: Regenerate.
8502
8503 2014-11-06  Renlin Li  <renlin.li@arm.com>
8504
8505         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
8506         (processor): New architecture_version field.
8507         (aarch64_override_options): Initialize aarch64_architecture_version.
8508         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
8509         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
8510
8511 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
8512
8513         * params.def (sra-max-scalarization-size-Ospeed): New.
8514         (sra-max-scalarization-size-Osize): Likewise.
8515         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
8516         (sra-max-scalarization-size-Osize): Likewise.
8517         * toplev.c (process_options): Set default values for new
8518         parameters.
8519         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
8520         * targhooks.c (get_move_ratio): Remove static designator.
8521         * target.h (get_move_ratio): Declare.
8522
8523 2014-11-06  Marek Polacek  <polacek@redhat.com>
8524
8525         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
8526         Remove vector limit.
8527
8528 2014-11-06  Richard Biener  <rguenther@suse.de>
8529
8530         * match.pd: Implement bitwise binary and unary simplifications
8531         from tree-ssa-forwprop.c.
8532         * fold-const.c (fold_unary_loc): Remove them here.
8533         (fold_binary_loc): Likewise.
8534         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
8535         (truth_valued_ssa_name): Likewise.
8536         (lookup_logical_inverted_value): Likewise.
8537         (simplify_bitwise_binary_1): Likewise.
8538         (hoist_conversion_for_bitop_p): Likewise.
8539         (simplify_bitwise_binary_boolean): Likewise.
8540         (simplify_bitwise_binary): Likewise.
8541         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
8542         and simplify_bitwise_binary.
8543         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
8544         (decision_tree::insert): Also insert non-expressions.
8545
8546 2014-11-06  Hale Wang  <hale.wang@arm.com>
8547
8548         * config/arm/arm-cores.def: Add support for
8549         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8550         cortex-m1.small-multiply.
8551         * config/arm/arm-tables.opt: Regenerate.
8552         * config/arm/arm-tune.md: Regenerate.
8553         * config/arm/arm.c: Update the rtx-costs for MUL.
8554         * config/arm/bpabi.h: Handle
8555         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8556         cortex-m1.small-multiply.
8557         * doc/invoke.texi: Document
8558         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8559         cortex-m1.small-multiply.
8560
8561 2014-11-06  Hale Wang  <hale.wang@arm.com>
8562
8563         * config/arm/arm.c: Add cortex-m7 tune.
8564         * config/arm/arm-cores.def: Use cortex-m7 tune.
8565
8566 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
8567
8568         PR target/63538
8569         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
8570         (ix86_encode_section_info): Do not check for non-automatic varibles
8571         when setting SYMBOL_FLAG_FAR_ADDR flag.
8572         (x86_64_elf_select_section): Do not check ix86_cmodel here.
8573         (x86_64_elf_unique_section): Ditto.
8574         (x86_elf_aligned_common): Emit tab before .largecomm.
8575
8576 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
8577
8578         PR preprocessor/9449
8579         * doc/cpp.texi (Character sets, Tokenization)
8580         (Implementation-defined behavior): Don't refer to UCNs in
8581         identifiers requiring -fextended-identifiers.
8582         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
8583         by default for C99 and later and C++.
8584         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
8585         identifiers needing -fextended-identifiers.
8586
8587 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
8588
8589         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
8590         for 512-bit wide modes.
8591         (expand_vec_perm_1): Use correct versions of patterns.
8592         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
8593         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
8594
8595 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
8596
8597         * ipa-chkp.c: New.
8598         * ipa-chkp.h: New.
8599         * tree-chkp.c: New.
8600         * tree-chkp.h: New.
8601         * tree-chkp-opt.c: New.
8602         * rtl-chkp.c: New.
8603         * rtl-chkp.h: New.
8604         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
8605         tree-chkp-opt.o.
8606         (GTFILES): Add tree-chkp.c.
8607         * mode-classes.def (MODE_POINTER_BOUNDS): New.
8608         * tree.def (POINTER_BOUNDS_TYPE): New.
8609         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
8610         (POINTER_BOUNDS_MODE): New.
8611         (make_pointer_bounds_mode): New.
8612         * machmode.h (POINTER_BOUNDS_MODE_P): New.
8613         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
8614         (layout_type): Support POINTER_BOUNDS_TYPE.
8615         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
8616         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
8617         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
8618         (type_contains_placeholder_1): Likewise.
8619         (build_common_tree_nodes): Initialize
8620         pointer_bounds_type_node.
8621         * tree.h (POINTER_BOUNDS_TYPE_P): New.
8622         (pointer_bounds_type_node): New.
8623         (POINTER_BOUNDS_P): New.
8624         (BOUNDED_TYPE_P): New.
8625         (BOUNDED_P): New.
8626         (CALL_WITH_BOUNDS_P): New.
8627         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
8628         (gimple_call_with_bounds_p): New.
8629         (gimple_call_set_with_bounds): New.
8630         (gimple_return_retbnd): New.
8631         (gimple_return_set_retbnd): New
8632         * gimple.c (gimple_build_return): Increase number of ops
8633         for return statement.
8634         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
8635         flag.
8636         * gimple-pretty-print.c (dump_gimple_return): Print second op.
8637         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
8638         * gimplify.c (gimplify_init_constructor): Avoid infinite
8639         loop during gimplification of bounds initializer.
8640         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
8641         (special_function_p): Use original decl name when analyzing
8642         instrumentation clone.
8643         (arg_data): Add fields special_slot, pointer_arg and
8644         pointer_offset.
8645         (store_bounds): New.
8646         (emit_call_1): Propagate instrumentation flag for CALL.
8647         (initialize_argument_information): Compute pointer_arg,
8648         pointer_offset and special_slot for pointer bounds arguments.
8649         (finalize_must_preallocate): Preallocate when storing bounds
8650         in bounds table.
8651         (compute_argument_addresses): Skip pointer bounds.
8652         (expand_call): Store bounds into tables separately.  Return
8653         result joined with resulting bounds.
8654         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
8655         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
8656         (expand_return): Add returned bounds arg.  Handle returned bounds.
8657         (expand_gimple_stmt_1): Adjust to new expand_return signature.
8658         (gimple_expand_cfg): Reset rtx bounds map.
8659         * expr.c: Include tree-chkp.h, rtl-chkp.h.
8660         (expand_assignment): Handle returned bounds.
8661         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
8662         target argument.  Handle bounds returned by calls.
8663         (store_expr): Now wraps store_expr_with_bounds.
8664         * expr.h (store_expr_with_bounds): New.
8665         * function.c: Include tree-chkp.h, rtl-chkp.h.
8666         (bounds_parm_data): New.
8667         (use_register_for_decl): Do not registerize decls used for bounds
8668         stores and loads.
8669         (assign_parms_augmented_arg_list): Add bounds of the result
8670         structure pointer as the second argument.
8671         (assign_parm_find_entry_rtl): Mark bounds are never passed on
8672         the stack.
8673         (assign_parm_is_stack_parm): Likewise.
8674         (assign_parm_load_bounds): New.
8675         (assign_bounds): New.
8676         (assign_parms): Load bounds and determine a location for
8677         returned bounds.
8678         (diddle_return_value_1): New.
8679         (diddle_return_value): Handle returned bounds.
8680         * function.h (rtl_data): Add field for returned bounds.
8681         * varasm.c: Include tree-chkp.h.
8682         (output_constant): Support POINTER_BOUNDS_TYPE.
8683         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
8684         (ultimate_transparent_alias_target): Move up.
8685         (make_decl_rtl): For instrumented function use
8686         name of the original decl.
8687         (assemble_start_function): Mark function as global
8688         in case it is instrumentation clone of the global
8689         function.
8690         (do_assemble_alias): Follow transparent alias chain
8691         for identifier.  Check if original alias is public.
8692         (maybe_assemble_visibility): Use visibility of the
8693         original function for instrumented version.
8694         (default_unique_section): Likewise.
8695         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
8696         (init_emit_once): Build pointer bounds zero constants.
8697         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
8698         * target.def (builtin_chkp_function): New.
8699         (chkp_bound_type): New.
8700         (chkp_bound_mode): New.
8701         (chkp_make_bounds_constant): New.
8702         (chkp_initialize_bounds): New.
8703         (load_bounds_for_arg): New.
8704         (store_bounds_for_arg): New.
8705         (load_returned_bounds): New.
8706         (store_returned_bounds): New.
8707         (chkp_function_value_bounds): New.
8708         (setup_incoming_vararg_bounds): New.
8709         (function_arg): Update hook description with new possible return
8710         value CONST_INT.
8711         * targhooks.h (default_load_bounds_for_arg): New.
8712         (default_store_bounds_for_arg): New.
8713         (default_load_returned_bounds): New.
8714         (default_store_returned_bounds): New.
8715         (default_chkp_bound_type): New.
8716         (default_chkp_bound_mode): New.
8717         (default_builtin_chkp_function): New.
8718         (default_chkp_function_value_bounds): New.
8719         (default_chkp_make_bounds_constant): New.
8720         (default_chkp_initialize_bounds): New.
8721         (default_setup_incoming_vararg_bounds): New.
8722         * targhooks.c (default_load_bounds_for_arg): New.
8723         (default_store_bounds_for_arg): New.
8724         (default_load_returned_bounds): New.
8725         (default_store_returned_bounds): New.
8726         (default_chkp_bound_type): New.
8727         (default_chkp_bound_mode); New.
8728         (default_builtin_chkp_function): New.
8729         (default_chkp_function_value_bounds): New.
8730         (default_chkp_make_bounds_constant): New.
8731         (default_chkp_initialize_bounds): New.
8732         (default_setup_incoming_vararg_bounds): New.
8733         * builtin-types.def (BT_BND): New.
8734         (BT_FN_PTR_CONST_PTR): New.
8735         (BT_FN_CONST_PTR_CONST_PTR): New.
8736         (BT_FN_BND_CONST_PTR): New.
8737         (BT_FN_CONST_PTR_BND): New.
8738         (BT_FN_PTR_CONST_PTR_SIZE): New.
8739         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
8740         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
8741         (BT_FN_VOID_CONST_PTR_SIZE): New.
8742         (BT_FN_VOID_PTR_BND): New.
8743         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
8744         (BT_FN_BND_CONST_PTR_SIZE): New.
8745         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
8746         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
8747         * chkp-builtins.def: New.
8748         * builtins.def: include chkp-builtins.def.
8749         (DEF_CHKP_BUILTIN): New.
8750         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
8751         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
8752         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
8753         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
8754         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
8755         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
8756         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
8757         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
8758         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
8759         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
8760         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
8761         (std_expand_builtin_va_start): Init bounds for va_list.
8762         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
8763         __CHKP__ macro when Pointer Bounds Checker is on.
8764         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
8765         * passes.def (pass_ipa_chkp_versioning): New.
8766         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
8767         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
8768         (pass_chkp_instrumentation_passes): New.
8769         (pass_ipa_chkp_produce_thunks): New.
8770         (pass_local_optimization_passes): New.
8771         (pass_chkp_opt): New.
8772         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
8773         (make_pass_ipa_chkp_produce_thunks): New.
8774         (make_pass_chkp): New.
8775         (make_pass_chkp_opt): New.
8776         (make_pass_early_local_passes): Renamed to ...
8777         (make_pass_build_ssa_passes): This.
8778         (make_pass_chkp_instrumentation_passes): New.
8779         (make_pass_local_optimization_passes): New.
8780         * passes.c (pass_manager::execute_early_local_passes): Execute
8781         early passes in three steps.
8782         (execute_all_early_local_passes): Renamed to ...
8783         (execute_build_ssa_passes): This.
8784         (pass_data_early_local_passes): Renamed to ...
8785         (pass_data_build_ssa_passes): This.
8786         (pass_early_local_passes): Renamed to ...
8787         (pass_build_ssa_passes): This.
8788         (pass_data_chkp_instrumentation_passes): New.
8789         (pass_chkp_instrumentation_passes): New.
8790         (pass_data_local_optimization_passes): New.
8791         (pass_local_optimization_passes): New.
8792         (make_pass_early_local_passes): Renamed to ...
8793         (make_pass_build_ssa_passes): This.
8794         (make_pass_chkp_instrumentation_passes): New.
8795         (make_pass_local_optimization_passes): New.
8796         * c-family/c.opt (fcheck-pointer-bounds): New.
8797         (fchkp-check-incomplete-type): New.
8798         (fchkp-zero-input-bounds-for-main): New.
8799         (fchkp-first-field-has-own-bounds): New.
8800         (fchkp-narrow-bounds): New.
8801         (fchkp-narrow-to-innermost-array): New.
8802         (fchkp-optimize): New.
8803         (fchkp-use-fast-string-functions): New.
8804         (fchkp-use-nochk-string-functions): New.
8805         (fchkp-use-static-bounds): New.
8806         (fchkp-use-static-const-bounds): New.
8807         (fchkp-treat-zero-dynamic-size-as-infinite): New.
8808         (fchkp-check-read): New.
8809         (fchkp-check-write): New.
8810         (fchkp-store-bounds): New.
8811         (fchkp-instrument-calls): New.
8812         (fchkp-instrument-marked-only): New.
8813         (Wchkp): New.
8814         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
8815         (handle_bnd_legacy): New.
8816         (handle_bnd_instrument): New.
8817         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
8818         and bnd_instrument.  Fix documentation.
8819         (c_common_format_attribute_table): Likewsie.
8820         * toplev.c: include tree-chkp.h.
8821         (process_options): Check Pointer Bounds Checker is supported.
8822         (compile_file): Add chkp_finish_file call.
8823         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
8824         to handle instrumentation clones properly.
8825         (propagate_constants_accross_call): Do not propagate
8826         through instrumentation thunks.
8827         * ipa-pure-const.c (propagate_pure_const): Support
8828         IPA_REF_CHKP.
8829         * ipa-inline.c (early_inliner): Check edge has summary allocated.
8830         * ipa-split.c: Include tree-chkp.h.
8831         (find_retbnd): New.
8832         (split_part_set_ssa_name_p): New.
8833         (consider_split): Do not split retbnd and retval
8834         producers.
8835         (insert_bndret_call_after): new.
8836         (split_function): Propagate Pointer Bounds Checker
8837         instrumentation marks and handle returned bounds.
8838         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
8839         into bit field and add with_bounds field.
8840         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
8841         with_bounds field for instrumented calls.
8842         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
8843         CALL_WITH_BOUNDS_P flag for calls.
8844         * tree-ssa-ccp.c: Include tree-chkp.h.
8845         (insert_clobber_before_stack_restore): Handle
8846         BUILT_IN_CHKP_BNDRET calls.
8847         * tree-ssa-dce.c: Include tree-chkp.h.
8848         (propagate_necessity): For free call fed by alloc check
8849         bounds are also provided by the same alloc.
8850         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
8851         used by free calls.
8852         * tree-inline.c: Include tree-chkp.h.
8853         (declare_return_variable): Add arg holding
8854         returned bounds slot.  Create and initialize returned bounds var.
8855         (remap_gimple_stmt): Handle returned bounds.
8856         Return sequence of statements instead of a single statement.
8857         (insert_init_stmt): Add declaration.
8858         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
8859         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
8860         Properly handle bounds in va_arg_pack and va_arg_pack_len.
8861         (expand_call_inline): Handle returned bounds.  Add bounds copy
8862         for generated mem to mem assignments.
8863         * tree-inline.h (copy_body_data): Add fields retbnd and
8864         assign_stmts.
8865         * value-prof.c: Include tree-chkp.h.
8866         (gimple_ic): Support returned bounds.
8867         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
8868         with "chkp ctor" and "bnd_legacy" attributes.
8869         (symtab_remove_unreachable_nodes): Keep initial values for
8870         pointer bounds to be used for checks eliminations.
8871         (process_references): Handle IPA_REF_CHKP.
8872         (walk_polymorphic_call_targets): Likewise.
8873         * ipa-visibility.c (cgraph_externally_visible_p): Mark
8874         instrumented 'main' as externally visible.
8875         (function_and_variable_visibility): Filter instrumentation
8876         thunks.
8877         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
8878         field.
8879         (cgraph_node): Add instrumented_version, orig_decl and
8880         instrumentation_clone fields.
8881         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
8882         (varpool_node): Add need_bounds_init field.
8883         (cgraph_local_p): New.
8884         * cgraph.c: Include tree-chkp.h.
8885         (cgraph_node::remove): Fix instrumented_version
8886         of the referenced node if any.
8887         (cgraph_node::dump): Dump instrumentation_clone and
8888         instrumented_version fields.
8889         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
8890         references and instrumentation thunks.
8891         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
8892         all not instrumented instrumentation clones alive.
8893         (cgraph_redirect_edge_call_stmt_to_callee): Support
8894         returned bounds.
8895         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
8896         reference.
8897         (cgraph_rebuild_references): Likewise.
8898         * cgraphunit.c: Include tree-chkp.h.
8899         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
8900         function version.
8901         (varpool_finalize_decl): Register statically initialized decls
8902         in Pointer Bounds Checker.
8903         (walk_polymorphic_call_targets): Do not mark generated call to
8904         __builtin_unreachable as with_bounds.
8905         (output_weakrefs): If there are both instrumented and original
8906         versions, output only one of them.
8907         (cgraph_node::expand_thunk): Set with_bounds flag
8908         for created call statement.
8909         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
8910         (ipa_ref): increase size of use field.
8911         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
8912         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
8913         (ctor_for_folding): Do not fold constant bounds vars.
8914         * lto-streamer.h (LTO_minor_version): Change minor version from
8915         0 to 1.
8916         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
8917         pointer bounds.
8918         (lto_output_node): Output instrumentation_clone,
8919         thunk.add_pointer_bounds_args and orig_decl field.
8920         (lto_output_ref): Adjust to new ipa_ref::use field size.
8921         (input_overwrite_node): Read instrumentation_clone field.
8922         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
8923         fields.
8924         (input_ref): Adjust to new ipa_ref::use field size.
8925         (input_cgraph_1): Compute instrumented_version fields and restore
8926         IDENTIFIER_TRANSPARENT_ALIAS chains.
8927         (lto_output_varpool_node): Output
8928         need_bounds_init value.
8929         (input_varpool_node): Read need_bounds_init value.
8930         * lto-partition.c (add_symbol_to_partition_1): Keep original
8931         and instrumented versions together.
8932         (privatize_symbol_name): Restore transparent alias chain if required.
8933         (add_references_to_partition): Add references to pointer bounds vars.
8934         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
8935         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
8936         (gen_type_die_with_usage): Skip pointer bounds.
8937         (dwarf2out_global_decl): Likewise.
8938         (is_base_type): Support POINTER_BOUNDS_TYPE.
8939         (gen_formal_types_die): Skip pointer bounds.
8940         (gen_decl_die): Likewise.
8941         * var-tracking.c (vt_add_function_parameters): Skip
8942         bounds parameters.
8943         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
8944         thunk still exists.
8945         (sem_variable::merge): Reset need_bounds_init flag.
8946         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
8947         and attributes.
8948         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8949         (TARGET_STORE_BOUNDS_FOR_ARG): New.
8950         (TARGET_LOAD_RETURNED_BOUNDS): New.
8951         (TARGET_STORE_RETURNED_BOUNDS): New.
8952         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8953         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8954         (TARGET_BUILTIN_CHKP_FUNCTION): New.
8955         (TARGET_CHKP_BOUND_TYPE): New.
8956         (TARGET_CHKP_BOUND_MODE): New.
8957         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8958         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8959         * doc/tm.texi: Regenerated.
8960         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
8961         (BND32mode): New.
8962         (BND64mode): New.
8963         * doc/invoke.texi (-mmpx): New.
8964         (-mno-mpx): New.
8965         (chkp-max-ctor-size): New.
8966         * config/i386/constraints.md (w): New.
8967         (Ti): New.
8968         (Tb): New.
8969         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
8970         * config/i386/i386-modes.def (BND32): New.
8971         (BND64): New.
8972         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
8973         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
8974         (regclass_map): Add bound registers.
8975         (dbx_register_map): Likewise.
8976         (dbx64_register_map): Likewise.
8977         (svr4_dbx_register_map): Likewise.
8978         (isa_opts): Add -mmpx.
8979         (PTA_MPX): New.
8980         (ix86_option_override_internal): Support MPX ISA.
8981         (ix86_conditional_register_usage): Support bound registers.
8982         (ix86_code_end): Add MPX bnd prefix.
8983         (output_set_got): Likewise.
8984         (print_reg): Avoid prefixes for bound registers.
8985         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
8986         (ix86_print_operand_punct_valid_p): Likewise.
8987         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
8988         UNSPEC_BNDLDX_ADDR.
8989         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
8990         (ix86_class_likely_spilled_p): Add bound regs support.
8991         (ix86_hard_regno_mode_ok): Likewise.
8992         (x86_order_regs_for_local_alloc): Likewise.
8993         (ix86_bnd_prefixed_insn_p): New.
8994         (ix86_builtins): Add
8995         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
8996         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
8997         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
8998         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
8999         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
9000         IX86_BUILTIN_BNDUPPER.
9001         (builtin_isa): Add leaf_p and nothrow_p fields.
9002         (def_builtin): Initialize leaf_p and nothrow_p.
9003         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
9004         flags.
9005         (bdesc_mpx): New.
9006         (bdesc_mpx_const): New.
9007         (ix86_init_mpx_builtins): New.
9008         (ix86_init_builtins): Call ix86_init_mpx_builtins.
9009         (ix86_emit_cmove): New.
9010         (ix86_emit_move_max): New.
9011         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
9012         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
9013         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
9014         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
9015         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
9016         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
9017         (ix86_function_value_bounds): New.
9018         (ix86_builtin_mpx_function): New.
9019         (ix86_get_arg_address_for_bt): New.
9020         (ix86_load_bounds): New.
9021         (ix86_store_bounds): New.
9022         (ix86_load_returned_bounds): New.
9023         (ix86_store_returned_bounds): New.
9024         (ix86_mpx_bound_mode): New.
9025         (ix86_make_bounds_constant): New.
9026         (ix86_initialize_bounds):
9027         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
9028         (TARGET_STORE_BOUNDS_FOR_ARG): New.
9029         (TARGET_LOAD_RETURNED_BOUNDS): New.
9030         (TARGET_STORE_RETURNED_BOUNDS): New.
9031         (TARGET_CHKP_BOUND_MODE): New.
9032         (TARGET_BUILTIN_CHKP_FUNCTION): New.
9033         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
9034         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
9035         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
9036         (ix86_option_override_internal): Do not
9037         support x32 with MPX.
9038         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
9039         and force_bnd_pass.
9040         (function_arg_advance_32): Return number of used integer
9041         registers.
9042         (function_arg_advance_64): Likewise.
9043         (function_arg_advance_ms_64): Likewise.
9044         (ix86_function_arg_advance): Handle pointer bounds.
9045         (ix86_function_arg): Likewise.
9046         (ix86_function_value_regno_p): Mark fisrt bounds registers as
9047         possible function value.
9048         (ix86_function_value_1): Handle pointer bounds type/mode
9049         (ix86_return_in_memory): Likewise.
9050         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
9051         (ix86_expand_call): Generate returned bounds.
9052         (ix86_setup_incoming_vararg_bounds): New.
9053         (ix86_va_start): Initialize bounds for pointers in va_list.
9054         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
9055         * config/i386/i386.h (TARGET_MPX): New.
9056         (TARGET_MPX_P): New.
9057         (FIRST_PSEUDO_REGISTER): Fix to new value.
9058         (FIXED_REGISTERS): Add bound registers.
9059         (CALL_USED_REGISTERS): Likewise.
9060         (REG_ALLOC_ORDER): Likewise.
9061         (HARD_REGNO_NREGS): Likewise.
9062         (VALID_BND_REG_MODE): New.
9063         (FIRST_BND_REG): New.
9064         (LAST_BND_REG): New.
9065         (reg_class): Add BND_REGS.
9066         (REG_CLASS_NAMES): Likewise.
9067         (REG_CLASS_CONTENTS): Likewise.
9068         (BND_REGNO_P): New.
9069         (ANY_BND_REG_P): New.
9070         (BNDmode): New.
9071         (HI_REGISTER_NAMES): Add bound registers.
9072         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
9073         stdarg fields.
9074         * config/i386/i386.md (UNSPEC_BNDMK): New.
9075         (UNSPEC_BNDMK_ADDR): New.
9076         (UNSPEC_BNDSTX): New.
9077         (UNSPEC_BNDLDX): New.
9078         (UNSPEC_BNDLDX_ADDR): New.
9079         (UNSPEC_BNDCL): New.
9080         (UNSPEC_BNDCU): New.
9081         (UNSPEC_BNDCN): New.
9082         (UNSPEC_MPX_FENCE): New.
9083         (UNSPEC_SIZEOF): New.
9084         (BND0_REG): New.
9085         (BND1_REG): New.
9086         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9087         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9088         (prefix_rep): Check for bnd prefix.
9089         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9090         (length_nobnd): New.
9091         (length): Use length_nobnd when specified.
9092         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
9093         (BND): New.
9094         (bnd_ptr): New.
9095         (BNDCHECK): New.
9096         (bndcheck): New.
9097         (*jcc_1): Add MPX bnd prefix.
9098         (*jcc_2): Likewise.
9099         (jump): Likewise.
9100         (*indirect_jump): Likewise.
9101         (*tablejump_1): Likewise.
9102         (simple_return_internal): Likewise.
9103         (simple_return_internal_long): Likewise.
9104         (simple_return_pop_internal): Likewise.
9105         (simple_return_indirect_internal): Likewise.
9106         (<mode>_mk): New.
9107         (*<mode>_mk): New.
9108         (mov<mode>): New.
9109         (*mov<mode>_internal_mpx): New.
9110         (<mode>_<bndcheck>): New.
9111         (*<mode>_<bndcheck>): New.
9112         (<mode>_ldx): New.
9113         (*<mode>_ldx): New.
9114         (<mode>_stx): New.
9115         (*<mode>_stx): New.
9116         move_size_reloc_<mode>): New.
9117         * config/i386/predicates.md (address_mpx_no_base_operand): New.
9118         (address_mpx_no_index_operand): New.
9119         (bnd_mem_operator): New.
9120         (symbol_operand): New.
9121         (x86_64_immediate_size_operand): New.
9122         * config/i386/i386.opt (mmpx): New.
9123         * config/i386/i386-builtin-types.def (BND): New.
9124         (ULONG): New.
9125         (BND_FTYPE_PCVOID_ULONG): New.
9126         (VOID_FTYPE_BND_PCVOID): New.
9127         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
9128         (BND_FTYPE_PCVOID_PCVOID): New.
9129         (BND_FTYPE_PCVOID): New.
9130         (BND_FTYPE_BND_BND): New.
9131         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
9132         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
9133         (ULONG_FTYPE_VOID): New.
9134         (PVOID_FTYPE_BND): New.
9135
9136 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
9137
9138         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
9139         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
9140         pass_cleanup_barriers, pass_delay_slots,
9141         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
9142         pass_shorten_branches, pass_est_nothrow_function_flags,
9143         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
9144         into pass_late_compilation.
9145         (pass_late_compilation): Add.
9146         * passes.c (pass_data_late_compilation, pass_late_compilation,
9147         make_pass_late_compilation): New.
9148         * timevar.def (TV_LATE_COMPILATION): New.
9149
9150         * target.def (omit_struct_return_reg): New data hook.
9151         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
9152         * doc/tm.texi: Regenerate.
9153         * function.c (expand_function_end): Use it.
9154
9155         * target.def (no_register_allocation): New data hook.
9156         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
9157         * doc/tm.texi: Regenerate.
9158         * ira.c (gate_ira): New function.
9159         (pass_data_ira): Set has_gate.
9160         (pass_ira): Add a gate function.
9161         (pass_data_reload): Likewise.
9162         (pass_reload): Add a gate function.
9163         (pass_ira): Use it.
9164         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
9165         no register allocation happens on the target and return.
9166         * final.c (alter_subreg): Ensure register is not a pseudo before
9167         calling simplify_subreg.
9168         (output_operand): Assert that x isn't a pseudo only if doing
9169         register allocation.
9170
9171         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
9172         global vars.
9173
9174         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
9175         sorry if necessary.
9176
9177 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
9178
9179         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
9180         * rtl.h (SUBREG_P): New macro added.
9181
9182 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
9183
9184         * config/aarch64/aarch64-builtins.c
9185         (aarch64_build_scalar_type): Remove.
9186         (aarch64_scalar_builtin_types, aarch64_simd_type,
9187         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
9188         aarch64_mangle_builtin_vector_type,
9189         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
9190         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
9191         aarch64_init_simd_builtin_types,
9192         aarch64_init_simd_builtin_scalar_types): New.
9193         (aarch64_init_simd_builtins): Refactor.
9194         (aarch64_init_crc32_builtins): Fixup with qualifier.
9195         * config/aarch64/aarch64-protos.h
9196         (aarch64_mangle_builtin_type): Export.
9197         * config/aarch64/aarch64-simd-builtin-types.def: New.
9198         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
9199         (aarch64_mangle_type): Refactor.
9200         * config/aarch64/arm_neon.h: Declare vector types based on
9201         internal types.
9202         * config/aarch64/t-aarch64: Update dependency.
9203
9204 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
9205
9206         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
9207         atomic_update_decl): Guard declaration with #ifdef.
9208
9209 2014-11-04  Marek Polacek  <polacek@redhat.com>
9210
9211         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
9212
9213 2014-11-04  Marek Polacek  <polacek@redhat.com>
9214
9215         * Makefile.in (OBJS): Add sanopt.o.
9216         (GTFILES): Add sanopt.c.
9217         * asan.h (asan_expand_check_ifn): Declare.
9218         * asan.c (asan_expand_check_ifn): No longer static.
9219         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
9220         * sanopt.c: ...here.  New file.
9221
9222 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
9223 2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
9224
9225         PR target/63293
9226         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
9227         stack adjustment.
9228
9229 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
9230
9231         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
9232         also verify that mode is equal to the mode of op0.
9233
9234         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
9235         emit into a sequence instead.
9236
9237 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9238
9239         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
9240
9241 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9242
9243         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
9244         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
9245         (reduc_smax_<mode> *2): Rename to...
9246         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
9247         (reduc_umin_<mode> *2): Rename to...
9248         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
9249         (reduc_umax_<mode> *2): Rename to...
9250         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
9251
9252 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9253
9254         config/arm/neon.md (reduc_plus_*): Rename to...
9255         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
9256
9257 2014-11-04  Michael Collison <michael.collison@linaro.org>
9258
9259         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
9260         to support constraints for CONST_INT in atomic operations.
9261         * config/aarch64/atomics.md
9262         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9263         (atomic_nand<mode>): Likewise.
9264         (atomic_fetch_<atomic_optab><mode>): Likewise.
9265         (atomic_fetch_nand<mode>): Likewise.
9266         (atomic_<atomic_optab>_fetch<mode>): Likewise.
9267         (atomic_nand_fetch<mode>): Likewise.
9268
9269 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9270
9271         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9272         of __ARM_FEATURE_IDIV.
9273
9274 2014-11-04  Marek Polacek  <polacek@redhat.com>
9275
9276         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9277
9278 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9279
9280         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9281
9282 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9283
9284         Revert:
9285         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9286         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9287         Allow CC mode if HAVE_cbranchcc4.
9288
9289 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9290
9291         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9292         with -fdump-go-spec.  Anonymous substructures are now flattened and
9293         replaced by their fields (record) or the first named, non-bitfield
9294         field (union).
9295
9296 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9297
9298         * input.c (expand_location_to_spelling_point): Fix typo.
9299         (expansion_point_location_if_in_system_header): Fix comment.
9300
9301 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9302
9303         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9304
9305 2014-11-03  Richard Biener  <rguenther@suse.de>
9306
9307         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9308         like ordinary operations.
9309         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9310         as NOP_EXPR.
9311
9312 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
9313
9314         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9315         macros.
9316         * configure, config.h.in: Regenerate.
9317         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9318         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9319         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9320         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9321         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9322         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9323         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9324         (atomic_update_decl): New static variables.
9325         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9326         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9327         and __atomic_feupdateenv for soft-float and no-FPRs.
9328
9329 2014-11-03  Richard Biener  <rguenther@suse.de>
9330
9331         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
9332         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9333         * fold-const.c (fold_unary_loc): Remove them here.
9334         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9335         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9336         GIMPLE_UNARY_RHS case.
9337         (gimple_fold_stmt_to_constant_1): Likewise.
9338         (replace_stmt_with_simplification): Fix inverted comparison.
9339
9340 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9341
9342         PR tree-optimization/60770
9343         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
9344         statement should be removed.
9345         (maybe_register_def): Likewise. Replace clobbers with default
9346         definitions.
9347         (rewrite_dom_walker::before_dom_children): Remove statement if
9348         rewrite_update_stmt says so.
9349         * tree-ssa-live.c: Include tree-ssa.h.
9350         (set_var_live_on_entry): Do not mark undefined variables as live.
9351         (verify_live_on_entry): Do not check undefined variables.
9352         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
9353         of partially undefined variables.
9354         * tree-ssa.c (ssa_undefined_value_p): Likewise.
9355         (execute_update_addresses_taken): Do not drop clobbers.
9356
9357 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9358
9359         PR tree-optimization/63666
9360         * fold-const.c: Include "optabs.h".
9361         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
9362         can_vec_perm_p permutation to one that is not.
9363
9364 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9365
9366         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
9367
9368 2014-11-03  Andrew Pinski  <apinski@cavium.com>
9369
9370         * config/mips/mips-cpus.def (octeon3): New cpu.
9371         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
9372         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
9373         of the comparison no longer matches mode of the operands.
9374         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
9375         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
9376         (TARGET_OCTEON2): Likewise.
9377         (TUNE_OCTEON): Add Octeon3.
9378         * config/mips/mips.md (processor): Add octeon3.
9379         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
9380         (octeon_arith): Add octeon3.
9381         (octeon_condmove): Remove.
9382         (octeon_condmove_o1): New reservation.
9383         (octeon_condmove_o2): New reservation.
9384         (octeon_condmove_o3_int_on_cc): New reservation.
9385         (octeon_load_o2): Add octeon3.
9386         (octeon_cop_o2): Likewise.
9387         (octeon_store): Likewise.
9388         (octeon_brj_o2): Likewise.
9389         (octeon_imul3_o2): Likewise.
9390         (octeon_imul_o2): Likewise.
9391         (octeon_mfhilo_o2): Likewise.
9392         (octeon_imadd_o2): Likewise.
9393         (octeon_idiv_o2_si): Likewise.
9394         (octeon_idiv_o2_di): Likewise.
9395         (octeon_fpu): Add to the automaton.
9396         (octeon_fpu): New cpu unit.
9397         (octeon_condmove_o2): Check for non floating point modes.
9398         (octeon_load_o2): Add prefetchx.
9399         (octeon_cop_o2): Don't check for octeon3.
9400         (octeon3_faddsubcvt): New reservation.
9401         (octeon3_fmul): Likewise.
9402         (octeon3_fmadd): Likewise.
9403         (octeon3_div_sf): Likewise.
9404         (octeon3_div_df): Likewise.
9405         (octeon3_sqrt_sf): Likewise.
9406         (octeon3_sqrt_df): Likewise.
9407         (octeon3_rsqrt_sf): Likewise.
9408         (octeon3_rsqrt_df): Likewise.
9409         (octeon3_fabsnegmov): Likewise.
9410         (octeon_fcond): Likewise.
9411         (octeon_fcondmov): Likewise.
9412         (octeon_fpmtc1): Likewise.
9413         (octeon_fpmfc1): Likewise.
9414         (octeon_fpload): Likewise.
9415         (octeon_fpstore): Likewise.
9416         * config/mips/mips-tables.opt: Regenerate.
9417         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
9418
9419 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9420
9421         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9422         Allow CC mode if HAVE_cbranchcc4.
9423
9424 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9425
9426         * config/arc/arc.c (write_ext_corereg_1): Delete.
9427         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
9428
9429 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9430
9431         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
9432         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
9433
9434 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9435
9436         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
9437         (small_data_pattern_1): Delete.
9438         (small_data_pattern): Use FOR_EACH_SUBRTX.
9439
9440 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9441
9442         * config/arc/arc.c: Include rtl-iter.h.
9443         (arc_rewrite_small_data_1): Delete.
9444         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
9445
9446 2014-11-02  Michael Collison  <michael.collison@linaro.org>
9447
9448         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
9449         to support vector modes.
9450         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9451
9452 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
9453
9454         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
9455         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
9456         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
9457         * optabs.c: (gen_move_insn): Move to expr.c.
9458         * expr.h: Move protypes and enums to optabs.h.
9459         * expr.c: (gen_move_insn): Relocate from optabs.c.
9460         * genemit.c (main): Include insn-codes.h.
9461         * gengtype.c (open_base_files): Include insn-codes.h.
9462         * asan.c: Include insn-codes.h.
9463         * bb-reorder.c: Ditto.
9464         * builtins.c: Ditto.
9465         * calls.c: Ditto.
9466         * cfgexpand.c: Ditto.
9467         * cilk-common.c: Ditto.
9468         * combine.c: Ditto.
9469         * dojump.c: Ditto.
9470         * dse.c: Ditto.
9471         * except.c: Ditto.
9472         * explow.c: Ditto.
9473         * expmed.c: Ditto.
9474         * function.c: Ditto.
9475         * ifcvt.c: Ditto.
9476         * internal-fn.c: Ditto.
9477         * loop-unroll.c: Ditto.
9478         * lra.c: Ditto.
9479         * modulo-sched.c: Ditto.
9480         * omp-low.c: Ditto.
9481         * postreload.c: Ditto.
9482         * ree.c: Ditto.
9483         * reload.c: Ditto.
9484         * reload1.c: Ditto.
9485         * shrink-wrap.c: Ditto.
9486         * simplify-rtx.c: Ditto.
9487         * stmt.c: Ditto.
9488         * target-globals.c: Ditto.
9489         * targhooks.c: Ditto.
9490         * toplev.c: Ditto.
9491         * tree-if-conv.c: Ditto.
9492         * tree-ssa-forwprop.c: Ditto.
9493         * tree-ssa-loop-prefetch.c: Ditto.
9494         * tree-ssa-math-opts.c: Ditto.
9495         * tree-ssa-phiopt.c: Ditto.
9496         * tree-ssa-reassoc.c: Ditto.
9497         * tree-switch-conversion.c: Ditto.
9498         * tree-vect-data-refs.c: Ditto.
9499         * tree-vect-generic.c: Ditto.
9500         * tree-vect-loop.c: Ditto.
9501         * tree-vect-patterns.c: Ditto.
9502         * tree-vect-slp.c: Ditto.
9503         * tree-vect-stmts.c: Ditto.
9504         * tree-vrp.c: Ditto.
9505         * value-prof.c: Ditto.
9506         * config/aarch64/aarch64-builtins.c: Ditto.
9507         * config/alpha/alpha.c: Ditto.
9508         * config/arm/arm.c: Ditto.
9509         * config/cris/cris.c: Ditto.
9510         * config/epiphany/epiphany.c: Ditto.
9511         * config/frv/frv.c: Ditto.
9512         * config/h8300/h8300.c: Ditto.
9513         * config/ia64/ia64.c: Ditto.
9514         * config/iq2000/iq2000.c: Ditto.
9515         * config/m32c/m32c.c: Ditto.
9516         * config/mep/mep.c: Ditto.
9517         * config/microblaze/microblaze.c: Ditto.
9518         * config/mips/mips.c: Ditto.
9519         * config/mn10300/mn10300.c: Ditto.
9520         * config/moxie/moxie.c: Ditto.
9521         * config/msp430/msp430.c: Ditto.
9522         * config/nios2/nios2.c: Ditto.
9523         * config/pa/pa.c: Ditto.
9524         * config/rl78/rl78.c: Ditto.
9525         * config/rs6000/rs6000.c: Ditto.
9526         * config/rx/rx.c: Ditto.
9527         * config/s390/s390.c: Ditto.
9528         * config/sh/sh.c: Ditto.
9529         * config/sh/sh_treg_combine.cc: Ditto.
9530         * config/spu/spu.c: Ditto.
9531         * config/stormy16/stormy16.c: Ditto.
9532         * config/tilegx/mul-tables.c: Ditto.
9533         * config/tilegx/tilegx.c: Ditto.
9534         * config/tilepro/mul-tables.c: Ditto.
9535         * config/tilepro/tilepro.c: Ditto.
9536         * config/vax/vax.c: Ditto.
9537
9538 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9539
9540         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
9541         (CLEAR_BY_PIECES_P): Likewise.
9542         (SET_BY_PIECES_P): Likewise.
9543         (STORE_BY_PIECES_P): Likewise.
9544         * doc/tm.texi: Regenerate.
9545         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
9546         SET_BY_PIECES_P, STORE_BY_PIECES_P.
9547         * expr.c (MOVE_BY_PIECES_P): Remove.
9548         (CLEAR_BY_PIECES_P): Likewise.
9549         (SET_BY_PIECES_P): Likewise.
9550         (STORE_BY_PIECES_P): Likewise.
9551         (can_move_by_pieces): Rewrite in terms of
9552         targetm.use_by_pieces_infrastructure_p.
9553         (emit_block_move_hints): Likewise.
9554         (can_store_by_pieces): Likewise.
9555         (store_by_pieces): Likewise.
9556         (clear_storage_hints): Likewise.
9557         (emit_push_insn): Likewise.
9558         (expand_constructor): Likewise.
9559
9560 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9561
9562         * config/aarch64/aarch64.c
9563         (aarch64_use_by_pieces_infrastructre_p): New.
9564         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
9565         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
9566
9567 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9568
9569         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
9570         (STORE_BY_PIECES_P): Likewise.
9571         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9572         (mips_move_by_pieces_p): Rename to...
9573         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
9574         parameters, use the default hook implementation as a
9575         fall-back.
9576
9577 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9578
9579         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9580         (sh_use_by_pieces_infrastructure_p): Likewise.
9581         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
9582         (STORE_BY_PIECES_P): Likewise.
9583         (SET_BY_PIECES_P): Likewise.
9584
9585 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9586
9587         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9588         (arc_use_by_pieces_infrastructure_p): Likewise.
9589         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
9590         (CAN_MOVE_BY_PIECES): Likewise.
9591
9592 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9593
9594         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
9595         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
9596         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
9597         (CLEAR_BY_PIECES): Likewise.
9598         (SET_BY_PIECES): Likewise.
9599         (STORE_BY_PIECES): Likewise.
9600
9601 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9602
9603         * target.def (use_by_pieces_infrastructure_p): New.
9604         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
9605         is deprecated.
9606         (STORE_BY_PIECES_P): Likewise.
9607         (CLEAR_BY_PIECES_P): Likewise.
9608         (SET_BY_PIECES_P): Likewise.
9609         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
9610         * doc/tm.texi: Regenerate.
9611         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
9612         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
9613         (STORE_BY_PIECES_P): Likewise.
9614         (CLEAR_BY_PIECES_P): Likewise.
9615         (SET_BY_PIECES_P): Likewise.
9616         (STORE_MAX_PIECES): Move to...
9617         * defaults.h (STORE_MAX_PIECES): ...here.
9618         * targhooks.c (get_move_ratio): New.
9619         (default_use_by_pieces_infrastructure_p): Likewise.
9620         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
9621         * target.h (by_pieces_operation): New.
9622
9623 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9624
9625         PR target/63702
9626         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
9627         assignment to 'nargs' variable.
9628
9629 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9630
9631         PR target/63620
9632         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
9633         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
9634         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
9635         be reloaded through memory.
9636         (*pushxf): Ditto.
9637         (*pushdf): Ditto.
9638
9639 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9640
9641         PR rtl-optimization/63659
9642         * ree.c (update_reg_equal_equiv_notes): New function.
9643         (combine_set_extension, transform_ifelse): Use it.
9644
9645 2014-10-31  Jeff Law  <law@redhat.com>
9646
9647         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
9648         and Jonny Grant (collect2).
9649
9650 2014-10-31  Richard Biener  <rguenther@suse.de>
9651
9652         * builtins.c (fold_builtin_atomic_always_lock_free): Use
9653         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
9654         approprate.
9655         (fold_builtin_expect): Likewise.
9656         (integer_valued_real_p): Likewise.
9657         * cfgexpand.c (expand_debug_expr): Likewise.
9658         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
9659         (find_foldable_builtin_expect): Likewise.
9660         * trans-mem.c (thread_private_new_memory): Likewise.
9661         * tree-affine.c (aff_combination_expand): Likewise.
9662         * tree-data-ref.c (initialize_matrix_A): Likewise.
9663         * tree-inline.c (copy_bb): Likewise.
9664         * tree-pretty-print.c (dump_function_name): Likewise.
9665         (print_call_name): Likewise.
9666         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
9667         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
9668         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
9669         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
9670         (vect_recog_widen_mult_pattern): Likewise.
9671         (vect_operation_fits_smaller_type): Likewise.
9672         * tree-vrp.c (find_assert_locations_1): Likewise.
9673         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9674         converts to NOP_EXPR.
9675
9676 2014-10-31  Richard Biener  <rguenther@suse.de>
9677
9678         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
9679         CONVERT_EXPRs in generated code.
9680         (dt_simplify::gen): Likewise.
9681
9682 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
9683
9684         PR target/63534
9685         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
9686         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
9687         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
9688         using mcount in 32bit PIC mode.
9689         (ix86_elim_entry_set_got): New.
9690         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
9691         in PROLOGUE, delete initial if possible.
9692
9693 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9694
9695         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
9696         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
9697
9698 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9699
9700         PR tree-optimization/63259
9701         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
9702         rotation left if it is a 16 bit byte swap.
9703         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
9704         and RROTATE_EXPR statements if it is a byte rotation.
9705
9706 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9707
9708         PR sanitizer/63697
9709         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
9710         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
9711         instead of vr0.min - vr1.min and vr0.max - vr1.max.
9712
9713 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
9714
9715         PR ipa/63696
9716         * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
9717         alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
9718
9719 2014-10-30  Felix Yang  <felix.yang@huawei.com>
9720
9721         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
9722         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
9723         (xtensa_reorg, xtensa_reorg_loops): New.
9724         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
9725         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
9726         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
9727         (xtensa_doloop_hooks): Define.
9728         * config/xtensa/xtensa.md (doloop_end, loop_end): New
9729         (zero_cost_loop_start): Rewritten.
9730         (zero_cost_loop_end): Likewise.
9731
9732 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
9733
9734         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
9735
9736 2014-10-30  Richard Biener  <rguenther@suse.de>
9737
9738         * genmatch.c: Remove <map>, <utility> and <string> includes.
9739         Include ggc.h and hash-map.h.
9740         (ggc_internal_cleared_alloc): Provide stub definition.
9741         (ggc_free): Likewise.
9742         (struct capture_id_map_hasher): New traits for hash_map.
9743         (cid_map_t): New typedef.
9744         (everywhere else): Replace std::map use with cid_map_t.
9745         * hash-map.h (hash_map::elements): New member function.
9746         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
9747         hash-map.h and $(GGC_H) as dependency.
9748
9749 2014-10-30  Richard Biener  <rguenther@suse.de>
9750
9751         * genmatch.c (capture_info::walk_c_expr): Ignore capture
9752         uses inside TREE_TYPE ().
9753         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
9754         (find_candidates_dom_walker::before_dom_children): Likewise.
9755         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
9756         (replace_profitable_candidates): Likewise.
9757         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9758         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
9759         * convert.c (convert_to_integer): Use CASE_CONVERT.
9760
9761 2014-10-30  Richard Biener  <rguenther@suse.de>
9762
9763         * match.pd: Implement more patterns that simplify to a single value.
9764         * fold-const.c (fold_binary_loc): Remove them here.
9765         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
9766         (fwprop_ssa_val): Remove restriction on single uses.
9767
9768 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9769
9770         * config/avr/driver-avr.c (avr_set_current_device): Remove.
9771
9772 2014-10-30  Martin Liska  <mliska@suse.cz>
9773
9774         PR ipa/63574
9775         PR ipa/63664
9776         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
9777         (func_checker::compare_gimple_label): Simlified comparison introduced.
9778         * ipa-icf-gimple.h: Missing comment added.
9779
9780 2014-10-30  Jeff Law  <law@redhat.com>
9781
9782         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
9783         argument from rtx to rtx_insn *.
9784         (compute_movmem_length, compute_clrmem_length): Likewise.
9785         (copy_fp_args, length_fp_args): Likewise.
9786         * config/pa/pa.c (legitimize_pic_address): Promote local variable
9787         "insn" from rtx to rtx_insn *.
9788         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
9789         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
9790         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
9791         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
9792         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
9793         (compute_movmem_length, compute_clrmem_length): Likewise.
9794         (copy_fp-args, length_fp_args): Likewise.
9795
9796 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9797
9798         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
9799         scalar typedef.
9800         (CUMULATIVE_ARGS): Guard against target includes.
9801         (machine_function): Likewise.
9802
9803 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9804
9805         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
9806         recog state after aarch64_prev_real_insn call.
9807
9808 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9809
9810         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
9811
9812 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9813
9814         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
9815         (struct machine_function): Gate definition on
9816         !defined(USED_FOR_TARGET).
9817
9818 2014-10-29  DJ Delorie  <dj@redhat.com>
9819
9820         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
9821
9822 2014-10-29  Martin Liska  <mliska@suse.cz>
9823
9824         PR ipa/63587
9825         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
9826         to local declarations.
9827         * function.c (add_local_decl): Implementation moved from header
9828         file, assert introduced for tree type.
9829         * function.h: Likewise.
9830
9831 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9832
9833         * godump.c (go_format_type): Represent "float _Complex" and
9834         "double _Complex" as complex64 or complex128 in Go, as appropriate.
9835
9836 2014-10-29  Richard Biener  <rguenther@suse.de>
9837
9838         * match.pd: Implement a first set of conversion patterns.
9839         * fold-const.c (fold_unary_loc): Remove them here.
9840         * tree-ssa-forwprop.c (simplify_vce): Remove.
9841         (pass_forwprop::execute): Do not call simplify_vce.
9842
9843 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9844
9845         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
9846         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
9847         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
9848         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
9849         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
9850         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
9851         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
9852         config/arc/arc.h, config/arc/predicates.md,
9853         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
9854         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9855         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
9856         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
9857         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
9858         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
9859         config/cr16/cr16-protos.h, config/cr16/cr16.c,
9860         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
9861         config/darwin-protos.h, config/darwin.c,
9862         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
9863         config/epiphany/epiphany.md, config/fr30/fr30.c,
9864         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
9865         config/h8300/h8300-protos.h, config/h8300/h8300.c,
9866         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
9867         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
9868         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
9869         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
9870         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
9871         config/lm32/lm32-protos.h, config/lm32/lm32.c,
9872         config/m32c/m32c-protos.h, config/m32c/m32c.c,
9873         config/m32r/m32r-protos.h, config/m32r/m32r.c,
9874         config/m68k/m68k-protos.h, config/m68k/m68k.c,
9875         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9876         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
9877         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
9878         config/mips/mips-protos.h, config/mips/mips.c,
9879         config/mmix/mmix-protos.h, config/mmix/mmix.c,
9880         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
9881         config/moxie/moxie.c, config/msp430/msp430-protos.h,
9882         config/msp430/msp430.c, config/nds32/nds32-cost.c,
9883         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
9884         config/nds32/nds32-protos.h, config/nds32/nds32.c,
9885         config/nios2/nios2-protos.h, config/nios2/nios2.c,
9886         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
9887         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
9888         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
9889         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9890         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
9891         config/s390/predicates.md, config/s390/s390-protos.h,
9892         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9893         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
9894         config/sh/sh.md, config/sparc/predicates.md,
9895         config/sparc/sparc-protos.h, config/sparc/sparc.c,
9896         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
9897         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9898         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
9899         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
9900         config/tilepro/tilepro.c, config/v850/v850-protos.h,
9901         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
9902         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
9903         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
9904         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
9905         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
9906         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
9907         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
9908         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
9909         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
9910         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
9911         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
9912         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
9913         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
9914         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
9915         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
9916         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
9917         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
9918         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
9919         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
9920         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
9921         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
9922         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
9923         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
9924         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
9925         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
9926         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
9927         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
9928         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
9929         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
9930         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
9931         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
9932         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
9933         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
9934         var-tracking.c, varasm.c: Remove redundant enum from
9935         machine_mode.
9936         * gengtype.c (main): Treat machine_mode as a scalar typedef.
9937         * genmodes.c (emit_insn_modes_h): Hide inline functions if
9938         USED_FOR_TARGET.
9939
9940 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9941
9942         PR rtl-optimization/63340 (part 2)
9943         * rtl.h (invalid_mode_change_p): Delete.
9944         (valid_mode_changes_for_regno): New function.
9945         * reginfo.c (invalid_mode_change_p): Delete.
9946         (valid_mode_changes_for_regno): New function.
9947         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
9948         classes to registers that are allowed by valid_mode_changes_for_regno.
9949         (setup_regno_cost_classes_by_mode): Likewise.
9950         (print_allocno_costs): Remove invalid_mode_change_p test.
9951         (print_pseudo_costs, find_costs_and_classes): Likewise.
9952
9953 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9954
9955         PR rtl-optimization/63340 (part 1)
9956         * ira-costs.c (all_cost_classes): New variable.
9957         (complete_cost_classes): New function, split out from...
9958         (setup_cost_classes): ...here.
9959         (initiate_regno_cost_classes): Set up all_cost_classes.
9960         (restrict_cost_classes): New function.
9961         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
9962         registers that are valid for the register's mode.
9963         (setup_regno_cost_classes_by_mode): Model the mode cache as a
9964         restriction of all_cost_classes to a particular mode.
9965         (print_allocno_costs): Remove contains_reg_of_mode check.
9966         (print_pseudo_costs, find_costs_and_classes): Likewise.
9967
9968 2014-10-29  Richard Biener  <rguenther@suse.de>
9969
9970         PR tree-optimization/63666
9971         * tree-vect-slp.c (vect_get_mask_element): Properly handle
9972         accessing out-of-bound elements.
9973
9974 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9975             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9976             Anna Tikhonova  <anna.tikhonova@intel.com>
9977             Ilya Tocar  <ilya.tocar@intel.com>
9978             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9979             Ilya Verbin  <ilya.verbin@intel.com>
9980             Kirill Yukhin  <kirill.yukhin@intel.com>
9981             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9982
9983         * config/i386/i386.md
9984         (movhi_internal): Always detect maskmov.
9985         (movqi_internal): Fix target check.
9986
9987 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9988             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9989             Anna Tikhonova  <anna.tikhonova@intel.com>
9990             Ilya Tocar  <ilya.tocar@intel.com>
9991             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9992             Ilya Verbin  <ilya.verbin@intel.com>
9993             Kirill Yukhin  <kirill.yukhin@intel.com>
9994             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9995
9996         * config/i386/avx512bwintrin.h: Add new intrinsics.
9997         * config/i386/avx512vlbwintrin.h: Ditto.
9998         * config/i386/avx512vlintrin.h: Ditto.
9999
10000 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10001
10002         * godump.c (precision_to_units): New helper function.
10003         (go_append_artificial_name): Ditto.
10004         (go_append_decl_name): Ditto.
10005         (go_append_bitfield): Ditto.
10006         (go_get_uinttype_for_precision): Ditto.
10007         (go_append_padding): Ditto.
10008         (go_force_record_alignment): Ditto.
10009         (go_format_type): Represent unions with an array of uints of the size
10010         of the alignment in go.  This fixes the 'random' size of the union's
10011         representation using just the first field.
10012         (go_format_type): Add argument that indicates whether a record is
10013         nested (used for generation of artificial go names).
10014         (go_output_fndecl): Adapt to new go_format_type signature.
10015         (go_output_typedef): Ditto.
10016         (go_output_var): Ditto.
10017         (go_output_var): Prefer to output type as alias (typedef).
10018         (go_format_type): Bitfields in records are simulated as arrays of bytes
10019         in go.
10020
10021         * godump.c (go_format_type): Fix handling of arrays with zero elements.
10022
10023 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
10024
10025         * cgraph.h: Flatten.  Remove all include files.
10026         (symbol_table::initialize): Move to cgraph.c.
10027         * cgraph.c: Adjust include files.
10028         (symbol_table::initialize): Relocate from cgraph.h.
10029         * gengtype.c (open_base_files): Adjust include files.
10030         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
10031         included files.
10032         * ipa-inline.h: Remove all include files.
10033         * ipa-prop.h: Ditto.
10034         * ipa-reference.h: Ditto.
10035         * ipa-utils.h: Ditto:
10036         * lto-streamer.h: Remove cgraph.h from include list.
10037         * asan.c: Adjust include files.
10038         * auto-profile.c: Ditto.
10039         * bb-reorder.c: Ditto.
10040         * calls.c: Ditto.
10041         * cfgexpand.c: Ditto.
10042         * cgraphbuild.c: Ditto.
10043         * cgraphclones.c: Ditto.
10044         * cgraphunit.c: Ditto.
10045         * combine.c: Ditto.
10046         * coverage.c: Ditto.
10047         * data-streamer.c: Ditto.
10048         * data-streamer-in.c: Ditto.
10049         * data-streamer-out.c: Ditto.
10050         * dbxout.c: Ditto.
10051         * dwarf2out.c: Ditto.
10052         * except.c: Ditto.
10053         * expr.c: Ditto.
10054         * final.c: Ditto.
10055         * fold-const.c: Ditto.
10056         * ggc-page.c: Ditto.
10057         * gimple-fold.c: Ditto.
10058         * gimple-iterator.c: Ditto.
10059         * gimple-pretty-print.c: Ditto.
10060         * gimple-streamer-in.c: Ditto.
10061         * gimple-streamer-out.c: Ditto.
10062         * gimplify.c: Ditto.
10063         * ipa.c: Ditto.
10064         * ipa-comdats.c: Ditto.
10065         * ipa-cp.c: Ditto.
10066         * ipa-devirt.c: Ditto.
10067         * ipa-icf.c: Ditto.
10068         * ipa-icf-gimple.c: Ditto.
10069         * ipa-inline-analysis.c: Ditto.
10070         * ipa-inline.c: Ditto.
10071         * ipa-inline-transform.c: Ditto.
10072         * ipa-polymorphic-call.c: Ditto.
10073         * ipa-profile.c: Ditto.
10074         * ipa-prop.c: Ditto.
10075         * ipa-pure-const.c: Ditto.
10076         * ipa-ref.c: Ditto.
10077         * ipa-reference.c: Ditto.
10078         * ipa-split.c: Ditto.
10079         * ipa-utils.c: Ditto.
10080         * ipa-visibility.c: Ditto.
10081         * langhooks.c: Ditto.
10082         * lto-cgraph.c: Ditto.
10083         * lto-compress.c: Ditto.
10084         * lto-opts.c: Ditto.
10085         * lto-section-in.c: Ditto.
10086         * lto-section-out.c: Ditto.
10087         * lto-streamer.c: Ditto.
10088         * lto-streamer-in.c: Ditto.
10089         * lto-streamer-out.c: Ditto.
10090         * omp-low.c: Ditto.
10091         * opts-global.c: Ditto.
10092         * passes.c: Ditto.
10093         * predict.c: Ditto.
10094         * print-tree.c: Ditto.
10095         * profile.c: Ditto.
10096         * ree.c: Ditto.
10097         * stor-layout.c: Ditto.
10098         * symtab.c: Ditto.
10099         * toplev.c: Ditto.
10100         * trans-mem.c: Ditto.
10101         * tree.c: Ditto.
10102         * tree-cfg.c: Ditto.
10103         * tree-eh.c: Ditto.
10104         * tree-emutls.c: Ditto.
10105         * tree-inline.c: Ditto.
10106         * tree-nested.c: Ditto.
10107         * tree-pretty-print.c: Ditto.
10108         * tree-profile.c: Ditto.
10109         * tree-sra.c: Ditto.
10110         * tree-ssa-alias.c: Ditto.
10111         * tree-ssa-loop-ivcanon.c: Ditto.
10112         * tree-ssa-loop-ivopts.c: Ditto.
10113         * tree-ssa-pre.c: Ditto.
10114         * tree-ssa-structalias.c: Ditto.
10115         * tree-streamer.c: Ditto.
10116         * tree-streamer-in.c: Ditto.
10117         * tree-streamer-out.c: Ditto.
10118         * tree-switch-conversion.c: Ditto.
10119         * tree-tailcall.c: Ditto.
10120         * tree-vect-data-refs.c: Ditto.
10121         * tree-vectorizer.c: Ditto.
10122         * tree-vect-stmts.c: Ditto.
10123         * tsan.c: Ditto.
10124         * ubsan.c: Ditto.
10125         * value-prof.c: Ditto.
10126         * varasm.c: Ditto.
10127         * varpool.c: Ditto.
10128         * config/arm/arm.c: Ditto.
10129         * config/bfin/bfin.c: Ditto.
10130         * config/c6x/c6x.c: Ditto.
10131         * config/cris/cris.c: Ditto.
10132         * config/darwin.c: Ditto.
10133         * config/darwin-c.c: Ditto.
10134         * config/i386/i386.c: Ditto.
10135         * config/i386/winnt.c: Ditto.
10136         * config/microblaze/microblaze.c: Ditto.
10137         * config/mips/mips.c: Ditto.
10138         * config/rs6000/rs6000.c: Ditto.
10139         * config/rx/rx.c: Ditto.
10140
10141 2014-10-28  Richard Biener  <rguenther@suse.de>
10142
10143         * gimple-fold.h (follow_single_use_edges): Declare.
10144         * gimple-fold.c (follow_single_use_edges): New function.
10145         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
10146         * tree-ssa-propagate.c
10147         (substitute_and_fold_dom_walker::before_dom_children): Allow
10148         following single-use edges when folding stmts we propagated into.
10149
10150 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10151             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10152             Anna Tikhonova  <anna.tikhonova@intel.com>
10153             Ilya Tocar  <ilya.tocar@intel.com>
10154             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10155             Ilya Verbin  <ilya.verbin@intel.com>
10156             Kirill Yukhin  <kirill.yukhin@intel.com>
10157             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10158
10159         * config/i386/avx512bwintrin.h: New.
10160         * config/i386/avx512dqintrin.h: Ditto.
10161         * config/i386/avx512vlbwintrin.h: Ditto.
10162         * config/i386/avx512vldqintrin.h: Ditto.
10163         * config/i386/avx512vlintrin.h: Ditto.
10164         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
10165         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
10166
10167 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10168             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10169             Anna Tikhonova  <anna.tikhonova@intel.com>
10170             Ilya Tocar  <ilya.tocar@intel.com>
10171             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10172             Ilya Verbin  <ilya.verbin@intel.com>
10173             Kirill Yukhin  <kirill.yukhin@intel.com>
10174             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10175
10176         * config/i386/i386.c
10177         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
10178         avx_shufpd256_mask, avx_vpermilv2df_mask.
10179
10180 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10181             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10182             Anna Tikhonova  <anna.tikhonova@intel.com>
10183             Ilya Tocar  <ilya.tocar@intel.com>
10184             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10185             Ilya Verbin  <ilya.verbin@intel.com>
10186             Kirill Yukhin  <kirill.yukhin@intel.com>
10187             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10188
10189         * config/i386/i386.c
10190         (ix86_init_mmx_sse_builtins):
10191         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
10192         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
10193         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
10194         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
10195         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
10196         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
10197         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
10198         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
10199         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
10200         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
10201         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
10202         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
10203         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
10204         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
10205         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
10206         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
10207         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
10208         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
10209
10210 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10211             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10212             Anna Tikhonova  <anna.tikhonova@intel.com>
10213             Ilya Tocar  <ilya.tocar@intel.com>
10214             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10215             Ilya Verbin  <ilya.verbin@intel.com>
10216             Kirill Yukhin  <kirill.yukhin@intel.com>
10217             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10218
10219         * config/i386/i386.c
10220         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
10221         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
10222         IX86_BUILTIN_GATHER3ALTDIV8SI.
10223         (ix86_expand_builtin):
10224         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
10225         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
10226         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
10227         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
10228         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10229         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
10230         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
10231         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
10232         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10233         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
10234         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
10235         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
10236         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
10237         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
10238         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
10239         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10240         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
10241         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
10242         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
10243         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
10244
10245 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10246             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10247             Anna Tikhonova  <anna.tikhonova@intel.com>
10248             Ilya Tocar  <ilya.tocar@intel.com>
10249             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10250             Ilya Verbin  <ilya.verbin@intel.com>
10251             Kirill Yukhin  <kirill.yukhin@intel.com>
10252             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10253
10254         * config/i386/i386-builtin-types.def
10255         (SHORT): New.
10256         (V32HI): Ditto.
10257         (V12QI): Ditto.
10258         (V14QI): Ditto.
10259         (V32SI): Ditto.
10260         (V8UDI): Ditto.
10261         (V16USI): Ditto.
10262         (V32UHI): Ditto.
10263         (PSHORT): Ditto.
10264         (PV32QI): Ditto.
10265         (PV32HI): Ditto.
10266         (PV64QI): Ditto.
10267         (PCV8HI): Ditto.
10268         (PCV16QI): Ditto.
10269         (PCV16HI): Ditto.
10270         (PCV32QI): Ditto.
10271         (PCV32HI): Ditto.
10272         (PCV64QI): Ditto.
10273         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10274         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10275         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10276         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10277         (V16SF_FTYPE_V16HI): Ditto.
10278         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10279         (V16SF_FTYPE_V16SI): Ditto.
10280         (V4DI_FTYPE_V4DI): Ditto.
10281         (V16SI_FTYPE_V16SF): Ditto.
10282         (V8DI_FTYPE_PV2DI): Ditto.
10283         (V8DF_FTYPE_PV2DF): Ditto.
10284         (V4DI_FTYPE_PV2DI): Ditto.
10285         (V4DF_FTYPE_PV2DF): Ditto.
10286         (V16SI_FTYPE_PV2SI): Ditto.
10287         (V16SF_FTYPE_PV2SF): Ditto.
10288         (V8SF_FTYPE_FLOAT): Ditto.
10289         (V4SF_FTYPE_FLOAT): Ditto.
10290         (V4DF_FTYPE_DOUBLE): Ditto.
10291         (V8SF_FTYPE_PV4SF): Ditto.
10292         (V8SI_FTYPE_PV4SI): Ditto.
10293         (V4SI_FTYPE_PV2SI): Ditto.
10294         (V8SF_FTYPE_PV2SF): Ditto.
10295         (V8SI_FTYPE_PV2SI): Ditto.
10296         (V16SF_FTYPE_PV8SF): Ditto.
10297         (V16SI_FTYPE_PV8SI): Ditto.
10298         (V8DI_FTYPE_V8SF): Ditto.
10299         (V4DI_FTYPE_V4SF): Ditto.
10300         (V2DI_FTYPE_V4SF): Ditto.
10301         (V64QI_FTYPE_QI): Ditto.
10302         (V32HI_FTYPE_HI): Ditto.
10303         (V16UHI_FTYPE_V16UHI): Ditto.
10304         (V32UHI_FTYPE_V32UHI): Ditto.
10305         (V2UDI_FTYPE_V2UDI): Ditto.
10306         (V4UDI_FTYPE_V4UDI): Ditto.
10307         (V8UDI_FTYPE_V8UDI): Ditto.
10308         (V4USI_FTYPE_V4USI): Ditto.
10309         (V16USI_FTYPE_V16USI): Ditto.
10310         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10311         (V2DF_FTYPE_V8DF_INT): Ditto.
10312         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10313         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10314         (V8DF_FTYPE_V8DF_INT): Ditto.
10315         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10316         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10317         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10318         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10319         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10320         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10321         (V8DI_FTYPE_V8DI_INT): Ditto.
10322         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10323         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10324         (V8SF_FTYPE_V16SF_INT): Ditto.
10325         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10326         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10327         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10328         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10329         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10330         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10331         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10332         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10333         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10334         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10335         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10336         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10337         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10338         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10339         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10340         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10341         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10342         (V32HI_FTYPE_V32HI_V32HI): Ditto.
10343         (V32HI_FTYPE_V32HI_INT): Ditto.
10344         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10345         (V16SI_FTYPE_V32HI_V32HI): Ditto.
10346         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10347         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10348         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10349         (V8SI_FTYPE_V16SI_INT): Ditto.
10350         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10351         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10352         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10353         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10354         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
10355         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
10356         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10357         (V8DI_FTYPE_V16SI_V16SI): Ditto.
10358         (V8DI_FTYPE_V64QI_V64QI): Ditto.
10359         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10360         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10361         (V2DI_FTYPE_V8DI_INT): Ditto.
10362         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10363         (QI_FTYPE_QI): Ditto.
10364         (SI_FTYPE_SI): Ditto.
10365         (DI_FTYPE_DI): Ditto.
10366         (HI_FTYPE_V16QI): Ditto.
10367         (SI_FTYPE_V32QI): Ditto.
10368         (DI_FTYPE_V64QI): Ditto.
10369         (QI_FTYPE_V8HI): Ditto.
10370         (HI_FTYPE_V16HI): Ditto.
10371         (SI_FTYPE_V32HI): Ditto.
10372         (QI_FTYPE_V4SI): Ditto.
10373         (QI_FTYPE_V8SI): Ditto.
10374         (HI_FTYPE_V16SI): Ditto.
10375         (QI_FTYPE_V2DI): Ditto.
10376         (QI_FTYPE_V4DI): Ditto.
10377         (QI_FTYPE_V8DI): Ditto.
10378         (V16QI_FTYPE_HI): Ditto.
10379         (V32QI_FTYPE_SI): Ditto.
10380         (V64QI_FTYPE_DI): Ditto.
10381         (V8HI_FTYPE_QI): Ditto.
10382         (V16HI_FTYPE_HI): Ditto.
10383         (V32HI_FTYPE_SI): Ditto.
10384         (V4SI_FTYPE_QI): Ditto.
10385         (V4SI_FTYPE_HI): Ditto.
10386         (V8SI_FTYPE_QI): Ditto.
10387         (V8SI_FTYPE_HI): Ditto.
10388         (V2DI_FTYPE_QI): Ditto.
10389         (V4DI_FTYPE_QI): Ditto.
10390         (QI_FTYPE_QI_QI): Ditto.
10391         (SI_FTYPE_SI_SI): Ditto.
10392         (DI_FTYPE_DI_DI): Ditto.
10393         (QI_FTYPE_QI_INT): Ditto.
10394         (SI_FTYPE_SI_INT): Ditto.
10395         (DI_FTYPE_DI_INT): Ditto.
10396         (HI_FTYPE_V16QI_V16QI): Ditto.
10397         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10398         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10399         (SI_FTYPE_V32QI_V32QI): Ditto.
10400         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10401         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10402         (DI_FTYPE_V64QI_V64QI): Ditto.
10403         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10404         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10405         (QI_FTYPE_V8HI_V8HI): Ditto.
10406         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10407         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10408         (HI_FTYPE_V16HI_V16HI): Ditto.
10409         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10410         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10411         (SI_FTYPE_V32HI_V32HI): Ditto.
10412         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10413         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10414         (QI_FTYPE_V4SI_V4SI): Ditto.
10415         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10416         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10417         (QI_FTYPE_V8SI_V8SI): Ditto.
10418         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10419         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10420         (QI_FTYPE_V2DI_V2DI): Ditto.
10421         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10422         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10423         (QI_FTYPE_V4DI_V4DI): Ditto.
10424         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10425         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10426         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10427         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
10428         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10429         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10430         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10431         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10432         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10433         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10434         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10435         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10436         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10437         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10438         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10439         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10440         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10441         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10442         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10443         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10444         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10445         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10446         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10447         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10448         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10449         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10450         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10451         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10452         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10453         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10454         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10455         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10456         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10457         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10458         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10459         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10460         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10461         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10462         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10463         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10464         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10465         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10466         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10467         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10468         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10469         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10470         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10471         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10472         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10473         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10474         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10475         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10476         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10477         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10478         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10479         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10480         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10481         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10482         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10483         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10484         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10485         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10486         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10487         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10488         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10489         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10490         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10491         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10492         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10493         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10494         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10495         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10496         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10497         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10498         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10499         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
10500         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10501         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10502         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
10503         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10504         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10505         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
10506         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10507         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10508         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10509         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10510         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10511         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10512         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10513         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10514         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10515         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10516         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10517         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10518         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10519         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10520         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10521         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10522         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10523         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10524         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10525         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10526         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10527         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10528         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10529         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10530         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10531         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10532         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10533         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10534         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10535         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10536         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10537         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10538         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10539         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10540         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10541         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10542         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10543         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10544         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10545         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10546         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10547         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10548         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10549         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10550         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10551         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10552         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10553         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10554         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10555         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10556         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10557         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10558         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10559         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10560         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10561         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10562         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10563         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10564         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10565         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10566         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10567         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10568         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10569         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10570         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10571         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10572         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10573         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10574         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10575         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10576         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10577         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10578         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10579         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10580         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10581         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10582         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10583         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10584         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10585         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10586         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10587         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10588         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10589         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10590         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10591         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10592         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10593         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10594         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10595         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10596         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10597         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10598         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10599         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10600         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10601         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10602         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10603         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10604         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10605         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10606         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10607         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10608         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10609         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10610         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10611         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10612         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10613         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10614         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10615         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10616         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10617         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10618         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10619         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10620         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10621         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10622         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10623         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10624         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10625         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10626         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10627         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10628         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10629         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10630         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10631         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10632         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10633         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10634         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10635         (QI_FTYPE_V8DF_INT): Ditto.
10636         (QI_FTYPE_V4DF_INT): Ditto.
10637         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10638         (QI_FTYPE_V2DF_INT): Ditto.
10639         (HI_FTYPE_V16SF_INT): Ditto.
10640         (QI_FTYPE_V8SF_INT): Ditto.
10641         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10642         (QI_FTYPE_V4SF_INT): Ditto.
10643         (QI_FTYPE_V8DF_INT_QI): Ditto.
10644         (QI_FTYPE_V4DF_INT_QI): Ditto.
10645         (QI_FTYPE_V2DF_INT_QI): Ditto.
10646         (HI_FTYPE_V16SF_INT_HI): Ditto.
10647         (QI_FTYPE_V8SF_INT_QI): Ditto.
10648         (QI_FTYPE_V4SF_INT_QI): Ditto.
10649         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
10650         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
10651         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
10652         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
10653         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10654         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10655         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
10656         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
10657         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
10658         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
10659         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
10660         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
10661         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
10662         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
10663         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
10664         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
10665         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
10666         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
10667         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
10668         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
10669         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
10670         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
10671         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
10672         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
10673         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
10674         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
10675         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
10676         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
10677         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
10678         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
10679         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
10680         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
10681         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
10682         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
10683         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
10684         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
10685         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
10686         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
10687         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
10688         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
10689         (V8DI_FTYPE_V8DI_INT): Ditto.
10690         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10691         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10692         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10693         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10694         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
10695         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
10696         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
10697         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
10698         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
10699         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
10700         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
10701         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
10702         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
10703         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
10704         * config/i386/i386.c (ix86_builtins):
10705         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
10706         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
10707         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
10708         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
10709         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
10710         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
10711         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
10712         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
10713         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
10714         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
10715         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
10716         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
10717         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
10718         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
10719         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
10720         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
10721         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
10722         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
10723         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
10724         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
10725         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
10726         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
10727         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
10728         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
10729         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
10730         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
10731         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
10732         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
10733         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
10734         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
10735         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
10736         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
10737         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
10738         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
10739         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
10740         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
10741         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
10742         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
10743         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
10744         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
10745         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
10746         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
10747         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
10748         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
10749         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
10750         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
10751         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
10752         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
10753         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
10754         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
10755         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
10756         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
10757         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
10758         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
10759         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
10760         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
10761         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
10762         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
10763         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
10764         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
10765         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
10766         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
10767         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
10768         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
10769         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
10770         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
10771         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
10772         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
10773         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
10774         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
10775         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
10776         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
10777         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
10778         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
10779         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
10780         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
10781         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
10782         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
10783         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
10784         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
10785         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
10786         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
10787         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
10788         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
10789         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
10790         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
10791         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
10792         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
10793         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
10794         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
10795         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
10796         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
10797         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
10798         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
10799         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
10800         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
10801         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
10802         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
10803         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
10804         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
10805         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
10806         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
10807         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
10808         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
10809         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
10810         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
10811         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
10812         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
10813         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
10814         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
10815         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
10816         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
10817         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
10818         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
10819         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
10820         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
10821         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
10822         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
10823         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
10824         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
10825         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
10826         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
10827         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
10828         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
10829         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
10830         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
10831         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
10832         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
10833         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
10834         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
10835         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
10836         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
10837         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
10838         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
10839         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
10840         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
10841         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
10842         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
10843         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
10844         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
10845         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
10846         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
10847         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
10848         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
10849         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
10850         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
10851         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
10852         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
10853         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
10854         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
10855         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
10856         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
10857         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
10858         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
10859         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
10860         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
10861         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
10862         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
10863         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
10864         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
10865         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
10866         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
10867         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
10868         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
10869         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
10870         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
10871         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
10872         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
10873         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
10874         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
10875         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
10876         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
10877         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
10878         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
10879         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
10880         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
10881         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
10882         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
10883         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
10884         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
10885         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
10886         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
10887         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
10888         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
10889         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
10890         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
10891         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
10892         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
10893         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
10894         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
10895         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
10896         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
10897         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
10898         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
10899         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
10900         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
10901         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
10902         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
10903         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
10904         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
10905         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
10906         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
10907         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
10908         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
10909         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
10910         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
10911         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
10912         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
10913         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
10914         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
10915         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
10916         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
10917         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
10918         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
10919         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
10920         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
10921         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
10922         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
10923         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
10924         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
10925         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
10926         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
10927         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
10928         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
10929         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
10930         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
10931         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
10932         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
10933         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
10934         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
10935         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
10936         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
10937         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
10938         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
10939         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
10940         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
10941         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
10942         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
10943         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
10944         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
10945         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
10946         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
10947         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
10948         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
10949         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
10950         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
10951         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
10952         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
10953         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
10954         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
10955         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
10956         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
10957         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
10958         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
10959         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
10960         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
10961         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
10962         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
10963         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
10964         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
10965         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
10966         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
10967         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
10968         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
10969         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
10970         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
10971         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
10972         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
10973         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
10974         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
10975         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
10976         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
10977         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
10978         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
10979         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
10980         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
10981         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
10982         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
10983         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
10984         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
10985         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
10986         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
10987         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
10988         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
10989         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
10990         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
10991         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
10992         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
10993         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
10994         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
10995         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
10996         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
10997         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
10998         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
10999         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
11000         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
11001         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
11002         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
11003         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
11004         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
11005         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
11006         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
11007         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
11008         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
11009         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
11010         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
11011         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
11012         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
11013         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
11014         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
11015         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
11016         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
11017         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
11018         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
11019         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
11020         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
11021         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
11022         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
11023         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
11024         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
11025         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
11026         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
11027         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
11028         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
11029         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
11030         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
11031         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
11032         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
11033         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
11034         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
11035         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
11036         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
11037         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
11038         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
11039         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
11040         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
11041         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
11042         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
11043         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
11044         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
11045         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
11046         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
11047         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
11048         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
11049         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
11050         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
11051         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
11052         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
11053         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
11054         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
11055         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
11056         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
11057         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
11058         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
11059         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
11060         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
11061         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
11062         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
11063         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
11064         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
11065         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
11066         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
11067         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
11068         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
11069         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
11070         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
11071         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
11072         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
11073         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
11074         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
11075         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
11076         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
11077         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
11078         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
11079         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
11080         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
11081         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
11082         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
11083         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
11084         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
11085         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
11086         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
11087         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
11088         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
11089         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
11090         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
11091         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
11092         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
11093         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
11094         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
11095         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
11096         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
11097         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
11098         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
11099         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
11100         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
11101         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
11102         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
11103         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
11104         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
11105         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
11106         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
11107         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
11108         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
11109         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
11110         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
11111         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
11112         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
11113         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
11114         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
11115         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
11116         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
11117         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
11118         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
11119         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
11120         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
11121         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
11122         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
11123         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
11124         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
11125         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
11126         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
11127         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
11128         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
11129         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
11130         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
11131         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
11132         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
11133         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
11134         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
11135         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
11136         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
11137         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
11138         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
11139         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
11140         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
11141         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
11142         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
11143         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
11144         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
11145         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
11146         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
11147         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
11148         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
11149         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
11150         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
11151         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
11152         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
11153         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
11154         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
11155         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
11156         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
11157         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
11158         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
11159         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
11160         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
11161         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
11162         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
11163         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
11164         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
11165         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
11166         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
11167         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
11168         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
11169         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
11170         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
11171         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
11172         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
11173         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
11174         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
11175         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
11176         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
11177         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
11178         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
11179         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
11180         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
11181         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
11182         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
11183         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
11184         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
11185         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
11186         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
11187         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
11188         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
11189         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
11190         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
11191         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
11192         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
11193         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
11194         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
11195         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
11196         (bdesc_special_args):
11197         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
11198         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
11199         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
11200         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
11201         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
11202         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
11203         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
11204         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
11205         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
11206         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
11207         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
11208         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
11209         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
11210         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
11211         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
11212         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
11213         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
11214         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
11215         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
11216         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
11217         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
11218         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
11219         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
11220         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
11221         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
11222         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
11223         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
11224         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
11225         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
11226         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
11227         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
11228         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
11229         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
11230         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
11231         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
11232         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
11233         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
11234         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
11235         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
11236         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
11237         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
11238         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
11239         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
11240         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
11241         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
11242         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
11243         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
11244         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
11245         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
11246         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
11247         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
11248         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
11249         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
11250         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
11251         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
11252         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
11253         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
11254         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
11255         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
11256         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
11257         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
11258         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
11259         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
11260         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
11261         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11262         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11263         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11264         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11265         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11266         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11267         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11268         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11269         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11270         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11271         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11272         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11273         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11274         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11275         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11276         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11277         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11278         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11279         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11280         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11281         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11282         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11283         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11284         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11285         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11286         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11287         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11288         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11289         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11290         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11291         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11292         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11293         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11294         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11295         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11296         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11297         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11298         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11299         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11300         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11301         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11302         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11303         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11304         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11305         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11306         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11307         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11308         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11309         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11310         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11311         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11312         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11313         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11314         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11315         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11316         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11317         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11318         __builtin_ia32_reducesd, __builtin_ia32_reducess,
11319         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11320         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11321         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11322         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11323         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11324         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11325         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11326         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11327         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11328         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11329         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11330         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11331         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11332         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11333         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11334         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11335         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11336         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11337         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11338         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11339         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11340         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
11341         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
11342         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
11343         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
11344         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
11345         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
11346         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
11347         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
11348         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
11349         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
11350         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
11351         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
11352         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
11353         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
11354         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
11355         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
11356         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
11357         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
11358         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
11359         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
11360         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
11361         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
11362         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
11363         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
11364         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
11365         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
11366         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
11367         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
11368         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
11369         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
11370         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
11371         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
11372         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
11373         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
11374         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
11375         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
11376         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
11377         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
11378         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
11379         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
11380         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
11381         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
11382         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
11383         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
11384         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
11385         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
11386         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
11387         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
11388         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
11389         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
11390         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
11391         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
11392         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
11393         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
11394         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
11395         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
11396         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
11397         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
11398         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
11399         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
11400         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
11401         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
11402         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
11403         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
11404         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
11405         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
11406         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
11407         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
11408         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
11409         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
11410         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
11411         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
11412         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
11413         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
11414         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
11415         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
11416         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
11417         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
11418         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
11419         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
11420         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
11421         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
11422         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
11423         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
11424         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
11425         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
11426         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
11427         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
11428         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
11429         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
11430         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
11431         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
11432         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
11433         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
11434         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
11435         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
11436         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
11437         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
11438         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
11439         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
11440         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
11441         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
11442         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
11443         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
11444         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
11445         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
11446         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
11447         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
11448         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
11449         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
11450         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
11451         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
11452         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
11453         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
11454         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
11455         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
11456         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
11457         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
11458         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
11459         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
11460         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
11461         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
11462         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
11463         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
11464         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
11465         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
11466         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
11467         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
11468         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
11469         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
11470         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
11471         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
11472         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
11473         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
11474         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
11475         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
11476         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
11477         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
11478         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
11479         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
11480         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
11481         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
11482         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
11483         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
11484         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
11485         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
11486         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
11487         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
11488         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
11489         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
11490         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
11491         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
11492         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
11493         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
11494         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
11495         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
11496         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
11497         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
11498         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
11499         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
11500         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
11501         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
11502         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
11503         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
11504         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
11505         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
11506         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
11507         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
11508         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
11509         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
11510         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
11511         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
11512         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
11513         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
11514         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
11515         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
11516         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
11517         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
11518         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
11519         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
11520         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
11521         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
11522         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
11523         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
11524         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
11525         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
11526         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
11527         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
11528         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
11529         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
11530         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
11531         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
11532         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
11533         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
11534         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
11535         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
11536         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
11537         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
11538         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
11539         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
11540         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
11541         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
11542         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
11543         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
11544         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
11545         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
11546         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
11547         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
11548         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
11549         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
11550         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
11551         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
11552         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
11553         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
11554         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
11555         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
11556         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
11557         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
11558         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
11559         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
11560         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
11561         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
11562         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
11563         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
11564         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
11565         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
11566         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
11567         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
11568         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
11569         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
11570         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
11571         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
11572         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
11573         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
11574         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
11575         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
11576         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
11577         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
11578         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
11579         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
11580         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
11581         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
11582         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
11583         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
11584         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
11585         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
11586         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
11587         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
11588         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
11589         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
11590         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
11591         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
11592         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
11593         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
11594         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
11595         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
11596         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
11597         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
11598         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
11599         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
11600         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
11601         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
11602         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
11603         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
11604         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
11605         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
11606         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
11607         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
11608         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
11609         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
11610         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
11611         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
11612         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
11613         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
11614         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
11615         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
11616         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
11617         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
11618         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
11619         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
11620         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
11621         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
11622         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
11623         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
11624         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
11625         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
11626         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
11627         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
11628         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
11629         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
11630         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
11631         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
11632         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
11633         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
11634         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
11635         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
11636         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
11637         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
11638         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
11639         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
11640         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
11641         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
11642         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
11643         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
11644         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
11645         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
11646         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
11647         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
11648         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
11649         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
11650         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
11651         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
11652         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
11653         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
11654         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11655         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
11656         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
11657         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
11658         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
11659         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
11660         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
11661         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
11662         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
11663         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
11664         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
11665         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
11666         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
11667         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
11668         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
11669         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
11670         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
11671         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
11672         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
11673         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
11674         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
11675         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
11676         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
11677         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
11678         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
11679         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
11680         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
11681         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
11682         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
11683         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
11684         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
11685         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
11686         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
11687         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
11688         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
11689         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
11690         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
11691         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
11692         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
11693         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
11694         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
11695         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
11696         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
11697         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
11698         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
11699         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
11700         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
11701         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
11702         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
11703         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
11704         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
11705         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
11706         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
11707         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
11708         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
11709         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
11710         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
11711         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
11712         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
11713         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
11714         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
11715         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
11716         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
11717         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
11718         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
11719         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
11720         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
11721         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
11722         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
11723         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
11724         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
11725         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
11726         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
11727         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
11728         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
11729         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
11730         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
11731         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
11732         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
11733         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
11734         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
11735         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
11736         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
11737         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
11738         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
11739         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
11740         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
11741         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
11742         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
11743         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
11744         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
11745         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
11746         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
11747         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
11748         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
11749         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
11750         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
11751         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
11752         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
11753         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
11754         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
11755         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
11756         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
11757         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
11758         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
11759         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
11760         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
11761         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
11762         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
11763         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
11764         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
11765         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
11766         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
11767         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
11768         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
11769         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
11770         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
11771         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
11772         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
11773         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
11774         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
11775         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
11776         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
11777         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
11778         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
11779         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
11780         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
11781         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
11782         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
11783         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
11784         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
11785         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
11786         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
11787         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
11788         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
11789         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
11790         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
11791         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
11792         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
11793         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
11794         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
11795         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
11796         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
11797         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
11798         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
11799         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
11800         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
11801         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
11802         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
11803         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
11804         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
11805         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
11806
11807 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
11808
11809         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
11810         type for the left shift in CASE_CONVERT case.
11811
11812 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
11813
11814         * asan.h (asan_intercepted_p): New function.
11815         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
11816         hash value construction.  Call iterative_hash_expr instead of explicit
11817         hash building.
11818         (asan_mem_ref_hasher::equal): Change condition.
11819         (has_mem_ref_been_instrumented): Likewise.
11820         (update_mem_ref_hash_table): Likewise.
11821         (maybe_update_mem_ref_hash_table): New function.
11822         (instrument_strlen_call): Removed.
11823         (get_mem_refs_of_builtin_call): Handle new parameter.
11824         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
11825         of instrument_mem_region_access if intercepted_p is true.
11826         (instrument_mem_region_access): Instrument only base with len instead of
11827         base and end with 1.
11828         (build_check_stmt): Remove start_instrumented and end_instrumented
11829         parameters.
11830         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
11831         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
11832         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
11833         * builtins.c (expand_builtin): Include asan.h.  Don't expand string/memory
11834         builtin functions that have interceptors if ASan is enabled.
11835
11836 2014-10-28  Richard Biener  <rguenther@suse.de>
11837
11838         PR middle-end/63665
11839         * fold-const.c (fold_comparison): Properly guard simplifying
11840         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
11841
11842 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
11843
11844         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
11845         * fold-const.c (const_binop): Likewise.
11846         * cfgexpand.c (expand_debug_expr): Likewise.
11847         * tree-inline.c (estimate_operator_cost): Likewise.
11848         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
11849         * optabs.c (optab_for_tree_code): Likewise.
11850         (expand_vec_shift_expr): Likewise, update comment.
11851         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
11852         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
11853         * optabs.def: Remove vec_shl_optab.
11854         * doc/md.texi: Remove references to vec_shr_m.
11855
11856 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11857
11858         * asan.c (report_error_func): Add noabort path.
11859         (check_func): Ditto.  Formatting.
11860         (asan_expand_check_ifn): Handle noabort path.
11861         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
11862         to default value.
11863         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
11864         * opts.c (finish_options): Reword comment.
11865         * sanitizer.def: Add noabort ASan builtins.
11866
11867 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11868
11869         * asan.c (set_asan_shadow_offset): New function.
11870         (asan_shadow_offset): Likewise.
11871         (asan_emit_stack_protection): Call asan_shadow_offset.
11872         (build_shadow_mem_access): Likewise.
11873         * asan.h (set_asan_shadow_offset): Declare.
11874         * common.opt (fasan-shadow-offset): New option.
11875         (frandom-seed): Fixed parameter name.
11876         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
11877         (frandom-seed): Fixed parameter name.
11878         * opts-global.c (handle_common_deferred_options): Handle
11879         -fasan-shadow-offset.
11880         * opts.c (common_handle_option): Likewise.
11881
11882 2014-10-27  Jiong Wang <jiong.wang@arm.com>
11883
11884         PR target/63442
11885         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
11886
11887 2014-10-27  DJ Delorie  <dj@redhat.com>
11888
11889         * tree.c (build_common_tree_nodes): Don't even store the
11890         __int128 types if they're not supported.
11891
11892 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11893
11894         * config/i386/i386.c (ix86_loop_memcount): Delete.
11895         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
11896
11897 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11898
11899         * config/i386/i386.c (find_constant_1): Delete.
11900         (find_constant): Use FOR_EACH_SUBRTX.
11901
11902 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11903
11904         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
11905         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
11906
11907 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11908
11909         * config/i386/i386.c: Include rtl-iter.h
11910         (ix86_check_avx256_register): Take a const_rtx and return a bool.
11911         (ix86_check_avx256_stores): Update call accordingly.
11912         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
11913         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
11914
11915 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11916
11917         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
11918         Take an rtx and return a bool.
11919         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
11920         Use FOR_EACH_SUBRTX_VAR.
11921         * config/alpha/predicates.md (some_small_symbolic_operand): Update
11922         accordingly.
11923
11924 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11925
11926         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
11927         a bool.
11928         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
11929         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
11930
11931 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11932
11933         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
11934         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
11935
11936 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11937
11938         * config/alpha/alpha.c: Include rtl-iter.h.
11939         (split_small_symbolic_operand_1): Delete.
11940         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
11941
11942 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11943
11944         * config/s390/s390.c: Include rtl-iter.h.
11945         (check_dpu): Delete.
11946         (s390_loop_unroll_adjust): Only iterate over patterns.
11947         Use FOR_EACH_SUBRTX.
11948
11949 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11950
11951         * config/spu/spu.c: Include rtl-iter.h
11952         (ea_symbol_ref): Replace with...
11953         (ea_symbol_ref_p): ...this new function.
11954         (spu_legitimate_address_p): Update call accordingly.
11955         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
11956
11957 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
11958             Tom Tromey  <tromey@redhat.com>
11959
11960         * aclocal.m4, configure: Rebuild.
11961         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
11962         * configure.ac: Use GCC_ENABLE_PLUGINS.
11963         * stor-layout.c (finish_bitfield_layout): Now public.  Change
11964         argument type to 'tree'.
11965         (finish_record_layout): Update.
11966         * stor-layout.h (finish_bitfield_layout): Declare.
11967
11968 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11969
11970         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
11971         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
11972         Restore, enable for bigendian, update to use __builtin..._scal...
11973
11974 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11975
11976         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
11977         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
11978         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
11979         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
11980
11981         * config/aarch64/aarch64-simd.md
11982         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
11983         (reduc_<maxmin_uns>_internal<mode>): ...this.
11984         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
11985         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
11986
11987         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
11988         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
11989         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
11990
11991         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
11992         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
11993         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
11994         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
11995         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
11996         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
11997         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
11998         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
11999
12000 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12001
12002         * config/aarch64/aarch64-simd-builtins.def
12003         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
12004         Remove.
12005         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
12006
12007         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
12008         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
12009
12010         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
12011         (aarch64_reduc_plus_internal<mode>): ...this.
12012
12013         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
12014         (aarch64_reduc_plus_internalv2si): ...this.
12015
12016         (reduc_splus_<mode>/V2F): Rename to...
12017         (aarch64_reduc_plus_internal<mode>): ...this.
12018
12019         * config/aarch64/iterators.md
12020         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
12021         (UNSPEC_ADDV): New.
12022         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
12023
12024         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
12025         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
12026         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
12027         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
12028         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
12029
12030 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12031
12032         PR tree-optimization/61114
12033         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
12034         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
12035
12036         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
12037         back to old reduc_... + BIT_FIELD_REF only if not.
12038
12039         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
12040         return the reduce-to-scalar (reduc_..._scal) optab.
12041         (scalar_reduc_to_vector): New.
12042
12043         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
12044         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
12045         New.
12046
12047         * optabs.h (scalar_reduc_to_vector): Declare.
12048
12049         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
12050         to either scalar or vector.
12051
12052 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12053
12054         PR tree-optimization/61114
12055         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
12056         extract_bit_field around optab result.
12057
12058         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
12059         scalar not vector.
12060
12061         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
12062         for REDUC_{MIN,MAX,PLUS}_EXPR.
12063
12064         * tree-vect-loop.c (vect_analyze_loop): Update comment.
12065         (vect_create_epilog_for_reduction): For direct vector reduction, use
12066         result of tree code directly without extract_bit_field.
12067
12068         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
12069         comment.
12070
12071 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
12072
12073         * basic-block.h: Remove all includes.
12074         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
12075         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
12076         * Makefile.in (GTFILES): Add cfg.h to list.
12077         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
12078         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
12079         * genconditions.c (write_header): Add predict.h and basic-block.h to
12080         lits of includes.
12081         * genemit.c (main): Ditto.
12082         * genpreds.c (write_insn_preds_c): Ditto.
12083         * genrecog.c (write_header): Ditto.
12084         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
12085         to list of includes.
12086         * alias.c: Adjust include files.
12087         * asan.c: Ditto.
12088         * auto-inc-dec.c: Ditto.
12089         * auto-profile.c: Ditto.
12090         * bb-reorder.c: Ditto.
12091         * bt-load.c: Ditto.
12092         * builtins.c: Ditto.
12093         * caller-save.c: Ditto.
12094         * calls.c: Ditto.
12095         * cfg.c: Ditto.
12096         * cfganal.c: Ditto.
12097         * cfgbuild.c: Ditto.
12098         * cfgcleanup.c: Ditto.
12099         * cfgexpand.c: Ditto.
12100         * cfghooks.c: Ditto.
12101         * cfgloop.c: Ditto.
12102         * cfgloopanal.c: Ditto.
12103         * cfgloopmanip.c: Ditto.
12104         * cfgrtl.c: Ditto.
12105         * cgraphbuild.c: Ditto.
12106         * cgraphclones.c: Ditto.
12107         * cgraphunit.c: Ditto.
12108         * combine-stack-adj.c: Ditto.
12109         * combine.c: Ditto.
12110         * compare-elim.c: Ditto.
12111         * coverage.c: Ditto.
12112         * cprop.c: Ditto.
12113         * cse.c: Ditto.
12114         * cselib.c: Ditto.
12115         * data-streamer-in.c: Ditto.
12116         * data-streamer-out.c: Ditto.
12117         * data-streamer.c: Ditto.
12118         * dce.c: Ditto.
12119         * ddg.c: Ditto.
12120         * ddg.h: Ditto.
12121         * df-core.c: Ditto.
12122         * df-problems.c: Ditto.
12123         * df-scan.c: Ditto.
12124         * df.h: Ditto.
12125         * dojump.c: Ditto.
12126         * dominance.c: Ditto.
12127         * domwalk.c: Ditto.
12128         * dse.c: Ditto.
12129         * dwarf2cfi.c: Ditto.
12130         * emit-rtl.c: Ditto.
12131         * et-forest.c: Ditto.
12132         * except.c: Ditto.
12133         * expmed.c: Ditto.
12134         * expr.c: Ditto.
12135         * final.c: Ditto.
12136         * fold-const.c: Ditto.
12137         * function.c: Ditto.
12138         * fwprop.c: Ditto.
12139         * gcc-plugin.h: Ditto.
12140         * gcse.c: Ditto.
12141         * generic-match-head.c: Ditto.
12142         * ggc-page.c: Ditto.
12143         * gimple-builder.c: Ditto.
12144         * gimple-expr.c: Ditto.
12145         * gimple-fold.c: Ditto.
12146         * gimple-iterator.c: Ditto.
12147         * gimple-low.c: Ditto.
12148         * gimple-match-head.c: Ditto.
12149         * gimple-pretty-print.c: Ditto.
12150         * gimple-ssa-isolate-paths.c: Ditto.
12151         * gimple-ssa-strength-reduction.c: Ditto.
12152         * gimple-streamer-in.c: Ditto.
12153         * gimple-streamer-out.c: Ditto.
12154         * gimple-streamer.h: Ditto.
12155         * gimple-walk.c: Ditto.
12156         * gimple.c: Ditto.
12157         * gimplify-me.c: Ditto.
12158         * gimplify.c: Ditto.
12159         * graph.c: Ditto.
12160         * graphite-blocking.c: Ditto.
12161         * graphite-clast-to-gimple.c: Ditto.
12162         * graphite-dependences.c: Ditto.
12163         * graphite-interchange.c: Ditto.
12164         * graphite-isl-ast-to-gimple.c: Ditto.
12165         * graphite-optimize-isl.c: Ditto.
12166         * graphite-poly.c: Ditto.
12167         * graphite-scop-detection.c: Ditto.
12168         * graphite-sese-to-poly.c: Ditto.
12169         * graphite.c: Ditto.
12170         * haifa-sched.c: Ditto.
12171         * hw-doloop.c: Ditto.
12172         * ifcvt.c: Ditto.
12173         * init-regs.c: Ditto.
12174         * internal-fn.c: Ditto.
12175         * ipa-cp.c: Ditto.
12176         * ipa-devirt.c: Ditto.
12177         * ipa-icf-gimple.c: Ditto.
12178         * ipa-icf.c: Ditto.
12179         * ipa-inline-analysis.c: Ditto.
12180         * ipa-inline.c: Ditto.
12181         * ipa-polymorphic-call.c: Ditto.
12182         * ipa-profile.c: Ditto.
12183         * ipa-prop.c: Ditto.
12184         * ipa-pure-const.c: Ditto.
12185         * ipa-reference.c: Ditto.
12186         * ipa-split.c: Ditto.
12187         * ipa-utils.c: Ditto.
12188         * ipa.c: Ditto.
12189         * ira-build.c: Ditto.
12190         * ira-color.c: Ditto.
12191         * ira-conflicts.c: Ditto.
12192         * ira-costs.c: Ditto.
12193         * ira-emit.c: Ditto.
12194         * ira-lives.c: Ditto.
12195         * ira.c: Ditto.
12196         * jump.c: Ditto.
12197         * lcm.c: Ditto.
12198         * loop-doloop.c: Ditto.
12199         * loop-init.c: Ditto.
12200         * loop-invariant.c: Ditto.
12201         * loop-iv.c: Ditto.
12202         * loop-unroll.c: Ditto.
12203         * lower-subreg.c: Ditto.
12204         * lra-assigns.c: Ditto.
12205         * lra-coalesce.c: Ditto.
12206         * lra-constraints.c: Ditto.
12207         * lra-eliminations.c: Ditto.
12208         * lra-lives.c: Ditto.
12209         * lra-spills.c: Ditto.
12210         * lra.c: Ditto.
12211         * lto-cgraph.c: Ditto.
12212         * lto-compress.c: Ditto.
12213         * lto-opts.c: Ditto.
12214         * lto-section-in.c: Ditto.
12215         * lto-section-out.c: Ditto.
12216         * lto-streamer-in.c: Ditto.
12217         * lto-streamer-out.c: Ditto.
12218         * lto-streamer.c: Ditto.
12219         * mcf.c: Ditto.
12220         * mode-switching.c: Ditto.
12221         * modulo-sched.c: Ditto.
12222         * omp-low.c: Ditto.
12223         * optabs.c: Ditto.
12224         * opts-global.c: Ditto.
12225         * passes.c: Ditto.
12226         * postreload-gcse.c: Ditto.
12227         * postreload.c: Ditto.
12228         * predict.c: Ditto.
12229         * print-rtl.c: Ditto.
12230         * profile.c: Ditto.
12231         * recog.c: Ditto.
12232         * ree.c: Ditto.
12233         * reg-stack.c: Ditto.
12234         * regcprop.c: Ditto.
12235         * regcprop.h: Ditto.
12236         * reginfo.c: Ditto.
12237         * regrename.c: Ditto.
12238         * regstat.c: Ditto.
12239         * reload.c: Ditto.
12240         * reload1.c: Ditto.
12241         * reorg.c: Ditto.
12242         * resource.c: Ditto.
12243         * rtlanal.c: Ditto.
12244         * sched-deps.c: Ditto.
12245         * sched-ebb.c: Ditto.
12246         * sched-int.h: Ditto.
12247         * sched-rgn.c: Ditto.
12248         * sched-vis.c: Ditto.
12249         * sel-sched-dump.c: Ditto.
12250         * sel-sched-ir.c: Ditto.
12251         * sel-sched-ir.h: Ditto.
12252         * sel-sched.c: Ditto.
12253         * sese.c: Ditto.
12254         * shrink-wrap.c: Ditto.
12255         * stack-ptr-mod.c: Ditto.
12256         * stmt.c: Ditto.
12257         * store-motion.c: Ditto.
12258         * symtab.c: Ditto.
12259         * toplev.c: Ditto.
12260         * tracer.c: Ditto.
12261         * trans-mem.c: Ditto.
12262         * tree-affine.c: Ditto.
12263         * tree-call-cdce.c: Ditto.
12264         * tree-cfg.c: Ditto.
12265         * tree-cfgcleanup.c: Ditto.
12266         * tree-chrec.c: Ditto.
12267         * tree-complex.c: Ditto.
12268         * tree-data-ref.c: Ditto.
12269         * tree-dfa.c: Ditto.
12270         * tree-eh.c: Ditto.
12271         * tree-emutls.c: Ditto.
12272         * tree-if-conv.c: Ditto.
12273         * tree-inline.c: Ditto.
12274         * tree-into-ssa.c: Ditto.
12275         * tree-loop-distribution.c: Ditto.
12276         * tree-nested.c: Ditto.
12277         * tree-nrv.c: Ditto.
12278         * tree-object-size.c: Ditto.
12279         * tree-outof-ssa.c: Ditto.
12280         * tree-parloops.c: Ditto.
12281         * tree-phinodes.c: Ditto.
12282         * tree-predcom.c: Ditto.
12283         * tree-pretty-print.c: Ditto.
12284         * tree-profile.c: Ditto.
12285         * tree-scalar-evolution.c: Ditto.
12286         * tree-sra.c: Ditto.
12287         * tree-ssa-address.c: Ditto.
12288         * tree-ssa-alias.c: Ditto.
12289         * tree-ssa-ccp.c: Ditto.
12290         * tree-ssa-coalesce.c: Ditto.
12291         * tree-ssa-copy.c: Ditto.
12292         * tree-ssa-copyrename.c: Ditto.
12293         * tree-ssa-dce.c: Ditto.
12294         * tree-ssa-dom.c: Ditto.
12295         * tree-ssa-dse.c: Ditto.
12296         * tree-ssa-forwprop.c: Ditto.
12297         * tree-ssa-ifcombine.c: Ditto.
12298         * tree-ssa-live.c: Ditto.
12299         * tree-ssa-loop-ch.c: Ditto.
12300         * tree-ssa-loop-im.c: Ditto.
12301         * tree-ssa-loop-ivcanon.c: Ditto.
12302         * tree-ssa-loop-ivopts.c: Ditto.
12303         * tree-ssa-loop-manip.c: Ditto.
12304         * tree-ssa-loop-niter.c: Ditto.
12305         * tree-ssa-loop-prefetch.c: Ditto.
12306         * tree-ssa-loop-unswitch.c: Ditto.
12307         * tree-ssa-loop.c: Ditto.
12308         * tree-ssa-math-opts.c: Ditto.
12309         * tree-ssa-operands.c: Ditto.
12310         * tree-ssa-phiopt.c: Ditto.
12311         * tree-ssa-phiprop.c: Ditto.
12312         * tree-ssa-pre.c: Ditto.
12313         * tree-ssa-propagate.c: Ditto.
12314         * tree-ssa-reassoc.c: Ditto.
12315         * tree-ssa-sccvn.c: Ditto.
12316         * tree-ssa-sink.c: Ditto.
12317         * tree-ssa-strlen.c: Ditto.
12318         * tree-ssa-structalias.c: Ditto.
12319         * tree-ssa-tail-merge.c: Ditto.
12320         * tree-ssa-ter.c: Ditto.
12321         * tree-ssa-threadedge.c: Ditto.
12322         * tree-ssa-threadupdate.c: Ditto.
12323         * tree-ssa-uncprop.c: Ditto.
12324         * tree-ssa-uninit.c: Ditto.
12325         * tree-ssa.c: Ditto.
12326         * tree-ssanames.c: Ditto.
12327         * tree-stdarg.c: Ditto.
12328         * tree-streamer-in.c: Ditto.
12329         * tree-streamer-out.c: Ditto.
12330         * tree-streamer.c: Ditto.
12331         * tree-switch-conversion.c: Ditto.
12332         * tree-tailcall.c: Ditto.
12333         * tree-vect-data-refs.c: Ditto.
12334         * tree-vect-generic.c: Ditto.
12335         * tree-vect-loop-manip.c: Ditto.
12336         * tree-vect-loop.c: Ditto.
12337         * tree-vect-patterns.c: Ditto.
12338         * tree-vect-slp.c: Ditto.
12339         * tree-vect-stmts.c: Ditto.
12340         * tree-vectorizer.c: Ditto.
12341         * tree-vrp.c: Ditto.
12342         * tree.c: Ditto.
12343         * tsan.c: Ditto.
12344         * ubsan.c: Ditto.
12345         * valtrack.c: Ditto.
12346         * valtrack.h: Ditto.
12347         * value-prof.c: Ditto.
12348         * var-tracking.c: Ditto.
12349         * varasm.c: Ditto.
12350         * varpool.c: Ditto.
12351         * vtable-verify.c: Ditto.
12352         * web.c: Ditto.
12353         * config/aarch64/aarch64-builtins.c: Ditto.
12354         * config/aarch64/aarch64.c: Ditto.
12355         * config/alpha/alpha.c: Ditto.
12356         * config/arc/arc.c: Ditto.
12357         * config/arm/arm.c: Ditto.
12358         * config/avr/avr.c: Ditto.
12359         * config/bfin/bfin.c: Ditto.
12360         * config/c6x/c6x.c: Ditto.
12361         * config/cr16/cr16.c: Ditto.
12362         * config/cris/cris.c: Ditto.
12363         * config/darwin-c.c: Ditto.
12364         * config/darwin.c: Ditto.
12365         * config/epiphany/epiphany.c: Ditto.
12366         * config/epiphany/mode-switch-use.c: Ditto.
12367         * config/epiphany/resolve-sw-modes.c: Ditto.
12368         * config/fr30/fr30.c: Ditto.
12369         * config/frv/frv.c: Ditto.
12370         * config/h8300/h8300.c: Ditto.
12371         * config/i386/i386.c: Ditto.
12372         * config/i386/winnt.c: Ditto.
12373         * config/ia64/ia64.c: Ditto.
12374         * config/iq2000/iq2000.c: Ditto.
12375         * config/lm32/lm32.c: Ditto.
12376         * config/m32c/m32c.c: Ditto.
12377         * config/m32r/m32r.c: Ditto.
12378         * config/m68k/m68k.c: Ditto.
12379         * config/mcore/mcore.c: Ditto.
12380         * config/mep/mep.c: Ditto.
12381         * config/microblaze/microblaze.c: Ditto.
12382         * config/mips/mips.c: Ditto.
12383         * config/mmix/mmix.c: Ditto.
12384         * config/mn10300/mn10300.c: Ditto.
12385         * config/moxie/moxie.c: Ditto.
12386         * config/msp430/msp430.c: Ditto.
12387         * config/nds32/nds32-cost.c: Ditto.
12388         * config/nds32/nds32-fp-as-gp.c: Ditto.
12389         * config/nds32/nds32-intrinsic.c: Ditto.
12390         * config/nds32/nds32-isr.c: Ditto.
12391         * config/nds32/nds32-md-auxiliary.c: Ditto.
12392         * config/nds32/nds32-memory-manipulation.c: Ditto.
12393         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
12394         * config/nds32/nds32-predicates.c: Ditto.
12395         * config/nds32/nds32.c: Ditto.
12396         * config/nios2/nios2.c: Ditto.
12397         * config/pa/pa.c: Ditto.
12398         * config/pdp11/pdp11.c: Ditto.
12399         * config/rl78/rl78.c: Ditto.
12400         * config/rs6000/rs6000.c: Ditto.
12401         * config/rx/rx.c: Ditto.
12402         * config/s390/s390.c: Ditto.
12403         * config/sh/sh-mem.cc: Ditto.
12404         * config/sh/sh.c: Ditto.
12405         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
12406         * config/sh/sh_treg_combine.cc: Ditto.
12407         * config/sparc/sparc.c: Ditto.
12408         * config/spu/spu.c: Ditto.
12409         * config/stormy16/stormy16.c: Ditto.
12410         * config/tilegx/tilegx.c: Ditto.
12411         * config/tilepro/tilepro.c: Ditto.
12412         * config/v850/v850.c: Ditto.
12413         * config/vax/vax.c: Ditto.
12414         * config/xtensa/xtensa.c: Ditto.
12415
12416 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12417
12418         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
12419         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12420         Remove using preprocessor directives.
12421
12422 2014-10-27  Richard Biener  <rguenther@suse.de>
12423
12424         * match.pd (0 % X): Properly use the iterator iterating over
12425         all modulo operators.
12426         (X % 1): Likewise.
12427
12428 2014-10-27  Richard Biener  <rguenther@suse.de>
12429
12430         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
12431         (lattice): New global.
12432         (fwprop_ssa_val): New function.
12433         (fold_all_stmts): Likewise.
12434         (pass_forwprop::execute): Finally fold all stmts.
12435
12436 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12437
12438         PR c++/53061
12439         * doc/invoke.texi (fmessage-length): Update text to match reality.
12440
12441 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12442
12443         * config/microblaze/microblaze.c: Include rtl-iter.h.
12444         (microblaze_tls_referenced_p_1): Delete.
12445         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
12446
12447 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12448
12449         * config/mips/mips.c (mips_at_reg_p): Delete.
12450         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
12451
12452 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12453
12454         * config/mips/mips.c (mips_record_lo_sum): Replace with...
12455         (mips_record_lo_sums): ...this new function.
12456         (mips_reorg_process_insns): Update accordingly.
12457
12458 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12459
12460         * config/mips/mips.c (mips_sim_insn): Update comment.
12461         (mips_sim_wait_regs_2): Delete.
12462         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
12463
12464 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12465
12466         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
12467         and return a bool.  Iterate over all subrtxes here.
12468         (r10k_needs_protection_p): Update accordingly.
12469
12470 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12471
12472         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
12473         rather than an rtx pointer.  Change type of insn from "void *"
12474         to its real type.  Return bool rather than int.  Iterate over
12475         all subrtxes here.
12476         (r10k_needs_protection_p_store): Update accordingly.
12477         (r10k_needs_protection_p): Likewise.
12478
12479 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12480
12481         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
12482         (mips16_rewrite_pool_refs): Take the insn and constant pool as
12483         parameters.  Iterate over the instruction's pattern and return void.
12484         (mips16_lay_out_constants): Update accordingly.
12485
12486 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12487
12488         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
12489         (mips_refers_to_kernel_reg_p): ...this new function.
12490         (mips_expand_prologue): Update accordingly.
12491
12492 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12493
12494         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
12495         as a parameter instead of the containing MEM.  Iterate over all
12496         subrtxes.  Don't return a value.
12497         (mips_rewrite_small_data): Update call accordingly.
12498
12499 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12500
12501         * config/mips/mips.c: Include rtl-iter.h.
12502         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
12503         Take the context as a parameter instead of the containing MEM.
12504         Iterate over all subrtxes.
12505         (mips_small_data_pattern_p): Update call accordingly.
12506
12507 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12508
12509         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
12510         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
12511
12512 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12513
12514         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
12515         return a bool.  Replace "void *" with specific type.  Iterate
12516         over all subrtxes.
12517         (mep_store_data_bypass_1): Update calls accordingly.
12518
12519 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12520
12521         * config/mep/mep.c: Include rtl-iter.h.
12522         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
12523         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
12524
12525 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12526
12527         * config/xtensa/xtensa.c: Include rtl-iter.h.
12528         (xtensa_tls_referenced_p_1): Delete.
12529         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
12530
12531 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12532
12533         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
12534         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
12535
12536 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12537
12538         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
12539         rtx as argument and return the number of changes.
12540         * config/sh/sh.c: Include rtl-iter.h.
12541         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
12542         over all subrtxes.  Return the number of changes made.
12543         * config/sh/sh.md: Update caller accordingly.
12544
12545 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12546
12547         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
12548         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
12549
12550 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12551
12552         * config/m68k/m68k.c: Include rtl-iter.h.
12553         (m68k_final_prescan_insn_1): Delete.
12554         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
12555
12556 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
12557
12558         PR tree-optimization/63641
12559         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
12560         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12561
12562 2014-10-25  Alan Modra  <amodra@gmail.com>
12563
12564         PR rtl-optimization/63615
12565         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
12566         decomposing PLUS or MINUS if operands are not placed adjacent
12567         in the "ops" array.
12568
12569 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
12570
12571         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
12572         not allow e500 double in registers not satisyfing
12573         SPE_SIMD_REGNO_P.
12574
12575 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
12576
12577         * dwarf2out.c (declare_in_namespace): Only emit external
12578         declarations in the local scope once.
12579
12580 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
12581
12582         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
12583
12584 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12585
12586         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
12587         update uses to use new macro arguments.
12588         (__LD3_LANE_FUNC): Likewise.
12589         (__LD4_LANE_FUNC): Likewise.
12590
12591 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12592
12593         * config/aarch64/aarch64-builtins.c
12594         (aarch64_types_loadstruct_lane_qualifiers): Define.
12595         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
12596         ld4_lane): New builtins.
12597         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
12598         New pattern.
12599         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12600         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12601         (aarch64_ld2_lane<mode>): New expand.
12602         (aarch64_ld3_lane<mode>): Likewise.
12603         (aarch64_ld4_lane<mode>): Likewise.
12604         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12605         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
12606
12607 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
12608
12609         * avr-protos.h (avr_out_sign_extend): New.
12610         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
12611         (avr_out_sign_extend): New function.
12612         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
12613         (extendhisi2, extendpsisi2): Use it.
12614         (adjust_len) [sext]: New.
12615
12616 2014-10-24  Martin Liska  <mliska@suse.cz>
12617
12618         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
12619         added.
12620
12621 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12622
12623         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
12624         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12625         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
12626         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12627
12628 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12629
12630         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
12631         do while (0).
12632         * config/aarch64/aarch64.c (is_mem_p): Delete.
12633         (is_memory_op): Rename to...
12634         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
12635         (dep_between_memop_and_curr): Assert that the input is a SET.
12636         (aarch64_madd_needs_nop): Add comment.  Do not call
12637         dep_between_memop_and_curr on NULL body.
12638         (aarch64_final_prescan_insn): Add comment.
12639         Include rtl-iter.h.
12640
12641 2014-10-24  Richard Biener  <rguenther@suse.de>
12642
12643         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
12644         to genmatch BUILD_LIBS instead.
12645
12646 2014-10-24  Richard Biener  <rguenther@suse.de>
12647
12648         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
12649         and build_call_expr_loc.
12650         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
12651         non_lvalue_loc to build it for GENERIC.
12652         (decision_tree::gen_generic): Add location argument to
12653         generic_simplify prototype.
12654         (capture_info): New class.
12655         (capture_info::capture_info): New constructor.
12656         (capture_info::walk_match): New method.
12657         (capture_info::walk_result): New method.
12658         (capture_info::walk_c_expr): New method.
12659         (dt_simplify::gen): Handle preserving side-effects for
12660         GENERIC code generation.
12661         (decision_tree::gen_generic): Do not reject operands
12662         with TREE_SIDE_EFFECTS.
12663         * generic-match.h: New file.
12664         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
12665         * match.pd: Add some constant folding patterns from fold-const.c.
12666         * fold-const.c: Include generic-match.h.
12667         (fold_unary_loc): Dispatch to generic_simplify.
12668         (fold_ternary_loc): Likewise.
12669         (fold_binary_loc): Likewise.  Remove patterns now implemented
12670         by generic_simplify.
12671         * gimple-fold.c (replace_stmt_with_simplification): New function.
12672         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
12673         (no_follow_ssa_edges): New function.
12674         (fold_stmt): New overload with valueization hook.  Use
12675         no_follow_ssa_edges for the overload without hook.
12676         (fold_stmt_inplace): Likewise.
12677         * gimple-fold.h (no_follow_ssa_edges): Declare.
12678
12679 2014-10-24  Felix Yang  <felix.yang@huawei.com>
12680         Jiji Jiang  <jiangjiji@huawei.com>
12681
12682         PR target/63173
12683         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
12684         (__LD3R_FUNC): Ditto.
12685         (__LD4R_FUNC): Ditto.
12686         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
12687          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
12688          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
12689          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
12690          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
12691          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
12692         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
12693          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
12694          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
12695          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
12696          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
12697          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
12698         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
12699          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
12700          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
12701          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
12702          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
12703          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
12704         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12705         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
12706         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
12707         builtins.
12708         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
12709         (aarch64_simd_ld3r<mode>): Likewise.
12710         (aarch64_simd_ld4r<mode>): Likewise.
12711         (aarch64_ld2r<mode>): New expand.
12712         (aarch64_ld3r<mode>): Likewise.
12713         (aarch64_ld4r<mode>): Likewise.
12714
12715 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12716
12717         * rtlanal.c (get_base_term): Handle SCRATCH.
12718
12719 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12720
12721         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
12722         register pressure.
12723
12724 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12725
12726         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
12727         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
12728         (max_issue, choose_ready, sched_init): Update.
12729
12730 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12731
12732         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
12733         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
12734         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
12735         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
12736         (print_rank_for_schedule_stats): Print out elements of ready list that
12737         ended up on their respective places due to each of the sorting
12738         heuristics.
12739         (ready_sort): Update.
12740         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
12741         (schedule_block): Update.
12742
12743 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12744
12745         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
12746         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
12747         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
12748         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
12749         (model_start_schedule): Update.
12750         (sched_pressure_start_bb): New static function.  Calculate
12751         sched_class_regs_num.
12752         (schedule_block): Use it.
12753         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
12754
12755 2014-10-24  Richard Biener  <rguenther@suse.de>
12756
12757         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
12758         host library and make sure to pull in the required libintl
12759         and libiconv dependencies.
12760
12761 2014-10-24  Richard Biener  <rguenther@suse.de>
12762
12763         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
12764
12765 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
12766
12767         PR bootstrap/63632
12768         * collect2.c (main): Filter out -fno-lto.
12769
12770 2014-10-24  Martin Liska  <mliska@suse.cz>
12771
12772         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
12773         division by zero in dumps.
12774         (sem_item_optimizer::merge_classes): Ditto.
12775
12776 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
12777
12778         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
12779
12780 2014-10-23  Ian Lance Taylor  <iant@google.com>
12781
12782         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
12783
12784 2014-10-23  Ian Lance Taylor  <iant@google.com>
12785
12786         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
12787
12788 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
12789
12790         PR debug/63623
12791         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
12792         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
12793         instead of only handling autoinc in dest if it is a MEM.
12794         (vt_stack_adjustments): Fix up formatting.
12795
12796 2014-10-23  DJ Delorie  <dj@redhat.com>
12797
12798         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
12799         independend of -mlarge.
12800         * config/msp430/constraints.md (Ys): Update comment.
12801
12802 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
12803
12804         PR target/63534
12805         PR target/63618
12806         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
12807         while it is pseudo.
12808         * dse.c (deletable_insn_p): Likewise.
12809
12810 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
12811
12812         * config/avr/avr.c: Fix GNU coding rules and typos.
12813         * config/avr/avr.h: Dito.
12814         * config/avr/avr-c.c: Dito.
12815         * config/avr/avr.md: Dito.
12816
12817 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12818
12819         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
12820         New.
12821         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
12822         iterator.
12823         (define_expand "abs<mode>2"): Ditto.
12824
12825 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12826
12827         * tree-core.h (tree_var_decl): Extend `function_code' field
12828         by one bit, move `regdecl_flag' field to ...
12829         (tree_decl_with_vis): Here.
12830         * tree.h (DECL_STATIC_CHAIN): Update struct name.
12831
12832 2014-10-23  Richard Biener  <rguenther@suse.de>
12833
12834         * Makefile.in (BUILD_CPPLIB): Add.
12835         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
12836         Drop LIBIBERTY.
12837
12838 2014-10-23  Richard Biener  <rguenther@suse.de>
12839
12840         * fold-const.c (fold_binary_loc): Preserve side-effects of
12841         X - X when simplifying to 0.
12842         * stor-layout.c (finish_bitfield_representative): Strip
12843         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
12844
12845 2014-10-22  Richard Biener  <rguenther@suse.de>
12846             Tobias Burnus <burnus@net-b.de>
12847
12848         PR lto/63603
12849         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
12850
12851 2014-10-22  Dehao Chen  <dehao@google.com>
12852
12853         * auto-profile.c: Change order of header files.
12854
12855 2014-10-22  Guozhi Wei  <carrot@google.com>
12856
12857         PR tree-optimization/63530
12858         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
12859         pointer alignment according to DR_MISALIGNMENT.
12860
12861 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
12862
12863         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
12864
12865 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
12866
12867         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
12868         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
12869         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
12870         * dominance.h: New.  Add prototypes for dominance.c.
12871         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
12872         * cfghooks.h: (struct profile_record) Relocate here.
12873         Relocate 2 prototypes from basic-block.h.
12874         * basic-block.h: Move prototypes and struct to new header files.
12875         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
12876         * rtl.h: Move a few prototypes to new header files.
12877         * cfgcleanup.c (merge_memattrs): Make static.
12878         * genopinit.c (main): Add predict.h to list of includes.
12879         * predict.h: Update prototype list to match predict.c.
12880         * predict.c (maybe_hot_count_p): Export.
12881         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
12882         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
12883         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
12884         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
12885         * profile.h: Adjust prototypes.
12886         * ifcvt.h: New.  Relocate struct ce_if_block here.
12887         * ifcvt.c: Include ifcvt.h.
12888         * config/frv/frv.c: Include ifcvt.h.
12889         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
12890
12891 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12892
12893         * lra.c (lra): Remove call to recog_init.
12894         * config/i386/i386.md (preferred_for_speed): New attribute
12895         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
12896         "enabled".  Remove check for sched1.
12897
12898 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12899
12900         * recog.h (recog_data_d): Remove enabled_alternatives.
12901         * recog.c (extract_insn): Don't set it.
12902         * reload.c (find_reloads): Call get_enabled_alternatives.
12903
12904 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12905
12906         * recog.h (constrain_operands): Add an alternative_mask parameter.
12907         (constrain_operands_cached): Likewise.
12908         (get_preferred_alternatives): Declare new form.
12909         * recog.c (get_preferred_alternatives): New bb-taking instance.
12910         (constrain_operands): Take the set of available alternatives as
12911         a parameter.
12912         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
12913         (extract_constrain_insn_cached): Update calls to constrain_operands.
12914         * caller-save.c (reg_save_code): Likewise.
12915         * ira.c (setup_prohibited_mode_move_regs): Likewise.
12916         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
12917         * ree.c (combine_reaching_defs): Likewise.
12918         * reload.c (can_reload_into): Likewise.
12919         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
12920         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
12921         (emit_insn_if_valid_for_reload): Likewise.
12922         * reorg.c (fill_slots_from_thread): Likewise.
12923         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
12924         * config/pa/pa.c (pa_can_combine_p): Likewise.
12925         * config/rl78/rl78.c (insn_ok_now): Likewise.
12926         * config/sh/sh.md (define_peephole2): Likewise.
12927         * final.c (final_scan_insn): Update call to constrain_operands_cached.
12928
12929 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12930
12931         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
12932         attributes.
12933         * genattr.c (main): Handle "preferred_for_size" and
12934         "preferred_for_speed" in the same way as "enabled".
12935         * recog.h (bool_attr): New enum.
12936         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
12937         (get_preferred_alternatives, check_bool_attrs): Declare.
12938         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
12939         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
12940         New functions.
12941         (get_enabled_alternatives): Use get_bool_attr_mask.
12942         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
12943         instead of recog_data.enabled_alternatives.
12944         * ira.c (ira_setup_alts): Likewise.
12945         * postreload.c (reload_cse_simplify_operands): Likewise.
12946         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
12947         * ira-lives.c (preferred_alternatives): New variable.
12948         (process_bb_node_lives): Set it.
12949         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
12950         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
12951         of recog_data.enabled_alternatives.
12952         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
12953         to preferred_alternatives.
12954         * lra-constraints.c (process_alt_operands): Update accordingly.
12955         * lra.c (lra_set_insn_recog_data): Likewise.
12956         (lra_update_insn_recog_data): Assert check_bool_attrs.
12957
12958 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12959
12960         * recog.h (extract_constrain_insn): Declare.
12961         * recog.c (extract_constrain_insn): New function.
12962         * lra.c (check_rtl): Use it.
12963         * postreload.c (reload_cse_simplify_operands): Likewise.
12964         * reg-stack.c (check_asm_stack_operands): Likewise.
12965         (subst_asm_stack_regs): Likewise.
12966         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
12967         * regrename.c (build_def_use): Likewise.
12968         * sel-sched.c (get_reg_class): Likewise.
12969         * config/arm/arm.c (note_invalid_constants): Likewise.
12970         * config/s390/predicates.md (execute_operation): Likewise.
12971
12972 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
12973             Yury Gribov  <y.gribov@samsung.com>
12974
12975         * common.opt (flag_sanitize_recover): New variable.
12976         (fsanitize-recover): Remove Var/Init, deprecate.
12977         (fsanitize-recover=): New option.
12978         * doc/invoke.texi (fsanitize-recover): Update docs.
12979         * opts.c (finish_options): Use opts->x_flag_sanitize
12980         instead of flag_sanitize.  Prohibit -fsanitize-recover
12981         for anything besides UBSan.  Formatting.
12982         (common_handle_option): Handle OPT_fsanitize_recover_
12983         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
12984         instead of flag_sanitize.
12985         * asan.c (pass_sanopt::execute): Fix up formatting.
12986         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
12987         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
12988         instrument_bool_enum_load, ubsan_instrument_float_cast,
12989         instrument_nonnull_arg, instrument_nonnull_return): Check
12990         bits in flag_sanitize_recover bitmask instead of
12991         flag_sanitize_recover as bool flag.
12992
12993 2014-10-22  Jiong Wang <jiong.wang@arm.com>
12994
12995         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
12996
12997 2014-10-22  Renlin Li <renlin.li@arm.com>
12998
12999         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
13000         __ARM_FEATURE_IDIV__.
13001
13002 2014-10-22  Richard Biener  <rguenther@suse.de>
13003
13004         * Makefile.in (s-match): Adjust dependencies to only catch
13005         match.pd.
13006
13007 2014-10-22  Richard Biener  <rguenther@suse.de>
13008         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
13009
13010         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
13011         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
13012         (gimple-match.c): Generate by triggering s-match.
13013         (generic-match.c): Likewise.
13014         (s-match): Rule to build gimple-match.c and generic-match.c
13015         by running the genmatch generator program.
13016         (build/hash-table.o): Dependencies to build hash-table.c for the host.
13017         (build/genmatch.o): Dependencies to build genmatch.
13018         (genprog): Add match.
13019         (build/genmatch): Likewise.
13020         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
13021         * generic-match-head.c: New file.
13022         * gimple-match-head.c: Likewise.
13023         * gimple-match.h: Likewise.
13024         * genmatch.c: Likewise.
13025         * match.pd: Likewise.
13026         * builtins.h (fold_builtin_n): Export.
13027         * builtins.c (fold_builtin_n): Likewise.
13028         * gimple-fold.h (gimple_build): Declare various overloads.
13029         (gimple_simplify): Likewise.
13030         (gimple_convert): Re-implement in terms of gimple_build.
13031         * gimple-fold.c (gimple_convert): Remove.
13032         (gimple_build): New functions.
13033         * doc/match-and-simplify.texi: New file.
13034         * doc/gccint.texi: Add menu item Match and Simplify and include
13035         match-and-simplify.texi.
13036
13037 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
13038
13039         PR target/63594
13040         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
13041         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
13042         even for just TARGET_AVX2, not only for
13043         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
13044         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
13045         otherwise build it using concatenation of 256-bit
13046         broadcast.
13047         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
13048         avx512 broadcast patterns.
13049         (vec_dup<mode>): Likewise.  For avx2 use
13050         v<sseintprefix>broadcast<bcstscalarsuff> instead of
13051         vbroadcast<ssescalarmodesuffix>.
13052         (AVX2_VEC_DUP_MODE): New mode iterator.
13053         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
13054         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
13055
13056         PR target/63542
13057         * config/i386/i386.c (ix86_pic_register_p): Also return
13058         true if x is a hard register with ORIGINAL_REGNO equal to
13059         pic_offset_table_rtx pseudo REGNO.
13060         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
13061         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
13062
13063 2014-10-22  Alan Modra  <amodra@gmail.com>
13064
13065         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
13066         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
13067         (gcc_obstack_init): Use obstack_specify_allocation in place of
13068         _obstack_begin.
13069         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
13070         (regexp_representation): Likewise.
13071         * godump.c (go_output_type): Likewise.
13072
13073 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
13074
13075         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
13076         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
13077         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
13078
13079 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
13080
13081         * doc/invoke.texi (pedantic-errors): Explain better.
13082
13083 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
13084             Vidya Praveen <vidya.praveen@atmel.com>
13085             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
13086             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
13087             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
13088
13089         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
13090         __MEMX for avrtiny.
13091         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
13092         (avr_nonconst_pointer_addrspace): Likewise.
13093         * config/avr/avr.h (AVR_HAVE_LPM): Define.
13094
13095         Added AVRTINY architecture to avr target.
13096         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
13097         (base_arch_s): member added for AVRTINY architecture.
13098         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
13099         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
13100         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
13101         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
13102         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
13103         in callee saved register list.
13104         (avr_option_override): CCP address updated for AVRTINY.
13105         (avr_init_expanders): tmp and zero rtx initialized as per arch.
13106         Reset avr_have_dimode if AVRTINY.
13107         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
13108         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
13109         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
13110         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
13111         (expand_epilogue): Likewise.
13112         (avr_print_operand): Print CCP address in case of AVRTINY also.
13113         <TBD>bad address
13114         (function_arg_regno_p): Check different register list for arguments
13115         if AVRTINY.
13116         (init_cumulative_args): Check for AVRTINY to update number of argument
13117         registers.
13118         (tiny_valid_direct_memory_access_range): New function. Return false if
13119         direct memory access range is not in accepted range for AVRTINY.
13120         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
13121         indirect load (with displacement) for AVRTINY.
13122         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
13123         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
13124         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
13125         indirect load (no displacement) for AVRTINY.
13126         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
13127         indirect load (with displacement) for AVRTINY.
13128         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
13129         indirect load for pre-decrement address.
13130         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
13131         functions. Update instruction length for AVRTINY.
13132         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
13133         SImode.
13134         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
13135         (out_movsi_r_mr): Likewise, for SImode.
13136         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
13137         indirect store (no displacement) for AVRTINY.
13138         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
13139         indirect store (with displacement) for AVRTINY.
13140         (out_movsi_mr_r): Emit out insn for IO address store. Update store
13141         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
13142         store functions.
13143         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
13144         indirect load (no displacement) for PSImode in AVRTINY.
13145         (avr_out_load_psi_reg_disp_tiny): New function to handle register
13146         indirect load (with displacement) for PSImode in AVRTINY.
13147         (avr_out_load_psi): Call PSImode register indirect load functions for
13148         AVRTINY. Update instruction length for AVRTINY.
13149         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
13150         indirect store (no displacement) for PSImode in AVRTINY.
13151         (avr_out_store_psi_reg_disp_tiny): New function to handle register
13152         indirect store (with displacement) for PSImode in AVRTINY.
13153         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
13154         register indirect store functions for AVRTINY.
13155         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
13156         register indirect store (with displacement) for AVRTINY.
13157         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
13158         register indirect store function for QImode in AVRTINY.
13159         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
13160         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
13161         indirect store (no displacement) for HImode in AVRTINY.
13162         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
13163         indirect store (with displacement) for HImode in AVRTINY.
13164         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
13165         indirect store for post-increment address in HImode.
13166         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
13167         register indirect store function for HImode in AVRTINY.
13168         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
13169         in case of AVRTINY.
13170         (order_regs_for_local_alloc): Updated register allocation order for
13171         AVRTINY.
13172         (avr_conditional_register_usage): New function. It is a target hook
13173         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
13174         used registers list and register allocation order for AVRTINY.
13175         (avr_return_in_memory): Update return value size for AVRTINY.
13176         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
13177         for AVRTINY arch and tiny program memory base address.
13178         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
13179         (avr_texinfo): Added description for AVRTINY arch.
13180         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
13181         STATIC_CHAIN_REGNUM for AVRTINY.
13182         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
13183         * config/avr/avr.md: Added constants for tmp/ zero registers in
13184         AVRTINY. Attributes for AVRTINY added.
13185         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
13186         memory access range.
13187         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
13188         in AVRTINY memory access range.
13189         (*mov<mode>): Likewise for HImode and SImode.
13190         (*movsf): Likewise for SFmode.
13191         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
13192         not have sbiw.
13193         * config/avr/avr-protos.h: Added function prototype for
13194         tiny_valid_direct_memory_access_range.
13195         * config/avr/avr-tables.opt: Regenerate.
13196         * gcc/config/avr/t-multilib: Regenerate.
13197         * doc/avr-mmcu.texi: Regenerate.
13198
13199 2014-10-21  Andrew Pinski  <apinski@cavium.com>
13200
13201         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
13202         available option also.
13203         * config/aarch64/aarch64-cost-tables.h: New file.
13204         * config/aarch64/aarch64-cores.def (thunderx): New core.
13205         * config/aarch64/aarch64-tune.md: Regenerate.
13206         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
13207         of config/arm/aarch-cost-tables.h.
13208         (thunderx_regmove_cost): New variable.
13209         (thunderx_tunings): New variable.
13210
13211 2014-10-21  Dehao Chen  <dehao@google.com>
13212
13213         * auto-profile.c: New file.
13214         * auto-profile.h: New file.
13215         * basic-block.h (maybe_hot_count_p): New export func.
13216         (add_working_set): New export func.
13217         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
13218         (GCOV_TAG_AFDO_FUNCTION): Likewise.
13219         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
13220         * opts.c (enable_fdo_optimizations): New func.
13221         (common_handle_option): Handle -fauto-profile flag.
13222         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
13223         (class pass_early_inline): Export early_inliner.
13224         (early_inliner): Likewise.
13225         (pass_early_inline::execute): Likewise.
13226         * ipa-inline.h (early_inliner): Likewise.
13227         * predict.c (maybe_hot_count_p): New export func.
13228         (counts_to_freqs): AutoFDO logic.
13229         (rebuild_frequencies): Likewise.
13230         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
13231         * profile.c (add_working_set): New func.
13232         * Makefile.in (auto-profile.o): New object file.
13233         * passes.def (pass_ipa_auto_profile): New pass.
13234         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
13235         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
13236         * toplev.c (compile_file): AutoFDO logic.
13237         * doc/invoke.texi (-fauto-profile): New doc.
13238         * coverage.c (coverage_init): AutoFDO logic.
13239         * common.opt (-fauto-profile): New flag.
13240         * timevar.def (TV_IPA_AUTOFDO): New tag.
13241         * value-prof.c (gimple_alloc_histogram_value): New export func.
13242         (check_ic_target): Likewise.
13243         * value-prof.h (gimple_alloc_histogram_value): Likewise.
13244         (check_ic_target): Likewise.
13245
13246 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
13247
13248         * cgraph.c (cgraph_c_finalize): New function.
13249         * cgraph.h (cgraph_c_finalize): New prototype.
13250         (cgraphunit_c_finalize): New prototype.
13251         * cgraphunit.c (first_analyzed): Move from analyze_functions
13252         to file-scope.
13253         (first_analyzed_var): Likewise.
13254         (analyze_functions): Move static variables into file-scope.
13255         (cgraphunit_c_finalize): New function.
13256         * diagnostic.c (diagnostic_finish): Free the memory for
13257         context->classify_diagnostic and context->printer, running the
13258         destructor for the latter.
13259         (bt_stop): Use toplev::main.
13260         * dwarf2out.c (dwarf2out_finalize): New function.
13261         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13262         * gcse.c (gcse_c_finalize): New function.
13263         * gcse.h (gcse_c_finalize): New prototype.
13264         * ggc-page.c (init_ggc): Make idempotent.
13265         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13266         * ipa-cp.c (ipa_cp_c_finalize): New function.
13267         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13268         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13269         a field of class pass_ipa_pure_const.
13270         (node_duplication_hook_holder): Likewise.
13271         (node_removal_hook_holder): Likewise.
13272         (register_hooks): Convert to method...
13273         (pass_ipa_pure_const::register_hooks): ...here, converting
13274         static variable init_p into...
13275         (pass_ipa_pure_const::init_p): ...new field.
13276         (pure_const_generate_summary): Update invocation of
13277         register_hooks to invoke as a method of current_pass.
13278         (pure_const_read_summary): Likewise.
13279         (propagate): Convert to...
13280         (pass_ipa_pure_const::execute): ...method.
13281         * ipa-reference.c (ipa_init): Move static bool init_p from here
13282         to...
13283         (ipa_init_p): New file-scope variable, so that it can be reset
13284         when repeatedly invoking the compiler within one process by...
13285         (ipa_reference_c_finalize): New function.
13286         * ipa-reference.h (ipa_reference_c_finalize): New.
13287         * main.c (main): Replace invocation of toplev_main with
13288         construction of a toplev instance, and call its "main" method.
13289         * params.c (global_init_params): Add an assert that
13290         params_finished is false.
13291         (params_c_finalize): New.
13292         * params.h (params_c_finalize): New.
13293         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13294         invoking generate_summary, for the benefit of pass_ipa_pure_const.
13295         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13296         before calling write_summary hook.
13297         (ipa_write_optimization_summaries_1): Likewise when calling
13298         write_optimization_summary hook.
13299         (ipa_read_summaries_1): Likewise for read_summary hook.
13300         (ipa_read_optimization_summaries_1): Likewise for
13301         read_optimization_summary hook.
13302         (execute_ipa_stmt_fixups): Likewise.
13303         * stringpool.c (init_stringpool): Clean up if we're called more
13304         than once.
13305         * timevar.c (timevar_init): Ignore repeated calls.
13306         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13307         "ipa-prop.h".
13308         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13309         (initialize_rtl): Move static local "initialized_once"
13310         into file scope, and rename to...
13311         (rtl_initialized): New variable.
13312         (do_compile): Move timevar initialization from here to
13313         toplev::start_timevars.
13314         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13315         toplev::finalize): New functions.
13316         (toplev_main): Rename to...
13317         (toplev::main): ...this.
13318         * toplev.h (class toplev): New class.
13319
13320 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13321
13322         * loop-doloop.c: Include loop-unroll.h.
13323
13324 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13325
13326         * cfg.h: New.  Header file for cfg.c.
13327         * cfganal.h: New.  Header file for cfganal.c.
13328         * lcm.h: New.  Header file for lcm.c.
13329         * loop-unroll.h: New.  Header file for loop-unroll.h.
13330         * cfgloop.h: (unroll_loops): Remove prototype.
13331         * basic-block.h: Move prototypes and structs to new header files.
13332         Include cfg.h, cfganal.h, and lcm.h.
13333         * loop-init.c: Include loop-unroll.h.
13334         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13335         * modulo-sched.c: Include loop-unroll.h.
13336
13337 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13338
13339         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
13340         MARKER_BYTE_UNKNOWN markers when handling casts.
13341
13342 2014-10-21  Richard Biener  <rguenther@suse.de>
13343
13344         * tree-ssa-phiopt.c (value_replacement): Properly verify we
13345         are the non-singleton PHI.
13346
13347 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
13348
13349         PR tree-optimization/63563
13350         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
13351         if either dra or drb stmts are not normal loads/stores.
13352
13353 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
13354
13355         * config/i386/i386.c (expand_vec_perm_1): Fix
13356         expand_vec_perm_palignr case.
13357         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
13358         VI1_AVX512.
13359
13360 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
13361
13362         * cfgloopanal.c (seq_cost): Delete.
13363         * rtl.h (seq_cost): New prototype.
13364         * rtlanal.c (seq_cost): New function.
13365         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
13366
13367 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
13368
13369         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
13370         * basic-block.h: Remove prototypes for cfgrtl.c.
13371         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
13372         prototypes to cfgrtl.h.
13373         * profile.h (profile_info): Add extern export declaration.
13374         * rtl.h: Remove prototypes for cfgrtl.h.
13375         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
13376         * ipa-inline.c: Include profile.h.
13377         * loop-unroll.c: Ditto.
13378         * modulo-sched.c: Ditto.
13379         * postreload-gcse.c: Ditto.
13380         * predict.c: Ditto.
13381         * sched-ebb.c: Ditto.
13382         * sched-rgn.c: Ditto.
13383         * tracer.c: Ditto.
13384         * tree-ssa-loop-ivcanon.c: Ditto.
13385
13386 2014-10-20  Richard Biener  <rguenther@suse.de>
13387
13388         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
13389         operands to get a def operand kind match.  Signal mismatches
13390         to the parent so we can try swapping its operands.
13391         (vect_build_slp_tree): Try swapping operands if they have
13392         a mismatched operand kind.
13393
13394 2014-10-20  Alan Modra  <amodra@gmail.com>
13395
13396         PR debug/60655
13397         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
13398         Increase "ops" array size.  Correct array size tests.  Init
13399         n_constants in loop.  Break out of innermost loop when finding
13400         a trivial CONST expression.
13401
13402 2014-10-20  Martin Liska  <mliska@suse.cz>
13403
13404         PR ipa/63583
13405         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
13406         Gimple tempate string is compared.
13407
13408 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
13409
13410         * varasm.c (const_alias_set): Remove.
13411         (init_varasm_once): Remove initialization of const_alias_set.
13412         (build_constant_desc): Do not set alias set to const_alias_set.
13413
13414 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
13415
13416         * configure: Regenerate.
13417         * configure.ac: Move the test for section attribute specifier "e" in GAS
13418         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
13419         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
13420         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
13421         ifdef HAVE_GAS_SECTION_EXCLUDE.
13422
13423 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
13424
13425         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
13426         match_operand expression.
13427
13428 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
13429             David Edelsohn  <dje.gcc@gmail.com>
13430
13431         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
13432         function.
13433         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13434
13435 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13436
13437         * doc/invoke.texi (Options to Request or Suppress Warnings):
13438         Explain options precedence.
13439         (Wtrampolines): Do not indent paragraph.
13440
13441 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
13442
13443         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
13444         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
13445         (pa_jump_in_call_delay): Likewise.
13446         * config/pa/pa.c (pa_option_override): Remove jump in call delay
13447         override.
13448         (pa_output_millicode_call): Remove support for jump in call delay.
13449         (pa_output_call): Likewise.
13450         (pa_jump_in_call_delay): Delete.
13451         (pa_following_call): Likewise.
13452         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
13453         (uncond_branch): Remove following call check from attribute length.
13454
13455 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
13456
13457         PR target/53513
13458         * config/sh/sh-modes.def (PSI): Remove.
13459         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
13460         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
13461         (sh_reorg): Remove commented out FPSCR code.
13462         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
13463         insn instead of move insn.
13464         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
13465         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
13466         handling.
13467         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
13468         (sh1_builtin_p): Uncomment.
13469         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
13470         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
13471         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
13472         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
13473         (general_movsrc_operand, general_movdst_operand): Disallow
13474         fpscr_operand.
13475         * config/sh/sh.md (FPSCR_FR): New constant.
13476         (push_fpscr): Emit sts_fpscr insn.
13477         (pop_fpscr): Emit lds_fpscr_insn.
13478         (movsi_ie): Disallow FPSCR operands.
13479         (fpu_switch, unnamed related split, extend_psi_si,
13480         truncate_si_psi): Remove insns.
13481         (lds_fpscr, sts_fpscr): New insns.
13482         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
13483
13484 >>>>>>> .r217525
13485 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
13486
13487         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
13488         (clone_inlined_nodes): Do not overwrite the clone if above predicate
13489         returns true.
13490
13491 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
13492
13493         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
13494         (expand_vec_perm_d): Ditto.
13495         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
13496         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
13497         V4DFmode.
13498         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
13499         (ix86_expand_sse_unpack): Handle V64QImode.
13500         (expand_vec_perm_blend): Update conditions for TARGET, handle
13501         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
13502         (expand_vec_perm_pshufb): Handle V64QImode.
13503         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
13504         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
13505         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
13506         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
13507         (ix86_expand_vecop_qihi): Handle V64QImode.
13508         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
13509         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
13510         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
13511         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
13512         (mul<mode>3): Use VI1_AVX512.
13513         (<sse2_avx2>_packsswb): Ditto.
13514         (<sse2_avx2>_packuswb): Ditto.
13515         (<ssse3_avx2>_pshufb<mode>3): Ditto.
13516         (<shift_insn><mode>3): Ditto.
13517
13518 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
13519
13520         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
13521         conditions to fix bootstrap.
13522
13523 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
13524
13525         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
13526
13527 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13528             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13529             Anna Tikhonova  <anna.tikhonova@intel.com>
13530             Ilya Tocar  <ilya.tocar@intel.com>
13531             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13532             Ilya Verbin  <ilya.verbin@intel.com>
13533             Kirill Yukhin  <kirill.yukhin@intel.com>
13534             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13535
13536         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
13537         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
13538         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
13539         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
13540         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
13541         (define_expand "vec_init<mode>"): Use VF48_I1248.
13542
13543 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13544             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13545             Anna Tikhonova  <anna.tikhonova@intel.com>
13546             Ilya Tocar  <ilya.tocar@intel.com>
13547             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13548             Ilya Verbin  <ilya.verbin@intel.com>
13549             Kirill Yukhin  <kirill.yukhin@intel.com>
13550             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13551
13552         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
13553         expand_sse2_mulvxdi3.
13554
13555 2014-10-17  Richard Biener  <rguenther@suse.de>
13556
13557         * fold-const.c (fold_comparison): Remove redundant constant
13558         folding and operand swapping.
13559         (fold_binary_loc): Do comparison operand swapping here.
13560         (fold_ternary_loc): Canonicalize operand order for
13561         commutative ternary operations.
13562         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
13563         and FMA_EXPR.
13564
13565 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
13566
13567         PR tree-optimization/63464
13568         * gimple.h (gimple_seq_discard): New prototype.
13569         * gimple.c: Include stringpool.h and tree-ssanames.h.
13570         (gimple_seq_discard): New function.
13571         * optabs.h (lshift_cheap_p): New prototype.
13572         * optabs.c (lshift_cheap_p): New function, moved from...
13573         * tree-switch-conversion.c (lshift_cheap_p): ... here.
13574         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
13575         (reassoc_branch_fixups): New variable.
13576         (update_range_test): Add otherrangep and seq arguments.
13577         Unshare exp.  If otherrange is NULL, use for other ranges
13578         array of pointers pointed by otherrangep instead.
13579         Emit seq before gimplified statements for tem.
13580         (optimize_range_tests_diff): Adjust update_range_test
13581         caller.
13582         (optimize_range_tests_xor): Likewise.  Fix up comment.
13583         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
13584         functions.
13585         (optimize_range_tests): Adjust update_range_test caller.
13586         Call optimize_range_tests_to_bit_test.
13587         (branch_fixup): New function.
13588         (execute_reassoc): Call branch_fixup.
13589
13590         PR tree-optimization/63302
13591         * tree-ssa-reassoc.c (optimize_range_tests_xor,
13592         optimize_range_tests_diff): Use !integer_pow2p () instead of
13593         tree_log2 () < 0.
13594
13595 2014-10-17  Martin Liska  <mliska@suse.cz>
13596
13597         * ipa-icf.c (sem_function::merge): Local flags are set to false
13598         to enforce equal calling convention to be used.
13599         * opts.c (common_handle_option): Indentation fix.
13600
13601 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
13602
13603         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
13604
13605 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13606
13607         PR rtl-optimization/61605
13608         * regcprop.c (copyprop_hardreg_forward_1): Use
13609         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
13610
13611 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13612
13613         PR rtl-optimization/61605
13614         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
13615         notice stores for noops.  Don't regard noops as copies.
13616
13617 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
13618
13619         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
13620         register in a special way.
13621         (__cpuid_count): Ditto.
13622         * config/i386/driver-i386.h: Protect with
13623         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
13624         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
13625         is required to compile the function.
13626
13627 2014-10-16  DJ Delorie  <dj@redhat.com>
13628
13629         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
13630         integers.
13631
13632         * config/rs6000/rs6000-c.c (rid_int128): New.
13633         (rs6000_macro_to_expand): Use instead of RID_INT128.
13634
13635 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
13636
13637         * function.h: Flatten file.  Remove includes, adjust prototypes to
13638         reflect only what is in function.h.
13639         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13640         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
13641         from expr.h.
13642         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
13643         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
13644         prototypes to predict.h.
13645         (init_varasm_status): Move prototype to varasm.h.
13646         * expr.h: Adjust include files.
13647         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13648         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
13649         to function.h.
13650         (locate_and_pad_parm): Move prototype to function.h.
13651         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
13652         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
13653         assign_temp, reposition_prologue_and_epilogue_notes,
13654         prologue_epilogue_contains, sibcall_epilogue_contains,
13655         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
13656         set_return_jump_label): Move prototypes to function.h.
13657         * predict.h (optimize_function_for_size_p,
13658         optimize_function_for_speed_p): Relocate prototypes from function.h.
13659         * shrink-wrap.h (emit_return_into_block, active_insn_between,
13660         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
13661         function.h.
13662         * varasm.h (init_varasm_status): Relocate prototype from function.h.
13663         * genattrtab.c (write_header): Add predict.h to include list.
13664         * genconditions.c (write_header): Add predict.h to include list.
13665         * genemit.c (main): Adjust header file includes.
13666         * gengtype.c (ifiles): Add flattened function.h header files.
13667         * genoutput.c (output_prologue): Add predict.h to include list.
13668         * genpreds.c (write_insn_preds_c): Adjust header file includes.
13669         * genrecog.c (write_header): Add flattened function.h header files.
13670         * alias.c: Adjust include files.
13671         * auto-inc-dec.c: Likewise.
13672         * basic-block.h: Likewise.
13673         * bb-reorder.c: Likewise.
13674         * bt-load.c: Likewise.
13675         * builtins.c: Likewise.
13676         * caller-save.c: Likewise.
13677         * calls.c: Likewise.
13678         * cfgbuild.c: Likewise.
13679         * cfgcleanup.c: Likewise.
13680         * cfgexpand.c: Likewise.
13681         * cfgloop.c: Likewise.
13682         * cfgloop.h: Likewise.
13683         * cfgrtl.c: Likewise.
13684         * cgraph.h: Likewise.
13685         * cgraphclones.c: Likewise.
13686         * cgraphunit.c: Likewise.
13687         * combine-stack-adj.c: Likewise.
13688         * combine.c: Likewise.
13689         * coverage.c: Likewise.
13690         * cprop.c: Likewise.
13691         * cse.c: Likewise.
13692         * cselib.c: Likewise.
13693         * dbxout.c: Likewise.
13694         * ddg.c: Likewise.
13695         * df-core.c: Likewise.
13696         * df-problems.c: Likewise.
13697         * df-scan.c: Likewise.
13698         * dojump.c: Likewise.
13699         * dwarf2cfi.c: Likewise.
13700         * dwarf2out.c: Likewise.
13701         * emit-rtl.c: Likewise.
13702         * except.c: Likewise.
13703         * explow.c: Likewise.
13704         * expr.c: Likewise.
13705         * final.c: Likewise.
13706         * function.c: Likewise.
13707         * gcse.c: Likewise.
13708         * gimple-fold.c: Likewise.
13709         * gimple-low.c: Likewise.
13710         * gimple-streamer.h: Likewise.
13711         * haifa-sched.c: Likewise.
13712         * ifcvt.c: Likewise.
13713         * ira.c: Likewise.
13714         * jump.c: Likewise.
13715         * lcm.c: Likewise.
13716         * loop-invariant.c: Likewise.
13717         * lra-assigns.c: Likewise.
13718         * lra-coalesce.c: Likewise.
13719         * lra-constraints.c: Likewise.
13720         * lra-eliminations.c: Likewise.
13721         * lra-lives.c: Likewise.
13722         * lra-spills.c: Likewise.
13723         * lra.c: Likewise.
13724         * lto-cgraph.c: Likewise.
13725         * lto-section-in.c: Likewise.
13726         * lto-section-out.c: Likewise.
13727         * lto-streamer-in.c: Likewise.
13728         * lto-streamer-out.c: Likewise.
13729         * mode-switching.c: Likewise.
13730         * modulo-sched.c: Likewise.
13731         * omp-low.c: Likewise.
13732         * optabs.c: Likewise.
13733         * passes.c: Likewise.
13734         * postreload-gcse.c: Likewise.
13735         * postreload.c: Likewise.
13736         * predict.c: Likewise.
13737         * profile.c: Likewise.
13738         * recog.c: Likewise.
13739         * ree.c: Likewise.
13740         * reg-stack.c: Likewise.
13741         * regcprop.c: Likewise.
13742         * reginfo.c: Likewise.
13743         * regrename.c: Likewise.
13744         * reload.c: Likewise.
13745         * reload1.c: Likewise.
13746         * reorg.c: Likewise.
13747         * resource.c: Likewise.
13748         * rtlanal.c: Likewise.
13749         * sched-deps.c: Likewise.
13750         * sched-ebb.c: Likewise.
13751         * sched-rgn.c: Likewise.
13752         * sel-sched-dump.c: Likewise.
13753         * sel-sched-ir.c: Likewise.
13754         * sel-sched.c: Likewise.
13755         * shrink-wrap.c: Likewise.
13756         * simplify-rtx.c: Likewise.
13757         * statistics.c: Likewise.
13758         * stmt.c: Likewise.
13759         * stor-layout.c: Likewise.
13760         * store-motion.c: Likewise.
13761         * symtab.c: Likewise.
13762         * targhooks.c: Likewise.
13763         * toplev.c: Likewise.
13764         * trans-mem.c: Likewise.
13765         * tree-cfg.c: Likewise.
13766         * tree-cfgcleanup.c: Likewise.
13767         * tree-dfa.c: Likewise.
13768         * tree-eh.c: Likewise.
13769         * tree-inline.c: Likewise.
13770         * tree-into-ssa.c: Likewise.
13771         * tree-nested.c: Likewise.
13772         * tree-nrv.c: Likewise.
13773         * tree-profile.c: Likewise.
13774         * tree-ssa-alias.c: Likewise.
13775         * tree-ssa-ccp.c: Likewise.
13776         * tree-ssa-copy.c: Likewise.
13777         * tree-ssa-copyrename.c: Likewise.
13778         * tree-ssa-dom.c: Likewise.
13779         * tree-ssa-operands.c: Likewise.
13780         * tree-ssa-propagate.c: Likewise.
13781         * tree-ssa-structalias.c: Likewise.
13782         * tree-ssa-tail-merge.c: Likewise.
13783         * tree-ssa-threadedge.c: Likewise.
13784         * tree-ssa-threadupdate.c: Likewise.
13785         * tree-ssa-uncprop.c: Likewise.
13786         * tree-ssa-uninit.c: Likewise.
13787         * tree-ssa.c: Likewise.
13788         * tree-stdarg.c: Likewise.
13789         * tree-tailcall.c: Likewise.
13790         * tree.c: Likewise.
13791         * tsan.c: Likewise.
13792         * valtrack.c: Likewise.
13793         * varasm.c: Likewise.
13794         * vmsdbgout.c: Likewise.
13795         * web.c: Likewise.
13796         * config/aarch64/aarch64.c: Add flattened includes from function.h.
13797         * config/alpha/alpha.c: Likewise.
13798         * config/arc/arc.c: Likewise.
13799         * config/arm/arm.c: Likewise.
13800         * config/avr/avr-log.c: Likewise.
13801         * config/avr/avr.c: Likewise.
13802         * config/bfin/bfin.c: Likewise.
13803         * config/c6x/c6x.c: Likewise.
13804         * config/cr16/cr16.c: Likewise.
13805         * config/cris/cris.c: Likewise.
13806         * config/darwin.c: Likewise.
13807         * config/epiphany/epiphany.c: Likewise.
13808         * config/epiphany/mode-switch-use.c: Likewise.
13809         * config/epiphany/resolve-sw-modes.c: Likewise.
13810         * config/fr30/fr30.c: Likewise.
13811         * config/frv/frv.c: Likewise.
13812         * config/h8300/h8300.c: Likewise.
13813         * config/i386/i386.c: Likewise.
13814         * config/ia64/ia64.c: Likewise.
13815         * config/iq2000/iq2000.c: Likewise.
13816         * config/lm32/lm32.c: Likewise.
13817         * config/m32c/m32c.c: Likewise.
13818         * config/m32r/m32r.c: Likewise.
13819         * config/m68k/m68k.c: Likewise.
13820         * config/mcore/mcore.c: Likewise.
13821         * config/mep/mep-pragma.c: Likewise.
13822         * config/mep/mep.c: Likewise.
13823         * config/microblaze/microblaze.c: Likewise.
13824         * config/mips/mips.c: Likewise.
13825         * config/mmix/mmix.c: Likewise.
13826         * config/mn10300/mn10300.c: Likewise.
13827         * config/moxie/moxie.c: Likewise.
13828         * config/msp430/msp430.c: Likewise.
13829         * config/nds32/nds32-cost.c: Likewise.
13830         * config/nds32/nds32-fp-as-gp.c: Likewise.
13831         * config/nds32/nds32-intrinsic.c: Likewise.
13832         * config/nds32/nds32-isr.c: Likewise.
13833         * config/nds32/nds32-md-auxiliary.c: Likewise.
13834         * config/nds32/nds32-memory-manipulation.c: Likewise.
13835         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13836         * config/nds32/nds32-predicates.c: Likewise.
13837         * config/nds32/nds32.c: Likewise.
13838         * config/nios2/nios2.c: Likewise.
13839         * config/pa/pa.c: Likewise.
13840         * config/pdp11/pdp11.c: Likewise.
13841         * config/rl78/rl78.c: Likewise.
13842         * config/rs6000/rs6000.c: Likewise.
13843         * config/rx/rx.c: Likewise.
13844         * config/s390/s390.c: Likewise.
13845         * config/score/score.c: Likewise.
13846         * config/sh/sh.c: Likewise.
13847         * config/sparc/sparc.c: Likewise.
13848         * config/spu/spu.c: Likewise.
13849         * config/stormy16/stormy16.c: Likewise.
13850         * config/tilegx/tilegx.c: Likewise.
13851         * config/tilepro/tilepro.c: Likewise.
13852         * config/v850/v850.c: Likewise.
13853         * config/vax/vax.c: Likewise.
13854         * config/xtensa/xtensa.c: Likewise.
13855
13856 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
13857
13858         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
13859         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
13860
13861 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13862
13863         * config/sh/sh-protos.h (fldi_ok): Remove.
13864         * config/sh/sh.c (fldi_ok): Likewise.
13865         (sh_secondary_reload): Don't use fldi_ok.
13866         * config/sh/constraints.md (G constraint, H constraint): Don't use
13867         fldi_ok.
13868
13869 2014-10-16  Martin Liska  <mliska@suse.cz>
13870
13871         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
13872         Cast to unsigned long.
13873         (sem_item_optimizer::dump_cong_classes): Likewise.
13874
13875 2014-10-16  Tom de Vries  <tom@codesourcery.com>
13876
13877         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
13878         with SSA_NAME_IN_FREELIST.
13879
13880 2014-10-16  Richard Biener  <rguenther@suse.de>
13881
13882         PR middle-end/63554
13883         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
13884         (fold_builtin_strncat_chk): Move ...
13885         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
13886         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
13887
13888 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13889
13890         PR target/59401
13891         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
13892         GBR to 0.
13893
13894 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13895             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13896             Anna Tikhonova  <anna.tikhonova@intel.com>
13897             Ilya Tocar  <ilya.tocar@intel.com>
13898             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13899             Ilya Verbin  <ilya.verbin@intel.com>
13900             Kirill Yukhin  <kirill.yukhin@intel.com>
13901             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13902
13903         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
13904         V64QI modes.
13905
13906 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13907             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13908             Anna Tikhonova  <anna.tikhonova@intel.com>
13909             Ilya Tocar  <ilya.tocar@intel.com>
13910             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13911             Ilya Verbin  <ilya.verbin@intel.com>
13912             Kirill Yukhin  <kirill.yukhin@intel.com>
13913             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13914
13915         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
13916         V16SI, V32HI, V64QI modes.
13917
13918 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13919
13920         PR target/53513
13921         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
13922         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
13923
13924         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
13925         to match fp insn patterns.
13926         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
13927         list.
13928         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
13929         expand_df_unop, expand_df_binop): Remove.
13930         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
13931         FPSCR_STAT_REG as not call clobbered.
13932         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
13933         invoking fpscr_set_from_mem.
13934
13935         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
13936         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
13937         FPSCR_STAT_REG.
13938         (REGISTER_NAMES): Adjust.
13939         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13940         (FIRST_PSEUDO_REGISTER): Increase to 156.
13941         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
13942         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
13943         FPSCR_STAT_REG.
13944         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
13945         FPSCR_MODES_REG and FPSCR_STAT_REG.
13946         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13947
13948         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
13949         FPSCR_SZ): Add new constants.
13950         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
13951
13952         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
13953         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
13954         Use TARGET_FPU_ANY condition.
13955         (fpu_switch peephole2): Remove.
13956         (fpu_switch split): Use simple_mem_operand to capture the mem and
13957         adjust split implementation.
13958         (extend_psi_si, truncate_si_psi): New insns.
13959         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
13960         set of FPSCR_MODES_REG.
13961
13962         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
13963         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
13964         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
13965         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
13966         call_value_compact, call_value_compact_rettramp, call,
13967         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
13968         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
13969         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
13970         sibcall_value_compact, sibcall_value, call_value_pop_compact,
13971         call_value_pop_compact_rettramp, various unnamed splits):
13972         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
13973         function uses.
13974
13975         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
13976         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
13977         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
13978         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
13979         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
13980
13981         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
13982         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
13983         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
13984         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
13985         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
13986         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
13987         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
13988
13989 2014-10-16  Martin Liska  <mliska@suse.cz>
13990             Jan Hubicka  <hubicka@ucw.cz>
13991
13992         * Makefile.in: New object files included.
13993         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
13994         is printed.
13995         (verify_edge_corresponds_to_fndecl): More sensitive verification
13996         of nodes that are merged by IPA ICF.
13997         * cgraph.h (cgraph_node::num_references): New function.
13998         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
13999         * common.opt: New options ipa-icf, ipa-icf-functions and
14000         ipa-icf-variables introduced.
14001         * doc/invoke.texi: Documentation of new options introduced.
14002         * ipa-icf-gimple.c: New file.
14003         * ipa-icf-gimple.h: New file.
14004         * ipa-icf.c: New file.
14005         * ipa-icf.h: New file.
14006         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
14007         (input_overwrite_node): Likewise.
14008         * lto-section-in.c: New icf section added.
14009         * lto-streamer.h (enum lto_section_type): Likewise.
14010         * opts.c (common_handle_option): New option added.
14011         * passes.def: New pass included.
14012         * timevar.def: Time variable for IPA ICF added.
14013         * tree-pass.h: New IPA ICF pass entry point added.
14014
14015 2014-10-16  Richard Biener  <rguenther@suse.de>
14016
14017         PR tree-optimization/63168
14018         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
14019         latches if after merging they are no longer simple.
14020         * cfghooks.c (merge_blocks): Handle merging a latch block
14021         into another block.
14022
14023 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14024             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14025             Anna Tikhonova  <anna.tikhonova@intel.com>
14026             Ilya Tocar  <ilya.tocar@intel.com>
14027             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14028             Ilya Verbin  <ilya.verbin@intel.com>
14029             Kirill Yukhin  <kirill.yukhin@intel.com>
14030             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14031
14032         * config/i386/sse.md
14033         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
14034         support AVX-512VL instructions.
14035
14036 2014-10-16  DJ Delorie  <dj@redhat.com>
14037
14038         * tree-core.h: Fix comment to not assume pointers are multiples of
14039         bytes.
14040
14041 2014-10-15  Tom Tromey  <tromey@redhat.com>
14042
14043         * timevar.h (class auto_timevar): New class.
14044
14045 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
14046
14047         PR go/59432
14048         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14049         Remove the second alternative.
14050         (regprefix): Remove mode attribute.
14051         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
14052         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
14053
14054         Revert:
14055         2013-11-05  Ian Lance Taylor  <iant@google.com>
14056
14057         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
14058         If possible, add .cfi directives to record change to bx.
14059         * config/i386/i386.c (ix86_emit_cfi): New function.
14060         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
14061
14062 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
14063
14064         PR lto/62026
14065         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
14066         to duplicate.
14067         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
14068         at WPA time.
14069
14070 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
14071
14072         PR rtl-optimization/63448
14073         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
14074         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
14075         (LRA_MAX_INHERITANCE_PASSES): Use it.
14076         (lra_constraint_iter_after_spill): Remove.
14077         (lra_assignment_iter): New.
14078         (lra_assignment_iter_after_spill): New.
14079         * lra-assigns.c (lra_assignment_iter): New.
14080         (lra_assignment_iter_after_spill): New.
14081         (former_reload_pseudo_spill_p): New.
14082         (spill_for): Set up former_reload_pseudo_spill_p.
14083         (setup_live_pseudos_and_spill_after_risky): Ditto.
14084         (assign_by_spills): Ditto.
14085         (lra_assign): Increment lra_assignment_iter.  Print the iteration
14086         number.  Reset former_reload_pseudo_spill_p.  Check
14087         lra_assignment_iter_after_spill.
14088         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
14089         lra_assignment_iter and lra_assignment_iter_after_spill.
14090         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
14091         (lra_constraints): Remove code with
14092         lra_assignment_iter_after_spill.
14093
14094 2014-10-15  Teresa Johnson  <tejohnson@google.com>
14095
14096         PR bootstrap/63432
14097         * tree-ssa-threadupdate.c (recompute_probabilities): Better
14098         overflow checking.
14099
14100 2014-10-15  Renlin Li <renlin.li@arm.com>
14101
14102         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
14103         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
14104         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
14105         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
14106
14107 2014-10-15  Richard Biener  <rguenther@suse.de>
14108
14109         * gimple-fold.c (gimple_fold_call): Properly keep virtual
14110         SSA form up-to-date when devirtualizing a call to
14111         __builtin_unreachable and avoid fixing up EH info here.
14112
14113 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14114             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14115             Anna Tikhonova  <anna.tikhonova@intel.com>
14116             Ilya Tocar  <ilya.tocar@intel.com>
14117             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14118             Ilya Verbin  <ilya.verbin@intel.com>
14119             Kirill Yukhin  <kirill.yukhin@intel.com>
14120             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14121
14122         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
14123         to support AVX-512BW.
14124         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
14125         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
14126         (define_insn "*<plusminus_insn><mode>3"): Ditto.
14127         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
14128         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14129         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
14130         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
14131         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
14132         (define_insn "*andnot<mode>3"): Ditto.
14133         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
14134         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
14135         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
14136         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
14137         (define_insn "*abs<mode>2"): Remove masking support.
14138         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
14139         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
14140         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
14141
14142 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14143             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14144             Anna Tikhonova  <anna.tikhonova@intel.com>
14145             Ilya Tocar  <ilya.tocar@intel.com>
14146             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14147             Ilya Verbin  <ilya.verbin@intel.com>
14148             Kirill Yukhin  <kirill.yukhin@intel.com>
14149             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14150
14151         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
14152         * config/i386/sse.md
14153         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
14154         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
14155         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
14156         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14157         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14158         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14159         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14160
14161 2014-10-15  Renlin Li <renlin.li@arm.com>
14162
14163         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
14164
14165 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
14166
14167         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
14168         MINUS_EXPR in unsigned type to avoid undefined behavior.
14169
14170 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
14171
14172         * stor-layout.c (self_referential_size): Do not promote arguments.
14173
14174 2014-10-15  Marek Polacek  <polacek@redhat.com>
14175
14176         * doc/invoke.texi: Update to reflect that GNU11 is the default
14177         mode for C.
14178         * c-common.h (c_language_kind): Update comment.
14179
14180 2014-10-15  Richard Biener  <rguenther@suse.de>
14181
14182         * hash-table.c: Include bconfig.h if building for the host.
14183         * hash-table.h: Do not include ggc.h on the host but just declare
14184         a few ggc allocation templates.
14185
14186 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14187             Jeff Law  <law@redhat.com>
14188
14189         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
14190         multiple hard registers, use smaller mode derived from MODE.
14191
14192 2014-10-15  Andreas Schwab  <schwab@suse.de>
14193
14194         * explow.c (convert_memory_address_addr_space_1): Mark in_const
14195         as ATTRIBUTE_UNUSED.
14196
14197 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
14198
14199         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
14200         (decide_unrolling): ... this one.
14201         (peel_loops_completely): Remove.
14202         (decide_peel_simple): Remove.
14203         (decide_peel_once_rolling): Remove.
14204         (decide_peel_completely): Remove.
14205         (peel_loop_simple): Remove.
14206         (peel_loop_completely): Remove.
14207         (unroll_and_peel_loops): Rename to ...
14208         (unroll_loops): ... this one; handle only unrolling.
14209         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
14210         LPT_PEEL_SIMPLE.
14211         (UAP_PEEL): Remove.
14212         (unroll_and_peel_loops): Remove.
14213         (unroll_loops): New.
14214         * passes.def: Replace
14215         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
14216         * loop-init.c (gate_rtl_unroll_and_peel_loops,
14217         rtl_unroll_and_peel_loops): Rename to ...
14218         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
14219         (pass_rtl_unroll_and_peel_loops): Rename to ...
14220         (pass_rtl_unroll_loops): ... this one.
14221         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
14222         (make_pass_rtl_unroll_loops): New.
14223         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
14224         (canonicalize_loop_induction_variables): Update.
14225
14226 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14227
14228         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
14229         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
14230         !TARGET_HARD_FLOAT_POSTINC.
14231         (*lsip, *ssip): new instructions.
14232
14233 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14234
14235         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
14236         remove.
14237
14238 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14239
14240         * explow.c (convert_memory_address_addr_space): Rename to ...
14241         (convert_memory_address_addr_space_1): This.  Add in_const argument.
14242         Inside a CONST RTL, permute the conversion and addition of constant
14243         for zero and sign extended pointers.
14244         (convert_memory_address_addr_space): New function.
14245
14246 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14247
14248         Revert:
14249         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14250
14251         PR middle-end/49721
14252         * explow.c (convert_memory_address_addr_space): Also permute the
14253         conversion and addition of constant for zero-extend.
14254
14255 2014-10-14  DJ Delorie  <dj@redhat.com>
14256
14257         * config/msp430/msp430-modes.def (PSI): Add.
14258
14259         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
14260         (msp430_hard_regno_nregs_with_padding): New.
14261         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14262         (msp430_hard_regno_nregs_has_padding): New.
14263         (msp430_hard_regno_nregs_with_padding): New.
14264         (msp430_unwind_word_mode): Use PSImode instead of SImode.
14265         (msp430_addr_space_legitimate_address_p): New.
14266         (msp430_asm_integer): New.
14267         (msp430_init_dwarf_reg_sizes_extra): New.
14268         (msp430_print_operand): Use X suffix for PSImode even in small model.
14269         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14270         (PTR_SIZE): ...but 4 bytes for EH.
14271         (SIZE_TYPE): Use __int20.
14272         (PTRDIFF_TYPE): Likewise.
14273         (INCOMING_FRAME_SP_OFFSET): Adjust.
14274         * config/msp430/msp430.md (movqi_topbyte): New.
14275         (movpsi): Use fixed suffixes.
14276         (movsipsi2): Enable for 430X, not large model.
14277         (extendhipsi2): Likewise.
14278         (zero_extendhisi2): Likewise.
14279         (zero_extendhisipsi2): Likewise.
14280         (extend_and_shift1_hipsi2): Likewise.
14281         (extendpsisi2): Likewise.
14282         (*bitbranch<mode>4_z): Fix suffix logic.
14283
14284 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
14285
14286         PR ada/62019
14287         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14288         do not choke on null node.
14289         <VAR_DECL>: Likewise.
14290
14291 2014-10-14  DJ Delorie  <dj@redhat.com>
14292
14293         * machmode.h (int_n_data_t): New.
14294         (int_n_enabled_p): New.
14295         (int_n_data): New.
14296         * tree.c (int_n_enabled_p): New.
14297         (int_n_trees): New.
14298         (make_or_reuse_type): Check for all __intN types, not just
14299         __int128.
14300         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
14301         entries.
14302         * tree.h (int128_integer_type_node): Remove.
14303         (int128_unsigned_type_node): Remove.
14304         (int_n_trees_t): New.
14305         (int_n_enabled_p): New.
14306         (int_n_trees): New.
14307         * toplev.c (standard_type_bitsize): New.
14308         (do_compile): Check which __intN types are enabled for the current
14309         run.
14310         * builtin-types.def (BT_INT128): Remove.
14311         (BT_UINT128): Remove.
14312         * machmode.def: Add macro to create __int128 for all targets.
14313         * stor-layout.c (mode_for_size): Support __intN types.
14314         (smallest_mode_for_size): Likewise.
14315         (initialize_sizetypes): Support __intN types.
14316         * genmodes.c (struct mode_data): Add int_n field.
14317         (blank_mode): Likewise.
14318         (INT_N): New.
14319         (make_int_n): New.
14320         (emit_insn_modes_h): Count __intN entries and define
14321         NUM_INT_N_ENTS.
14322         (emit_mode_int_n): New.
14323         (emit_insn_modes_c): Call it.
14324         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14325         types, not just __int128.
14326         * tree-core.h (integer_type_kind): Remove __int128-specific
14327         entries, reserve spots for __intN entries.
14328
14329         * config/msp430/msp430-modes.def (PSI): Add.
14330
14331 2014-10-14  Kito Cheng  <kito@0xlab.org>
14332
14333         * ira.c: Fix typo in comment.
14334         * ira.h: Ditto.
14335         * ira-build.c: Ditto.
14336         * ira-color.c: Ditto.
14337         * ira-emit.c: Ditto.
14338         * ira-int.h: Ditto.
14339         * ira-lives.c: Ditto.
14340
14341 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
14342
14343         PR rtl-optimization/63475
14344         * alias.c (true_dependence_1): Always use get_addr to extract
14345         true address operands from x_addr and mem_addr.  Use extracted
14346         address operands to check for references with alignment ANDs.
14347         Use extracted address operands with find_base_term and
14348         base_alias_check. For noncanonicalized operands call canon_rtx with
14349         extracted address operand.
14350         (write_dependence_1): Ditto.
14351         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
14352
14353 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
14354
14355         PR target/63534
14356         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
14357         __morestack local.
14358
14359 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14360             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14361             Anna Tikhonova  <anna.tikhonova@intel.com>
14362             Ilya Tocar  <ilya.tocar@intel.com>
14363             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14364             Ilya Verbin  <ilya.verbin@intel.com>
14365             Kirill Yukhin  <kirill.yukhin@intel.com>
14366             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14367
14368         * config/i386/i386.c
14369         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
14370         (ix86_expand_int_vcond): Ditto.
14371
14372 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14373             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14374             Anna Tikhonova  <anna.tikhonova@intel.com>
14375             Ilya Tocar  <ilya.tocar@intel.com>
14376             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14377             Ilya Verbin  <ilya.verbin@intel.com>
14378             Kirill Yukhin  <kirill.yukhin@intel.com>
14379             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14380
14381         * config/i386/i386.c
14382         (emit_reduc_half): Handle V64QI and V32HI mode.
14383         * config/i386/sse.md
14384         (define_mode_iterator VI_AVX512BW): New.
14385         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
14386
14387 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14388             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14389             Anna Tikhonova  <anna.tikhonova@intel.com>
14390             Ilya Tocar  <ilya.tocar@intel.com>
14391             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14392             Ilya Verbin  <ilya.verbin@intel.com>
14393             Kirill Yukhin  <kirill.yukhin@intel.com>
14394             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14395
14396         * config/i386/sse.md
14397         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
14398
14399 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14400             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14401             Anna Tikhonova  <anna.tikhonova@intel.com>
14402             Ilya Tocar  <ilya.tocar@intel.com>
14403             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14404             Ilya Verbin  <ilya.verbin@intel.com>
14405             Kirill Yukhin  <kirill.yukhin@intel.com>
14406             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14407
14408         * config/i386/i386.c
14409         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
14410         * config/i386/sse.md
14411         (define_mode_iterator VI): Add V64QI and V32HI modes.
14412
14413 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14414             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14415             Anna Tikhonova  <anna.tikhonova@intel.com>
14416             Ilya Tocar  <ilya.tocar@intel.com>
14417             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14418             Ilya Verbin  <ilya.verbin@intel.com>
14419             Kirill Yukhin  <kirill.yukhin@intel.com>
14420             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14421
14422         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
14423
14424 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14425             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14426             Anna Tikhonova  <anna.tikhonova@intel.com>
14427             Ilya Tocar  <ilya.tocar@intel.com>
14428             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14429             Ilya Verbin  <ilya.verbin@intel.com>
14430             Kirill Yukhin  <kirill.yukhin@intel.com>
14431             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14432
14433         * config/i386/sse.md
14434         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
14435         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
14436
14437 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14438             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14439             Anna Tikhonova  <anna.tikhonova@intel.com>
14440             Ilya Tocar  <ilya.tocar@intel.com>
14441             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14442             Ilya Verbin  <ilya.verbin@intel.com>
14443             Kirill Yukhin  <kirill.yukhin@intel.com>
14444             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14445
14446         * config/i386/sse.md
14447         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
14448         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
14449
14450 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14451             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14452             Anna Tikhonova  <anna.tikhonova@intel.com>
14453             Ilya Tocar  <ilya.tocar@intel.com>
14454             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14455             Ilya Verbin  <ilya.verbin@intel.com>
14456             Kirill Yukhin  <kirill.yukhin@intel.com>
14457             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14458
14459         * config/i386/sse.md
14460         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
14461         (define_mode_iterator VI2_AVX2): Add V32HI mode.
14462         (define_expand "mul<mode>3<mask_name>"): Add masking.
14463         (define_insn "*mul<mode>3<mask_name>"): Ditto.
14464         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
14465         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
14466         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
14467         (define_mode_attr SDOT_PMADD_SUF): Ditto.
14468         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
14469         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
14470         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
14471         (define_insn "avx2_packusdw"): Delete.
14472         (define_insn "sse4_1_packusdw"): Ditto.
14473         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
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
14485         (define_insn "vec_dup<mode>"): Update constraints.
14486
14487 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14488             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14489             Anna Tikhonova  <anna.tikhonova@intel.com>
14490             Ilya Tocar  <ilya.tocar@intel.com>
14491             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14492             Ilya Verbin  <ilya.verbin@intel.com>
14493             Kirill Yukhin  <kirill.yukhin@intel.com>
14494             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14495
14496         * config/i386/sse.md
14497         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
14498         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
14499         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
14500
14501 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14502             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14503             Anna Tikhonova  <anna.tikhonova@intel.com>
14504             Ilya Tocar  <ilya.tocar@intel.com>
14505             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14506             Ilya Verbin  <ilya.verbin@intel.com>
14507             Kirill Yukhin  <kirill.yukhin@intel.com>
14508             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14509
14510         * config/i386/sse.md
14511         (define_expand "mul<mode>3<mask_name>"): Add masking.
14512
14513 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14514             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14515             Anna Tikhonova  <anna.tikhonova@intel.com>
14516             Ilya Tocar  <ilya.tocar@intel.com>
14517             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14518             Ilya Verbin  <ilya.verbin@intel.com>
14519             Kirill Yukhin  <kirill.yukhin@intel.com>
14520             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14521
14522         * config/i386/sse.md
14523         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
14524         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
14525
14526 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14527             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14528             Anna Tikhonova  <anna.tikhonova@intel.com>
14529             Ilya Tocar  <ilya.tocar@intel.com>
14530             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14531             Ilya Verbin  <ilya.verbin@intel.com>
14532             Kirill Yukhin  <kirill.yukhin@intel.com>
14533             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14534
14535         * config/i386/sse.md
14536         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
14537         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
14538         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
14539         Ditto.
14540
14541 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14542             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14543             Anna Tikhonova  <anna.tikhonova@intel.com>
14544             Ilya Tocar  <ilya.tocar@intel.com>
14545             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14546             Ilya Verbin  <ilya.verbin@intel.com>
14547             Kirill Yukhin  <kirill.yukhin@intel.com>
14548             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14549
14550         * config/i386/sse.md
14551         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
14552         use VF_128_256 mode iterator and update assembler emit code.
14553         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
14554         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
14555         Add masking, use VF_128_256 mode iterator.
14556         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
14557         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
14558         Add masking, use VF_128_256 mode iterator and update assembler emit
14559         code.
14560         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
14561         (define_mode_attr avx512flogicsuff): Delete.
14562         (define_insn "avx512f_<logic><mode>"): Ditto.
14563         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
14564         MODE_TI.
14565         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
14566
14567 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14568             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14569             Anna Tikhonova  <anna.tikhonova@intel.com>
14570             Ilya Tocar  <ilya.tocar@intel.com>
14571             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14572             Ilya Verbin  <ilya.verbin@intel.com>
14573             Kirill Yukhin  <kirill.yukhin@intel.com>
14574             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14575
14576         * config/i386/sse.md
14577         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
14578         (define_expand "vashr<mode>3<mask_name>"): Add masking,
14579         use VI12_128 mode iterator.
14580         (define_expand "ashrv2di3<mask_name>"): New.
14581
14582 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14583             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14584             Anna Tikhonova  <anna.tikhonova@intel.com>
14585             Ilya Tocar  <ilya.tocar@intel.com>
14586             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14587             Ilya Verbin  <ilya.verbin@intel.com>
14588             Kirill Yukhin  <kirill.yukhin@intel.com>
14589             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14590
14591         * config/i386/i386.c
14592         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
14593         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
14594         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
14595         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
14596         CODE_FOR_avx512vl_ucmpv4si3_mask.
14597         * config/i386/sse.md
14598         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
14599         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
14600         (define_insn
14601         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
14602         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
14603         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
14604         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
14605         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
14606         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
14607
14608 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14609             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14610             Anna Tikhonova  <anna.tikhonova@intel.com>
14611             Ilya Tocar  <ilya.tocar@intel.com>
14612             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14613             Ilya Verbin  <ilya.verbin@intel.com>
14614             Kirill Yukhin  <kirill.yukhin@intel.com>
14615             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14616
14617         * config/i386/sse.md
14618         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
14619         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
14620         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
14621         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
14622         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
14623         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
14624         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14625         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14626         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
14627
14628 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14629             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14630             Anna Tikhonova  <anna.tikhonova@intel.com>
14631             Ilya Tocar  <ilya.tocar@intel.com>
14632             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14633             Ilya Verbin  <ilya.verbin@intel.com>
14634             Kirill Yukhin  <kirill.yukhin@intel.com>
14635             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14636
14637         * config/i386/sse.md
14638         (define_insn "avx512f_blendm<mode>"): Delete.
14639         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
14640         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
14641         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
14642         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
14643         (define_insn
14644         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14645         Remove.
14646         (define_insn
14647         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14648         New.
14649         (define_insn
14650         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14651         Ditto.
14652         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
14653         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
14654         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
14655         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
14656         Delete.
14657         (define_insn
14658         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
14659         New.
14660         (define_insn
14661         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
14662         Ditto.
14663         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
14664         Delete.
14665         (define_insn
14666         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
14667         New.
14668         (define_insn
14669         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
14670         Ditto.
14671
14672 2014-10-14  Richard Biener  <rguenther@suse.de>
14673
14674         PR tree-optimization/63512
14675         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
14676         modified.
14677
14678 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
14679
14680         PR target/63260
14681         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
14682         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
14683         of FPSCR.
14684         (negsf2_i): Rename to *negsf2_i.
14685         (abssf2_i): Rename to *abssf2_i.
14686         (negdf2_i): Rename to *negdf2_i.
14687         (absdf2_i): Rename to *absdf2_i.
14688
14689 2014-10-14  Felix Yang  <felix.yang@huawei.com>
14690             Jeff Law  <law@redhat.com>
14691
14692         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
14693         "replace" into boolean bitfields; turn member "loop_depth" into a short
14694         integer; add new member "no_equiv" and "reserved".
14695         (no_equiv): Set no_equiv of struct equivalence if register is marked
14696         as having no known equivalence.
14697         (update_equiv_regs): Check all definitions for a multiple-set
14698         register to make sure that the RHS have the same value.
14699
14700 2014-10-13  Richard Henderson  <rth@redhat.com>
14701
14702         * combine-stack-adj.c (no_unhandled_cfa): New.
14703         (maybe_merge_cfa_adjust): New.
14704         (combine_stack_adjustments_for_block): Use them.
14705
14706 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
14707
14708         * Makefile.in (TAGS): Tag ../include files.
14709
14710 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14711
14712         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
14713         to rs6000_dbx_register_number.
14714         (DWARF_FRAME_REGNUM): Redefine as identity map.
14715         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
14716         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
14717         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
14718         argument to handle .debug_frame and .eh_frame directly.  Always
14719         translate SPE high register numbers.  Add special treatment for CR,
14720         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
14721
14722         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
14723         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
14724         (RS6000_USE_DWARF_NUMBERING): Define.
14725         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
14726         (RS6000_USE_DWARF_NUMBERING): Define.
14727         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
14728         (RS6000_USE_DWARF_NUMBERING): Define.
14729         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
14730         (RS6000_USE_DWARF_NUMBERING): Define.
14731         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
14732         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
14733
14734 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14735
14736         * config/i386/i386.c (ix86_address_cost): Lower cost for
14737         when address contains GOT register.
14738
14739 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
14740             Vladimir Makarov  <vmakarov@redhat.com>
14741
14742         PR target/8340
14743         PR middle-end/47602
14744         PR rtl-optimization/55458
14745         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
14746         (ix86_init_pic_reg): New.
14747         (ix86_select_alt_pic_regnum): Add check on pseudo register.
14748         (ix86_save_reg): Likewise.
14749         (ix86_expand_prologue): Remove PIC register initialization
14750         now performed in ix86_init_pic_reg.
14751         (ix86_output_function_epilogue): Add check on pseudo register.
14752         (set_pic_reg_ever_alive): New.
14753         (legitimize_pic_address): Replace df_set_regs_ever_live with new
14754         set_pic_reg_ever_alive.
14755         (legitimize_tls_address): Likewise.
14756         (ix86_pic_register_p): New check.
14757         (ix86_delegitimize_address): Add check on pseudo register.
14758         (ix86_expand_call): Insert move from pseudo PIC register to ABI
14759         defined REAL_PIC_OFFSET_TABLE_REGNUM.
14760         (TARGET_INIT_PIC_REG): New.
14761         (TARGET_USE_PSEUDO_PIC_REG): New.
14762         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
14763         if pic_offset_table_rtx exists.
14764         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
14765         Document.
14766         * doc/tm.texi: Regenerate.
14767         * function.c (assign_parms): Generate pseudo register for PIC.
14768         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
14769         register.
14770         * ira-color.c (color_pass): Add check on pseudo register.
14771         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
14772         register.
14773         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
14774         register.
14775         (ira): Add target specific PIC register initialization.
14776         (do_reload): Keep PIC pseudo register.
14777         * lra-assigns.c (spill_for): Add checks on pseudo register.
14778         * lra-constraints.c (contains_symbol_ref_p): New.
14779         (lra_constraints): Enable lra risky transformations when PIC is pseudo
14780         register.
14781         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
14782         * target.def (use_pseudo_pic_reg): New.
14783         (init_pic_reg): New.
14784
14785 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14786
14787         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
14788         Remove m_SILVERMONT and m_INTEL from the tune.
14789
14790 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14791
14792         PR libfortran/63471
14793         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14794         when _HPUX_SOURCE is defined.
14795
14796 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14797
14798         PR tree-optimization/62127
14799         * tree.c (remap_type_1): When remapping array, remap
14800         also its type.
14801
14802 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
14803
14804         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
14805         longer impact parallelization.
14806
14807 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14808
14809         PR bootstrap/63496
14810         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
14811
14812 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
14813
14814         * asan.c (instrument_derefs): BIT_FIELD_REF added.
14815
14816 2014-10-13  Richard Biener  <rguenther@suse.de>
14817
14818         PR tree-optimization/63419
14819         * gimple-fold.h (gimple_convert): New function.
14820         * gimple-fold.c (gimple_convert): Likewise.
14821         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
14822         to split out required conversions early.
14823
14824 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
14825
14826         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
14827         Add the parts of an insn in reverse order, with the pattern at
14828         the top of the queue.  Detect when we're iterating over a SEQUENCE
14829         pattern and in that case just consider patterns of subinstructions.
14830
14831 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
14832
14833         PR target/59401
14834         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
14835         of rtx.
14836         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
14837         insn walking.
14838         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
14839         address.  Use def chains to handle GBR clobbering call insns.
14840
14841 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
14842
14843         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
14844         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
14845         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
14846         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
14847         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
14848         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
14849         * doc/gty.texi (for_user): Document new option.
14850         * gengtype.c (create_user_defined_type): Don't try to get a struct for
14851         char.
14852         (walk_type): Don't error out on for_user option.
14853         (write_func_for_structure): Emit user marking routines if requested by
14854         for_user option.
14855         (write_local_func_for_structure): Likewise.
14856         (main): Mark types with for_user option as used.
14857         * ggc.h (gt_pch_nx): Add overload for unsigned int.
14858         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
14859         * hash-table.h (ggc_hasher): New struct.
14860         (hash_table::create_ggc): New function.
14861         (gt_pch_nx): New overload for hash_table.
14862
14863 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
14864
14865         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
14866         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
14867         * config/sh/sh.c: Likewise.
14868         * config/sh/sh-mem.cc: Likewise.
14869         * config/sh/sh.md: Likewise.
14870         * config/sh/predicates.md: Likewise.
14871         * config/sh/sync.md: Likewise.
14872
14873 2014-10-11  Martin Liska  <mliska@suse.cz>
14874
14875         PR middle-end/63376
14876         * cgraphunit.c (symbol_table::process_new_functions): Missing call
14877         for call_cgraph_insertion_hooks added.
14878
14879 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
14880
14881         PR c/63495
14882         * stor-layout.c (min_align_of_type): Don't decrease alignment
14883         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
14884         TYPE_USER_ALIGN is set.
14885
14886 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
14887
14888         PR rtl-optimization/63483
14889         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
14890         references when alignment ANDs are involved.
14891         (write_dependence_p): Ditto.
14892         (may_alias_p): Ditto.
14893
14894 2014-10-10  Marek Polacek  <polacek@redhat.com>
14895
14896         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
14897         * doc/invoke.texi: Document -fsanitize=object-size.
14898         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
14899         or it into SANITIZE_UNDEFINED.
14900         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
14901         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
14902         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
14903         * opts.c (common_handle_option): Handle -fsanitize=object-size.
14904         * ubsan.c: Include tree-object-size.h.
14905         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
14906         (ubsan_expand_bounds_ifn): Use false instead of 0.
14907         (ubsan_expand_objsize_ifn): New function.
14908         (instrument_object_size): New function.
14909         (pass_ubsan::execute): Add object size instrumentation.
14910         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
14911
14912 2014-10-10  Richard Henderson  <rth@redhat.com>
14913
14914         PR target/63404
14915         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
14916         Restrict the set of expressions we're willing to move.
14917
14918 2014-10-10  Jeff Law  <law@redhat.com>
14919
14920         * ira.c (struct equivalence): Promote INIT_INSNs field to
14921         an rtx_insn_list.  Add comments.
14922         (no_equiv): Promote LIST to an rtx_insn_list.  Update
14923         testing for and creating the special marker.  Use methods
14924         to extract the insn and next pointers.  Promote INSN to an
14925         rtx_insn.
14926         (update_equiv_regs): Update test for special marker in the
14927         INIT_INSNs list.
14928
14929 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14930
14931         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
14932         * configure: Regenerate.
14933         * config/aarch64/aarch64.c (aarch64_override_options): Handle
14934         TARGET_FIX_ERR_A53_835769_DEFAULT.
14935         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
14936         value to 2.
14937         * doc/install.texi (aarch64*-*-*): Document
14938         new --enable-fix-cortex-a53-835769 option.
14939
14940 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14941             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14942
14943         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
14944         (ADJUST_INSN_LENGTH): Define.
14945         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
14946         * config/aarch64/aarch64.c (is_mem_p): New function.
14947         (is_memory_op): Likewise.
14948         (aarch64_prev_real_insn): Likewise.
14949         (is_madd_op): Likewise.
14950         (dep_between_memop_and_curr): Likewise.
14951         (aarch64_madd_needs_nop): Likewise.
14952         (aarch64_final_prescan_insn): Likewise.
14953         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
14954         and -mno-fix-cortex-a53-835769 options.
14955
14956 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
14957
14958         PR tree-optimization/63464
14959         * tree-switch-conversion.c (struct case_bit_test): Remove
14960         hi and lo fields, add wide_int mask field.
14961         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
14962         hi/lo fields into wide_int mask operations, optimize by pretending
14963         minval to be 0 if maxval is small enough.
14964         (process_switch): Adjust caller.
14965
14966 2014-10-10  Richard Biener  <rguenther@suse.de>
14967
14968         PR tree-optimization/63379
14969         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
14970         a neutral operand for min/max when it is not a reduction chain.
14971
14972 2014-10-10  Richard Biener  <rguenther@suse.de>
14973
14974         PR tree-optimization/63476
14975         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
14976         (BB_LIVE_VOP_ON_EXIT): New define.
14977         (create_expression_by_pieces): Assign VUSEs to stmts.
14978         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
14979         (pass_pre::execute): Assert virtual SSA form is up-to-date
14980         after insertion.
14981
14982 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
14983
14984         * lra-assigns.c (assign_by_spills): Error out on spill failure.
14985
14986 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
14987
14988         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
14989         assertion.
14990
14991 2014-10-09  Richard Biener  <rguenther@suse.de>
14992
14993         PR tree-optimization/63380
14994         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
14995         may trap.
14996
14997 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
14998
14999         * config/avr/avr.opt (mmcu=): Change to have a string value.
15000         (mn-flash=, mskip-bug, march=, mrmw): New options.
15001         (HeaderInclude): New.
15002         (mmcu=): Remove Var / Init clauses.
15003         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
15004         -specs option.
15005         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
15006         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
15007         (SYMBOL_FLAG_IO_LOW): Define.
15008         (avr_device_to_as, avr_device_to_ld): Don't declare.
15009         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
15010         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
15011         (EXTRA_SPEC_FUNCTIONS): Don't define.
15012         (ASM_SPEC): Translate -arch= option to -mmcu= option.
15013         (LINK_SPEC): Translate -arch= option to -m= option.
15014         Don't use device_to_ld / device_to_data_start.
15015         (STARTFILE_SPEC): Now empty.
15016         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
15017         * config/avr/gen-avr-mmcu-specs.c: New file.
15018         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
15019         (s-device-specs): Likewise.
15020         (GCC_PASSES): Add s-device-specs.
15021         (install-driver): Depend on install-device-specs.
15022         (install-device-specs): New rule.
15023         * config/avr/avr.c (avr_option_override): Look up mcu arch by
15024         avr_arch_index and provide fallback initialization for avr_n_flash.
15025         (varasm.h): #include.
15026         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
15027         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
15028         (avr_attribute_table): Add "io", "address" and "io_low".
15029         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
15030         Add special handling for symbols with "io" and/or "address" attributes.
15031         (avr_asm_asm_output_aligned_bss): New function.
15032         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
15033         as appropriate.  Handle io_low attribute.
15034         (avr_out_sbxx_branch): Handle symbolic io addresses.
15035         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
15036         avr_n_flash instead of avr_current_device->n_flash.
15037         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
15038         (avr_emit_movmemhi): Likewise.
15039         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
15040         Use TARGET_RMW instead of avr_current_device->dev_attributes.
15041         Don't define avr_current_device->macro (that's the specfile's job).
15042         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
15043         * config/avr/avr.c (avr_2word_insn_p): Likewise.
15044         * config/avr/avr.md (*cpse.ne): Likewise.
15045         (mov<mode>): Use avr_eval_addr_attrib.
15046         (cbi): Change constraint for low_io_address_operand operand to "i".
15047         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
15048         * config/avr/predicates.md (io_address_operand):
15049         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
15050         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
15051         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
15052         Update prototype.
15053         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
15054         * config/avr/genmultilib.awk: Use -march=.
15055         Remove Multilib matches processing.
15056         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
15057         * config/avr/avr-arch.h: Add double include guard.
15058         (avr_mcu_t) <library_name>: Update comment.
15059         * config/avr/driver-avr.c (avr_device_to_as): Delete.
15060         (avr_device_to_ld, avr_device_to_data_start): Likewise.
15061         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
15062         (avr_device_to_sp8): Likewise.
15063         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
15064
15065         * doc/extend.texi (io, address): Document new AVR variable attributes.
15066         (io_low): Likewise.
15067
15068 2014-10-09  Marek Polacek  <polacek@redhat.com>
15069
15070         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
15071
15072 2014-10-08  Richard Biener  <rguenther@suse.de>
15073
15074         PR tree-optimization/61969
15075         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
15076         variables.
15077
15078 2014-10-09  Richard Biener  <rguenther@suse.de>
15079
15080         PR tree-optimization/63445
15081         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
15082         overflow for non-equality compares.
15083
15084 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
15085
15086         PR rtl-optimization/57003
15087         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
15088         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
15089         killing regs_invalidated_by_call.
15090
15091 2014-10-08  Teresa Johnson  <tejohnson@google.com>
15092
15093         PR bootstrap/63432.
15094         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
15095         (ssa_fix_duplicate_block_edges): Invoke it.
15096         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
15097
15098 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
15099
15100         PR target/52941
15101         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
15102         atomic_fetch_<fetchop_name>si_hard,
15103         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
15104         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
15105         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
15106         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
15107
15108 2014-10-08  Rong Xu  <xur@google.com>
15109
15110         * gcov-tool.c (profile_overlap): New driver function
15111         to compute profile overlap.
15112         (print_overlap_usage_message): New.
15113         (overlap_usage): New.
15114         (do_overlap): New.
15115         (print_usage): Add calls to overlap function.
15116         (main): Ditto.
15117         * doc/gcov-tool.texi: Add documentation.
15118
15119 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15120
15121         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
15122         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
15123
15124 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
15125
15126         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
15127         pattern matching of MEM_REF.
15128         (check_stmt_for_type_change): Update.
15129
15130 2014-10-08  Steve Ellcey  <sellcey@mips.com>
15131
15132         * config/mips/linux64.h: Remove.
15133         * config/mips/gnu-user64.h: Remove.
15134         * gcc.config (mips*-*-*): Remove references to linux64.h and
15135         gnu-user64.h
15136         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
15137         with modified version from gnu-user64.h.
15138         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
15139         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
15140         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
15141         linux64.h.
15142         (GNU_USER_LINK_EMULATION64): Ditto.
15143         (GNU_USER_LINK_EMULATIONN32): Ditto.
15144         (GLIBC_DYNAMIC_LINKER32): Ditto.
15145         (GLIBC_DYNAMIC_LINKER64): Ditto.
15146         (GLIBC_DYNAMIC_LINKERN32): Ditto.
15147         (UCLIBC_DYNAMIC_LINKER32): Ditto.
15148         (UCLIBC_DYNAMIC_LINKER64): Ditto.
15149         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
15150         (BIONIC_DYNAMIC_LINKERN32): Ditto.
15151         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
15152         (GLIBC_DYNAMIC_LINKER): Delete.
15153         (UCLIBC_DYNAMIC_LINKER): Delete.
15154
15155 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15156             Richard Biener  <rguenther@suse.de>
15157
15158         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
15159         Get address space from operand 0 (BASE).
15160
15161 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
15162
15163         PR target/61387
15164         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
15165
15166 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
15167
15168         * dwarf2out.c: Remove current_function_has_inlines.
15169         (gen_subprogram_die): Same.
15170         (gen_inlined_subroutine_die): Same.
15171
15172 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
15173
15174         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
15175         type.
15176         (_addcarry_u64): Ditto.
15177         (_addcarryx_u64): Ditto.
15178
15179 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15180
15181         * cgraph.h (cgraph_node::get_fun): Declare.
15182         * cgraph.c (cgraph_node::get_fun): New method.
15183         * ipa-inline.c (can_inline_edge_p): Use it.
15184
15185 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15186
15187         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
15188         and -ftrapping-math.
15189         * lto-wrapper.c (merge_and_complain): Likewise.
15190         (run_gcc): Likewise.
15191
15192 2014-10-06  Rong Xu  <xur@google.com>
15193
15194         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
15195         * tree-profile.c: (params.h): New include.
15196         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
15197         and __gcov_indirect_call_topn_counters for
15198         indirect_call_topn_profile.
15199         (gimple_init_edge_profiler): New decls for
15200         __gcov_indirect_call_topn_profiler.
15201         (gimple_gen_ic_profiler): Generate the correct profiler call.
15202         (gimple_gen_ic_func_profiler): Fix format.
15203         * value-prof.c (params.h): New include.
15204         (dump_histogram_value): Hanlde indirect_call_topn counters.
15205         (stream_in_histogram_value): Ditto.
15206         (gimple_indirect_call_to_profile): Use indirect_call_topn
15207         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
15208         (gimple_find_values_to_profile): Hanlde indirect_call_topn
15209         counters.
15210         * value-prof.h (enum hist_type): Histrogram type for
15211         indirect_call_topn counters.
15212         * profile.c (instrument_values): Instrument
15213         indirect_call_topn counters.
15214
15215 2014-10-06  Rong Xu  <xur@google.com>
15216
15217         * Makefile.in: Fix dependence.
15218         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
15219         indirect call topn profiler.
15220         * gcov-io.h: Ditto.
15221
15222 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15223
15224         * calls.c (expand_call): Do not use the target as the return slot if
15225         it is not sufficiently aligned.
15226
15227 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15228
15229         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
15230         discussion of permutes and why we don't handle them.
15231
15232 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15233
15234         * config/sparc/predicates.md (int_register_operand): Delete.
15235
15236 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15237
15238         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
15239
15240 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
15241
15242         * ubsan.h (ubsan_get_source_location): New prototype.
15243         * ubsan.c (ubsan_source_location_type): New variable.
15244         Function renamed to ...
15245         (ubsan_get_source_location_type): ... this.  Cache
15246         return value in ubsan_source_location_type variable.
15247         (ubsan_source_location, ubsan_create_data): Use
15248         ubsan_get_source_location_type instead of
15249         ubsan_source_location_type.
15250         * asan.c (asan_protect_global): Don't protect globals
15251         with ubsan_get_source_location_type () type.
15252         (asan_add_global): Provide global decl location info
15253         if possible.
15254
15255 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15256
15257         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
15258         sanity check.
15259
15260 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15261
15262         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15263         on size.
15264         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15265         into vptr pointer.
15266         (ipa_polymorphic_call_context::dump): Fix formating.
15267         (walk_ssa_copies): Add logic avoiding loops; update uses.
15268         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15269
15270 2014-10-02  Mark Wielaard  <mjw@redhat.com>
15271
15272         PR debug/63239
15273         * dwarf2out.c (gen_subprogram_die): When a member function is
15274         explicitly deleted then add a DW_AT_GNU_deleted attribute.
15275         * langhooks.h (struct lang_hooks_for_decls): Add
15276         function_decl_deleted_p langhook.
15277         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15278         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15279
15280 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15281
15282         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15283         NULL pointer checks.
15284         (ipa_polymorphic_call_context::get_dynamic_type): Return true
15285         if type doesn't change.
15286         * cgraph.h (cgraph_indirect_call_info): New flag.
15287         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15288         (cgraph_node::dump): Dump it.
15289         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
15290         of context.get_dynamic_type.
15291         (ipa_make_edge_direct_to_target): Do not speculate
15292         edge that is already speuclative.
15293         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15294         speculate to __builtin_unreachable
15295         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15296         vptr_changed.
15297         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15298
15299 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15300
15301         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15302         get_dynamic_type; drop TODO.
15303         * ipa-polymorphic-call.c
15304         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15305         for otr_type to be unknown.
15306
15307 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15308
15309         * common/config/score/score-common.c: Remove.
15310         * config.gcc: Remove support for score-*.
15311         * config/score/constraints.md: Remove.
15312         * config/score/elf.h: Remove.
15313         * config/score/predicates.md: Remove.
15314         * config/score/score-conv.h: Remove.
15315         * config/score/score-generic.md: Remove.
15316         * config/score/score-modes.def: Remove.
15317         * config/score/score-protos.h: Remove.
15318         * config/score/score.c: Remove.
15319         * config/score/score.h: Remove.
15320         * config/score/score.md: Remove.
15321         * config/score/score.opt: Remove.
15322         * doc/md.texi: Don't document score-*.
15323
15324 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15325
15326         PR pch/63429
15327         * genconditions.c: Directly include ggc.h before rtl.h.
15328
15329 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15330
15331         * ipa-polymorphic-call.c
15332         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15333         code determining speculative type.
15334         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15335
15336 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15337
15338         * altivec.md (altivec_lvsl): New define_expand.
15339         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15340         (altivec_lvsr): New define_expand.
15341         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15342         * rs6000.c (rs6000_expand_builtin): Change to use
15343         altivec_lvs[lr]_direct; remove commented-out code.
15344
15345 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15346
15347         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15348         Issue a warning message when vec_lvsl or vec_lvsr is used with a
15349         little endian target.
15350
15351 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15352
15353         * tree-pretty-print.c (dump_location): Make it extern. Dump also
15354         the column.
15355         * tree-pretty-print.h (dump_location): Declare.
15356         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
15357         (pp_gimple_stmt_1): Likewise.
15358         (dump_implicit_edges): Likewise.
15359         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
15360         LOCATION_LINE.
15361
15362
15363 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15364
15365         * gcc.c (driver::global_initializations): Remove "const" so
15366         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
15367         and decoded_options_count.
15368
15369 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
15370
15371         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
15372         macro.
15373         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
15374         TARGET_E500_DOUBLE case here.
15375
15376 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
15377
15378         PR c++/54427
15379         PR c++/57198
15380         PR c++/58845
15381         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
15382
15383 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15384
15385         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
15386         * lto-cgraph.c (lto_output_edge, input_edge): Stream
15387         in_polymorphic_cdtor
15388         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
15389         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
15390         * cgraphclones.c (cgraph_edge::clone): Likewise.
15391         * ipa-prop.c (update_jump_functions_after_inlining,
15392         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
15393         to possible_dynamic_type_change.
15394         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
15395         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15396         IN_POLY_CDOTR argument.
15397
15398         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
15399         for BASE and OUTER_TYPE being NULL.
15400         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15401         in_poly_cdtor parameter.
15402
15403 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15404
15405         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
15406         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
15407         TARGET_AVX512F.
15408         (expand_vec_perm_1): Likewise.
15409
15410 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15411             Uros Bizjak  <ubizjak@gmail.com>
15412
15413         PR tree-optimization/61403
15414         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
15415         error in comment.  Also optimize 256-bit vectors for AVX2
15416         or AVX (floating vectors only), provided the first permutation
15417         can be performed in one insn.
15418
15419 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15420
15421         * gcc.c (class driver): New class.
15422         (main): Reimplement in terms of driver::main, moving most of the
15423         locals to be locals within individual methods of class driver.
15424         The remaining locals "explicit_link_files", "decoded_options" and
15425         "decoded_options_count" are used by multiple driver:: methods, and
15426         so become member data.  Doing so isolates the argc/argv reads and
15427         writes.  Replace "goto out" with a special exit code from
15428         new method driver::prepare_infiles.  Split out the old
15429         implementation of main into the following...
15430         (driver::main): New function, corresponding to the old "main"
15431         implementation.
15432         (driver::set_progname): New function, taken from the old
15433         "main" implementation.
15434         (driver::expand_at_files): Likewise.
15435         (driver::decode_argv): Likewise.
15436         (driver::global_initializations): Likewise.
15437         (driver::build_multilib_strings): Likewise.
15438         (driver::set_up_specs): Likewise.
15439         (driver::putenv_COLLECT_GCC): Likewise.
15440         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
15441         (driver::handle_unrecognized_options): Likewise.
15442         (driver::maybe_print_and_exit): Likewise.
15443         (driver::prepare_infiles): Likewise.
15444         (driver::do_spec_on_infiles): Likewise.
15445         (driver::maybe_run_linker): Likewise.
15446         (driver::final_actions): Likewise.
15447         (driver::get_exit_code): Likewise.
15448
15449 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
15450
15451         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
15452         don't emit empty ctors.
15453
15454 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
15455
15456         * convert.c (convert_to_integer): Do not introduce useless conversions
15457         between integral types.
15458
15459 2014-10-03  David Sherwood  <david.sherwood@arm.com>
15460
15461         * ira-int.h (ira_allocno): Mark hard_regno as signed.
15462
15463 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
15464
15465         * lra-constraints.c (inherit_in_ebb): Handle calls with
15466         multiple return values.
15467         * caller-save.c (save_call_clobbered_regs): Likewise.
15468
15469 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15470
15471         * tree-vect-data-refs.c (vect_permute_load_chain,
15472         vect_shift_permute_load_chain): Fix a typo in temporary var names,
15473         suffle3 to shuffle3.
15474
15475         PR libgomp/61200
15476         * omp-low.c (taskreg_contexts): New variable.
15477         (scan_omp_parallel): Push newly created context into taskreg_contexts
15478         vector and move record layout code to finish_taskreg_scan.
15479         (scan_omp_task): Likewise.
15480         (finish_taskreg_scan): New function.
15481         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
15482         vector elements and release it.
15483
15484         PR target/62128
15485         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
15486         of palignr arguments can't be used due to min 0 or max - min
15487         too high, try also op0, op1 order of palignr arguments.
15488
15489 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
15490
15491         * cgraph.h (ipa_polymorphic_call_context):
15492         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
15493         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
15494         * ipa-polymorphic-call.c
15495         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
15496         past end of dynamic types.
15497         (ipa_polymorphic_call_context::stream_out,
15498         speculative_outer_type): Stream dynamic flag.
15499         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
15500         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
15501         Clear DYNAMIC.
15502         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
15503         set it.
15504         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
15505         * ipa-prop.c (update_jump_functions_after_inlining,
15506         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
15507
15508 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15509
15510         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
15511         up when synthesizing counts to avoid rounding errors.
15512
15513 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15514
15515         PR middle-end/63422
15516         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
15517         asserts to handle incoming insanities.
15518
15519 2014-10-02  Martin Jambor  <mjambor@suse.cz>
15520
15521         PR tree-optimization/63375
15522         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
15523         references.
15524
15525 2014-10-02  Olivier Hainque  <hainque@adacore.com>
15526
15527         * Makefile.in (CROSS): Define, to @CROSS.
15528
15529 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
15530
15531         PR target/62128
15532         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
15533         if it expands to a single insn only.
15534         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
15535         fail unless in_order is true.  Add forward declaration.
15536         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
15537         is useful for one_operand_p.
15538         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15539
15540 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15541
15542         * cgraphclones.c (build_function_type_skip_args): Do not make new
15543         type variant of old.
15544
15545 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15546
15547         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
15548         when speculation is added.
15549         (ipa_edge_args): Add polymorphic_call_contexts.
15550         (ipa_get_ith_polymorhic_call_context): New accesor.
15551         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
15552         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
15553         (ipa_compute_jump_functions_for_edge): Compute contexts.
15554         (update_jump_functions_after_inlining): Update contexts.
15555         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
15556         update dumping; add speculative edge creation.
15557         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
15558         context updating.
15559         (update_indirect_edges_after_inlining): Pass down context.
15560         (ipa_edge_duplication_hook): Duplicate contexts.
15561         (ipa_write_node_info): Stream out contexts.
15562         (ipa_read_node_info): Stream in contexts.
15563         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
15564         types.
15565         (try_speculative_devirtualization): New function.
15566         * ipa-utils.h (try_speculative_devirtualization): Declare.
15567
15568 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15569
15570         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
15571         dumping during WPA.
15572
15573 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15574
15575         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
15576         type variants.
15577
15578 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15579
15580         * ipa-polymorphic-call.c
15581         (ipa_polymorphic_call_context::restrict_to_inner_class):
15582         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
15583         use speculation_consistent_p to do so; Add CONSDER_BASES
15584         and CONSIDER_PLACEMENT_NEW parameters.
15585         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
15586         short circuit obvious cases.
15587         (ipa_polymorphic_call_context::dump): Improve formatting.
15588         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
15589         combine_speculation_with to record speculations; Do not ICE when
15590         object is located in pointer type decl; do not ICE for methods
15591         of UNION_TYPE; do not record nonpolymorphic types.
15592         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
15593         (ipa_polymorphic_call_context::combine_speculation_with): New method.
15594         (ipa_polymorphic_call_context::combine_with): New method.
15595         (ipa_polymorphic_call_context::make_speculative): Move here; use
15596         combine speculation.
15597         * cgraph.h (ipa_polymorphic_call_context): Update
15598         restrict_to_inner_class prototype; add offset_by, make_speculative,
15599         combine_with, useless_p, combine_speculation_with and
15600         speculation_consistent_p methods.
15601         (ipa_polymorphic_call_context::offset_by): New method.
15602         (ipa_polymorphic_call_context::useless_p): New method.
15603
15604 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
15605
15606         PR rtl-optimization/62151
15607         * combine.c (can_combine_p): Allow the destination register of INSN
15608         to be clobbered in I3.
15609         (subst): Do not substitute into clobbers of registers.
15610
15611 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
15612
15613         PR debug/63342
15614         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
15615         offset, TARGET_MEM_REF and SSA_NAME.
15616
15617         * config/i386/i386.c (expand_vec_perm_palignr): Handle
15618         256-bit vectors for TARGET_AVX2.
15619
15620         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
15621         dfirst permutation.
15622
15623         PR target/63428
15624         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
15625         argument to avx2_permv2ti.
15626
15627 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15628
15629         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
15630
15631 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
15632
15633         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
15634         (fmod<mode>3): Ditto.
15635         (fpremxf4_i387): Ditto.
15636         (reminderxf3): Ditto.
15637         (reminder<mode>3): Ditto.
15638         (fprem1xf4_i387): Ditto.
15639
15640 2014-09-30  Teresa Johnson  <tejohnson@google.com>
15641
15642         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
15643         duplicate_blocks bitmap.
15644         (remove_ctrl_stmt_and_useless_edges): Ditto.
15645         (create_block_for_threading): Ditto.
15646         (compute_path_counts): New function.
15647         (update_profile): Ditto.
15648         (recompute_probabilities): Ditto.
15649         (update_joiner_offpath_counts): Ditto.
15650         (freqs_to_counts_path): Ditto.
15651         (clear_counts_path): Ditto.
15652         (ssa_fix_duplicate_block_edges): Update profile info.
15653         (ssa_create_duplicates): Pass new parameter.
15654         (ssa_redirect_edges): Remove old profile update.
15655         (thread_block_1): New duplicate_blocks bitmap,
15656         remove old profile update.
15657         (thread_single_edge): Pass new parameter.
15658
15659 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
15660
15661         PR middle-end/62120
15662         * varasm.c (decode_reg_name_and_count): Check availability for
15663         registers from ADDITIONAL_REGISTER_NAMES.
15664
15665 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
15666
15667         PR plugins/63410
15668         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
15669         (PLUGIN_HEADERS): Add pass-instances.def.
15670
15671 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
15672
15673         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
15674         iterator.
15675         * config/aarch64/aarch64-simd.md
15676         (aarch64_sqdmull_laneq<mode>): Expand iterator.
15677         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
15678         (vqdmulls_lane_s32): Fix return type.
15679         (vqdmulls_laneq_s32): New.
15680
15681 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
15682
15683         PR inline-asm/63282
15684         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
15685         or invert_jump_1 if jump isn't any_condjump_p.
15686
15687 2014-09-30  Terry Guo  <terry.guo@arm.com>
15688
15689         * config/arm/arm-cores.def (cortex-m7): New core name.
15690         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
15691         (fpv5-d16): Ditto.
15692         * config/arm/arm-tables.opt: Regenerated.
15693         * config/arm/arm-tune.md: Regenerated.
15694         * config/arm/arm.h (TARGET_VFP5): New macro.
15695         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
15696         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
15697         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
15698         * doc/invoke.texi: Document new cpu and fpu names.
15699
15700 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
15701
15702         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
15703         before sinking insn.
15704
15705 2014-09-30  David Sherwood  <david.sherwood@arm.com>
15706
15707         * ira-int.h (ira_allocno): Add "wmode" field.
15708         * ira-build.c (create_insn_allocnos): Add new "parent" function
15709         parameter.
15710         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
15711         that cannot be accessed in wmode.
15712
15713 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
15714
15715         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
15716         integer overflow.
15717
15718 2014-09-29  Andi Kleen  <ak@linux.intel.com>
15719
15720         * opts.c (print_filtered_help): Print --param min/max/default
15721         with -Q.
15722
15723 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15724
15725         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
15726
15727 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
15728
15729         * tree-vrp.c (get_single_symbol): New function.
15730         (build_symbolic_expr): Likewise.
15731         (symbolic_range_based_on_p): New predicate.
15732         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
15733         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
15734         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
15735         operand is symbolic and based on the other operand.
15736
15737 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
15738
15739         * config/microblaze/microblaze.md (call_internal1): Use VOID
15740         instead of SI to fix "((void (*)(void)) 0)()" issue
15741
15742 2014-09-29  Nick Clifton  <nickc@redhat.com>
15743
15744         * config/msp430/msp430.c (msp430_expand_prologue): Return a
15745         CLOBBER rtx for naked functions.
15746         (msp430_expand_epilogue): Likewise.
15747         (msp430_use_f5_series_hwmult): Cache result.
15748         (use_32bit_hwmult): Cache result.
15749         (msp430_no_hwmult): New function.
15750         (msp430_output_labelref): Use it.
15751
15752 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
15753
15754         PR middle-end/63247
15755         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
15756         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
15757         use the alignment of avar rather than ovar.
15758
15759 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
15760
15761         * config/pa/pa.c (pa_output_function_epilogue): Only update
15762         last_address when a nonnote insn is found.
15763
15764 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15765
15766         PR ipa/60665
15767         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
15768
15769 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15770
15771         PR ipa/62121
15772         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
15773         fix pasto in checking array size.
15774
15775 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15776
15777         PR middle-end/35545
15778         * passes.def (pass_tracer): Move before last dominator pass.
15779
15780 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
15781
15782         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
15783         users.
15784         (run_attempt): Handle errors of "pex_run" invocation.
15785
15786 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
15787
15788         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
15789         (CC1_SPEC): Define.
15790         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
15791         (TARGET_ASAN_SHADOW_OFFSET): Define.
15792
15793 2014-09-26  Martin Liska  <mliska@suse.cz>
15794
15795         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
15796         introduced.
15797         * cgraph.h: Likewise.
15798         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
15799         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
15800         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
15801         * tree-ssa-alias.h: Likewise.
15802
15803 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
15804             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15805
15806         * common.opt: New option.
15807         * doc/invoke.texi: Describe new option.
15808         * gcc.c (execute): Don't free first string early, but at the end
15809         of the function.  Call retry_ice if compiler exited with
15810         ICE_EXIT_CODE.
15811         (main): Factor out common code.
15812         (print_configuration): New function.
15813         (files_equal_p): Likewise.
15814         (check_repro): Likewise.
15815         (run_attempt): Likewise.
15816         (do_report_bug): Likewise.
15817         (append_text): Likewise.
15818         (try_generate_repro): Likewise
15819
15820 2014-09-25  Andi Kleen  <ak@linux.intel.com>
15821
15822         * config/i386/i386.c (x86_print_call_or_nop): New function.
15823         (x86_function_profiler): Support -mnop-mcount and
15824         -mrecord-mcount.
15825         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
15826         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
15827
15828 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15829
15830         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
15831         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
15832         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
15833         Remove.
15834
15835 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15836
15837         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
15838         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
15839         types_odr_comparable): Declare.
15840         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
15841         * ipa-polymorphic-call.c: New file.
15842         (contains_polymorphic_type_p, possible_placement_new,
15843         ipa_polymorphic_call_context::restrict_to_inner_class,
15844         contains_type_p, decl_maybe_in_construction_p,
15845         ipa_polymorphic_call_context::stream_out,
15846         ipa_polymorphic_call_context::debug,
15847         ipa_polymorphic_call_context::stream_in,
15848         ipa_polymorphic_call_context::set_by_decl,
15849         ipa_polymorphic_call_context::set_by_invariant,
15850         walk_ssa_copies,
15851         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15852         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15853         extr_type_from_vtbl_ptr_store, record_known_type
15854         check_stmt_for_type_change,
15855         ipa_polymorphic_call_context::get_dynamic_type): Move here from
15856         ipa-devirt.c
15857         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
15858         and streamer-hooks.h
15859         (contains_polymorphic_type_p, possible_placement_new,
15860         ipa_polymorphic_call_context::restrict_to_inner_class,
15861         contains_type_p, decl_maybe_in_construction_p,
15862         ipa_polymorphic_call_context::stream_out,
15863         ipa_polymorphic_call_context::debug,
15864         ipa_polymorphic_call_context::stream_in,
15865         ipa_polymorphic_call_context::set_by_decl,
15866         ipa_polymorphic_call_context::set_by_invariant,
15867         walk_ssa_copies,
15868         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15869         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15870         extr_type_from_vtbl_ptr_store, record_known_type
15871         check_stmt_for_type_change,
15872         ipa_polymorphic_call_context::get_dynamic_type): Move to
15873         ipa-polymorphic-call.c
15874         (type_all_derivations_known_p, types_odr_comparable,
15875         types_must_be_same_for_odr): Export.
15876         (type_known_to_have_no_deriavations_p): New function.
15877         * Makefile.in: Add ipa-polymorphic-call.c
15878
15879 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15880
15881         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
15882         for better storage.
15883         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
15884         (possible_polymorphic_call_targets): Instead of computing both
15885         speculative and non-speculative answers, do just one at a time.
15886         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
15887         (dump_targets): Break out from ...
15888         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
15889         and non-speculative lists.
15890         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
15891         * ipa-utils.h (possible_polymorphic_call_targets): Update.
15892
15893 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
15894
15895         PR rtl-optimization/63348
15896         * emit-rtl.c (try_split): Do not emit extra barrier.
15897
15898 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
15899
15900         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
15901         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
15902         new predicates.
15903         (aarch64_<sur>shll2_n<mode>): Likewise.
15904         (aarch64_<sur>shr_n<mode>): Likewise.
15905         (aarch64_<sur>sra_n<mode>: Likewise.
15906         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
15907         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
15908         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
15909         * config/aarch64/iterators.md (ve_mode): New.
15910         (offsetlr): Remap to infix text for use in new predicates.
15911         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
15912         (aarch64_simd_shift_imm_hi): Likewise.
15913         (aarch64_simd_shift_imm_si): Likewise.
15914         (aarch64_simd_shift_imm_di): Likewise.
15915         (aarch64_simd_shift_imm_offset_qi): Likewise.
15916         (aarch64_simd_shift_imm_offset_hi): Likewise.
15917         (aarch64_simd_shift_imm_offset_si): Likewise.
15918         (aarch64_simd_shift_imm_offset_di): Likewise.
15919         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
15920         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
15921         (aarch64_simd_shift_imm_bitsize_si): Likewise.
15922         (aarch64_simd_shift_imm_bitsize_di): Likewise.
15923
15924 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
15925
15926         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
15927         new created BB as the intersection of live-in from "old_dest" and
15928         live-out from "bb".
15929
15930 2014-09-25  Felix Yang  <felix.yang@huawei.com>
15931
15932         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
15933         * genautomata.c (merge_states): Ditto.
15934
15935 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
15936
15937         PR target/62218
15938         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
15939         in instruction sequence.
15940
15941 2014-09-25  Nick Clifton  <nickc@redhat.com>
15942
15943         PR target/62218
15944         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
15945         in instruction sequence.
15946
15947 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15948
15949         PR target/63335
15950         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
15951         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
15952
15953 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15954             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15955             Anna Tikhonova  <anna.tikhonova@intel.com>
15956             Ilya Tocar  <ilya.tocar@intel.com>
15957             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15958             Ilya Verbin  <ilya.verbin@intel.com>
15959             Kirill Yukhin  <kirill.yukhin@intel.com>
15960             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15961
15962         * config/i386/sse.md
15963         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
15964         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
15965         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
15966         (define_expand "<avx512>_perm<mode>_mask"): ... this.
15967         Use VI8F_256_512 mode iterator.
15968         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
15969         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
15970
15971 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15972             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15973             Anna Tikhonova  <anna.tikhonova@intel.com>
15974             Ilya Tocar  <ilya.tocar@intel.com>
15975             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15976             Ilya Verbin  <ilya.verbin@intel.com>
15977             Kirill Yukhin  <kirill.yukhin@intel.com>
15978             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15979
15980         * config/i386/sse.md
15981         (define_insn "avx_movshdup256<mask_name>"): Add masking.
15982         (define_insn "sse3_movshdup<mask_name>"): Ditto.
15983         (define_insn "avx_movsldup256<mask_name>"): Ditto.
15984         (define_insn "sse3_movsldup<mask_name>"): Ditto.
15985         (define_insn "vec_dupv2df<mask_name>"): Ditto.
15986         (define_insn "*vec_concatv2df"): Add EVEX version.
15987
15988 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15989             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15990             Anna Tikhonova  <anna.tikhonova@intel.com>
15991             Ilya Tocar  <ilya.tocar@intel.com>
15992             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15993             Ilya Verbin  <ilya.verbin@intel.com>
15994             Kirill Yukhin  <kirill.yukhin@intel.com>
15995             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15996
15997         * config/i386/sse.md
15998         (define_insn "vec_set<mode>_0"): Add EVEX version.
15999
16000 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16001             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16002             Anna Tikhonova  <anna.tikhonova@intel.com>
16003             Ilya Tocar  <ilya.tocar@intel.com>
16004             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16005             Ilya Verbin  <ilya.verbin@intel.com>
16006             Kirill Yukhin  <kirill.yukhin@intel.com>
16007             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16008
16009         * config/i386/sse.md
16010         (define_insn
16011         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
16012         New.
16013         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
16014         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
16015         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
16016         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
16017         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
16018         (define_expand "sse2_cvtpd2ps_mask): New.
16019         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
16020         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
16021
16022 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16023             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16024             Anna Tikhonova  <anna.tikhonova@intel.com>
16025             Ilya Tocar  <ilya.tocar@intel.com>
16026             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16027             Ilya Verbin  <ilya.verbin@intel.com>
16028             Kirill Yukhin  <kirill.yukhin@intel.com>
16029             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16030
16031         * config/i386/i386.c
16032         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
16033         (ufix_notruncv8dfv8si2_mask_round): ... this.
16034         * config/i386/sse.md
16035         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
16036         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
16037         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
16038         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
16039         (define_expand "sse2_cvtpd2dq"): Delete.
16040         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
16041         make 2nd operand const0 vector.
16042         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
16043         Delete.
16044         (define_mode_attr pd2udqsuff): New.
16045         (define_insn
16046         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
16047         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
16048         (define_insn "*avx_cvttpd2dq256_2"): Delete.
16049         (define_expand "sse2_cvttpd2dq"): Ditto.
16050         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
16051         make 2nd operand const0 vector.
16052
16053 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
16054
16055         PR tree-optimization/63341
16056         * tree-vectorizer.h (vect_create_data_ref_ptr,
16057         vect_create_addr_base_for_vector_ref): Add another tree argument
16058         defaulting to NULL_TREE.
16059         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
16060         argument, pass it down to vect_create_addr_base_for_vector_ref.
16061         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
16062         add that to base_offset too if non-NULL.
16063         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
16064         for dr_explicit_realign_optimized set it to vector byte size
16065         - 1 instead of setting offset, pass byte_offset down to
16066         vect_create_data_ref_ptr.
16067
16068 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16069
16070         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
16071         forgotten debug output; canonicalize querries more wtih LTO.
16072
16073 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16074
16075         * cgraph.h (class ipa_polymorphic_call_context): Move here from
16076         ipa-utils.h; add stream_int and stream_out methods.
16077         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
16078         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
16079         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
16080         add CONTEXT.
16081         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16082         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16083         ipa_polymorphic_call_context::clear_speculation,
16084         ipa_polymorphic_call_context::clear_outer_type): Move here from
16085         ipa-utils.h
16086         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
16087         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16088         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
16089         ipa_polymorphic_call_context::clear_speculation,
16090         ipa_polymorphic_call_context::clear_outer_type): Likewise.
16091         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
16092         streamer-hooks.h
16093         (ipa_polymorphic_call_context::stream_out): New method.
16094         (ipa_polymorphic_call_context::stream_in): New method.
16095         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
16096         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
16097         OUTER_TYPE.
16098         (ipa_analyze_call_uses): Simplify.
16099         (update_indirect_edges_after_inlining): Do not care about outer_type.
16100         (ipa_write_indirect_edge_info): Update.
16101         (ipa_write_indirect_edge_info): Likewise.
16102         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
16103         (dump_edge_flags): Break out from ...
16104         (cgraph_node::dump): ... here; dump indirect edges.
16105
16106 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
16107
16108         * ipa-utils.h (polymorphic_call_context): Add
16109         metdhos dump, debug and clear_outer_type.
16110         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16111         (ipa_polymorphic_call_context::clear_outer_type): New method.
16112         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
16113         * ipa-devirt.c (types_odr_comparable): New function.
16114         (types_must_be_same_for_odr): New function.
16115         (odr_subtypes_equivalent_p): Simplify.
16116         (possible_placement_new): Break out from ...
16117         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
16118         be more cuatious about returning false in cases the context may be
16119         valid in derived type or via placement new.
16120         (contains_type_p): Clear maybe_derived_type
16121         (ipa_polymorphic_call_context::dump): New method.
16122         (ipa_polymorphic_call_context::debug): New method.
16123         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
16124         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
16125         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
16126         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
16127         to suceed on all valid cases; remove confused sanity check.
16128         (dump_possible_polymorphic_call_targets): Simplify.
16129
16130 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
16131
16132         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
16133         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
16134         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
16135         varpool.c: Rename all instances of DECL_ABSTRACT to
16136         DECL_ABSTRACT_P.
16137
16138 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16139
16140         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
16141         special handling for stores whose SET_SRC is an UNSPEC (such as
16142         UNSPEC_STVE).
16143
16144 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
16145
16146         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
16147         !REG_P (src) to release more instruction sink opportunities.
16148
16149 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16150
16151         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
16152         move costs for 128-bit types.
16153
16154 2014-09-24  Martin Jambor  <mjambor@suse.cz>
16155
16156         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
16157         when duplicating a PASS_THROUGH jump function when creating a
16158         speculative edge.
16159
16160 2014-09-24  Marek Polacek  <polacek@redhat.com>
16161
16162         PR c/61405
16163         PR c/53874
16164         * asan.c (maybe_instrument_call): Add default case.
16165         * ipa-pure-const.c (special_builtin_state): Likewise.
16166         * predict.c (expr_expected_value_1): Likewise.
16167         * lto-streamer-out.c (write_symbol): Initialize variable.
16168
16169 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16170
16171         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
16172         the lane.
16173         (vmuld_laneq_f64): Likewise.
16174         (vmuls_lane_f32): Likewise.
16175         (vmuls_laneq_f32): Likewise.
16176
16177 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
16178
16179         PR bootstrap/63235
16180         * varpool.c (varpool_node::add): Pass decl attributes
16181         to lookup_attribute.
16182
16183 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
16184
16185         PR sanitizer/63316
16186         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
16187
16188 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16189
16190         PR tree-optimization/63266
16191         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
16192         marker for unknown byte value.
16193         (MARKER_MASK): New macro.
16194         (MARKER_BYTE_UNKNOWN): New macro.
16195         (HEAD_MARKER): New macro.
16196         (do_shift_rotate): Mark bytes with unknown values due to sign
16197         extension when doing an arithmetic right shift. Replace hardcoded
16198         mask for marker by new MARKER_MASK macro.
16199         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
16200         numbers accordingly.
16201
16202 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16203             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16204             Anna Tikhonova  <anna.tikhonova@intel.com>
16205             Ilya Tocar  <ilya.tocar@intel.com>
16206             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16207             Ilya Verbin  <ilya.verbin@intel.com>
16208             Kirill Yukhin  <kirill.yukhin@intel.com>
16209             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16210
16211         * config/i386/sse.md
16212         (define_insn
16213         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
16214         Add masking.
16215         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
16216         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
16217
16218 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16219             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16220             Anna Tikhonova  <anna.tikhonova@intel.com>
16221             Ilya Tocar  <ilya.tocar@intel.com>
16222             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16223             Ilya Verbin  <ilya.verbin@intel.com>
16224             Kirill Yukhin  <kirill.yukhin@intel.com>
16225             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16226
16227         * config/i386/sse.md
16228         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
16229         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
16230         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
16231         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
16232         (define_expand "avx512vl_pshuflw_mask"): New.
16233         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
16234         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
16235         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
16236         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
16237         (define_expand "avx512vl_pshufhw_mask"): New.
16238         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
16239
16240 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16241             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16242             Anna Tikhonova  <anna.tikhonova@intel.com>
16243             Ilya Tocar  <ilya.tocar@intel.com>
16244             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16245             Ilya Verbin  <ilya.verbin@intel.com>
16246             Kirill Yukhin  <kirill.yukhin@intel.com>
16247             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16248
16249         * config/i386/i386.c
16250         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
16251         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
16252         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
16253         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
16254         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
16255         * config/i386/sse.md
16256         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
16257         (define_insn
16258         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
16259         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
16260         (define_insn
16261         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16262         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16263         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16264         (define_expand "avx512vl_pshufd_mask"): New.
16265         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16266
16267 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16268             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16269             Anna Tikhonova  <anna.tikhonova@intel.com>
16270             Ilya Tocar  <ilya.tocar@intel.com>
16271             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16272             Ilya Verbin  <ilya.verbin@intel.com>
16273             Kirill Yukhin  <kirill.yukhin@intel.com>
16274             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16275
16276         * config/i386/i386.c
16277         (CODE_FOR_avx2_extracti128): Rename to ...
16278         (CODE_FOR_avx_vextractf128v4di): this.
16279         (CODE_FOR_avx2_inserti128): Rename to ...
16280         (CODE_FOR_avx_vinsertf128v4di): this.
16281         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16282         CODE_FOR_avx_vextractf128v4di.
16283         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16284         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16285         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16286         CODE_FOR_avx512vl_vinsertv8si.
16287         * config/i386/sse.md
16288         (define_expand
16289         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16290         AVX512_VEC mode iterator.
16291         (define_insn
16292         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16293         Ditto.
16294         (define_expand
16295         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16296         AVX512_VEC_2 mode iterator.
16297         (define_insn "vec_set_lo_<mode><mask_name>"): New.
16298         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16299         (define_expand "avx512vl_vinsert<mode>"): Ditto.
16300         (define_insn "avx2_vec_set_lo_v4di"): Delete.
16301         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16302         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16303         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16304         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16305         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16306         (define_expand "avx2_extracti128"): Delete.
16307         (define_expand "avx2_inserti128"): Ditto.
16308
16309 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16310             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16311             Anna Tikhonova  <anna.tikhonova@intel.com>
16312             Ilya Tocar  <ilya.tocar@intel.com>
16313             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16314             Ilya Verbin  <ilya.verbin@intel.com>
16315             Kirill Yukhin  <kirill.yukhin@intel.com>
16316             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16317
16318         * config/i386/sse.md
16319         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16320         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16321         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16322         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16323         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16324         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16325         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16326         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16327         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16328         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16329         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16330         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16331         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16332
16333 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16334
16335         PR rtl-optimization/63210
16336         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
16337         HARD_REGNO is not available for CONFLICT_A.
16338
16339 2014-09-23  Andi Kleen  <ak@linux.intel.com>
16340
16341         * cgraph.h (symtab_node): Add no_reorder attribute.
16342         (symbol_table::output_asm_statements): Remove.
16343         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
16344         (cgraph_node::create_version_clone): Dito.
16345         (symbol_table::output_asm_statements): Remove.
16346         * trans-mem.c (ipa_tm_create_version_alias): Dito.
16347         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
16348         (output_in_order): Add no_reorder flag. Only handle no_reorder
16349         nodes when set.
16350         (symbol_table::compile): Add separate pass for no_reorder nodes.
16351         (process_common_attributes): Set no_reorder flag in symtab node.
16352         Add node argument.
16353         (process_function_and_variable_attributes): Pass symtab nodes to
16354         process_common_attributes.
16355         * doc/extend.texi (no_reorder): Document no_reorder attribute.
16356         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
16357         (lto_output_varpool_node): Dito.
16358         (input_overwrite_node): Dito.
16359         (input_varpool_node): Dito.
16360         * varpool.c (varpool_node::add): Set no_reorder attribute.
16361         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
16362         (symbol_table::output_variables): Dito.
16363         * symtab.c (symtab_node::dump_base): Print no_reorder.
16364
16365 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
16366
16367         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
16368         be INVALID_REGNUM.
16369
16370 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
16371
16372         * configure: Regenerate.
16373
16374 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
16375
16376         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
16377         when result_mode == shift_mode.
16378
16379 2014-09-23  Kostya Serebryany  <kcc@google.com>
16380
16381         Update to match the changed asan API.
16382         * asan.c (asan_global_struct): Update the __asan_global definition
16383         to match the new API.
16384         (asan_add_global): Ditto.
16385         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
16386         to __asan_init_v4.
16387
16388 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16389
16390         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
16391         refine the constraints used on 32/64-bit floating point moves.
16392         (f32_av): Likewise.
16393         (f64_vsx): Likewise.
16394         (f64_dm): Likewise.
16395         (f64_av): Likewise.
16396         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
16397         (BOOL_REGS_OP1): Likewise.
16398         (BOOL_REGS_OP2): Likewise.
16399         (BOOL_REGS_UNARY): Likewise.
16400         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
16401         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
16402         for moves involving VSX registers.  Do not use constraints that
16403         target VSX registers for decimal types.
16404         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
16405         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
16406
16407 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
16408
16409         * tree.h (int_bit_position): Turn into inline function;
16410         implement using wide int.
16411         * tree.c (int_bit_position): Remove.
16412
16413 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
16414
16415         PR bootstrap/63280
16416         * target-globals.c (target_globals::~target_globals): Fix location
16417         of ira_int destruction.
16418
16419 2014-09-23  Renlin Li  <renlin.li@arm.com>
16420
16421         * config/aarch64/aarch64.md (return): New.
16422         (simple_return): Likewise.
16423         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
16424         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
16425
16426 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
16427
16428         * common/config/aarch64/aarch64-common.c:
16429         (default_options aarch_option_optimization_table):
16430         Default to -fsched-pressure.
16431
16432 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
16433
16434         * cfgcleanup.c (try_optimize_cfg): Do not remove label
16435         with LABEL_PRESERVE_P flag set.
16436
16437 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16438             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16439             Anna Tikhonova  <anna.tikhonova@intel.com>
16440             Ilya Tocar  <ilya.tocar@intel.com>
16441             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16442             Ilya Verbin  <ilya.verbin@intel.com>
16443             Kirill Yukhin  <kirill.yukhin@intel.com>
16444             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16445
16446         * config/i386/sse.md
16447         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
16448         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
16449         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
16450         (define_insn "sse2_shufpd_v2df_mask"): New.
16451
16452 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16453             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16454             Anna Tikhonova  <anna.tikhonova@intel.com>
16455             Ilya Tocar  <ilya.tocar@intel.com>
16456             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16457             Ilya Verbin  <ilya.verbin@intel.com>
16458             Kirill Yukhin  <kirill.yukhin@intel.com>
16459             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16460
16461         * config/i386/sse.md
16462         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
16463         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
16464         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
16465         (define_insn "sse_shufps_v4sf_mask"): New.
16466
16467 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16468             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16469             Anna Tikhonova  <anna.tikhonova@intel.com>
16470             Ilya Tocar  <ilya.tocar@intel.com>
16471             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16472             Ilya Verbin  <ilya.verbin@intel.com>
16473             Kirill Yukhin  <kirill.yukhin@intel.com>
16474             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16475
16476         * config/i386/sse.md
16477         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
16478         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
16479         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
16480         (define_insn "unpcklps128_mask"): New.
16481
16482 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16483             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16484             Anna Tikhonova  <anna.tikhonova@intel.com>
16485             Ilya Tocar  <ilya.tocar@intel.com>
16486             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16487             Ilya Verbin  <ilya.verbin@intel.com>
16488             Kirill Yukhin  <kirill.yukhin@intel.com>
16489             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16490
16491         * config/i386/sse.md
16492         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
16493         (define_insn "avx512vl_unpckhpd128_mask"): New.
16494         (define_expand "avx_movddup256<mask_name>"): Add masking.
16495         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
16496         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
16497         (define_insn "avx512vl_unpcklpd128_mask"): New.
16498
16499 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
16500
16501         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16502         * doc/tm.texi: Regenerate.
16503         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
16504         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16505         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16506         Remove.
16507         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16508         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16509         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16510         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16511         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16512         Remove.
16513         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16514         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16515         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16516         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16517         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16518         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16519         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16520         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16521         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16522         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16523         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16524         Remove.
16525
16526 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
16527
16528         * tree-ssa-ccp.c (prop_value_d): Rename to ...
16529         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
16530         * ipa-prop.c (struct type_change_info): Rename to ...
16531         (prop_type_change_info): ... this; update uses.
16532         * ggc-page.c (globals): Rename to ...
16533         (static struct ggc_globals): ... this; update uses.
16534         * tree-ssa-loop-im.c (mem_ref): Rename to ...
16535         (im_mem_ref): ... this; update uses.
16536         * ggc-common.c (loc_descriptor): Rename to ...
16537         (ggc_loc_descriptor): ... this; update uses.
16538         * lra-eliminations.c (elim_table): Rename to ...
16539         (lra_elim_table): ... this; update uses.
16540         * bitmap.c (output_info): Rename to ...
16541         (bitmap_output_info): ... this; update uses.
16542         * gcse.c (expr): Rename to ...
16543         (gcse_expr) ... this; update uses.
16544         (occr): Rename to ...
16545         (gcse_occr): .. this; update uses.
16546         * tree-ssa-copy.c (prop_value_d): Rename to ...
16547         (prop_value_t): ... this.
16548         * predict.c (block_info_def): Rename to ...
16549         (block_info): ... this; update uses.
16550         (edge_info_def): Rename to ...
16551         (edge_info): ... this; update uses.
16552         * profile.c (bb_info): Rename to ...
16553         (bb_profile_info): ... this; update uses.
16554         * alloc-pool.c (output_info): Rename to ...
16555         (pool_output_info): ... this; update uses.
16556         * ipa-cp.c (topo_info): Rename to ..
16557         (ipa_topo_info): ... this; update uses.
16558         * tree-nrv.c (nrv_data): Rename to ...
16559         (nrv_data_t): ... this; update uses.
16560         * ipa-split.c (bb_info): Rename to ...
16561         (split_bb_info): ... this one.
16562         * profile.h (edge_info): Rename to ...
16563         (edge_profile_info): ... this one; update uses.
16564         * dse.c (bb_info): Rename to ...
16565         (dse_bb_info): ... this one; update uses.
16566         * cprop.c (occr): Rename to ...
16567         (cprop_occr): ... this one; update uses.
16568         (expr): Rename to ...
16569         (cprop_expr): ... this one; update uses.
16570
16571 2014-09-22  Jason Merrill  <jason@redhat.com>
16572
16573         * Makefile.in (check-parallel-%): Add @.
16574
16575 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16576
16577         * config/aarch64/geniterators.sh: New.
16578         * config/aarch64/iterators.md (VDQF_DF): New.
16579         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
16580         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
16581
16582 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
16583
16584         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
16585         -lnosys when -msim absent.
16586
16587 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
16588
16589         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
16590
16591 2014-09-22  Richard Biener  <rguenther@suse.de>
16592
16593         * gimplify.c (gimplify_init_constructor): Do not leave
16594         non-GIMPLE vector constructors around.
16595         * tree-cfg.c (verify_gimple_assign_single): Verify that
16596         CONSTRUCTORs have gimple elements.
16597
16598 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
16599
16600         PR debug/63328
16601         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
16602         insert a debug source bind stmt setting DEBUG_EXPR_DECL
16603         instead of a normal gimple assignment stmt.
16604
16605 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16606
16607         * config/bfin/bfin.md: Fix use of constraints in define_split.
16608
16609 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16610
16611         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
16612         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
16613
16614 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16615
16616         * hard-reg-set.h: Include hash-table.h.
16617         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
16618         field.
16619         * target-globals.c (target_globals::~target_globals): Call
16620         hard_regs->finalize.
16621         * rtl.h (subreg_shape): New structure.
16622         (shape_of_subreg): New function.
16623         (simplifiable_subregs): Declare.
16624         * reginfo.c (simplifiable_subreg): New structure.
16625         (simplifiable_subregs_hasher): Likewise.
16626         (simplifiable_subregs): New function.
16627         (invalid_mode_changes): Delete.
16628         (alid_mode_changes, valid_mode_changes_obstack): New variables.
16629         (record_subregs_of_mode): Remove subregs_of_mode parameter.
16630         Record valid mode changes in valid_mode_changes.
16631         (find_subregs_of_mode): Remove subregs_of_mode parameter.
16632         Update calls to record_subregs_of_mode.
16633         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
16634         handling.  Initialize new variables.  Update call to
16635         find_subregs_of_mode.
16636         (invalid_mode_change_p): Check new variables instead of
16637         invalid_mode_changes.
16638         (finish_subregs_of_mode): Finalize new variables instead of
16639         invalid_mode_changes.
16640         (target_hard_regs::finalize): New function.
16641         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
16642         even when CLASS_CANNOT_CHANGE_MODE is undefined.
16643
16644 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16645
16646         * combine.c (subst): Use simplify_subreg_regno rather than
16647         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
16648
16649 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16650
16651         * rtl.h (subreg_info): Expand commentary
16652         * rtlanal.c (subreg_get_info): Likewise.
16653
16654 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16655
16656         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
16657         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
16658         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
16659
16660 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16661
16662         * config/arm/arm.c: #include "tm-constrs.h"
16663         (thumb1_size_rtx_costs): Adjust rtx costs.
16664
16665 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
16666
16667         * configure.ac (target_header_dir): Move block defining
16668         this to before the block setting inhibit_libc.
16669         (inhibit_libc): When considering $with_headers, just
16670         check it it's explicitly "no".  If not, also check if
16671         $target_header_dir/stdio.h is present.  If not, set
16672         inhibit_libc=true.
16673         * configure: Regenerate.
16674
16675 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
16676
16677         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
16678
16679 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16680
16681         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
16682         insn for divides by integer powers of two.
16683         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
16684         (mod<mode>3): Fix formatting.
16685         (three anonymous define_insn and two define_split): Delete.
16686
16687 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16688
16689         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
16690         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
16691         (floatdisf2_internal2): Ditto.
16692         (ashrdi3_no_power): Ditto.  Fix formatting.
16693
16694 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16695
16696         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16697         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
16698         Tidy.
16699
16700 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16701
16702         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
16703         constant, use addsi3 directly.
16704         (three anonymous define_insn, two define_split): Delete.
16705         (sub<mode>3): Move.  Do not allow constant second operand.
16706         Generate different insn for constant first operand.
16707         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
16708         (subf<mode>3_imm): New.
16709         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
16710         (*plus_ltu<mode>): Only handle registers.
16711         (*plus_ltu<mode>_1): New.  Handle integer third operand.
16712         (*plus_gtu<mode>): Only handle registers.
16713         (*plus_gtu<mode>_1): New.  Handle integer third operand.
16714
16715 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16716
16717         * config/rs6000/rs6000.md (iorxor): New code_iterator.
16718         (iorxor): New code_attr.
16719         (IORXOR): New code_attr.
16720         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
16721         (ior<mode>3, xor<mode>3): Delete.
16722         (<iorxor><mode>3): New.
16723         (splitter for "big" integer ior, xor): New.
16724         (*bool<mode>3): Move.  Also handle AND.
16725         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
16726         (splitter for "big" integer ior, xor): Delete.
16727
16728 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16729
16730         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
16731         (two anonymous define_insn and two define_split): Delete.
16732         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
16733
16734 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16735
16736         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
16737         (two anonymous define_insn and two define_split): Delete.
16738         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
16739
16740 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16741
16742         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
16743
16744 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16745
16746         * config/rs6000/predicates.md (ca_operand): Allow subregs.
16747         (input_operand): Do not allow ca_operand.
16748         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
16749         carry bit, allow SImode and Pmode.
16750         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
16751
16752 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
16753
16754         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
16755         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
16756         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
16757         (*call_rex64_ms_sysv): Remove.
16758         (*call_value_rex64_ms_sysv): Ditto.
16759         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
16760
16761 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
16762
16763         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
16764         operand 3 to "CnL".
16765
16766 2014-09-20  Andreas Schwab  <schwab@suse.de>
16767
16768         * config/ia64/ia64.md: Remove constraints from define_split
16769         patterns.
16770
16771 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16772
16773         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16774         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16775         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16776         (get_dynamic_type): Remove.
16777         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16778         (clear_speculation): Bring to ipa-deivrt.h
16779         (get_class_context): Rename to ...
16780         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16781         (contains_type_p): Update.
16782         (get_dynamic_type): Rename to ...
16783         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16784         (possible_polymorphic_call_targets): UPdate.
16785         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16786         * ipa-prop.c (ipa_analyze_call_uses): Update.
16787
16788 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16789
16790         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
16791         privatize dynamic TLS variables.
16792
16793 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16794
16795         * diagnostic.c (warning_n): New function.
16796         * diagnostic-core.h (warning_n): Declare.
16797         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
16798         output dynamic counts when available.
16799
16800 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16801
16802         PR tree-optimization/63255
16803         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
16804         issue in setting body_removed flag.
16805
16806 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16807
16808         PR c++/61825
16809         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
16810         that visibility change is possible
16811         (handle_weakref_attribute): Likewise.
16812         * cgraph.h (symtab_node): Add method get_create and
16813         field refuse_visibility_changes.
16814         (symtab_node::get_create): New method.
16815         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
16816         * varasm.c (mark_weak): Verify that visibility change is
16817         possible.
16818
16819 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
16820
16821         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
16822         for base_reg_operand to be common between LO_SUM and PLUS.
16823         (fusion_gpr_mem_combo): New predicate to match a fused address
16824         that combines the addis and memory offset address.
16825
16826         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
16827         calling signature.
16828         (emit_fusion_gpr_load): Likewise.
16829
16830         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
16831         signature to pass each argument separately, rather than
16832         using an operands array.  Rewrite the insns found by peephole2 to
16833         be a single insn, rather than hoping the insns will still be
16834         together when the peephole pass is done.  Drop being called via a
16835         normal peephole.
16836         (emit_fusion_gpr_load): Change calling signature to be called from
16837         the fusion_gpr_load_<mode> insns with a combined memory address
16838         instead of the peephole pass passing the addis and offset
16839         separately.
16840
16841         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
16842         fusion.
16843         (power8 fusion peephole): Drop support for doing power8 via a
16844         normal peephole that was created by the peephole2 pass.
16845         (power8 fusion peephole2): Create a new insn with the fused
16846         address, so that the fused operation is kept together after
16847         register allocation is done.
16848         (fusion_gpr_load_<mode>): Likewise.
16849
16850 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16851
16852         PR lto/63286
16853         * tree.c (need_assembler_name_p): Do not mangle variadic types.
16854
16855 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
16856
16857         * recog.c (scratch_operand): Do not simply allow all hard registers:
16858         only allow those that are allocatable.
16859
16860 2014-09-19  Felix Yang  <felix.yang@huawei.com>
16861
16862         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
16863         comments and fix spacing to conform to coding style.
16864
16865 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16866
16867         * genrecog.c (validate_pattern): Allow empty constraints in
16868         a match_scratch.
16869
16870 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
16871
16872         * dwarf2out.c (decl_ultimate_origin): Update comment.
16873         * tree.c (block_ultimate_origin): Same.
16874
16875 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16876
16877         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
16878         Update GCC version name to GCC 5.
16879         (rs6000_function_arg_boundary): Likewise.
16880         (rs6000_function_arg): Likewise.
16881
16882 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16883
16884         * config/sh/sh.md: Fix use of constraints in define_split.
16885
16886 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
16887
16888         PR ipa/61998
16889         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
16890
16891 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16892
16893         * doc/md.texi (Modifiers): Consistently use "read/write"
16894         nomenclature rather than "input/output".
16895         * genrecog.c (constraints_supported_in_insn_p): New.
16896         (validate_pattern): If needed, also check constraints on
16897         MATCH_SCRATCH operands.
16898         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
16899         operands with no '=' or '+' modifier.
16900
16901 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16902
16903         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
16904         scratch register as written.
16905
16906 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16907
16908         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
16909         assignment.
16910
16911 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16912
16913         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
16914         expanders.
16915
16916 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16917
16918         PR target/62662
16919         * config/s390/s390.c (s390_emit_epilogue): When doing the return
16920         address load optimization force s390_optimize_prologue to leave it
16921         that way.  Only do the optimization if we already decided to push
16922         r14 into a stack slot.
16923
16924 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
16925
16926         * asan.c (build_check_stmt): Alignment arg was added.
16927         (asan_expand_check_ifn): Optimization for alignment >= 8.
16928
16929 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16930
16931         * config/i386/vxworksae.h: Remove obsolete definitions.
16932         (STACK_CHECK_PROTECT): Define.
16933         * config/i386/vx-common.h: Remove.  Merge contents within
16934         config/i386/vxworks.h.
16935         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
16936         i386/vx-common.h.
16937
16938 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16939
16940         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
16941         * config/rs6000/t-vxworksmils: New file.
16942         * config/rs6000/vxworksmils.h: New file.
16943
16944 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16945
16946         * varasm.c (default_section_type_flags): Flag .persistent.bss
16947         sections as SECTION_BSS.
16948
16949 2014-09-19  Nick Clifton  <nickc@redhat.com>
16950
16951         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
16952         pop'ed registers so that DCE does not eliminate them.
16953
16954 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
16955
16956         PR lto/63298
16957         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
16958
16959 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
16960
16961         * system.h (LIBGCC2_TF_CEXT): Poison.
16962         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
16963         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
16964         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
16965         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
16966         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
16967         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
16968         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
16969         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
16970         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
16971
16972 2014-09-19  Kito Cheng  <kito@0xlab.org>
16973
16974         * except.h: Fix header guard.
16975         * addresses.h: Add missing header guard.
16976         * cfghooks.h: Likewise.
16977         * collect-utils.h: Likewise.
16978         * collect2-aix.h: Likewise.
16979         * conditions.h: Likewise.
16980         * cselib.h: Likewise.
16981         * dwarf2asm.h: Likewise.
16982         * graphds.h: Likewise.
16983         * graphite-scop-detection.h: Likewise.
16984         * gsyms.h: Likewise.
16985         * hw-doloop.h: Likewise.
16986         * incpath.h: Likewise.
16987         * ipa-inline.h: Likewise.
16988         * ipa-ref.h: Likewise.
16989         * ira-int.h: Likewise.
16990         * ira.h: Likewise.
16991         * lra-int.h: Likewise.
16992         * lra.h: Likewise.
16993         * lto-section-names.h: Likewise.
16994         * read-md.h: Likewise.
16995         * reload.h: Likewise.
16996         * rtl-error.h: Likewise.
16997         * sdbout.h: Likewise.
16998         * targhooks.h: Likewise.
16999         * tree-affine.h: Likewise.
17000         * xcoff.h: Likewise.
17001         * xcoffout.h: Likewise.
17002
17003 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17004
17005         PR debug/63285
17006         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
17007         if advance != 0.
17008
17009 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
17010
17011         PR target/61360
17012         * lra.c (lra): Call recog_init.
17013
17014 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
17015
17016         PR c++/62017
17017         * asan.c (transform_statements): Don't instrument clobber statements.
17018
17019 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17020
17021         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
17022         to neon_load1_1reg<q>.
17023
17024 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
17025
17026         PR debug/63284
17027         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
17028         if there are only debug stmts after the noreturn call, instead
17029         remove the debug stmts.
17030
17031 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
17032
17033         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
17034         (odr_types_equivalent_p): Use pair hash.
17035         (odr_subtypes_equivalent_p): Likewise, do structural compare
17036         on ODR types that may be mismatched.
17037         (warn_odr): Support warning when only one field is given.
17038         (odr_types_equivalent_p): Strenghten comparsions made;
17039         support VOIDtype.
17040         (add_type_duplicate): Update VISITED hash set.
17041
17042 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
17043
17044         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
17045         Enable selection of 'posix' or no thread model.
17046
17047 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
17048
17049         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
17050         when architecture is older than ARMv7.
17051
17052 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
17053
17054         PR target/61853
17055         * config/pa/pa.c (pa_function_value): Directly handle aggregates
17056         that fit exactly in a word or double word.
17057
17058 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
17059
17060         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
17061         zmm/k regs support.
17062
17063 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17064             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17065             Anna Tikhonova  <anna.tikhonova@intel.com>
17066             Ilya Tocar  <ilya.tocar@intel.com>
17067             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17068             Ilya Verbin  <ilya.verbin@intel.com>
17069             Kirill Yukhin  <kirill.yukhin@intel.com>
17070             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17071
17072         * config/i386/i386.c
17073         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
17074         * config/i386/sse.md
17075         (define_mode_iterator VI48F_256): New.
17076         (define_mode_attr extract_type): Ditto.
17077         (define_mode_attr extract_suf): Ditto.
17078         (define_mode_iterator AVX512_VEC): Ditto.
17079         (define_expand
17080         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
17081         AVX512_VEC.
17082         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
17083         (define_insn
17084         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
17085         Ditto.
17086         (define_mode_attr extract_type_2): Ditto.
17087         (define_mode_attr extract_suf_2): Ditto.
17088         (define_mode_iterator AVX512_VEC_2): Ditto.
17089         (define_expand
17090         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
17091         AVX512_VEC_2 mode iterator.
17092         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17093         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
17094         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17095         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17096         (define_split for V16FI mode): Ditto.
17097         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17098         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17099         (define_split for VI8F_256 mode): Ditto.
17100         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17101         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
17102         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
17103         (define_split for VI4F_256 mode): Ditto.
17104         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
17105         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
17106         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
17107         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
17108         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
17109         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
17110         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
17111         Update `type' attribute, remove explicit `memory' attribute calculation.
17112
17113 2014-09-16  Kito Cheng  <kito@0xlab.org>
17114
17115         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
17116         ira_spilled_reg_stack_slots_num if using lra.
17117         (do_reload): Remove release ira_spilled_reg_stack_slots part.
17118         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
17119         make sure not using lra.
17120         (ira_reuse_stack_slot): Likewise.
17121         (ira_mark_new_stack_slot): Likewise.
17122
17123 2014-09-15  Andi Kleen  <ak@linux.intel.com>
17124
17125         * function.c (allocate_struct_function): Force
17126         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
17127         profiling is disabled.
17128
17129 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17130
17131         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
17132         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
17133         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
17134         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
17135         macro with statically checked member functions.
17136         * rtl.h (rtx_insn::deleted): New method.
17137         (rtx_insn::set_deleted): Likewise.
17138         (rtx_insn::set_undeleted): Likewise.
17139         (INSN_DELETED_P): Remove.
17140
17141 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17142
17143         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
17144         result of emit_jump_insn_before to a new variable.
17145         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
17146         (mark_jump_label_1): Likewise.
17147         (mark_jump_label_asm): Likewise.
17148         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
17149         * rtl.h (mark_jump_label): Adjust.
17150
17151 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
17152
17153         * Makefile.in (dg_target_exps): Remove.
17154         (check_gcc_parallelize): Change to just an upper bound number.
17155         (check-%-subtargets): Always print the non-parallelized goals.
17156         (check_p_vars, check_p_comma, check_p_subwork): Remove.
17157         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
17158         check_p_numbers3, check_p_numbers4, check_p_numbers5,
17159         check_p_numbers6): New variables.
17160         (check_p_numbers): Set to sequence from 1 to 9999.
17161         (check_p_subdirs): Set to sequence from 1 to minimum of
17162         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
17163         or 128.
17164         (check-%, check-parallel-%): Rewritten so that for parallelized
17165         testing each job runs all the *.exp files, with
17166         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
17167
17168 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17169
17170         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
17171         rtx to rtx_insn *.
17172         (arc_sets_cc_p): Likewise.
17173         * config/arc/arc.c (arc_print_operand): Use methods of
17174         "final_sequence" for clarity, and to enable strengthening of
17175         locals "jump" and "delay" from rtx to rtx_insn *.
17176         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
17177         rtx_insn *; use method of rtx_sequence for typesafety.
17178         (arc_get_insn_variants): Use insn method of rtx_sequence for
17179         typesafety.
17180         (arc_pad_return): Likewise.
17181         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
17182         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
17183         dyn_cast to rtx_sequence *, using insn method for typesafety.
17184         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
17185         rtx_sequence * and use insn method when invoking get_attr_length.
17186         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
17187         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
17188         rtx_sequence *, introducing a local "seq", using its insn method
17189         from typesafety and clarity.
17190         (add_sched_insns_for_speculation): Strengthen local "next" from
17191         rtx to rtx_insn *.
17192         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
17193         (predicate_insn): Likewise.
17194         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
17195         second param.
17196         * config/cris/cris.c (cris_notice_update_cc): Likewise.
17197         * config/epiphany/epiphany-protos.h
17198         (extern void epiphany_insert_mode_switch_use): Likewise for param
17199         "insn".
17200         (get_attr_sched_use_fpu): Likewise for param.
17201         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
17202         Likewise for param "insn".
17203         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
17204         param "insn" of "target_insert_mode_switch_use" callback.
17205         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
17206         (frv_issues_to_branch_unit_p): Likewise.
17207         (frv_pack_insn_p): Likewise.
17208         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
17209         const rtx * (i.e. mutable rtx_def * const *) to
17210         rtx_insn * const *.
17211         * config/i386/i386-protos.h (standard_sse_constant_opcode):
17212         Strengthen first param from rtx to rtx_insn *.
17213         (output_fix_trunc): Likewise.
17214         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
17215         (output_fix_trunc): Likewise.
17216         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
17217         local "insn".
17218         (min_insn_size): Likewise for param "insn".
17219         (get_mem_group): Likewise.
17220         (is_cmp): Likewise.
17221         (get_insn_path): Likewise.
17222         (get_insn_group): Likewise.
17223         (count_num_restricted): Likewise.
17224         (fits_dispatch_window): Likewise.
17225         (add_insn_window): Likewise.
17226         (add_to_dispatch_window): Likewise.
17227         (debug_insn_dispatch_info_file): Likewise.
17228         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
17229         first param.
17230         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
17231         "cmp" and local "prev".
17232         (m32c_output_compare): Likewise for param "insn".
17233         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
17234         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
17235         (define_predicate "large_insn_p"): Likewise.
17236         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
17237         param from rtx to rtx_insn *.
17238         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
17239         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
17240         (m68k_sched_attr_size): Likewise.
17241         (sched_get_opxy_mem_type): Likewise for param "insn".
17242         (m68k_sched_attr_op_mem): Likewise.
17243         (sched_mem_operand_p): Likewise.
17244         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
17245         * config/mep/mep.c (mep_multi_slot): Likewise.
17246         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
17247         first param.
17248         (mips_sync_loop_insns): Likewise.
17249         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
17250         method of "final_sequence" for typesafety.
17251         (mips_process_sync_loop): Strengthen param "insn" from rtx to
17252         rtx_insn *.
17253         (mips_output_sync_loop): Likewise.
17254         (mips_sync_loop_insns): Likewise.
17255         (mips_74k_agen_init): Likewise.
17256         (mips_sched_init): Use NULL rather than NULL_RTX when working with
17257         insns.
17258         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
17259         Strengthen param "insn" from rtx to rtx_insn *.
17260         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
17261         local "insn".
17262         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
17263         param.
17264         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17265         "insn".  Use method of rtx_sequence for typesafety.
17266         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17267         rtx_insn *.
17268         (branch_needs_nop_p): Likewise.
17269         (use_skip_p): Likewise.
17270         (pa_insn_refs_are_delayed): Likewise.
17271         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17272         for locals "insn", "ninsn".
17273         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17274         "insn".
17275         (is_cracked_insn): Likewise.
17276         (is_branch_slot_insn): Likewise.
17277         (is_nonpipeline_insn): Likewise.
17278         (insn_terminates_group_p): Likewise.
17279         (insn_must_be_first_in_group): Likewise.
17280         (insn_must_be_last_in_group): Likewise.
17281         (force_new_group): Likewise for param "next_insn".
17282         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17283         "insn".
17284         (s390_sched_score): Likewise.
17285         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17286         (rtx sfunc_uses_reg): Likewise for sole param.
17287         * config/sh/sh.c (sh_print_operand): Use insn method of
17288         final_sequence for typesafety.
17289         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17290         Use insn method of final_sequence for typesafety.
17291         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17292         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17293         for param.
17294         (eligible_for_return_delay): Likewise.
17295         (eligible_for_sibcall_delay): Likewise.
17296         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17297         (eligible_for_return_delay): Likewise.
17298         (eligible_for_sibcall_delay): Likewise.
17299         * config/stormy16/stormy16-protos.h
17300         (xstormy16_output_cbranch_hi): Likewise for final param.
17301         (xstormy16_output_cbranch_si): Likewise.
17302         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17303         (xstormy16_output_cbranch_si): Likewise.
17304         * config/v850/v850-protos.h (notice_update_cc): Likewise.
17305         * config/v850/v850.c (notice_update_cc): Likewise.
17306
17307         * final.c (get_attr_length_1): Strengthen param "insn" and param
17308         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17309         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17310         (get_attr_min_length): Likewise.
17311         (shorten_branches): Likewise for signature of locals "length_fun"
17312         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
17313         from a checked cast and use its methods for clarity and to enable
17314         strengthening local "inner_insn" from rtx to rtx_insn *.
17315         * genattr.c (gen_attr): When writing out the prototypes of the
17316         various generated "get_attr_" functions, strengthen the params of
17317         the non-const functions from rtx to rtx_insn *.
17318         Similarly, strengthen the params of insn_default_length,
17319         insn_min_length, insn_variable_length_p, insn_current_length.
17320         (main): Similarly, strengthen the param of num_delay_slots,
17321         internal_dfa_insn_code, insn_default_latency, bypass_p,
17322         insn_latency, min_issue_delay, print_reservation,
17323         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17324         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
17325         to hook_int_rtx_insn_unreachable.
17326         * genattrtab.c (write_attr_get): When writing out the generated
17327         "get_attr_" functions, strengthen the param "insn" from rtx to
17328         rtx_insn *, eliminating a checked cast.
17329         (make_automaton_attrs): When writing out prototypes of
17330         "internal_dfa_insn_code_", "insn_default_latency_" functions
17331         and the "internal_dfa_insn_code" and "insn_default_latency"
17332         callbacks, strengthen their params from rtx to rtx_insn *
17333         * genautomata.c (output_internal_insn_code_evaluation): When
17334         writing out code, add a checked cast from rtx to rtx_insn * when
17335         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
17336         (output_dfa_insn_code_func): Strengthen param of generated
17337         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
17338         (output_trans_func): Likewise for generated function
17339         "state_transition".
17340         (output_internal_insn_latency_func): When writing out generated
17341         function "internal_insn_latency", rename params from "insn" and
17342         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
17343         locals "insn" and "insn2" as rtx_insn * with checked casts once
17344         we've proven that we're not dealing with const0_rtx.
17345         (output_insn_latency_func):  Strengthen param of generated
17346         function "insn_latency" from rtx to rtx_insn *.
17347         (output_print_reservation_func): Likewise for generated function
17348         "print_reservation".
17349         (output_insn_has_dfa_reservation_p): Likewise for generated
17350         function "insn_has_dfa_reservation_p".
17351         * hooks.c (hook_int_rtx_unreachable): Rename to...
17352         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
17353         from rtx to rtx_insn *.
17354         * hooks.h (hook_int_rtx_unreachable): Likewise.
17355         (extern int hook_int_rtx_insn_unreachable): Likewise.
17356         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
17357         (get_attr_min_length): Likewise.
17358         * recog.c (get_enabled_alternatives): Likewise.
17359         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
17360         * reorg.c (find_end_label): Introduce local rtx "pat" and
17361         strengthen local "insn" from rtx to rtx_insn *.
17362         (redundant_insn): Use insn method of "seq" rather than element for
17363         typesafety; strengthen local "control" from rtx to rtx_insn *.
17364         * resource.c (mark_referenced_resources): Add checked cast to
17365         rtx_insn * within INSN/JUMP_INSN case.
17366         (mark_set_resources): Likewise.
17367         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
17368         rtx to rtx_insn *.
17369
17370 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17371
17372         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
17373         param "label" from rtx to rtx_insn *.
17374         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
17375         and local "op".
17376         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
17377         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
17378         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
17379         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
17380         * final.c (default_label_align_after_barrier_max_skip): Strengthen
17381         param from rtx to rtx_insn *.
17382         (default_loop_align_max_skip): Likewise.
17383         (default_label_align_max_skip): Likewise.
17384         (default_jump_align_max_skip): Likewise.
17385         * target.def (label_align_after_barrier_max_skip): Likewise.
17386         (loop_align_max_skip): Likewise.
17387         (label_align_max_skip): Likewise.
17388         (jump_align_max_skip): Likewise.
17389         * targhooks.h (default_label_align_after_barrier_max_skip):
17390         Likewise.
17391         (default_loop_align_max_skip): Likewise.
17392         (default_label_align_max_skip): Likewise.
17393         (default_jump_align_max_skip): Likewise.
17394
17395 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17396
17397         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
17398         from const_rtx to const rtx_insn *.  Update union members from rtx
17399         to rtx_insn *.
17400         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
17401         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
17402         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
17403         strengthen both params from const_rtx to const rtx_insn *.
17404         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
17405         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
17406         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
17407         rtx_insn *.
17408         * target.def (can_follow_jump): Strengthen both params from
17409         const_rtx to const rtx_insn *, and update default implementation
17410         from hook_bool_const_rtx_const_rtx_true to
17411         hook_bool_const_rtx_insn_const_rtx_insn_true.
17412
17413 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17414
17415         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
17416         "insn" from rtx to rtx_insn *.
17417         * sched-int.h (deps_start_bb): Likewise for 2nd param.
17418
17419 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17420             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17421             Anna Tikhonova  <anna.tikhonova@intel.com>
17422             Ilya Tocar  <ilya.tocar@intel.com>
17423             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17424             Ilya Verbin  <ilya.verbin@intel.com>
17425             Kirill Yukhin  <kirill.yukhin@intel.com>
17426             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17427
17428         * config/i386/sse.md
17429         (define_insn "vcvtph2ps<mask_name>"): Add masking.
17430         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
17431         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
17432         (define_expand "vcvtps2ph_mask"): New.
17433         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
17434         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
17435         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
17436
17437 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17438             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17439             Anna Tikhonova  <anna.tikhonova@intel.com>
17440             Ilya Tocar  <ilya.tocar@intel.com>
17441             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17442             Ilya Verbin  <ilya.verbin@intel.com>
17443             Kirill Yukhin  <kirill.yukhin@intel.com>
17444             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17445
17446         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
17447         New.
17448         (define_mode_iterator VI24_AVX512BW_1): Ditto.
17449         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
17450         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
17451         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
17452         also for TARGET_AVX512VL.
17453         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
17454
17455 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
17456
17457         * doc/install.texi (Options specification): add
17458         --disable-libsanitizer item.
17459
17460 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
17461             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
17462
17463         PR target/61407
17464         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
17465         and above.
17466         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
17467         kernel version check to avoid incrementing it after every major OS X
17468         release.
17469         (darwin_default_min_version): Avoid static memory buffer.
17470
17471 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
17472
17473         * tree.c (need_assembler_name_p): Store C++ type mangling only
17474         for aggregates.
17475
17476 2014-09-13  Marek Polacek  <polacek@redhat.com>
17477
17478         * tree.c (protected_set_expr_location): Don't check whether T is
17479         non-null here.
17480
17481 2014-09-12  DJ Delorie  <dj@redhat.com>
17482
17483         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
17484         (extend_and_shift1_hipsi2): Likewise.
17485         (extend_and_shift2_hipsi2): Likewise.
17486
17487 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
17488
17489         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
17490         with NULL when dealing with an insn.
17491         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
17492         from rtx to rtx_insn *.
17493         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
17494         const_rtx to const rtx_insn *.
17495         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
17496
17497 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
17498
17499         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
17500         assert.
17501
17502 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
17503
17504         * target.def (libgcc_floating_mode_supported_p): New hook.
17505         * targhooks.c (default_libgcc_floating_mode_supported_p): New
17506         function.
17507         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
17508         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
17509         (LIBGCC2_HAS_TF_MODE): Remove.
17510         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
17511         * doc/tm.texi: Regenerate.
17512         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
17513         machine mode.
17514         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
17515         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
17516         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
17517         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
17518         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17519         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
17520         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
17521         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
17522         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
17523         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
17524         function.
17525         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
17526         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17527         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17528         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17529         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17530         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17531         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17532         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
17533         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
17534         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
17535         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17536         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
17537         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
17538         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
17539         Remove.
17540         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
17541         New macro.
17542         (ia64_libgcc_floating_mode_supported_p): New function.
17543         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
17544         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
17545         (IA64_NO_LIBGCC_TFMODE): Define.
17546         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
17547         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
17548         macro.
17549         (pdp11_scalar_mode_supported_p): New function.
17550         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
17551         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
17552
17553 2014-09-12  Richard Biener  <rguenther@suse.de>
17554
17555         PR middle-end/63237
17556         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
17557
17558 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
17559
17560         * tree.c (integer_each_onep): New function.
17561         * tree.h (integer_each_onep): Declare it.
17562         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
17563         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
17564         (X & 1) == 0 for vector and complex.
17565
17566 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17567
17568         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
17569         for A57.
17570         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
17571         cost to spilling from integer to FP registers.
17572
17573 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17574
17575         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
17576         move handling.
17577         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
17578         are now handled correctly.
17579
17580 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17581
17582         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
17583         handling of CALLER_SAVE_REGS and POINTER_REGS.
17584
17585 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17586
17587         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
17588         the number of hard registers.
17589
17590 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17591             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17592             Anna Tikhonova  <anna.tikhonova@intel.com>
17593             Ilya Tocar  <ilya.tocar@intel.com>
17594             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17595             Ilya Verbin  <ilya.verbin@intel.com>
17596             Kirill Yukhin  <kirill.yukhin@intel.com>
17597             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17598
17599         * config/i386/sse.md
17600         (define_mode_iterator VI48_AVX512VL): New.
17601         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
17602         "avx512f_vternlog<mode>_maskz" and update mode iterator.
17603         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
17604         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
17605         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
17606         "avx512f_vternlog<mode>_mask" and update mode iterator.
17607         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
17608         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
17609         iterator.
17610         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
17611         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
17612         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
17613         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
17614         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
17615         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
17616
17617 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17618             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17619             Anna Tikhonova  <anna.tikhonova@intel.com>
17620             Ilya Tocar  <ilya.tocar@intel.com>
17621             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17622             Ilya Verbin  <ilya.verbin@intel.com>
17623             Kirill Yukhin  <kirill.yukhin@intel.com>
17624             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17625
17626         * config/i386/sse.md (VI128_256): Delete.
17627         (define_mode_iterator VI124_256): New.
17628         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
17629         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
17630         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
17631         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
17632         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
17633         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
17634         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
17635         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
17636         iterator.
17637         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
17638         in presence of AVX-512.
17639
17640 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17641             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17642             Anna Tikhonova  <anna.tikhonova@intel.com>
17643             Ilya Tocar  <ilya.tocar@intel.com>
17644             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17645             Ilya Verbin  <ilya.verbin@intel.com>
17646             Kirill Yukhin  <kirill.yukhin@intel.com>
17647             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17648
17649         * config/i386/sse.md
17650         (define_expand "<avx512>_gathersi<mode>"): Rename from
17651         "avx512f_gathersi<mode>".
17652         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
17653         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
17654         (define_expand "<avx512>_gatherdi<mode>"): Rename from
17655         "avx512f_gatherdi<mode>".
17656         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
17657         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
17658         wide versions.
17659         (define_expand "<avx512>_scattersi<mode>"): Rename from
17660         "avx512f_scattersi<mode>".
17661         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
17662         (define_expand "<avx512>_scatterdi<mode>"): Rename from
17663         "avx512f_scatterdi<mode>".
17664         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
17665
17666 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
17667
17668         * ira.h (ira_finish_once): Delete.
17669         * ira-int.h (target_ira_int::~target_ira_int): Declare.
17670         (target_ira_int::free_ira_costs): Likewise.
17671         (target_ira_int::free_register_move_costs): Likewise.
17672         (ira_finish_costs_once): Delete.
17673         * ira.c (free_register_move_costs): Replace with...
17674         (target_ira_int::free_register_move_costs): ...this new function.
17675         (target_ira_int::~target_ira_int): Define.
17676         (ira_init): Call free_register_move_costs as a member function rather
17677         than a global function.
17678         (ira_finish_once): Delete.
17679         * ira-costs.c (free_ira_costs): Replace with...
17680         (target_ira_int::free_ira_costs): ...this new function.
17681         (ira_init_costs): Call free_ira_costs as a member function rather
17682         than a global function.
17683         (ira_finish_costs_once): Delete.
17684         * target-globals.c (target_globals::~target_globals): Call the
17685         target_ira_int destructor.
17686         * toplev.c: Include lra.h.
17687         (finalize): Call lra_finish_once rather than ira_finish_once.
17688
17689 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
17690
17691         * common.opt (flto-odr-type-merging): New flag.
17692         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
17693         (types_same_for_odr): Likewise.
17694         (odr_subtypes_equivalent_p): Likewise.
17695         (add_type_duplicate): Do not walk type variants.
17696         (register_odr_type): New function.
17697         * ipa-utils.h (register_odr_type): Declare.
17698         (odr_type_p): New function.
17699         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
17700         TYPE_DECLs
17701         * doc/invoke.texi (-flto-odr-type-merging): Document.
17702         * tree.c (need_assembler_name_p): Compute ODR names when asked
17703         for it.
17704         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
17705
17706 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
17707
17708         PR target/63228
17709         * config/i386/i386.c (ix86_option_override_internal): Also turn
17710         off OPTION_MASK_ABI_X32 for -m16.
17711
17712 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17713
17714         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
17715         GPR instead of P.
17716
17717 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
17718
17719         PR target/58757
17720         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
17721         Directly forward to __*_DENORM_MIN__.
17722
17723 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
17724
17725         * rtl.h (LABEL_REF_LABEL): New macro.
17726
17727         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
17728         of XEXP (, 0), where we know that we have a LABEL_REF.
17729         * cfgbuild.c (make_edges): Likewise.
17730         (purge_dead_tablejump_edges): Likewise.
17731         * cfgexpand.c (convert_debug_memory_address): Likewise.
17732         * cfgrtl.c (patch_jump_insn): Likewise.
17733         * combine.c (distribute_notes): Likewise.
17734         * cse.c (hash_rtx_cb): Likewise.
17735         (exp_equiv_p): Likewise.
17736         (fold_rtx): Likewise.
17737         (check_for_label_ref): Likewise.
17738         * cselib.c (rtx_equal_for_cselib_1): Likewise.
17739         (cselib_hash_rtx): Likewise.
17740         * emit-rtl.c (mark_label_nuses): Likewise.
17741         * explow.c (convert_memory_address_addr_space): Likewise.
17742         * final.c (output_asm_label): Likewise.
17743         (output_addr_const): Likewise.
17744         * gcse.c (add_label_notes): Likewise.
17745         * genconfig.c (walk_insn_part): Likewise.
17746         * genrecog.c (validate_pattern): Likewise.
17747         * ifcvt.c (cond_exec_get_condition): Likewise.
17748         (noce_emit_store_flag): Likewise.
17749         (noce_get_alt_condition): Likewise.
17750         (noce_get_condition): Likewise.
17751         * jump.c (maybe_propagate_label_ref): Likewise.
17752         (mark_jump_label_1): Likewise.
17753         (redirect_exp_1): Likewise.
17754         (rtx_renumbered_equal_p): Likewise.
17755         * lra-constraints.c (operands_match_p): Likewise.
17756         * reload.c (operands_match_p): Likewise.
17757         (find_reloads): Likewise.
17758         * reload1.c (set_label_offsets): Likewise.
17759         * reorg.c (get_branch_condition): Likewise.
17760         * rtl.c (rtx_equal_p_cb): Likewise.
17761         (rtx_equal_p): Likewise.
17762         * rtlanal.c (reg_mentioned_p): Likewise.
17763         (rtx_referenced_p): Likewise.
17764         (get_condition): Likewise.
17765         * sched-vis.c (print_value): Likewise.
17766         * varasm.c (const_hash_1): Likewise.
17767         (compare_constant): Likewise.
17768         (const_rtx_hash_1): Likewise.
17769         (output_constant_pool_1): Likewise.
17770
17771 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17772
17773         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
17774         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
17775         instead of minus.
17776         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
17777         cr6_test_for_lt_reverse): Ditto.
17778
17779 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
17780
17781         PR c++/61489
17782         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
17783
17784 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17785
17786         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
17787         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
17788         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
17789         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
17790         Delete.
17791
17792         (aarch64_fold_builtin): Remove all reinterpret cases.
17793
17794         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
17795
17796         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
17797
17798         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
17799         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
17800         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
17801         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
17802         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
17803         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
17804         aarch64_reinterpretv2df<mode>): Delete.
17805
17806         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
17807
17808         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
17809         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
17810         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
17811         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
17812         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
17813         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
17814         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
17815         vreinterpret_u32_f64): Use cast.
17816
17817         * config/aarch64/iterators.md (VD_RE): Delete.
17818
17819 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17820
17821         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
17822         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
17823         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
17824         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
17825         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
17826         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
17827         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
17828         Replace inline assembler with __aarch64_vset_lane_any.
17829
17830 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
17831
17832         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
17833         types.
17834         (vmull_high_lane_s32): Likewise.
17835         (vmull_high_lane_u16): Likewise.
17836         (vmull_high_lane_u32): Likewise.
17837
17838 2014-09-11  Jason Merrill  <jason@redhat.com>
17839
17840         PR c++/58678
17841         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
17842
17843 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
17844
17845         PR target/63223
17846         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
17847         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
17848         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
17849
17850 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17851             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17852             Anna Tikhonova  <anna.tikhonova@intel.com>
17853             Ilya Tocar  <ilya.tocar@intel.com>
17854             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17855             Ilya Verbin  <ilya.verbin@intel.com>
17856             Kirill Yukhin  <kirill.yukhin@intel.com>
17857             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17858
17859         * config/i386/sse.md
17860         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
17861         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
17862         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
17863         New.
17864         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
17865         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
17866         iterator.
17867         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17868         New.
17869         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
17870         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
17871         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
17872         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
17873         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
17874         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
17875         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
17876         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
17877         iterator.
17878         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17879         New.
17880         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
17881         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
17882         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
17883
17884 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17885
17886         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
17887         to access removed nodes.
17888
17889 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17890
17891         PR tree-optimization/63186
17892         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
17893         (mark_nonssa_use): Likewise.
17894         (verify_non_ssa_vars): Verify all header blocks for label
17895         definitions.
17896
17897 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17898             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17899             Anna Tikhonova  <anna.tikhonova@intel.com>
17900             Ilya Tocar  <ilya.tocar@intel.com>
17901             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17902             Ilya Verbin  <ilya.verbin@intel.com>
17903             Kirill Yukhin  <kirill.yukhin@intel.com>
17904             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17905
17906         * config/i386/sse.md
17907         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
17908         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
17909         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
17910         "<avx2_avx512f>_permvar<mode><mask_name>".
17911         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
17912         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
17913         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
17914         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
17915         Ditto.
17916         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
17917         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17918         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
17919         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17920
17921 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17922
17923         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
17924         V2DF, V4SF, DF, and DI modes.
17925         (vsx_fmav2df2): Likewise.
17926         (vsx_float_fix_<mode>2): Likewise.
17927         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
17928
17929 2014-09-10  Xinliang David Li  <davidxl@google.com>
17930
17931         PR target/63209
17932         * config/arm/arm.md (movcond_addsi): Handle case where source
17933         and target operands are the same.
17934
17935 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
17936
17937         * final.c (this_is_asm_operands): Strengthen this variable from
17938         rtx to const rtx_insn *.
17939         * output.h (this_is_asm_operands): Likewise.
17940         * rtl-error.c (location_for_asm): Strengthen param "insn" from
17941         const_rtx to const rtx_insn *.
17942         (diagnostic_for_asm): Likewise.
17943         * rtl-error.h (error_for_asm): Likewise.
17944         (warning_for_asm): Likewise.
17945
17946 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
17947
17948         * genextract.c (print_header): When writing out insn_extract to
17949         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
17950         * recog.h (insn_extract): Strengthen the param from rtx to
17951         rtx_insn *.
17952
17953 2014-09-10  Mike Stump  <mikestump@comcast.net>
17954
17955         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
17956         8.6.1.
17957
17958 2014-09-10  Martin Jambor  <mjambor@suse.cz>
17959
17960         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
17961         (analyze): Do not set analyze flag if expand_thunk returns false;.
17962         (create_wrapper): Likewise.
17963         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
17964
17965 2014-09-10  Martin Jambor  <mjambor@suse.cz>
17966
17967         PR ipa/61654
17968         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
17969         new decl properly.  Analyze the new thunk if it is expanded.
17970
17971 2014-09-10  Andreas Schwab  <schwab@suse.de>
17972
17973         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
17974         [USED_FOR_TARGET]: Define.
17975
17976 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
17977
17978         * config/mips/mips.c (mips_secondary_reload_class): Handle
17979         regno < 0 case.
17980
17981 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
17982
17983         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
17984         assignment.
17985
17986 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
17987
17988         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
17989         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
17990         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
17991         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
17992         flag_delete_null_pointer_checks for them.
17993         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
17994         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
17995         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
17996         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
17997         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
17998         stmt's iterator.
17999         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
18000         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
18001         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
18002         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
18003         * doc/invoke.texi (-fsanitize=nonnull-attribute,
18004         -fsanitize=returns-nonnull-attribute): Document.
18005
18006         * ubsan.h (struct ubsan_mismatch_data): Removed.
18007         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18008         * ubsan.c (ubsan_source_location): For unknown locations,
18009         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
18010         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
18011         Allow more than one location and arbitrary extra arguments passed
18012         in ... instead of through MISMATCH pointer.
18013         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
18014         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
18015         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
18016         callers.
18017
18018 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18019             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18020             Anna Tikhonova  <anna.tikhonova@intel.com>
18021             Ilya Tocar  <ilya.tocar@intel.com>
18022             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18023             Ilya Verbin  <ilya.verbin@intel.com>
18024             Kirill Yukhin  <kirill.yukhin@intel.com>
18025             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18026
18027         * config/i386/sse.md
18028         (define_mode_iterator VI48F): New.
18029         (define_insn "<avx512>_compress<mode>_mask"): Rename from
18030         "avx512f_compress<mode>_mask" and update mode iterator.
18031         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
18032         "avx512f_compressstore<mode>_mask" and update mode iterator.
18033         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
18034         "avx512f_expand<mode>_maskz" and update mode iterator.
18035         (define_insn "<avx512>_expand<mode>_mask"): Rename from
18036         "avx512f_expand<mode>_mask" and update mode iterator.
18037
18038 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18039             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18040             Anna Tikhonova  <anna.tikhonova@intel.com>
18041             Ilya Tocar  <ilya.tocar@intel.com>
18042             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18043             Ilya Verbin  <ilya.verbin@intel.com>
18044             Kirill Yukhin  <kirill.yukhin@intel.com>
18045             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18046
18047         * config/i386/i386.c
18048         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
18049         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
18050         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
18051         avx512dq_rangepv4sf_mask.
18052         * config/i386/sse.md
18053         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
18054         UNSPEC_RANGE.
18055         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
18056         (define_insn "reduces<mode>"): Ditto.
18057         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
18058         Ditto.
18059         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
18060         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
18061         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
18062
18063 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18064             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18065             Anna Tikhonova  <anna.tikhonova@intel.com>
18066             Ilya Tocar  <ilya.tocar@intel.com>
18067             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18068             Ilya Verbin  <ilya.verbin@intel.com>
18069             Kirill Yukhin  <kirill.yukhin@intel.com>
18070             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18071
18072         * config/i386/i386.c
18073         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
18074         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
18075         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
18076         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
18077         avx512vl_getmantv2df_mask.
18078         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
18079         avx512f_vgetmantv4sf_round.
18080         * config/i386/sse.md
18081         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
18082         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
18083         mode iterator.
18084         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
18085         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
18086         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
18087         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
18088         iterator..
18089         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
18090         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
18091         update mode iterator.
18092         (define_expand
18093         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
18094         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
18095         mode iterator.
18096         (define_insn
18097         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
18098         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
18099         update mode iterator.
18100         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
18101         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
18102         iterator..
18103         (define_insn
18104         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
18105         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
18106         mode iterator..
18107         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
18108         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
18109         update mode iterator.
18110         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
18111         "avx512f_getmant<mode><round_saeonly_name>".
18112
18113 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
18114
18115         PR ipa/63166
18116         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
18117
18118 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
18119             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
18120             Anna Tikhonova  <anna.tikhonova@intel.com>
18121             Ilya Tocar  <ilya.tocar@intel.com>
18122             Andrey Turetskiy  <andrey.turetskiy@intel.com>
18123             Ilya Verbin  <ilya.verbin@intel.com>
18124             Kirill Yukhin  <kirill.yukhin@intel.com>
18125             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
18126
18127         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
18128         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
18129         (define_mode_iterator FMAMODE_AVX512): New.
18130         (define_mode_iterator FMAMODE): Remove conditions.
18131         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
18132         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
18133         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
18134         mode iterator.
18135         (define_mode_iterator FMAMODE_NOVF512): Remove.
18136         (define_insn "*fma_fmadd_<mode>"): Rename from
18137         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
18138         FMAMODE mode iterator.
18139         (define_mode_iterator VF_SF_AVX512VL): New.
18140         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
18141         Use VF_SF_AVX512VL mode iterator.
18142         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
18143         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18144         iterator.
18145         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
18146         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18147         iterator.
18148         (define_insn "*fma_fmsub_<mode>"): Rename from
18149         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
18150         FMAMODE mode iterator.
18151         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
18152         Use VF_SF_AVX512VL mode iterator.
18153         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
18154         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18155         iterator.
18156         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
18157         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18158         iterator.
18159         (define_insn "*fma_fnmadd_<mode>"): Rename from
18160         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
18161         use FMAMODE mode iterator.
18162         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
18163         Use VF_SF_AVX512VL mode iterator.
18164         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
18165         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18166         iterator.
18167         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
18168         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18169         iterator.
18170         (define_insn "*fma_fnmsub_<mode>"): Rename from
18171         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
18172         FMAMODE mode iterator.
18173         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
18174         Use VF_SF_AVX512VL mode iterator.
18175         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
18176         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18177         iterator.
18178         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
18179         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18180         iterator.
18181         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
18182         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
18183         use VF_AVX512VL mode iterator.
18184         (define_insn "*fma_fmaddsub_<mode>"): Rename from
18185         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
18186         remove subst usage.
18187         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
18188         Use VF_SF_AVX512VL mode iterator.
18189         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
18190         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18191         iterator.
18192         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
18193         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18194         iterator.
18195         (define_insn "*fma_fmsubadd_<mode>"): Rename from
18196         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
18197         remove usage of subst.
18198         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
18199         Use VF_SF_AVX512VL mode iterator.
18200         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
18201         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18202         iterator.
18203         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
18204         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18205         iterator.
18206
18207 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
18208
18209         Revert r213751:
18210         * calls.c (precompute_arguments): Check
18211          promoted_for_signed_and_unsigned_p and set the promoted mode.
18212         (promoted_for_signed_and_unsigned_p): New function.
18213         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18214         and set the promoted mode.
18215         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18216         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18217         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18218
18219 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18220
18221         * opth-gen.awk: Generate mapping from cpp message reasons to the
18222         options that enable them.
18223         * doc/options.texi (CppReason): Document.
18224
18225 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18226
18227         * doc/invoke.texi (Wnormalized=): Update.
18228
18229 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
18230
18231         PR target/63195
18232         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
18233         operands.  Split off the constant operand alternative to ...
18234         (*bool<mode>3_imm): New.
18235
18236 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18237
18238         * rtl.h (single_set_2): Strengthen first param from const_rtx to
18239         const rtx_insn *, and move prototype to above...
18240         (single_set): ...this.  Convert this from a macro to an inline
18241         function, enforcing the requirement that the param is a const
18242         rtx_insn *.
18243         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
18244
18245         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
18246         Strengthen both params from rtx to rtx_insn *.
18247         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18248         Likewise; introduce locals "producer_set", "consumer_set", using
18249         them in place of "producer" and "consumer" when dealing with SET
18250         rather than insn.
18251         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
18252         when invoking single_set in region guarded by INSN_P.
18253         (avr_out_bitop): Likewise.
18254         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
18255         region guarded by GET_CODE check, using methods to strengthen
18256         local "this_insn" from rtx to rtx_insn *, and for clarity.
18257         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
18258         Strengthen local "insn" from rtx to rtx_insn *.
18259         (define_insn_and_split "xload<mode>_A"): Likewise.
18260         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
18261         "insn".
18262         (find_load): Likewise for return type.
18263         (workaround_speculation): Likewise for both locals named
18264         "load_insn".
18265         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18266         local "cc0_user".
18267         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18268         for local "prev".
18269         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18270         param 2.
18271         * config/h8300/h8300.c (notice_update_cc): Likewise.
18272         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18273         "insn" and "dep_insn".
18274         (exact_store_load_dependency): Likewise for both params.
18275         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18276         since this now clashes with inline function.  Instead, delay
18277         calling single_set until the point where its needed, and then
18278         assign the result to "compare_set" and rework the conditional that
18279         follows.
18280         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18281         local "last" from rtx to rtx_insn *.
18282         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18283         second param.
18284         (mips_store_data_bypass_p): Likewise for both params.
18285         * config/mips/mips.c (mips_load_store_insns): Likewise for second
18286         param.
18287         (mips_store_data_bypass_p): Likewise for both params.
18288         (mips_orphaned_high_part_p): Likewise for param "insn".
18289         * config/mn10300/mn10300.c (extract_bundle): Likewise.
18290         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18291         Introduce local rtx "insn2_pat".
18292         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18293         "ninsn".
18294         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18295         Introduce local rtx "set", using it in place of "insn" for the
18296         result of single_set.  This appears to fix a bug, since the call
18297         to find_regno_note on a SET does nothing.
18298         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18299         params from rtx to rtx_insn *.
18300         (set_to_load_agen): Likewise.
18301         * config/s390/s390.c (s390_label_align): Likewise for local
18302         "prev_insn".  Introduce new rtx locals "set" and "src", using
18303         them in place of "prev_insn" for the results of single_set
18304         and SET_SRC respectively.
18305         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18306         Introduce new rtx local "set" using in place of "jump" for the
18307         result of single_set.  Use SET_SRC (set) rather than plain
18308         XEXP (set, 1).
18309         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18310         rtx to rtx_insn *.
18311         (noncall_uses_reg): Likewise.
18312         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18313         guarded by GET_CODE check, using its methods for clarity, and to
18314         enable strengthening local "this_insn" from rtx to rtx_insn *.
18315         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18316         "insn" from rtx to rtx_insn *.
18317         (define_expand "umulhisi3"): Likewise.
18318         (define_expand "smulsi3_highpart"): Likewise.
18319         (define_expand "umulsi3_highpart"): Likewise.
18320         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18321         local "after".  Replace GET_CODE check with a dyn_cast,
18322         introducing new local rtx_sequence * "seq", using insn method for
18323         typesafety.
18324
18325         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18326         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
18327         place of "insn" once we're dealing with patterns rather than the
18328         input insn.
18329         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18330         (scan_trace): Likewise for local "elt", updating lookups within
18331         sequence to use insn method rather than element method.
18332         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18333         to rtx_insn *.
18334         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18335         * ifcvt.c (noce_try_abs): Likewise for local "insn".
18336         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18337         invoking single_set.
18338         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
18339         "insn" from rtx to rtx_insn *.
18340         (skip_usage_debug_insns): Likewise for return type, adding a
18341         checked cast.
18342         (check_secondary_memory_needed_p): Likewise for local "insn".
18343         (inherit_reload_reg): Likewise.
18344         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
18345         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
18346         checked casts.
18347         (store_data_bypass_p): Likewise for both params.
18348         (if_test_bypass_p): Likewise.
18349         * recog.h (store_data_bypass_p): Likewise for both params.
18350         (if_test_bypass_p): Likewise.
18351         * reload.c (find_equiv_reg): Likewise for local "where".
18352         * reorg.c (delete_jump): Likewise for param "insn".
18353         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
18354         to const rtx_insn *.
18355         * store-motion.c (replace_store_insn): Likewise for param "del".
18356         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
18357         and use its methods for clarity, and to strengthen local "del"
18358         from rtx to rtx_insn *.
18359         (build_store_vectors): Use insn method of "st" when calling
18360         replace_store_insn for typesafety and clarity.
18361
18362 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18363
18364         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
18365         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
18366         on how to make it legal in future.
18367
18368 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18369
18370         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
18371         to rtx_insn *.
18372         (restinsn): Likewise.
18373         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
18374         Likewise for param.
18375         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
18376         Likewise.
18377         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
18378         first param.
18379         (arc_hazard): Likewise for both params.
18380         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
18381         checked casts to rtx_sequence * and uses of the insn method for
18382         type-safety.
18383         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
18384         (arc_adjust_insn_length): Likewise for param "insn".
18385         (struct insn_length_parameters_s): Likewise for first param of
18386         "get_variants" callback field.
18387         (arc_get_insn_variants): Likewise for first param and local
18388         "inner".  Replace a check of GET_CODE with a dyn_cast to
18389         rtx_sequence *, using methods for type-safety and clarity.
18390         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
18391         rtx_sequence * and uses of the insn method for type-safety when
18392         invoking arc_adjust_insn_length.
18393         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
18394         for param.
18395         (arm_address_offset_is_imm): Likewise.
18396         (struct tune_params): Likewise for params 1 and 3 of the
18397         "sched_adjust_cost" callback field.
18398         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
18399         params 1 and 3 ("insn" and "dep").
18400         (xscale_sched_adjust_cost): Likewise.
18401         (fa726te_sched_adjust_cost): Likewise.
18402         (cortexa7_older_only): Likewise for param "insn".
18403         (cortexa7_younger): Likewise.
18404         (arm_attr_length_move_neon): Likewise.
18405         (arm_address_offset_is_imm): Likewise.
18406         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
18407         * config/avr/avr.c (avr_notice_update_cc): Likewise.
18408         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
18409         (workaround_speculation): Likewise for local "last_condjump".
18410         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
18411         (shadow_or_blockage_p): Likewise.
18412         (get_unit_reqs): Likewise.
18413         (get_unit_operand_masks): Likewise.
18414         (c6x_registers_update): Likewise.
18415         (returning_call_p): Likewise.
18416         (can_use_callp): Likewise.
18417         (convert_to_callp): Likewise.
18418         (find_last_same_clock): Likwise for local "t".
18419         (reorg_split_calls): Likewise for local "shadow".
18420         (hwloop_pattern_reg): Likewise for param "insn".
18421         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
18422         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
18423         (frv_extract_membar): Likewise.
18424         (frv_optimize_membar_local): Strengthen param "last_membar" from
18425         rtx * to rtx_insn **.
18426         (frv_optimize_membar_global): Strengthen param "membar" from rtx
18427         to rtx_insn *.
18428         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
18429         to rtx_insn **.
18430         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
18431         both params from rtx to rtx_insn *.
18432         (ia64_ld_address_bypass_p): Likewise.
18433         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
18434         "insn".
18435         (ia64_safe_type): Likewise.
18436         (group_barrier_needed): Likewise.
18437         (safe_group_barrier_needed): Likewise.
18438         (ia64_single_set): Likewise.
18439         (is_load_p): Likewise.
18440         (record_memory_reference): Likewise.
18441         (get_mode_no_for_insn): Likewise.
18442         (important_for_bundling_p): Likewise.
18443         (unknown_for_bundling_p): Likewise.
18444         (ia64_st_address_bypass_p): Likewise for both params.
18445         (ia64_ld_address_bypass_p): Likewise.
18446         (expand_vselect): Introduce new local rtx_insn * "insn", using it
18447         in place of rtx "x" after the emit_insn call.
18448         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
18449         Strengthen param from rtx to rtx_insn *.
18450         (ix86_agi_dependent): Likewise for both params.
18451         (ix86_attr_length_immediate_default): Likewise for param 1.
18452         (ix86_attr_length_address_default): Likewise for param.
18453         (ix86_attr_length_vex_default): Likewise for param 1.
18454         * config/i386/i386.c (ix86_attr_length_immediate_default):
18455         Likewise for param "insn".
18456         (ix86_attr_length_address_default): Likewise.
18457         (ix86_attr_length_vex_default): Likewise.
18458         (ix86_agi_dependent): Likewise for both params.
18459         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
18460         (vselect_insn): Likewise for this variable.
18461         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
18462         for param 1.
18463         (m68k_sched_attr_opy_type): Likewise.
18464         * config/m68k/m68k.c (sched_get_operand): Likewise.
18465         (sched_attr_op_type): Likewise.
18466         (m68k_sched_attr_opx_type): Likewise.
18467         (m68k_sched_attr_opy_type): Likewise.
18468         (sched_get_reg_operand): Likewise.
18469         (sched_get_mem_operand): Likewise.
18470         (m68k_sched_address_bypass_p): Likewise for both params.
18471         (sched_get_indexed_address_scale): Likewise.
18472         (m68k_sched_indexed_address_bypass_p): Likewise.
18473         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
18474         (m68k_sched_indexed_address_bypass_p): Likewise.
18475         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
18476         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
18477         removing another.
18478         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
18479         params from rtx to rtx_insn *.
18480         (mips_fmadd_bypass): Likewise.
18481         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
18482         (mips_linked_madd_p): Likewise.
18483         (mips_macc_chains_last_hilo): Likewise for this variable.
18484         (mips_macc_chains_record): Likewise for param.
18485         (vr4130_last_insn): Likewise for this variable.
18486         (vr4130_swap_insns_p): Likewise for both params.
18487         (mips_ls2_variable_issue): Likewise for param.
18488         (mips_need_noat_wrapper_p): Likewise for param "insn".
18489         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
18490         in place of "x" after the emit_insn.
18491         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
18492         params from rtx to rtx_insn *.
18493         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
18494         (pa_combine_instructions): Introduce local "par" for result of
18495         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
18496         to make_insn_raw.
18497         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
18498         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
18499         (rl78_alloc_physical_registers_op1): Likewise.
18500         (rl78_alloc_physical_registers_op2): Likewise.
18501         (rl78_alloc_physical_registers_ro1): Likewise.
18502         (rl78_alloc_physical_registers_cmp): Likewise.
18503         (rl78_alloc_physical_registers_umul): Likewise.
18504         (rl78_alloc_address_registers_macax): Likewise.
18505         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
18506         * config/s390/predicates.md (execute_operation): Likewise for
18507         local "insn".
18508         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
18509         params.
18510         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
18511         (addr_generation_dependency_p): Likewise for param "insn".
18512         (s390_agen_dep_p): Likewise for both params.
18513         (s390_fpload_toreg): Likewise for param "insn".
18514         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
18515         * config/sh/sh.c (sh_loop_align): Likewise for param and local
18516         "next".
18517         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
18518         * config/sh/sh_treg_combine.cc
18519         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
18520         and local "i".
18521         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
18522         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
18523         "and_insn", "load", "shift".
18524         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
18525         "insn".
18526         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
18527         for XEXP (note, 0) of the REG_CC_SETTER note.
18528         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
18529         rtx_insn *, eliminating a checked cast made redundant by this.
18530         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
18531         to rtx_insn *.
18532         * genattr.c (main): When writing out the prototype to
18533         const_num_delay_slots, strengthen the param from rtx to
18534         rtx_insn *.
18535         * genattrtab.c (write_const_num_delay_slots): Likewise when
18536         writing out the implementation of const_num_delay_slots.
18537         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
18538         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
18539         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
18540         favor of new rtx locals "src" and "set" and new local rtx_insn *
18541         "insn" and "seq".
18542         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
18543         to rtx_insn *.
18544         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
18545         locals "cond", "if_then_else", "set" and new rtx_insn * locals
18546         "insn" and "seq".
18547         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
18548         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
18549         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
18550         the top-level scope, replacing with new more tightly-scoped rtx
18551         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
18552         "new_insn", "copy_of_insn_b", and make local rtx "set" more
18553         tightly-scoped.
18554         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
18555         rtx_insn *.
18556         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
18557         "move_insn".
18558         (ira_setup_alts): Likewise for param "insn".
18559         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
18560         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
18561         and an rtx_insn *.
18562         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
18563         new more-tightly scoped rtx locals "add3_insn", "insn",
18564         "add2_insn" and rtx_insn * "move_insn".
18565         * postreload-gcse.c (eliminate_partially_redundant_load): Add
18566         checked cast on result of gen_move_insn when invoking
18567         extract_insn.
18568         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
18569         rtx_insn *.
18570         (verify_changes): Add a checked cast on "object" when invoking
18571         insn_invalid_p.
18572         (extract_insn_cached): Strengthen param "insn" from rtx to
18573         rtx_insn *.
18574         (extract_constrain_insn_cached): Likewise.
18575         (extract_insn): Likewise.
18576         * recog.h (insn_invalid_p): Likewise for param 1.
18577         (recog_memoized): Likewise for param.
18578         (extract_insn): Likewise.
18579         (extract_constrain_insn_cached): Likewise.
18580         (extract_insn_cached): Likewise.
18581         * reload.c (can_reload_into): Likewise for local "test_insn".
18582         * reload.h (cleanup_subreg_operands): Likewise for param.
18583         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
18584         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
18585         result of emit_insn.  Remove a checked cast made redundant by this
18586         change.
18587         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
18588         rtx to rtx_insn *.
18589         * sel-sched.c (get_reg_class): Likewise.
18590
18591 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18592             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18593
18594         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
18595         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
18596         Define.
18597         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
18598
18599 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18600
18601         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
18602         const rtx_insn *, and from rtx to rtx_insn * for the other
18603         overloaded variant.
18604         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
18605         INSN_LOCATION, since we know INSN_P holds.
18606         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
18607         (insn_file): Likewise.
18608         (insn_scope): Likewise.
18609         (insn_location): Likewise.
18610
18611         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
18612         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
18613         for the result of gen_load_const_gp.
18614         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
18615         param from rtx to rtx_insn *.
18616         * config/rs6000/rs6000.c (output_call): Likewise.
18617         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
18618         introducing a checked cast to rtx_sequence * and use of the insn
18619         method.
18620         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
18621         from rtx to rtx_insn *.
18622         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
18623         (insn_line): Likewise.
18624         (insn_file): Likewise.
18625         (insn_location): Likewise.
18626         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
18627         from rtx to rtx_insn *.
18628         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
18629         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
18630         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
18631         via a checked cast.
18632         * reorg.c (relax_delay_slots): Strengthen locals named "after"
18633         from rtx to rtx_insn *; use methods of "pat" for type-safety.
18634
18635 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18636
18637         * combine.c (try_combine): Eliminate checked cast on result of
18638         gen_rtx_INSN.
18639         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
18640         autogenerated one by strengthening the return type and params 2 and 3
18641         from rtx to rtx_insn *, and by naming the params.
18642         * gengenrtl.c (special_rtx): Add INSN to those that are
18643         special-cased.
18644         * rtl.h (gen_rtx_INSN): New prototype.
18645
18646 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18647
18648         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
18649         than NULL_RTX.
18650         (no_equiv): Likewise.
18651         (update_equiv_regs): Likewise.
18652         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
18653         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
18654         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
18655         clarity.
18656         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
18657         from rtx to rtx_insn_list *.
18658         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
18659         rtx_insn_list * and use methods for clarity and typesafety.
18660         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
18661         "list".
18662         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
18663         redundant check on INSN_P (insns): this cannot hold, as "insns" is
18664         an INSN_LIST, not an insn.
18665         (reverse_equiv_p): Strengthen local "insns" from rtx to
18666         rtx_insn_list * and use methods for clarity and typesafety.
18667         (contains_reloaded_insn_p): Likewise for local "list".
18668
18669 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
18670
18671         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
18672         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
18673         (arm_builtin_vectorized_function): Likewise.
18674         * config/arm/arm_neon_builtins.def: New macro for copysignf.
18675         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
18676
18677 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
18678
18679         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
18680         * builtins.h (default_target_builtins): Likewise.
18681         * gcse.h (default_target_gcse): Likewise.
18682         * target-globals.h (target_globals): Add a destructor.  Convert
18683         void-pointer fields back to their real type and change from
18684         GTY((atomic)) to GTY((skip)).
18685         (restore_target_globals): Remove casts accordingly.
18686         * target-globals.c (save_target_globals): Use XCNEW rather than
18687         ggc_internal_cleared_alloc to allocate non-GC structures.
18688         Use ggc_cleared_alloc to allocate the target_globals structure
18689         itself.
18690         (target_globals::~target_globals): Define.
18691
18692 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18693
18694         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
18695         mnemonic instead of fldmfdd.
18696         * config/arm/arm.c (vfp_output_fstmd): Rename to...
18697         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
18698         Output vpush when address register is SP.
18699         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
18700         (vfp_output_vstmd): ... This.
18701         * config/arm/vfp.md (push_multi_vfp): Update call to
18702         vfp_output_vstmd.
18703
18704 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18705
18706         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
18707
18708 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18709
18710         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
18711         (*sqrtdf2_vfp): Likewise.
18712         (*cmpsf_vfp): Likewise.
18713         (*cmpsf_trap_vfp): Likewise.
18714         (*cmpdf_vfp): Likewise.
18715         (*cmpdf_trap_vfp): Likewise.
18716
18717 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18718
18719         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
18720         (*truncdfsf2_vfp): Likewise.
18721         (*truncsisf2_vfp): Likewise.
18722         (*truncsidf2_vfp): Likewise.
18723         (fixuns_truncsfsi2): Likewise.
18724         (fixuns_truncdfsi2): Likewise.
18725         (*floatsisf2_vfp): Likewise.
18726         (*floatsidf2_vfp): Likewise.
18727         (floatunssisf2): Likewise.
18728         (floatunssidf2): Likewise.
18729
18730 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18731
18732         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
18733         (*muldf3_vfp): Likewise.
18734         (*mulsf3negsf_vfp): Likewise.
18735         (*muldf3negdf_vfp): Likewise.
18736         (*mulsf3addsf_vfp): Likewise.
18737         (*muldf3adddf_vfp): Likewise.
18738         (*mulsf3subsf_vfp): Likewise.
18739         (*muldf3subdf_vfp): Likewise.
18740         (*mulsf3negsfaddsf_vfp): Likewise.
18741         (*fmuldf3negdfadddf_vfp): Likewise.
18742         (*mulsf3negsfsubsf_vfp): Likewise.
18743         (*muldf3negdfsubdf_vfp): Likewise.
18744
18745 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18746
18747         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
18748         (*absdf2_vfp): Likewise.
18749         (*negsf2_vfp): Likewise.
18750         (*negdf2_vfp): Likewise.
18751         (*addsf3_vfp): Likewise.
18752         (*adddf3_vfp): Likewise.
18753         (*subsf3_vfp): Likewise.
18754         (*subdf3_vfp): Likewise.
18755         (*divsf3_vfp): Likewise.
18756         (*divdf3_vfp): Likewise.
18757
18758 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18759
18760         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
18761         multiple.
18762         (arm_print_operand): Don't convert real values to decimal
18763         representation in default case.
18764         (fp_immediate_constant): Delete.
18765         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
18766         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
18767         syntax.
18768         (*thumb2_movsi_vfp): Likewise.
18769         (*movdi_vfp): Likewise.
18770         (*movdi_vfp_cortexa8): Likewise.
18771         (*movhf_vfp_neon): Likewise.
18772         (*movhf_vfp): Likewise.
18773         (*movsf_vfp): Likewise.
18774         (*thumb2_movsf_vfp): Likewise.
18775         (*movdf_vfp): Likewise.
18776         (*thumb2_movdf_vfp): Likewise.
18777         (*movsfcc_vfp): Likewise.
18778         (*thumb2_movsfcc_vfp): Likewise.
18779         (*movdfcc_vfp): Likewise.
18780         (*thumb2_movdfcc_vfp): Likewise.
18781
18782 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
18783
18784         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
18785         (-mtune): Likewise.
18786         (-mcpu): Likewise.
18787
18788 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18789
18790         PR target/61749
18791         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
18792         Use qualifier_immediate for last operand.  Rename to...
18793         (aarch64_types_ternop_lane_qualifiers): ... This.
18794         (TYPES_QUADOP): Rename to...
18795         (TYPES_TERNOP_LANE): ... This.
18796         (aarch64_simd_expand_args): Return const0_rtx when encountering user
18797         error.  Change return of 0 to return of NULL_RTX.
18798         (aarch64_crc32_expand_builtin): Likewise.
18799         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
18800         ICE when expanding unknown builtin.
18801         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
18802         TERNOP_LANE qualifiers.
18803         (sqdmlsl_lane): Likewise.
18804         (sqdmlal_laneq): Likewise.
18805         (sqdmlsl_laneq): Likewise.
18806         (sqdmlal2_lane): Likewise.
18807         (sqdmlsl2_lane): Likewise.
18808         (sqdmlal2_laneq): Likewise.
18809         (sqdmlsl2_laneq): Likewise.
18810
18811 2014-09-09  Nick Clifton  <nickc@redhat.com>
18812
18813         * doc/invoke.texi (Optimization Options): Add missing @gol to the
18814         end of a line.
18815         (S/390 and zSeries Options): Remove superfluous word from the
18816         description of the -mhotpatch option.
18817
18818 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
18819
18820         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
18821         * ira.c: #include "shrink-wrap.h"
18822         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
18823         * ifcvt.c: #include "shrink-wrap.h"
18824         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
18825
18826 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
18827
18828         * common/config/picochip/picochip-common.c: Remove.
18829         * config.gcc: Remove support for picochip.
18830         * config/picochip/constraints.md: Remove.
18831         * config/picochip/dfa_space.md: Remove.
18832         * config/picochip/dfa_speed.md: Remove.
18833         * config/picochip/picochip-protos.h: Remove.
18834         * config/picochip/picochip.c: Remove.
18835         * config/picochip/picochip.h: Remove.
18836         * config/picochip/picochip.md: Remove.
18837         * config/picochip/picochip.opt: Remove.
18838         * config/picochip/predicates.md: Remove.
18839         * config/picochip/t-picochip: Remove.
18840         * doc/md.texi: Don't document picochi.
18841
18842 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18843
18844         * basic-block.h (control_flow_insn_p): Strengthen param from
18845         const_rtx to const rtx_insn *.
18846         * cfgbuild.c (control_flow_insn_p): Likewise.
18847
18848 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18849
18850         * gcse.c (modify_mem_list): Strengthen this variable from
18851         vec<rtx> * to vec<rtx_insn *> *.
18852         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
18853         vec<rtx_insn *>.
18854         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
18855         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
18856         (record_last_mem_set_info): Strengthen param "insn" from rtx to
18857         rtx_insn *.
18858         (record_last_set_info): Likewise for local "last_set_insn".
18859
18860 2014-09-08  DJ Delorie  <dj@redhat.com>
18861
18862         * doc/invoke.texi (MSP430 Options): Add -minrt.
18863
18864 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18865
18866         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
18867         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
18868         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
18869         handling SH_SPLAT.
18870         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
18871         of extracted lane.
18872         (adjust_splat): New function.
18873         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
18874         (dump_swap_insn_table): Add case for SH_SPLAT.
18875
18876 2014-09-08  Richard Biener  <rguenther@suse.de>
18877
18878         PR ipa/63196
18879         * tree-inline.c (copy_loops): The source loop header should
18880         always be non-NULL.
18881         (tree_function_versioning): If loops need fixup after removing
18882         unreachable blocks fix them.
18883         * omp-low.c (simd_clone_adjust): Do not add incr block to
18884         loop under construction.
18885
18886 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
18887
18888         * config/aarch64/aarch64-builtins.c
18889         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
18890
18891 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18892
18893         * config/i386/cygming.h (TF_SIZE): Remove.
18894         * config/i386/darwin.h (TF_SIZE): Remove.
18895         * config/i386/dragonfly.h (TF_SIZE): Remove.
18896         * config/i386/freebsd.h (TF_SIZE): Remove.
18897         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
18898         * config/i386/openbsdelf.h (TF_SIZE): Remove.
18899         * config/i386/sol2.h (TF_SIZE): Remove.
18900         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
18901         * config/ia64/linux.h (TF_SIZE): Remove.
18902         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
18903         * doc/tm.texi: Regenerate.
18904         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
18905
18906 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18907
18908         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18909         Remove.
18910         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
18911         Remove.
18912         * doc/tm.texi: Regenerate.
18913         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18914         Poison.
18915         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
18916         * config/cris/cris.h (__make_dp): Remove.
18917
18918 2014-09-08  Richard Biener  <rguenther@suse.de>
18919
18920         PR bootstrap/63204
18921         * cfgloop.c (mark_loop_for_removal): Track former header
18922         unconditionally.
18923         * cfgloop.h (struct loop): Add former_header member unconditionally.
18924         * loop-init.c (fix_loop_structure): Enable bogus loop removal
18925         diagnostic unconditionally.
18926
18927 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
18928
18929         PR target/63190
18930         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
18931         constraint for operand0 and remove write only modifier from operand3.
18932
18933 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
18934
18935         PR rtl-optimization/62208
18936         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
18937         rather than const0_rtx in eq/ne-xor simplifications.
18938
18939 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
18940
18941         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
18942         (arc_output_mi_thunk): Likewise.
18943
18944         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
18945         arguments to silence bogus warning.
18946
18947 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
18948
18949         PR middle-end/63171
18950         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
18951
18952 2014-09-06  Tom de Vries  <tom@codesourcery.com>
18953
18954         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
18955         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
18956         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18957
18958 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
18959
18960         PR target/63188
18961         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
18962         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
18963
18964 2014-09-05  Easwaran Raman  <eraman@google.com>
18965
18966         PR rtl-optimization/62146
18967         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
18968         hoisted instruction unconditional.
18969
18970 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
18971
18972         PR target/63187
18973         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
18974         Do not allow any_mask_operand for operands[2].
18975         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
18976
18977 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18978
18979         * config/arc/arc.c (arc_print_operand): Use insn method of
18980         final_sequence for type-safety.
18981         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
18982         "insn" from rtx to rtx_insn *.
18983         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
18984         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
18985         Likewise for locals "branch", "label".
18986         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
18987         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
18988         (same_cmp_following_p): Likewise for locals "i2", "i3".
18989         * config/sh/sh_optimize_sett_clrt.cc
18990         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
18991         param "cbranch_insn".
18992         * function.c (convert_jumps_to_returns): Likewis for local "jump".
18993         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
18994         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
18995         const rtx_insn *.
18996         (condjump_p): Likewise.
18997         (condjump_in_parallel_p): Likewise.
18998         (pc_set): Likewise.
18999         (any_uncondjump_p): Likewise.
19000         (any_condjump_p): Likewise.
19001         (condjump_label): Likewise.
19002         (returnjump_p): Strengthen param "insn" from rtx to
19003         const rtx_insn *.
19004         (onlyjump_p): Strengthen param "insn" from const_rtx to
19005         const rtx_insn *.
19006         (jump_to_label_p): Likewise.
19007         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
19008         (invert_jump): Likewise.
19009         * reorg.c (simplejump_or_return_p): Add checked cast when calling
19010         simplejump_p.
19011         (get_jump_flags): Strengthen param "insn" from rtx to
19012         const rtx_insn *.
19013         (get_branch_condition): Likewise.
19014         (condition_dominates_p): Likewise.
19015         (make_return_insns): Move declaration of local "pat" earlier, to
19016         after we've handled NONJUMP_INSN_P and non-sequences, using its
19017         methods to simplify the code and for type-safety.
19018         * rtl.h (find_constant_src): Strengthen param from const_rtx to
19019         const rtx_insn *.
19020         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
19021         (condjump_p): Strengthen param from const_rtx to
19022         const rtx_insn *.
19023         (any_condjump_p): Likewise.
19024         (any_uncondjump_p): Likewise.
19025         (pc_set): Likewise.
19026         (condjump_label): Likewise.
19027         (simplejump_p): Likewise.
19028         (returnjump_p): Likewise.
19029         (onlyjump_p): Likewise.
19030         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
19031         (invert_jump): Likewise.
19032         (condjump_in_parallel_p): Strengthen param from const_rtx to
19033         const rtx_insn *.
19034         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
19035         to const rtx_insn *.
19036         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
19037         to const rtx_insn *.
19038         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
19039
19040 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19041
19042         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
19043         above the conditional, and convert the check on GET_CODE to a
19044         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
19045         the conditional.  Simplify the conditional by using methods of
19046         "trial_seq".
19047
19048 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19049
19050         * haifa-sched.c (check_clobbered_conditions): Strengthen local
19051         "link" from rtx to rtx_insn_list *, and use its methods for
19052         clarity and type-safety.
19053         (toggle_cancelled_flags): Likewise.
19054         (restore_last_backtrack_point): Likewise.
19055         (queue_to_ready): Use insn method of "link" in one place.
19056         (schedule_block): Strengthen local "link" from rtx to
19057         rtx_insn_list *, and use its methods for clarity and type-safety.
19058
19059 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19060
19061         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
19062         param "insn" from const_rtx to const rtx_insn *.
19063         (sched_get_reverse_condition_uncached): Likewise.
19064         (sched_get_condition_with_rev): Likewise.
19065         (sched_has_condition_p): Likewise.
19066         (sched_insns_conditions_mutex_p): Likewise for both params.
19067         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
19068         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
19069         (setup_insn_reg_uses): Move local "list" to be more tightly
19070         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
19071         its methods for clarity and type-safety.
19072         (sched_analyze_1): Strengthen local "pending" from rtx to
19073         rtx_insn_list *, and local "pending_mem" from rtx to
19074         rtx_expr_list *.  Use methods of each for clarity and type-safety.
19075         (sched_analyze_2): Likewise.
19076         (sched_analyze_insn): Likewise.
19077
19078         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
19079         param from const_rtx to const rtx_insn *.
19080         (sched_insns_conditions_mutex_p): Likewise for both params.
19081         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
19082         param.
19083
19084         * system.h (CONST_CAST_RTX_INSN): New macro.
19085
19086 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19087
19088         * recog.c (peep2_attempt): Strengthen return type from rtx to
19089         rtx_insn *.
19090         (peep2_update_life): Likewise for params "last", "prev", removing
19091         a checked cast made redundant by this.
19092         (peephole2_optimize): Likewise for local "last".
19093
19094 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19095
19096         * basic-block.h (set_block_for_insn): Eliminate this macro in
19097         favor of...
19098         * rtl.h (set_block_for_insn): New inline function, imposing the
19099         requirement that the "insn" param is an rtx_insn *.
19100
19101 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19102
19103         * caller-save.c (setup_save_areas): Strengthen local "insn" from
19104         rtx to rtx_insn *.
19105         * final.c (get_call_reg_set_usage): Likewise for first param,
19106         eliminating a checked cast.
19107         * regs.h (get_call_reg_set_usage): Likewise for first param.
19108         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
19109         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
19110         cast, replacing references to "x" with "call_insn" where
19111         appropriate.
19112         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
19113         rtx_insn *, adding a checked cast.
19114
19115 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19116
19117         * output.h (final_scan_insn): Strengthen first param from rtx to
19118         rtx_insn *.
19119
19120         * final.c (final_scan_insn): Likewise, renaming it back from
19121         "uncast_insn" to "insn", eliminating the checked cast.
19122
19123         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
19124         "vec" with an rtx_sequence * "seq", taking a copy of
19125         "final_sequence", and using methods of "seq" for clarity, and for
19126         type-safety in the calls to final_scan_insn.
19127         * config/mips/mips.c (mips_output_conditional_branch): Use methods
19128         of "final_sequence" for clarity, and for type-safety in the call to
19129         final_scan_insn.
19130         * config/sh/sh.c (print_slot): Strengthen param from rtx to
19131         rtx_sequence * and rename from "insn" to "seq".
19132
19133 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19134
19135         * jump.c (delete_related_insns): Introduce a new local "table" by
19136         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
19137         get_labels method of "table" to simplify access to the labels in
19138         the jump table.
19139
19140 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19141
19142         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
19143         f_minmaxs, f_minmaxd types.
19144
19145 2014-09-05  Richard Biener  <rguenther@suse.de>
19146
19147         * cfgloop.c (mark_loop_for_removal): Record former header
19148         when ENABLE_CHECKING.
19149         * cfgloop.h (strut loop): Add former_header member when
19150         ENABLE_CHECKING.
19151         * loop-init.c (fix_loop_structure): Sanity check loops
19152         marked for removal if they re-appeared.
19153
19154 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19155
19156         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
19157         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
19158
19159         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
19160         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
19161         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
19162         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
19163         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
19164         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
19165         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
19166         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
19167         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
19168         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
19169         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
19170         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
19171         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
19172         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
19173         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
19174         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
19175         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
19176         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
19177         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
19178         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
19179         with int{32,16,8}_t.
19180
19181 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19182
19183         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
19184         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
19185         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
19186         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
19187         Remove temporary __asm__ and reimplement.
19188
19189 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19190
19191         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
19192         handling cmge, cmgt, cmeq, cmtst.
19193
19194         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
19195         cmlt, cmgeu, cmgtu, cmtst): Remove.
19196
19197         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
19198         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
19199         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
19200         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
19201
19202 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19203
19204         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
19205         TYPES_TST): Define.
19206         (aarch64_fold_builtin): Update pattern for cmtst.
19207
19208         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
19209         Declare.
19210
19211         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
19212
19213         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
19214         Switch operands, separate out more cases, refactor.
19215
19216         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
19217
19218         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
19219         argument; rename old version to...
19220         (aarch64_const_vec_all_same_in_range_p): ...this.
19221         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
19222
19223         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
19224
19225 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19226
19227         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19228         Remove qualifier_const_pointer, update comment.
19229
19230 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19231
19232         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
19233
19234 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19235
19236         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
19237         varargs with pointer parameter.
19238         (aarch64_simd_expand_builtin): pass pointer into previous.
19239
19240 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19241
19242         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
19243         alus_ext.
19244
19245 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19246
19247         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
19248         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
19249         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
19250         Replace temporary asm with call to builtin.
19251         (vrbit_p8, vrbitq_p8): New functions.
19252
19253 2014-09-05  Richard Biener  <rguenther@suse.de>
19254
19255         * cfgloop.c (mark_loop_for_removal): New function.
19256         * cfgloop.h (mark_loop_for_removal): Declare.
19257         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
19258         (merge_blocks): Likewise.
19259         (duplicate_block): Likewise.
19260         * except.c (sjlj_emit_dispatch_table): Likewise.
19261         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19262         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19263         (thread_through_loop_header): Likewise.
19264
19265 2014-09-05  Richard Biener  <rguenther@suse.de>
19266
19267         PR middle-end/63148
19268         * fold-const.c (try_move_mult_to_index): Remove.
19269         (fold_binary_loc): Do not call it.
19270         * tree-data-ref.c (dr_analyze_indices): Strip conversions
19271         from the base object again.
19272
19273 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
19274
19275         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19276         DImode.
19277
19278 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19279
19280         PR target/55701
19281         * config/arm/arm.md (setmem): New pattern.
19282         * config/arm/arm-protos.h (struct tune_params): New fields.
19283         (arm_gen_setmem): New prototype.
19284         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19285         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19286         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19287         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19288         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19289         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19290         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19291         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19292         (arm_const_inline_cost): New function.
19293         (arm_block_set_max_insns): New function.
19294         (arm_block_set_non_vect_profit_p): New function.
19295         (arm_block_set_vect_profit_p): New function.
19296         (arm_block_set_unaligned_vect): New function.
19297         (arm_block_set_aligned_vect): New function.
19298         (arm_block_set_unaligned_non_vect): New function.
19299         (arm_block_set_aligned_non_vect): New function.
19300         (arm_block_set_vect, arm_gen_setmem): New functions.
19301
19302 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19303
19304         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19305
19306 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19307
19308         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19309
19310 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19311
19312         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19313         an rtx.
19314         * valtrack.h: Adjust.
19315
19316 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19317
19318         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19319         an rtx.
19320         (emit_jump_insn_before_noloc): Likewise.
19321         (emit_call_insn_before_noloc): Likewise.
19322         (emit_label_before): Likewise.
19323         (emit_label_after): Likewise.
19324         (emit_insn_before_setloc): Likewise.
19325         (emit_jump_insn_before_setloc): Likewise.
19326         (emit_call_insn_before_setloc): Likewise.
19327         (emit_call_insn_before): Likewise.
19328         * rtl.h: Adjust.
19329
19330 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19331
19332         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19333         rtx_insn *, eliminating a checked cast.
19334
19335 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19336
19337         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
19338         const_rtx to const rtx_insn *.
19339         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
19340         cast.
19341
19342 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19343
19344         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
19345         fixup_args_size_notes.
19346         * expr.c (fixup_args_size_notes): Strengthen first two params from
19347         rtx to rtx_insn *, eliminating a checked cast.
19348         * rtl.h (fixup_args_size_notes): Strengthen first two params from
19349         rtx to rtx_insn *.
19350
19351 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19352
19353         * haifa-sched.c (get_ready_element): Strengthen return type from
19354         rtx to rtx_insn *.
19355         * sched-int.h (get_ready_element): Likewise.
19356
19357 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
19358
19359         PR target/63165
19360         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
19361         indexed_or_indirect_operand instead of memory_operand.
19362         (floatsi<mode>2_lfiwzx_mem): Ditto.
19363
19364 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19365
19366         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
19367         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
19368         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
19369
19370 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19371
19372         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
19373         rtx.
19374         (get_last_nonnote_insn): Likewise.
19375         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
19376         * resource.c (find_basic_block): Likewise.
19377         * rtl.h: Adjust.
19378         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
19379         const_rtx.
19380
19381 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19382
19383         * genattr.c (main): Within the prototype of insn_latency written
19384         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
19385         * genautomata.c (output_internal_maximal_insn_latency_func):
19386         Within the implementation of insn_latency written out to
19387         insn-automata.c, strengthen both params from rtx to rtx_insn *,
19388         eliminating a pair of checked casts.
19389
19390 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19391
19392         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
19393         rtx_insn *.
19394
19395         * rtl.h (eh_returnjump_p): Likewise.
19396
19397 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
19398
19399         * Makefile.in (TAGS): Handle constructs in timevar.def.
19400
19401 2014-09-04  Guozhi Wei  <carrot@google.com>
19402
19403         PR target/62040
19404         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
19405         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
19406         it into two patterns.
19407         (move_lo_quad_internal_be_<mode>): Likewise.
19408
19409 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19410
19411         * doc/options.texi: Document that Var and Init are required if CPP
19412         is given.
19413         * optc-gen.awk: Require Var and Init if CPP is given.
19414         * common.opt (Wpedantic): Use Init.
19415
19416 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19417
19418         * config/rs6000/rs6000.c (special_handling_values): Add
19419         SH_EXTRACT.
19420         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
19421         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
19422         as swappable with special handling SH_EXTRACT.  Remove
19423         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
19424         optimization.
19425         (adjust_extract): New function.
19426         (handle_special_swappables): Add default to case statement; add
19427         case for SH_EXTRACT that calls adjust_extract.
19428         (dump_swap_insn_table): Handle SH_EXTRACT.
19429
19430 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19431
19432         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
19433         selection of 0th memory doubleword, regardless of endianness.
19434
19435 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19436
19437         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
19438
19439 2014-09-04  Alan Modra  <amodra@gmail.com>
19440
19441         PR debug/60655
19442         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
19443         can't be output.
19444
19445 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
19446
19447         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
19448         * targhooks.c (default_dwarf_frame_reg_mode): New function.
19449         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
19450         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
19451         * doc/tm.texi: Regenerate.
19452         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
19453         selection logic to default_dwarf_frame_reg_mode.
19454
19455 2014-09-03  Marek Polacek  <polacek@redhat.com>
19456
19457         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
19458         by -Wall.
19459
19460 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19461
19462         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
19463         the automodified register.
19464
19465 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19466
19467         * output.h (get_some_local_dynamic_name): Declare.
19468         * final.c (some_local_dynamic_name): New variable.
19469         (get_some_local_dynamic_name): New function.
19470         (final_end_function): Clear some_local_dynamic_name.
19471         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
19472         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19473         (print_operand): Report an error if '%&' is used inappropriately.
19474         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
19475         (get_some_local_dynamic_name_1): Delete.
19476         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
19477         (rs6000_get_some_local_dynamic_name): Delete.
19478         (rs6000_get_some_local_dynamic_name_1): Delete.
19479         (print_operand): Report an error if '%&' is used inappropriately.
19480         * config/s390/s390.c (machine_function): Remove some_ld_name.
19481         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19482         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
19483         * config/sparc/sparc.c: Include rtl-iter.h.
19484         (machine_function): Remove some_ld_name.
19485         (sparc_print_operand): Report an error if '%&' is used inappropriately.
19486         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19487
19488 2014-09-03  Richard Henderson  <rth@redhat.com>
19489
19490         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
19491         (aarch64_popwb_pair_reg): Remove.
19492         (aarch64_set_frame_expr): Remove.
19493         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
19494         the restore ops performed by the insns generated.
19495         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
19496         insn.  Perform the calls_eh_return addition later; do not attempt to
19497         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
19498         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
19499         special markup at all.  Load cfun->machine->frame.hard_fp_offset
19500         into a local variable.
19501         (aarch64_frame_pointer_required): Don't check calls_alloca.
19502
19503 2014-09-03  Richard Biener  <rguenther@suse.de>
19504
19505         * opts.c (default_options_optimization): Adjust
19506         max-combine-insns to 2 for -Og.
19507
19508 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19509
19510         PR ipa/62015
19511         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
19512         pass-trough jump functions correctly.
19513
19514 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19515
19516         PR ipa/61986
19517         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
19518         created replacements in ascending order of offsets.
19519         (known_aggs_to_agg_replacement_list): Likewise.
19520
19521 2014-09-03  Martin Liska  <mliska@suse.cz>
19522
19523         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
19524         is set to set uninitialized value for vnresult.
19525
19526 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19527
19528         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
19529         for TARGET_MUST_PASS_IN_STACK.
19530
19531 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19532
19533         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
19534         for TARGET_ARG_PARTIAL_BYTES.
19535
19536 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19537
19538         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
19539         instructions for varargs implementation.
19540         (nds32_expand_epilogue): Emit stack adjustment instructions for
19541         varargs implementation.
19542
19543 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19544
19545         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
19546         optimization detection.
19547
19548 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19549
19550         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
19551         arguments.
19552         (nds32_function_arg_advance): Deal with nameless arguments.
19553         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
19554         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
19555         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
19556
19557 2014-09-03  Richard Biener  <rguenther@suse.de>
19558
19559         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
19560         (struct bb_bitmap_sets): Remove deferred member.
19561         (BB_DEFERRED): Remove.
19562         (defer_or_phi_translate_block): Remove.
19563         (compute_antic_aux): Remove deferring of blocks, assert
19564         proper iteration order.
19565         (compute_antic): Do not set BB_DEFERRED.
19566         (eliminate): Allocate el_avail of proper size initially.
19567
19568 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19569
19570         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
19571         according to the value of crtl->args.pretend_args_size.
19572
19573 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19574
19575         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
19576         varargs information.
19577
19578 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19579
19580         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
19581         implementation for TARGET_SETUP_INCOMING_VARARGS.
19582         (nds32_strict_argument_naming): Refine comment.
19583         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
19584         Define for future implementation.
19585
19586 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
19587
19588         * config/i386/adxintrin.h (_subborrow_u32): New.
19589         (_addcarry_u32): Ditto.
19590         (_subborrow_u64): Ditto.
19591         (_addcarry_u64): Ditto.
19592         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
19593         IX86_BUILTIN_SBB64.
19594         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
19595         __builtin_ia32_sbb_u64
19596
19597 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19598
19599         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
19600         GPR-specific stuff.
19601         (nds32_function_arg_advance): Likewise.
19602         (nds32_init_cumulative_args): Likewise.
19603         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
19604         (NDS32_FIRST_GPR_REGNUM): Define.
19605         (NDS32_LAST_GPR_REGNUM): Define.
19606         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
19607         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19608         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19609         (machine_function): Use GRP-specific stuff.
19610
19611 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19612
19613         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
19614         (nds32_expand_epilogue): Likewise.
19615         (nds32_expand_prologue_v3push): Likewise.
19616         (nds32_expand_epilogue_v3pop): Likewise.
19617
19618 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19619
19620         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
19621         v3push/v3pop for variadic function.
19622         * config/nds32/nds32.md (prologue, epilogue): Likewise.
19623
19624 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19625
19626         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
19627         Check rtx for varargs implementation.
19628         (nds32_output_stack_pop): Likewise.
19629         * config/nds32/nds32-protos.h: Have a rtx argument for
19630         nds32_output_stack_push and nds32_output_stack_pop.
19631         * config/nds32/nds32.md: Likewise.
19632
19633 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19634
19635         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
19636         to check if FUNC is an interrupt service routine.
19637         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
19638
19639 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19640
19641         * config/nds32/nds32.h (machine_function): Add some fields for variadic
19642         arguments implementation.
19643
19644 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19645
19646         * config/nds32/nds32-predicates.c
19647         (nds32_valid_stack_push_pop): Rename to ...
19648         (nds32_valid_stack_push_pop_p): ... this.
19649         * config/nds32/nds32-protos.h: Likewise.
19650         * config/nds32/predicates.md: Likewise.
19651
19652 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19653
19654         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
19655         (nds32_emit_stack_v3push): ... this.
19656         (nds32_gen_stack_v3pop): Rename to ...
19657         (nds32_emit_stack_v3pop): ... this and consider CFA restore
19658         information.
19659
19660 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19661
19662         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
19663         (nds32_emit_stack_push_multiple): ... this.
19664         (nds32_gen_stack_pop_multiple): Rename to ...
19665         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
19666         information.
19667
19668 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19669
19670         PR target/61078
19671         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
19672         and add a second splitter to handle the remaining cases.
19673
19674 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19675
19676         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
19677
19678 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19679
19680         * cfgexpand.c (label_rtx_for_bb): Change type to
19681         hash_map<basic_block, rtx_code_label *> *.
19682         (expand_gimple_basic_block): Adjust.
19683         (pass_expand::execute): Likewise.
19684
19685 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19686
19687         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
19688         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
19689         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
19690         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
19691         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
19692         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
19693         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
19694         of rtx.
19695
19696 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19697
19698         * alloc-pool.c: Include coretypes.h.
19699         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
19700         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
19701         hash_set instead of htab.
19702         * ggc-page.c (in_gc): New variable.
19703         (ggc_free): Do nothing if a collection is taking place.
19704         (ggc_collect): Set in_gc appropriately.
19705         * ggc.h (gt_ggc_mx(const char *)): New function.
19706         (gt_pch_nx(const char *)): Likewise.
19707         (gt_ggc_mx(int)): Likewise.
19708         (gt_pch_nx(int)): Likewise.
19709         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
19710         (hash_map::hash_entry::pch_nx): Likewise.
19711         (hash_map::hash_entry::pch_nx_helper): Likewise.
19712 (hash_map::hash_map): Adjust.
19713 (hash_map::create_ggc): New function.
19714 (gt_ggc_mx): Likewise.
19715 (gt_pch_nx): Likewise.
19716         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
19717 (default_hashset_traits::pch_nx): Likewise.
19718 (hash_set::hash_entry::ggc_mx): Likewise.
19719 (hash_set::hash_entry::pch_nx): Likewise.
19720 (hash_set::hash_entry::pch_nx_helper): Likewise.
19721 (hash_set::hash_set): Adjust.
19722 (hash_set::create_ggc): New function.
19723 (hash_set::elements): Likewise.
19724 (gt_ggc_mx): Likewise.
19725 (gt_pch_nx): Likewise.
19726         * hash-table.h (hash_table::hash_table): Adjust.
19727 (hash_table::m_ggc): New member.
19728         (hash_table::~hash_table): Adjust.
19729         (hash_table::expand): Likewise.
19730         (hash_table::empty): Likewise.
19731 (gt_ggc_mx): New function.
19732         (hashtab_entry_note_pointers): Likewise.
19733 (gt_pch_nx): Likewise.
19734
19735 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19736
19737         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
19738         built-in definition.
19739         (XVCVUXDDP_SCALE): Likewise.
19740         (XVCVDPSXDS_SCALE): Likewise.
19741         (XVCVDPUXDS_SCALE): Likewise.
19742         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
19743         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
19744         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
19745         VSX_BUILTIN_XVCVDPUXDS_SCALE.
19746         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
19747         prototype.
19748         * config/rs6000/rs6000.c (real.h): New include.
19749         (rs6000_scale_v2df): New function.
19750         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
19751         (UNSPEC_VSX_XVCVUXDDP): Likewise.
19752         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
19753         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
19754         (vsx_xvcvsxddp_scale): New define_expand.
19755         (vsx_xvcvsxddp): New define_insn.
19756         (vsx_xvcvuxddp_scale): New define_expand.
19757         (vsx_xvcvuxddp): New define_insn.
19758         (vsx_xvcvdpsxds_scale): New define_expand.
19759         (vsx_xvcvdpsxds): New define_insn.
19760         (vsx_xvcvdpuxds_scale): New define_expand.
19761         (vsx_xvcvdpuxds): New define_insn.
19762         * doc/extend.texi (vec_ctf): Add new prototypes.
19763         (vec_cts): Likewise.
19764         (vec_ctu): Likewise.
19765         (vec_splat): Likewise.
19766         (vec_div): Likewise.
19767         (vec_mul): Likewise.
19768
19769 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19770
19771         PR target/62275
19772         * config/arm/neon.md
19773         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
19774         <v_cmp_result>): New pattern.
19775         * config/arm/iterators.md (NEON_VCVT): New int iterator.
19776         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
19777         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
19778         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
19779         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
19780         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
19781
19782 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19783
19784         PR target/62275
19785         * config/arm/iterators.md (FIXUORS): New code iterator.
19786         (VCVT): New int iterator.
19787         (su_optab): New code attribute.
19788         (su): Likewise.
19789         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
19790
19791 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19792
19793         * config/aarch64/predicates.md (aarch64_comparison_operation):
19794         New special predicate.
19795         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
19796         aarch64_comparison_operation instead of matching an operator.
19797         Update operand numbers.
19798         (csinc3<mode>_insn): Likewise.
19799         (*csinv3<mode>_insn): Likewise.
19800         (*csneg3<mode>_insn): Likewise.
19801         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
19802         * config/aarch64/aarch64.c (aarch64_get_condition_code):
19803         Return -1 instead of aborting on invalid condition codes.
19804         (aarch64_print_operand): Update aarch64_get_condition_code callsites
19805         to assert that the returned condition code is valid.
19806         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
19807
19808 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
19809
19810         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
19811         tree.def, and gimple.def
19812
19813 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
19814             Balaji V. Iyer  <balaji.v.iyer@intel.com>
19815             Igor Zamyatin  <igor.zamyatin@intel.com>
19816
19817         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
19818         (__cilkrts_cilk_for_64): Likewise.
19819         * cilk-common.c (declare_cilk_for_builtin): New function.
19820         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
19821         __cilkrts_cilk_for_64 bultins.
19822         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
19823         CILK_TI_F_LOOP_64.
19824         (cilk_for_32_fndecl): New define.
19825         (cilk_for_64_fndecl): Likewise.
19826         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
19827         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
19828         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
19829         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
19830         GF_OMP_FOR_COMBINED_INTO.
19831         * gimplify.c (gimplify_scan_omp_clauses): Added
19832         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19833         (gimplify_adjust_omp_clauses): Ditto.
19834         (gimplify_omp_for): Added CILK_FOR case.
19835         (gimplify_expr): Ditto.
19836         * omp-low.c: Include cilk.h.
19837         (extract_omp_for_data): Set appropriate kind for
19838         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
19839         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
19840         (create_omp_child_function_name): Added second argument to handle
19841         cilk_for case.
19842         (cilk_for_check_loop_diff_type): New function.
19843         (expand_cilk_for_call): Likewise.
19844         (expand_cilk_for): Likewise.
19845         (create_omp_child_function): Set cilk_for_count; handle the cases when
19846         it is true; call create_omp_child_function_name with second argument.
19847         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
19848         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
19849         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
19850         * tree-nested.c (convert_nonlocal_omp_clauses): Added
19851         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19852         (convert_local_omp_clauses): Ditto.
19853         * tree-pretty-print.c (dump_omp_clause): Added
19854         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
19855         (dump_generic_node): Added CILK_FOR case.
19856         * tree.c (omp_clause_num_ops): New element
19857         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
19858         (omp_clause_code_name): New element _Cilk_for_count_.
19859         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
19860         * tree.def: Add tree code for CILK_FOR.
19861
19862 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19863
19864         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
19865         (ppc403-compare): Add "exts with dot" case.
19866         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
19867         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
19868         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
19869         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
19870         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
19871         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
19872         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
19873         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19874         cell-cmp-microcoded): Similarly.
19875         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
19876         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
19877         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
19878         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
19879         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
19880         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
19881         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
19882         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
19883         (power6-compare): Add "exts with dot" case.
19884         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
19885         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
19886         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
19887
19888         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
19889         if avoiding Cell microcode.
19890         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
19891         (is_cracked_insn): Ditto.
19892         (insn_must_be_first_in_group): Ditto.
19893         * config/rs6000/rs6000.md (dot): Adjust comment.
19894         (cell_micro): Handle exts+dot.
19895         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
19896         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
19897         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
19898         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
19899         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
19900         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
19901         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
19902
19903 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19904
19905         * config/rs6000/rs6000.md (QHSI): Delete.
19906         (EXTQI, EXTHI, EXTSI): New mode iterators.
19907         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
19908         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19909         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
19910         9 anonymous instructions, and 8 splitters): Delete.
19911         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
19912         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
19913         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
19914         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
19915         *zero_extendsi<mode>2_dot2): New.
19916
19917 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19918
19919         * config/rs6000/rs6000.md (any_extend): New code iterator.
19920         (u, su): New code attributes.
19921         (dmode, DMODE): New mode attributes.
19922         (<su>mul<mode>3_highpart): New.
19923         (*<su>mul<mode>3_highpart): New.
19924         (<su>mulsi3_highpart_le): New.
19925         (<su>muldi3_highpart_le): New.
19926         (<su>mulsi3_highpart_64): New.
19927         (<u>mul<mode><dmode>3): New.
19928         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
19929         splitters): Delete.
19930         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
19931         splitters): Delete.
19932
19933 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19934
19935         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
19936         *mulsi3_internal2, and two splitters): Delete.
19937         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
19938         Delete.
19939         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
19940
19941 2014-09-02  Richard Biener  <rguenther@suse.de>
19942
19943         PR tree-optimization/62695
19944         * tree-ssa-structalias.c (find_func_clobbers): Add missing
19945         vector truncate.
19946
19947 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
19948
19949         PR target/62312
19950         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
19951
19952 2014-09-01  Andi Kleen  <ak@linux.intel.com>
19953
19954         * file-find.c (add_prefix_begin): Add.
19955         (do_add_prefix): Rename from add_prefix with first argument.
19956         (add_prefix): Add new wrapper.
19957         * file-find.h (add_prefix_begin): Add.
19958         * gcc-ar.c (main): Support -B option.
19959
19960 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
19961
19962         * genemit.c: Include dumpfile.h.
19963         (gen_split): Print name of splitter function to dump file.
19964
19965 2014-09-01  Richard Biener  <rguenther@suse.de>
19966
19967         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
19968         Use stack auto_vecs for constraint expressions.
19969         (find_func_aliases_for_call): Likewise.
19970         (find_func_aliases): Likewise.
19971         (find_func_clobbers): Likewise.
19972
19973 2014-09-01  Richard Biener  <rguenther@suse.de>
19974
19975         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
19976         operands vector in most cases.  Remove redundant code.
19977
19978 2014-09-01  Olivier Hainque  <hainque@adacore.com>
19979
19980         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
19981         $WIND_BASE instead of designating a harcoded arbitrary home dir.
19982         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
19983
19984 2014-09-01  Richard Biener  <rguenther@suse.de>
19985
19986         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
19987         copy_reference_ops_from_call, vn_nary_op_compute_hash,
19988         vn_reference_compute_hash, vn_reference_insert): Remove.
19989         (vn_reference_lookup_call): New function.
19990         * tree-ssa-sccvn.c (vn_reference_compute_hash,
19991         copy_reference_ops_from_ref, copy_reference_ops_from_call,
19992         vn_reference_insert, vn_nary_op_compute_hash): Make static.
19993         (create_reference_ops_from_call): Remove.
19994         (vn_reference_lookup_3): Properly update shared_lookup_references.
19995         (vn_reference_lookup_pieces): Assert that we updated
19996         shared_lookup_references properly.
19997         (vn_reference_lookup): Likewise.
19998         (vn_reference_lookup_call): New function.
19999         (visit_reference_op_call): Use it.  Avoid re-building the
20000         reference ops.
20001         (visit_reference_op_load): Remove redundant lookup.
20002         (visit_reference_op_store): Perform special tail-merging work
20003         only when possibly doing tail-merging.
20004         (visit_use): Likewise.
20005         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
20006
20007 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20008
20009         PR target/62025
20010         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
20011         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
20012         (find_inc): Revert 2014-08-13 change.
20013
20014 2014-09-01  Marek Polacek  <polacek@redhat.com>
20015
20016         PR middle-end/61903
20017         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
20018         Change the type of V to unsigned HOST_WIDE_INT.
20019
20020 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20021
20022         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
20023         the size of byte markers.
20024         (do_shift_rotate): Fix confusion between host, target and marker byte
20025         size.
20026         (verify_symbolic_number_p): Likewise.
20027         (find_bswap_or_nop_1): Likewise.
20028         (find_bswap_or_nop): Likewise.
20029
20030 2014-09-01  Olivier Hainque  <hainque@adacore.com>
20031
20032         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
20033         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
20034
20035 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
20036
20037         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
20038         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
20039         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
20040
20041 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
20042
20043         PR sanitizer/61897
20044         PR sanitizer/62140
20045         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
20046         (build_check_stmt): Likewise.
20047         (instrument_strlen_call): Likewise.
20048         (asan_expand_check_ifn): Likewise and fix types.
20049         (maybe_cast_to_ptrmode): New function.
20050
20051 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20052
20053         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
20054
20055 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
20056
20057         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
20058
20059 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
20060
20061         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
20062         prefix to function labels when generating fast indirect calls.
20063
20064 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
20065
20066         PR bootstrap/62304
20067
20068         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
20069         param back from rtx_insn * to rtx.  Rename param from "label" to
20070         "label_or_return", reintroducing "label" as an rtx_insn * after
20071         we've ensured it's not a RETURN.
20072         (first_active_target_insn): Likewise for return type and param;
20073         add a checked cast to rtx_insn * once we've ensured "insn" is not
20074         a RETURN.
20075         (steal_delay_list_from_target): Convert param "pnew_thread" back
20076         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
20077         with JUMP_LABEL.
20078         (own_thread_p): Convert param "thread" back from an rtx_insn * to
20079         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
20080         cast once we've established we're not dealing with a RETURN,
20081         renaming subsequent uses of "thread" to "thread_insn".
20082         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
20083         to JUMP_LABEL.
20084         (follow_jumps): Convert return type and param "label" from
20085         rtx_insn * back to rtx.  Move initialization of "value" to after
20086         the handling for ANY_RETURN_P, adding a checked cast there to
20087         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
20088         rename to "this_label_or_return", reintroducing "this_label" as
20089         an rtx_insn * once we've handled the case where it could be an
20090         ANY_RETURN_P.
20091         (fill_slots_from_thread): Rename param "thread" to
20092         "thread_or_return", converting from an rtx_insn * back to an rtx.
20093         Reintroduce name "thread" as an rtx_insn * local with a checked
20094         cast once we've handled the case of it being an ANY_RETURN_P.
20095         Convert local "new_thread" from an rtx_insn * back to an rtx.
20096         Add a checked cast when assigning to "trial" from "new_thread".
20097         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
20098         checked cast to rtx_insn * from "new_thread" when invoking
20099         get_label_before.
20100         (fill_eager_delay_slots): Convert locals "target_label",
20101         "insn_at_target" from rtx_insn * back to rtx.
20102         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
20103         (relax_delay_slots): Convert locals "trial", "target_label" from
20104         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
20105         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
20106         invoking update_block.
20107         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
20108         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
20109
20110         * resource.h (mark_target_live_regs): Undo erroneous conversion
20111         of second param of r214693, converting it back from rtx_insn * to
20112         rtx, since it could be a RETURN.
20113
20114         * resource.c (find_dead_or_set_registers): Similarly, convert
20115         param "jump_target" back from an rtx_insn ** to an rtx *, as we
20116         could be writing back a RETURN.  Rename local rtx_insn * "next" to
20117         "next_insn", and introduce "lab_or_return" as a local rtx,
20118         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
20119         (mark_target_live_regs): Undo erroneous conversion
20120         of second param of r214693, converting it back from rtx_insn * to
20121         rtx, since it could be a RETURN.  Rename it from "target" to
20122         "target_maybe_return", reintroducing the name "target" as a local
20123         rtx_insn * with a checked cast, after we've handled the case of
20124         ANY_RETURN_P.
20125
20126 2014-08-29  DJ Delorie  <dj@redhat.com>
20127
20128         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
20129         pointer size up to a power of two.
20130         * defaults.h (DWARF2_ADDR_SIZE): Round up.
20131         (POINTER_SIZE_UNITS): New, rounded up value.
20132         * dwarf2asm.c (size_of_encoded_value): Use it.
20133         (dw2_output_indirect_constant_1): Likewise.
20134         * expmed.c (init_expmed_one_conv): We now know the sizes of
20135         partial int modes.
20136         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
20137         * optabs.c (expand_float): Use precision, not size.
20138         (expand_fix): Likewise.
20139         * simplify-rtx (simplify_unary_operation_1): Likewise.
20140         * tree-dfa.c (get_ref_base_and_extent): Likewise.
20141         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
20142         (default_assemble_integer) Likewise.
20143         (dump_tm_clone_pairs): Likewise.
20144         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
20145         * var-tracking.c (adjust_mems): Allow partial-int modes also.
20146         (prepare_call_arguments): Likewise.
20147         * stor-layout.c (finalize_type_size): Preserve precision.
20148         (layout_type): Use precision, not size.
20149
20150         * expr.c (convert_move): If the target has an explicit converter,
20151         use it.
20152
20153 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20154
20155         * gdbinit.in: Skip various inline functions in rtl.h when
20156         stepping.
20157
20158 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
20159
20160         PR bootstrap/62301
20161         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
20162
20163 2014-08-29  Richard Biener  <rguenther@suse.de>
20164
20165         PR tree-optimization/62291
20166         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
20167         exactly the vector size needed and use quick_push.
20168         (phi_translate_1): Adjust comment.
20169         (valid_in_sets): Remove block argument and remove pointless
20170         checking of NAMEs.
20171         (dependent_clean): Adjust for removal of block argument.
20172         (clean): Likewise.
20173         (compute_antic_aux): Likewise.
20174         (compute_partial_antic_aux): Likewise.
20175
20176 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20177             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20178             Anna Tikhonova  <anna.tikhonova@intel.com>
20179             Ilya Tocar  <ilya.tocar@intel.com>
20180             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20181             Ilya Verbin  <ilya.verbin@intel.com>
20182             Kirill Yukhin  <kirill.yukhin@intel.com>
20183             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20184
20185         * config/i386/sse.md
20186         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
20187         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
20188         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
20189         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
20190
20191 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20192             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20193             Anna Tikhonova  <anna.tikhonova@intel.com>
20194             Ilya Tocar  <ilya.tocar@intel.com>
20195             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20196             Ilya Verbin  <ilya.verbin@intel.com>
20197             Kirill Yukhin  <kirill.yukhin@intel.com>
20198             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20199
20200         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
20201         * config/i386/sse.md
20202         (define_mode_iterator VI4_128_8_256): New.
20203         (define_mode_iterator VI2_128_4_256): Ditto.
20204         (define_mode_iterator PMOV_DST_MODE): Rename into
20205         (define_mode_iterator PMOV_DST_MODE_1): this.
20206         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
20207         Use PMOV_DST_MODE_1 mode iterator.
20208         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20209         Ditto.
20210         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20211         Ditto.
20212         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
20213         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
20214         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
20215         (define_mode_iterator PMOV_DST_MODE_2): New.
20216         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
20217         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
20218         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
20219         Ditto.
20220         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
20221         (define_mode_attr pmov_dst_3): Ditto.
20222         (define_mode_attr pmov_dst_zeroed_3): Ditto.
20223         (define_mode_attr pmov_suff_3): Ditto.
20224         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
20225         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
20226         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
20227         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
20228         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
20229         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
20230         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
20231         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
20232         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
20233         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
20234         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
20235         (define_mode_attr pmov_dst_4): Ditto.
20236         (define_mode_attr pmov_dst_zeroed_4): Ditto.
20237         (define_mode_attr pmov_suff_4): Ditto.
20238         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
20239         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
20240         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
20241         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
20242         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
20243         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
20244         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
20245         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
20246         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
20247         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
20248         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
20249
20250 2014-08-29  Richard Biener  <rguenther@suse.de>
20251
20252         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
20253         NON_LVALUE_EXPR in gimple.
20254
20255 2014-08-29  Richard Biener  <rguenther@suse.de>
20256
20257         PR middle-end/62292
20258         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
20259         from previous refactoring.
20260         (gimple_fold_builtin_strncpy): Likewise.
20261
20262 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20263
20264         PR bootstrap/62300
20265         * function.c (assign_parm_setup_reg): Remove erroneous checked
20266         cast to rtx_insn * on result of gen_extend_insn in favor of
20267         introducing a new local rtx "pat".
20268
20269 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20270
20271         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20272         to silence warning.
20273         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20274
20275 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20276
20277         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20278         (next_insn): Likewise.
20279         * emit-rtl.c (next_insn): Likewise.
20280         (previous_insn): Likewise.
20281         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20282         "insn" and "next" from rtx to rtx_insn *.
20283         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20284         "insn", "insn1", "vliw_start",  "prologue_end_note",
20285         "last_insn_in_packet".
20286
20287 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20288
20289         * shrink-wrap.h (active_insn_between): Strengthen both params from
20290         rtx to rtx_insn *.
20291         * function.c (active_insn_between): Likewise.
20292
20293 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20294
20295         * genattr.c (main): When writing out insn-attr.h, strengthen param
20296         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20297         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20298         writing out the definition of dfa_clear_single_insn_cache to the
20299         generated insn-automata.c
20300
20301 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20302
20303         * resource.h (clear_hashed_info_for_insn): Strengthen param from
20304         rtx to rtx_insn *.
20305         (incr_ticks_for_insn): Likewise.
20306         (init_resource_info): Likewise.
20307
20308         * resource.c (init_resource_info): Likewise.
20309         (clear_hashed_info_for_insn): Likewise.
20310         (incr_ticks_for_insn): Likewise.
20311
20312         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20313         rtx to rtx_insn *.
20314         (steal_delay_list_from_target): Use methods of "seq".
20315         (try_merge_delay_insns): Use methods of "merged_insns".
20316         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20317         (reorg_redirect_jump): Likewise for param "jump".
20318
20319 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20320
20321         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20322         rtx to rtx_insn *.
20323         * config/s390/s390.c (s390_split_branches): Eliminate top-level
20324         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20325         "set_insn".
20326         (s390_mainpool_finish): In three places, split out a local rtx
20327         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20328         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
20329         and split another local rtx "insn" out into rtx "pat" and
20330         rtx_insn * "insn".
20331         * config/sh/sh.c (output_branchy_insn): Rather than working
20332         directly on operands[9], introduce local rtx_code_label *
20333         variables named "lab" in two places, working on them, and then
20334         assigning them to operands[9], so that the intervening operations
20335         are known by the type system to be on insns.
20336
20337 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20338
20339         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
20340         const rtx_insn *.
20341
20342         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
20343         in invocation of INSN_HAS_LOCATION.
20344
20345 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20346
20347         * config/rs6000/altivec.h (vec_xl): New #define.
20348         (vec_xst): Likewise.
20349         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
20350         (XXSPLTD_V2DI): Likewise.
20351         (DIV_V2DI): Likewise.
20352         (UDIV_V2DI): Likewise.
20353         (MUL_V2DI): Likewise.
20354         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20355         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
20356         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
20357         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
20358         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
20359         (UNSPEC_VSX_DIVSD): Likewise.
20360         (UNSPEC_VSX_DIVUD): Likewise.
20361         (UNSPEC_VSX_MULSD): Likewise.
20362         (vsx_mul_v2di): New insn-and-split.
20363         (vsx_div_v2di): Likewise.
20364         (vsx_udiv_v2di): Likewise.
20365         (vsx_xxspltd_<mode>): New insn.
20366
20367 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20368
20369         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
20370         NEXT_INSN.
20371         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
20372         (NEXT_INSN): Likewise.
20373         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
20374         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
20375         const rtx_insn *.
20376         (no_labels_between_p): Likewise for both params.
20377
20378         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
20379         cast when using NEXT_INSN on operands[2].
20380         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
20381         "insn" from rtx to rtx_insn *, adding a checked cast.
20382         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
20383         rtx_insn *.
20384         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
20385         for third param.
20386         (arc_text_label): Likewise for param "insn".
20387         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
20388         "insn".
20389         (arc_ccfsm_record_condition): Likewise for param "jump".
20390         (arc_text_label): Likewise for local "label".
20391         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
20392         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
20393         a method for typesafety.  Add a checked cast.
20394         * config/arc/constraints.md (Clb): Add a checked cast when getting
20395         the CODE_LABEL from a LABEL_REF.
20396         * config/arm/arm.c (require_pic_register): Strengthen locals
20397         "seq", "insn" from rtx to rtx_insn *.
20398         (create_fix_barrier): Likewise for locals "selected", "next".
20399         (thumb1_reorg): Likewise for locals "prev", "insn".
20400         (arm_expand_prologue): Likewise for local "last".
20401         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
20402         operands[0].
20403         (thumb2_output_casesi): Likewise for operands[2].
20404         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
20405         strengthen local "insn" from rtx to rtx_insn *.
20406         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
20407         type and param "insn".
20408         (find_prev_insn_start): Likewise.
20409         (hwloop_optimize): Likewise for locals "insn", "last_insn",
20410         "prev".
20411         (gen_one_bundle): Likewise for loal "t".
20412         (find_load): Likewise for param "insn".
20413         (workaround_speculation): Likewise for locals "insn", "next",
20414         "target", "next_tgt".
20415         * config/c6x/c6x.c (assign_reservations): Likewise for both params
20416         and for locals "insn", "within", "last".
20417         (count_unit_reqs): Likewise for params "head", "tail" and local
20418         "insn".
20419         (try_rename_operands): Likewise for params "head", "tail".
20420         (reshuffle_units): Likewise for locals "head", "tail", "insn".
20421         (struct c6x_sched_context): Likewise for fields
20422         "last_scheduled_insn", "last_scheduled_iter0".
20423         (init_sched_state): Replace NULL_RTX with NULL.
20424         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
20425         to rtx_insn *.
20426         (undo_split_delayed_nonbranch): Likewise for param and for local
20427         "prev".
20428         (conditionalize_after_sched): Likewise for local "insn".
20429         (bb_earliest_end_cycle): Likewise.
20430         (filter_insns_above): Likewise for locals "insn", "next".
20431         (hwloop_optimize): Remove redundant checked cast.
20432         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
20433         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
20434         NULL_RTX with NULL.
20435         (cris_simple_epilogue): Likewise.
20436         (cris_expand_prologue): Likewise.
20437         (cris_expand_epilogue): Likewise.
20438         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
20439         local "insn" from rtx to rtx_insn *.
20440         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
20441         (struct frv_packet_group): Likewise for the elements within array
20442         fields "insns", "sorted", and for field "nop".
20443         (frv_packet): Likewise for the elements within array field
20444         "insns".
20445         (frv_add_insn_to_packet): Likewise for param "insn".
20446         (frv_insert_nop_in_packet): Likewise for param "insn" and local
20447         "last".
20448         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
20449         (frv_sort_insn_group_1): Likewise for local "insn".
20450         (frv_optimize_membar_local): Likewise.
20451         (frv_align_label): Likewise for locals "x", "last", "barrier",
20452         "label".
20453         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
20454         local.
20455         (ia64_sched_init): Likewise for local "insn".
20456         (scheduled_good_insn): Likewise for param "last".
20457         (struct _ia64_sched_context): Likewise for field
20458         "last_scheduled_insn".
20459         (ia64_init_sched_context): Replace NULL_RTX with NULL.
20460         (struct bundle_state): Likewise for field "insn".
20461         (issue_nops_and_insn): Likewise for param "insn".
20462         (get_next_important_insn): Likewise for return type and both
20463         params.
20464         (ia64_add_bundle_selector_before): Likewise for param "insn".
20465         (bundling): Likewise for params "prev_head_insn", "tail" and
20466         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
20467         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
20468         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
20469         Strengthen final param from rtx to rtx_insn *.
20470         (iq2000_move_1word): Likewise for second param.
20471         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
20472         param "cur_insn" and local "next_insn".
20473         (iq2000_move_1word): Likewise for param "insn".
20474         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
20475         casts when using NEXT_INSN on operands[1].
20476         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
20477         "insn" from rtx to rtx_insn *.
20478         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
20479         "x", introducing local rtx_insn * "insn" for when working with the
20480         CODE_LABEL of the LABEL_REF.
20481         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
20482         rtx_insn *.
20483         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
20484         param.
20485         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
20486         type.
20487         (conditionalize_block): Likewise for return type and param.
20488         (mcore_is_dead): Likewise for param "first" and local "insn".
20489         (emit_new_cond_insn): Likewise for return type.
20490         (conditionalize_block): Likewise for return type, param, and
20491         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
20492         "newinsn".
20493         (conditionalize_optimization): Likewise for local "insn".
20494         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
20495         using NEXT_INSN.
20496         * config/microblaze/microblaze.md: Add checked casts when using
20497         NEXT_INSN.
20498         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
20499         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
20500         and rtx_insn * "insn".
20501         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
20502         checked cast when using NEXT_INSN on operands[2].
20503         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
20504         local "insn" from rtx to rtx_insn *.
20505         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
20506         Likewise.
20507         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
20508         Add a checked cast when using NEXT_INSN on operands[1].
20509         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
20510         rtx to rtx_insn *.
20511         (pa_output_cbranch): Likewise for final param.
20512         (pa_output_lbranch): Likewise for second param.
20513         (pa_output_bb): Likewise for third param.
20514         (pa_output_bvb): Likewise.
20515         (pa_output_dbra): Likewise for second param.
20516         (pa_output_movb): Likewise.
20517         (pa_output_parallel_movb): Likewise.
20518         (pa_output_parallel_addb): Likewise.
20519         (pa_output_millicode_call): Likewise for first param.
20520         (pa_output_mul_insn): Likewise for second param.
20521         (pa_output_div_insn): Likewise for third param.
20522         (pa_output_mod_insn): Likewise for second param.
20523         (pa_jump_in_call_delay): Likewise for param.
20524         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
20525         (pa_output_div_insn): Likewise.
20526         (pa_output_mod_insn): Likewise.
20527         (pa_output_cbranch): Likewise.
20528         (pa_output_lbranch): Likewise.
20529         (pa_output_bb): Likewise.
20530         (pa_output_bvb): Likewise.
20531         (pa_output_dbra): Likewise.
20532         (pa_output_movb): Likewise.
20533         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
20534         to simplify and for typesafety.
20535         (pa_output_call): Use method of rtx_sequence *.
20536         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
20537         (pa_jump_in_call_delay): Likewise.
20538         (pa_output_parallel_movb): Likewise.
20539         (pa_output_parallel_addb): Likewise.
20540         (pa_following_call): Likewise.
20541         (pa_combine_instructions): Likewise for locals "anchor",
20542         "floater".
20543         (pa_can_combine_p): Likewise for params "anchor", "floater" and
20544         locals "start", "end".
20545         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
20546         param "insn" and local "local_insn".
20547         (picochip_final_prescan_insn): Likewise for local "local_insn".
20548         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
20549         local "insn".
20550         (uses_TOC): Likewise.
20551         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
20552         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
20553         splitting out to more tightly-scoped locals, 3 as rtx and one as
20554         rtx_insn *.
20555         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
20556         to rtx_insn *.
20557         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
20558         where needed.
20559         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
20560         to rtx_insn *.
20561         (fixup_addr_diff_vecs): Likewise.
20562         (reg_unused_after): Likewise for param 2.
20563         (sh_can_redirect_branch): Likewise for both params.
20564         (check_use_sfunc_addr): Likewise for param 1.
20565         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
20566         (find_barrier): Likewise for local "last_got".
20567         (gen_block_redirect): Likewise for return type, param "jump" and
20568         locals "prev", "scan", "next", "insn".
20569         (struct far_branch): Likewise for fields "near_label",
20570         "insert_place", "far_label".
20571         (gen_far_branch): Likewise for local "jump".
20572         (fixup_addr_diff_vecs): Likewise for param "first" and locals
20573         "insn", "prev".
20574         (barrier_align): Likewise for param and for locals "prev", "x".
20575         Introduce local rtx_sequence * "prev_seq" and use insn method for
20576         typesafety and clarity.
20577         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
20578         (get_dest_uid): Likewise for local "dest".
20579         (split_branches): Likewise for locals "next", "beyond", "label",
20580         "block", "far_label".  Add checked casts when assigning to
20581         bp->far_label and "far_label".
20582         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
20583         (sequence_insn_p): Likewise.
20584         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
20585         more loop-scoped rtx "insn" when walking LABEL_REFS.
20586         (sh_can_redirect_branch): Strengthen both params from rtx to
20587         rtx_insn *.
20588         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
20589         new local rtx_sequence * "seq" via a dyn_cast, and use a method
20590         for clarity and typesafety.
20591         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
20592         "insn" from rtx to rtx_insn *.
20593         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
20594         when using NEXT_INSN on the CODE_LABEL in operands[2].
20595         (define_insn "casesi_worker_2"): Likewise.
20596         (define_insn "casesi_shift_media"): Likewise.
20597         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
20598         operands[3].
20599         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
20600         Strengthen field "insn" from rtx to rtx_insn *.
20601         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
20602         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
20603         param "start_insn" and local "start_insn".
20604         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
20605         field "insn".
20606         (find_set_of_reg_bb): Likewise for param "insn".
20607         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
20608         (trace_reg_uses): Likewise for param "start_insn".
20609         (sh_treg_combine::cbranch_trace): Likewise for field
20610         "cbranch_insn".
20611         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
20612         param "insn".
20613         (sh_treg_combine::record_set_of_reg): Likewise for param
20614         "start_insn" and local "i".
20615         (sh_treg_combine::can_remove_cstore): Likewise for local
20616         "prev_insn".
20617         (sh_treg_combine::try_optimize_cbranch): Likewise for param
20618         "insn".
20619         (sh_treg_combine::execute): Likewise for local "i".
20620         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
20621         param.
20622         (sparc_check_64): Likewise for second param.
20623         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
20624         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
20625         dyn_cast, using its insn method for typesafety and clarity.
20626         (empty_delay_slot): Strengthen param "insn" from rtx to
20627         rtx_insn *.
20628         (set_extends): Likewise.
20629         (sparc_check_64): Likewise.
20630         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
20631         for locals "seq", "last_insn".
20632         (combine_bnp): Likewise for param "insn".
20633         (xstormy16_reorg): Likewise for local "insn".
20634         * config/v850/v850.c (substitute_ep_register): Likewise for params
20635         "first_insn", "last_insn" and local "insn".
20636         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
20637         elements of "regs" array, and local "insn".
20638         * except.c (emit_note_eh_region_end): Likewise for param "insn".
20639         * final.c (final_sequence): Strengthen this global from rtx to
20640         rtx_sequence *.
20641         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
20642         rtx_insn *.
20643         (final_scan_insn): Update assignment to "final_sequence" to be
20644         from "seq", the cast version of "body", for type-safety.
20645         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
20646         "insns" from rtx to rtx_insn *.
20647         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
20648         * genattr.c (main): When writing out generated insn-attr.h,
20649         strengthen params 1 and 3 of eligible_for_delay,
20650         eligible_for_annul_true, eligible_for_annul_false from rtx to
20651         rtx_insn *.
20652         * genattrtab.c (write_eligible_delay): Likewise when writing out
20653         generated insn-attrtab.c; also local "insn" the generated
20654         functions.
20655         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
20656         to rtx_insn *.
20657         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
20658         "start_label" from rtx to rtx_insn *.
20659         * ira.c (decrease_live_ranges_number): Likewise for local "p".
20660         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
20661         "insns" and local "insn".
20662         (validate_equiv_mem): Likewise for param "start" and local "insn".
20663         (memref_used_between_p): Likewise for params "start", "end" and
20664         local "insn".
20665         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
20666         final param.
20667         * loop-doloop.c (doloop_optimize): Within region guarded by
20668         INSN_P (doloop_pat), introduce a new local rtx_insn *
20669         "doloop_insn" via a checked cast, and use it for typesafety,
20670         eventually writing the value back into doloop_pat.
20671         * output.h (final_sequence): Strengthen this global from rtx to
20672         rtx_sequence *.
20673         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
20674         reintroducing "insn" as an rtx_insn * via a checked cast.
20675         Strengthen param "attempt" and local "new_insn"from rtx to
20676         rtx_insn *.
20677         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
20678         to rtx_insn *.
20679         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
20680         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
20681         "p" in favor of more tightly-scoped replacements, sometimes rtx
20682         and sometimes rtx_insn *, as appropriate.
20683         (delete_output_reload): Eliminate top-level rtx "i1", splitting
20684         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
20685         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
20686         local "trial" from rtx to rtx_insn *.
20687         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
20688         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
20689         rtx_sequence * and use methods for clarity and typesafety.
20690         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
20691         rtx to rtx_insn *.  Strenghten local "li" from rtx to
20692         rtx_insn_list * and use its methods for clarity and typesafety.
20693         (steal_delay_list_from_target): Strengthen param "insn" from rtx
20694         to rtx_insn *.
20695         (steal_delay_list_from_fallthrough): Likewise.
20696         (try_merge_delay_insns): Likewise for param "thread" and locals
20697         "trial", "next_trial", "delay_insn".
20698         (redundant_insn): Likewise for param "target" and local "trial".
20699         (own_thread_p): Likewise for param "thread" and locals
20700         "active_insn", "insn".
20701         (get_label_before): Likewise for param "insn".
20702         (fill_simple_delay_slots): Likewise for local "new_label"; use
20703         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
20704         (label_before_next_insn): Strengthen return type and local "insn"
20705         from rtx to rtx_insn *.
20706         (relax_delay_slots): Likewise for locals "other", "tmp".
20707         (make_return_insns): Likewise for param "first" and locals "insn",
20708         "jump_insn", "prev".  Move declaration of "pat" to its assignment
20709         and strengthen from rtx to rtx_sequence *.  Use its methods for
20710         clarity and typesafety.
20711         * rtlanal.c (no_labels_between_p): Strengthen params from
20712         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
20713         rtx_insn *.
20714         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
20715         from const_rtx to const rtx_insn *.
20716         (reg_set_between_p): Rename param "from_insn" to
20717         "uncast_from_insn", and reintroduce "from_insn" as a
20718         const rtx_insn * via a checked cast.
20719         (modified_between_p): Likewise for param "start" as "uncast_start".
20720         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
20721         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
20722         "tmp", head" from rtx to rtx_insn *.
20723         (recompute_rev_top_order): Likewise for local "insn".
20724         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
20725         * store-motion.c (build_store_vectors): Likewise for local "insn".
20726         Strengthen local "st" from rtx to rtx_insn_list * and use methods
20727         for clarity and typesafety.
20728         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
20729         rtx to rtx_insn *.
20730         (computation_cost): Likewise for local "seq".
20731         (get_address_cost): Likewise.
20732
20733 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20734
20735         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
20736         const rtx_insn *.
20737         (label_is_jump_target_p): Likewise for second param.
20738
20739         * rtlanal.c (tablejump_p): Likewise for param "insn".
20740         (label_is_jump_target_p): Likewise for param "jump_insn".
20741
20742 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20743
20744         * rtl.h (find_first_parameter_load): Strengthen return type and
20745         both params from rtx to rtx_insn *.
20746         * rtlanal.c (find_first_parameter_load): Strengthen return type,
20747         both params and locals "before", "first_set" from rtx to
20748         rtx_insn *.  Remove now-redundant cast.
20749         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
20750
20751 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20752
20753         * rtl.h (find_last_value): Delete.
20754         * rtlanal.c (find_last_value): Delete.
20755
20756 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20757
20758         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
20759         from rtx to rtx_insn *.
20760         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
20761         rtx "note" with new local rtx_insn * "new_head" when calculating
20762         head insn of new basic block.
20763         * combine.c (combine_split_insns): Strengthen return type and local
20764         "ret" from rtx to rtx_insn *.
20765         (likely_spilled_retval_p): Likewise for locals "use" and "p".
20766         (try_combine): Eliminate local "m_split", splitting into new
20767         locals "m_split_insn" and "m_split_pat".
20768         (find_split_point): Strengthen local "seq" from rtx into
20769         rtx_insn *.
20770         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
20771         locals "label", "branch".
20772         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
20773         for local "insn".
20774         (define_expand "umulsi3_highpart"): Likewise for local "insn".
20775         * dse.c (note_add_store_info): Likewise for fields "first",
20776         "current".
20777         (note_add_store): Likewise for local "insn".
20778         (emit_inc_dec_insn_before): Likewise for locals "insn",
20779         "new_insn", "cur".
20780         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
20781         (replace_read): Likewise for locals "insns", "this_insn".
20782         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
20783         (notice_eh_throw): Likewise for param "insn".
20784         (before_next_cfi_note): Likewise for return type, param, and local
20785         "prev".
20786         (connect_traces): Likewise for local "note".
20787         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
20788         (verify_rtl_sharing): Likewise.
20789         (unshare_all_rtl_in_chain): Likewise for param "insn".
20790         (get_first_nonnote_insn): Likewise for local "insn".
20791         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
20792         "seq" and use its methods to clarify things.
20793         (next_insn): Strengthen return type from rtx to rtx_insn *.
20794         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
20795         local rtx_insn * using a checked cast, dropping a checked cast
20796         made redundant by this change.  Use a cast to and method of
20797         rtx_sequence to clarify the code.
20798         (previous_insn): Rename param "insn" to "uncast_insn" and
20799         reintroduce "insn" as a local rtx_insn * using a checked cast,
20800         dropping a checked cast made redundant by this change.  Use a cast
20801         to and method of rtx_sequence to clarify the code.
20802         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
20803         reintroduce "insn" as a local rtx_insn * using a checked cast,
20804         dropping a checked cast made redundant by this change.
20805         (next_nonnote_insn_bb): Likewise.
20806         (prev_nonnote_insn): Likewise.
20807         (prev_nonnote_insn_bb): Likewise.
20808         (next_nondebug_insn): Likewise.
20809         (prev_nondebug_insn): Likewise.
20810         (next_nonnote_nondebug_insn): Likewise.
20811         (prev_nonnote_nondebug_insn): Likewise.
20812         (next_real_insn): Likewise.
20813         (prev_real_insn): Likewise.
20814         (next_active_insn): Likewise.
20815         (prev_active_insn): Likewise.
20816         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
20817         clarity.
20818         (prev_cc0_setter): Likewise.
20819         (try_split): Rename param "trial" to "uncast_trial" and
20820         reintroduce "insn" as a local rtx_insn * using a checked cast,
20821         dropping checked casts made redundant by this change.
20822         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
20823         rtx to rtx_insn *.
20824         (remove_insn): Rename param "insn" to "uncast_insn" and
20825         reintroduce "insn" as a local rtx_insn * using a checked cast.
20826         (emit_pattern_after_setloc): Likewise for param "after", as
20827         "uncast_after".
20828         (emit_pattern_after): Likewise.  Strengthen local "prev" from
20829         rtx to rtx_insn *.
20830         (emit_pattern_before_setloc): Rename param "before" to
20831         "uncast_before" and reintroduce "before" as a local rtx_insn *
20832         using a checked cast.  Strengthen locals "first", "last" from
20833         rtx to rtx_insn *.
20834         (emit_pattern_before): Likewise rename/cast param "before" to
20835         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
20836         * except.c (copy_reg_eh_region_note_forward): Strengthen param
20837         "first" and local "insn" from rtx to rtx_insn *.
20838         (copy_reg_eh_region_note_backward): Likewise for param "last"
20839         and local "insn".
20840         * expr.c (fixup_args_size_notes): Rename param "last" to
20841         "uncast_last" and reintroduce "last" as a local rtx_insn *
20842         using a checked cast.  Strengthen local "insn" from rtx to
20843         rtx_insn *.
20844         * function.c (set_insn_locations): Strengthen param "insn" from
20845         rtx to rtx_insn *.
20846         (record_insns): Likewise for param "insns" and local "tmp".
20847         (active_insn_between): Rename param "tail" to
20848         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
20849         using a checked cast.
20850         (thread_prologue_and_epilogue_insns): Split out top-level local
20851         rtx "seq" into three different rtx_insn * locals.  Strengthen
20852         local "prologue_seq" from rtx to rtx_insn *.
20853         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
20854         from rtx to rtx_insn *.
20855         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
20856         (priority): Likewise for locals "prev_first", "twin".
20857         (setup_insn_max_reg_pressure): Likewise for param "after".
20858         (sched_setup_bb_reg_pressure_info): Likewise.
20859         (no_real_insns_p): Strengthen params from const_rtx to
20860         const rtx_insn *.
20861         (schedule_block): Strengthen local "next_tail" from rtx to
20862         rtx_insn *.
20863         * ifcvt.c (find_active_insn_before): Strengthen return type and
20864         param "insn" from rtx to rtx_insn *.
20865         (find_active_insn_after): Likewise.
20866         (cond_exec_process_insns): Likewise for param "start" and local "insn".
20867         (cond_exec_process_if_block): Likewise for locals "then_start",
20868         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
20869         (noce_process_if_block): Likewise for local "jump".
20870         (merge_if_block): Likewise for two locals named "end".
20871         (cond_exec_find_if_block): Likewise for local "last_insn".
20872         * jump.c (delete_related_insns): Rename param "insn" to
20873         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
20874         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
20875         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
20876         NULL.
20877         (split_reg): Likewise.
20878         * lra.c (lra_process_new_insns): Likewise.
20879         * modulo-sched.c (permute_partial_schedule): Strengthen param
20880         "last" from rtx to rtx_insn *.
20881         * optabs.c (add_equal_note): Likewise for param "insns" and local
20882         "last_insn".
20883         (expand_binop_directly): Add checked casts to rtx_insn * within
20884         NEXT_INSN (pat) uses.
20885         (expand_unop_direct): Likewise.
20886         (maybe_emit_unop_insn): Likewise.
20887         * recog.c (peep2_attempt): Strengthen locals "last",
20888         "before_try", "x" from rtx to rtx_insn *.
20889         * reorg.c (optimize_skip): Strengthen return type and local
20890         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
20891         and locals "trial", "next_trial" from rtx to rtx_insn *.
20892         * resource.c (next_insn_no_annul): Strengthen return type and
20893         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
20894         rtx_sequence to clarify the code.
20895         (mark_referenced_resources): Add a checked cast to rtx_insn *
20896         within PREV_INSN (x).
20897         (find_dead_or_set_registers): Strengthen return type, param
20898         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
20899         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
20900         to rtx_insn **.
20901         (mark_target_live_regs): Strengthen params "insns" and "target",
20902         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
20903         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
20904         the code.
20905         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
20906         from rtx to rtx_insn *.
20907         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
20908         from rtx to rtx_insn *.
20909         (copy_reg_eh_region_note_backward): Likewise.
20910         (unshare_all_rtl_in_chain): Likewise for sole param.
20911         (dump_rtl_slim): Strengthen second and third params from const_rtx
20912         to const rtx_insn *.
20913         * sched-deps.c (sched_free_deps): Strengthen params "head" and
20914         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
20915         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
20916         "next_tail" from rtx to rtx_insn *.
20917         (begin_move_insn): Likewise for local "next".
20918         * sched-int.h (sched_free_deps): Likewise for first and second
20919         params.
20920         (no_real_insns_p): Strengthen both params from const_rtx to
20921         const rtx_insn *.
20922         (sched_setup_bb_reg_pressure_info): Strengthen second params from
20923         rtx to rtx_insn *.
20924         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
20925         "next_tail".
20926         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
20927         and locals "insn", "tail" from const_rtx to const rtx_insn *.
20928         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
20929         rtx_insn *.
20930         (debug_rtl_slim): Strengthen params "first" and "last" from
20931         const_rtx to const rtx_insn *.
20932         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
20933         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
20934         (convert_to_simple_return): Likewise for param "returnjump".
20935         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
20936         "prologue_seq".
20937         (convert_to_simple_return): Likewise for param "returnjump".
20938         * valtrack.c (propagate_for_debug): Likewise for params
20939         "insn", "last".
20940         * valtrack.h (propagate_for_debug): Likewise for second param.
20941
20942 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20943
20944         * output.h (insn_current_reference_address): Strengthen param
20945         from rtx to rtx_insn *.
20946         * final.c (insn_current_reference_address): Likewise.
20947
20948 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20949
20950         * basic-block.h (inside_basic_block_p): Strengthen param from
20951         const_rtx to const rtx_insn *.
20952         * cfgbuild.c (inside_basic_block_p): Likewise.
20953
20954 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20955
20956         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
20957         rtx_insn *.
20958         (get_trace_info): Likewise for param "insn".
20959         (save_point_p): Likewise.
20960         (maybe_record_trace_start): Likewise for both params.
20961         (maybe_record_trace_start_abnormal): Likewise.
20962         (create_trace_edges): Likewise for sole param and for three of the
20963         locals named "lab".
20964         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
20965         to rtx_insn *, and update a call to pat->element to pat->insn.
20966
20967 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20968
20969         * function.h (struct expr_status): Convert field "x_forced_labels"
20970         from rtx_expr_list * to rtx_insn_list *.
20971
20972         * cfgbuild.c (make_edges): Convert local "x" from an
20973         rtx_expr_list * to an rtx_insn_list *, replacing use of
20974         "element" method with "insn" method.
20975         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20976         * except.c (sjlj_emit_dispatch_table): Replace use of
20977         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
20978         forced_labels.
20979         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
20980         rtx_expr_list * to an rtx_insn_list *, replacing use of
20981         "element" method with "insn" method.
20982         * reload1.c (set_initial_label_offsets): Likewise for local "x".
20983         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
20984         rtx_insn *, adding a checked cast.  Replace use of
20985         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
20986         forced_labels.
20987         (expand_label): Likewise for local "label_r".
20988
20989 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20990
20991         * function.h (struct rtl_data): Convert field
20992         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
20993         rtx_insn_list *.
20994         * rtl.h (remove_node_from_insn_list): New prototype.
20995
20996         * builtins.c (expand_builtin): When prepending to
20997         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20998         gen_rtx_EXPR_LIST.
20999         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
21000         to rtx_insn_list *, and use its "insn" method rather than
21001         "element" method.
21002         * cfgrtl.c (delete_insn): Use new function
21003         remove_node_from_insn_list rather than
21004         remove_node_from_expr_list.
21005         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
21006         to rtx_insn_list *, and use its "insn" method rather than
21007         "element" method.
21008         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21009         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21010         * rtlanal.c (remove_node_from_insn_list): New function, adapted
21011         from remove_node_from_expr_list.
21012         * stmt.c (expand_label): When prepending to
21013         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
21014         gen_rtx_EXPR_LIST.
21015
21016 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21017
21018         * function.h (struct rtl_data): Strengthen fields "x_return_label"
21019         and "x_naked_return_label" from rtx to rtx_code_label *.
21020
21021 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21022
21023         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
21024         (SET_NEXT_INSN): Likewise.
21025         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
21026
21027         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
21028         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
21029         to split out the SEQUENCE from local "bundle", strengthening the
21030         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
21031         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
21032         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
21033         and the type of the elements of the "slot" array from rtx to
21034         rtx_insn *.
21035         (reorg_split_calls): Likewise for locals "insn" and "next", and
21036         the type of the elements of the "slot" array.
21037
21038         * config/frv/frv.c (frv_nops): Likewise for the elements of this
21039         array.
21040         (frv_function_prologue): Likewise for locals "insn", "next",
21041         "last_call".
21042         (frv_register_nop): Introduce a local "nop_insn" to be the
21043         rtx_insn * containing rtx "nop".
21044
21045         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
21046         used as an insn and sometimes as a pattern, so rename it to
21047         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
21048         using it where dealing with the core insn.
21049
21050         * config/picochip/picochip.c (reorder_var_tracking_notes):
21051         Strengthen locals "insn", "next", "last_insn", "queue",
21052         "next_queue", "prev" from rtx to rtx_insn *.
21053
21054         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
21055         the second param is an rtx_insn ** rather than an rtx **.
21056         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
21057         from rtx to rtx_sequence *, and introduce local named "sequence",
21058         using methods of rtx_sequence to clarify the code.
21059         (remove_insn): Introduce local rtx_sequence * named "sequence" and
21060         use its methods.
21061         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
21062         Rename param "after" to "uncast_after", reintroducing "after" as a
21063         local rtx_insn * with a checked cast.
21064         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
21065         reintroducing "after" as a local rtx_insn * with a checked cast.
21066         Strengthen local "last" from rtx to rtx_insn * and remove the
21067         now-redundant checked casts.
21068         (copy_delay_slot_insn): Strengthen return type and param from rtx
21069         to rtx_insn *.
21070
21071         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
21072         "last" from rtx to rtx_insn *.
21073
21074 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
21075
21076         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
21077         param from rtx to rtx_insn *.
21078
21079         * emit-rtl.c (copy_delay_slot_insn): Likewise.
21080
21081         * reorg.c (skip_consecutive_labels): Strengthen return type, param
21082         and local "insn" from rtx to rtx_insn *.
21083         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
21084         (unfilled_slots_next): Likewise.
21085         (function_return_label): Strengthen from rtx to rtx_code_label *.
21086         (function_simple_return_label): Likewise.
21087         (first_active_target_insn): Strengthen return type and param from
21088         rtx to rtx_insn *.
21089         (find_end_label): Strengthen return type from rtx to
21090         rtx_code_label *; strengthen locals as appropriate.
21091         (emit_delay_sequence): Strengthen return type, param "insn" and
21092         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
21093         and local "li" from rtx to rtx_insn_list *, using methods of
21094         rtx_insn_list for clarity and typesafety.
21095         (add_to_delay_list): Strengthen return type and param "insn" from
21096         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
21097         rtx_insn_list * and use methods of rtx_insn_list.
21098         (delete_from_delay_slot): Strengthen return type, param "insn",
21099         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
21100         Strengthen local "seq" from rtx to rtx_sequence *, and local
21101         "delay_list" from rtx to rtx_insn_list *, using methods of
21102         rtx_sequence for clarity and type-safety.
21103         (delete_scheduled_jump): Add checked cast when invoking
21104         delete_from_delay_slot.  Strengthen local "trial" from rtx to
21105         rtx_insn *.
21106         (optimize_skip): Strengthen return type and local "delay_list"
21107         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
21108         rtx_insn *.
21109         (steal_delay_list_from_target): Strengthen return type, param
21110         "delay_list" and local "new_delay_list" from rtx to
21111         rtx_insn_list *.  Strengthen param "seq" from rtx to
21112         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
21113         rtx_insn **.
21114         Split out local "temp" into multiple more-tightly scoped locals:
21115         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
21116         of rtx_insn_list and rtx_sequence for clarity and typesafety.
21117         Strengthen locals named "trial" from rtx to rtx_insn *.
21118         (steal_delay_list_from_fallthrough): Strengthen return type and
21119         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
21120         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
21121         Strengthen local "trial" from rtx to rtx_insn *.
21122         (try_merge_delay_insns): Strength local "merged_insns" from rtx
21123         to rtx_insn_list * and use its methods.  Strengthen local "pat"
21124         from rtx to rtx_sequence * and use its methods.  Strengthen locals
21125         "dtrial" and "new_rtx" from rtx to rtx_insn *.
21126         (get_label_before): Strengthen return type and local "label" from
21127         rtx to rtx_insn *.
21128         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
21129         "next_trial", "next", prev".  Strengthen local "delay_list" from
21130         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
21131         rtx_insn **.
21132         (follow_jumps): Strengthen return type, param "label" and locals
21133         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
21134         (fill_slots_from_thread): Strengthen return type, param
21135         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
21136         "insn", "thread", "opposite_thread" and locals "new_thread",
21137         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
21138         "sequence" from a checked cast to rtx_sequence so that we can call
21139         steal_delay_list_from_target and steal_delay_list_from_fallthrough
21140         with an rtx_sequence *.
21141         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
21142         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
21143         Strengthen local "delay_list" from rtx to rtx_insn_list *.
21144         (relax_delay_slots): Strengthen param "first" and locals "insn",
21145         "next", "trial", "delay_insn", "target_label" from rtx to
21146         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
21147         Introduce a local "trial_seq" for PATTERN (trial) of type
21148         rtx_sequence *, in both cases using methods of rtx_sequence.
21149         (dbr_schedule): Strengthen param "first" and locals "insn",
21150         "next", "epilogue_insn" from rtx to rtx_insn *.
21151
21152 2014-08-28  Richard Biener  <rguenther@suse.de>
21153
21154         PR tree-optimization/62283
21155         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21156         Do not peel loops for alignment where the vector loop likely
21157         doesn't run at least VF times.
21158
21159 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
21160
21161         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
21162         important_candidates.  Consider all important candidates if
21163         IVS doesn't give any result.  Remove check on ivs->upto.
21164         (try_add_cand_for): Call iv_ca_add_use only once.
21165
21166 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21167             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21168             Anna Tikhonova  <anna.tikhonova@intel.com>
21169             Ilya Tocar  <ilya.tocar@intel.com>
21170             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21171             Ilya Verbin  <ilya.verbin@intel.com>
21172             Kirill Yukhin  <kirill.yukhin@intel.com>
21173             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21174
21175         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
21176         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
21177         masking.
21178         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
21179         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21180         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21181         (define_insn "*mul<mode>3"): Add EVEX version.
21182
21183 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21184             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21185             Anna Tikhonova  <anna.tikhonova@intel.com>
21186             Ilya Tocar  <ilya.tocar@intel.com>
21187             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21188             Ilya Verbin  <ilya.verbin@intel.com>
21189             Kirill Yukhin  <kirill.yukhin@intel.com>
21190             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21191
21192         * config/i386/sse.md
21193         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
21194         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
21195         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
21196         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
21197         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
21198         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
21199         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
21200         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
21201         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
21202         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
21203         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
21204         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
21205         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
21206         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
21207         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
21208         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
21209
21210 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21211             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21212             Anna Tikhonova  <anna.tikhonova@intel.com>
21213             Ilya Tocar  <ilya.tocar@intel.com>
21214             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21215             Ilya Verbin  <ilya.verbin@intel.com>
21216             Kirill Yukhin  <kirill.yukhin@intel.com>
21217             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21218
21219         * config/i386/sse.md
21220         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
21221         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
21222         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
21223
21224 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21225             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21226             Anna Tikhonova  <anna.tikhonova@intel.com>
21227             Ilya Tocar  <ilya.tocar@intel.com>
21228             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21229             Ilya Verbin  <ilya.verbin@intel.com>
21230             Kirill Yukhin  <kirill.yukhin@intel.com>
21231             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21232
21233         * config/i386/sse.md
21234         (define_mode_iterator VI128_256): New.
21235         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
21236
21237 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21238             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21239             Anna Tikhonova  <anna.tikhonova@intel.com>
21240             Ilya Tocar  <ilya.tocar@intel.com>
21241             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21242             Ilya Verbin  <ilya.verbin@intel.com>
21243             Kirill Yukhin  <kirill.yukhin@intel.com>
21244             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21245
21246         * config/i386/sse.md
21247         (define_mode_iterator VI8_256_512): New.
21248         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
21249         Ditto.
21250         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21251         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
21252         Ditto.
21253         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
21254
21255 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21256
21257         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
21258         pointer to the cumulative reloc value and return the value for
21259         this reloc instead.
21260         (compute_reloc_for_rtx): Take a const_rtx.  Call
21261         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21262         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
21263         for_each_rtx for the CONST case.
21264
21265 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21266
21267         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21268         (mark_constants_in_pattern): ...this new function to iterate over
21269         all the subrtxes.
21270         (mark_constants): Update accordingly.
21271
21272 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21273
21274         * varasm.c: Include rtl-iter.h.
21275         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21276         Remove the pointer to the cumulative hashval_t and just return
21277         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
21278         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21279         Accumulate the hashval_ts here instead of const_rtx_hash_1.
21280
21281 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21282
21283         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21284         Give real type of data parameter.  Remove return value.
21285         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21286         to iterate over subrtxes.
21287
21288 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21289
21290         * var-tracking.c (use_narrower_mode_test): Turn from being a
21291         for_each_rtx callback to being a function that examines each
21292         subrtx itself.
21293         (adjust_mems): Update accordingly.
21294
21295 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21296
21297         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21298         callback to being a function that examines each subrtx itself.
21299         Remove handling of null rtxes.
21300         (add_uses): Update accordingly.
21301
21302 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21303
21304         * var-tracking.c: Include rtl-iter.h.
21305         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21306         to being a function that examines each subrtx itself.
21307         (use_type): Update accordingly.
21308
21309 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21310
21311         * store-motion.c: Include rtl-iter.h.
21312         (extract_mentioned_regs_1): Delete.
21313         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21314         for_each_rtx to iterate over subrtxes.
21315
21316 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21317
21318         * sel-sched.c: Include rtl-iter.h
21319         (count_occurrences_1): Delete.
21320         (count_occurrences_equiv): Turn rtxes into const_rtxes.
21321         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21322
21323 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21324
21325         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21326         * rtlanal.c (tls_referenced_p_1): Delete.
21327         (tls_referenced_p): Take a const_rtx rather than an rtx.
21328         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21329
21330 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21331
21332         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21333         (for_each_inc_dec): Take an rtx rather than an rtx *.
21334         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21335         (cselib_record_sets): Likewise.
21336         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
21337         (check_for_inc_dec): Likewise.
21338         * rtlanal.c (for_each_inc_dec_ops): Delete.
21339         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
21340         rather than a pointer to the memory address.  Replace
21341         for_each_inc_dec_ops argument with separate function and data
21342         arguments.  Abort on non-autoinc addresses.
21343         (for_each_inc_dec_find_mem): Delete.
21344         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
21345         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
21346
21347 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21348
21349         * rtl.h (find_all_hard_regs): Declare.
21350         * rtlanal.c (find_all_hard_regs): New function.
21351         (record_hard_reg_uses_1): Delete.
21352         (record_hard_reg_uses): Use find_all_hard_regs.
21353
21354 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21355
21356         * rtl.h (replace_label_data): Delete.
21357         (replace_label): Take the old label, new label and update-nuses flag
21358         as direct arguments.  Return void.
21359         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
21360         * rtlanal.c (replace_label): Update interface as above.  Handle
21361         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
21362         iterator.  Use FOR_EACH_SUBRTX_PTR.
21363
21364 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21365
21366         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
21367         with const_rtx parameters.
21368         * varasm.c (get_pool_constant): Likewise.
21369         * rtlanal.c (rtx_referenced_p_1): Delete.
21370         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21371         Assert that the rtx we're looking for is nonnull.  Allow searches
21372         for constant pool SYMBOL_REFs.
21373
21374 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21375
21376         * reload1.c: Include rtl-iter.h.
21377         (note_reg_elim_costly): Turn from being a for_each_rtx callback
21378         to being a function that examines each subrtx itself.
21379         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
21380
21381 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21382
21383         * regcprop.c (cprop_find_used_regs_1): Delete.
21384         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21385
21386 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21387
21388         * regcprop.c: Include rtl-iter.h.
21389         (kill_value): Take a const_rtx.
21390         (kill_autoinc_value): Turn from being a for_each_rtx callback
21391         to being a function that examines each subrtx itself.
21392         (copyprop_hardreg_forward_1): Update accordingly.
21393
21394 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21395
21396         * reg-stack.c: Include rtl-iter.h.
21397         (subst_stack_regs_in_debug_insn): Delete.
21398         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
21399         instead of for_each_rtx.
21400
21401 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21402
21403         * lower-subreg.c (find_decomposable_subregs): Turn from being
21404         a for_each_rtx callback to being a function that examines each
21405         subrtx itself.  Remove handling of null rtxes.
21406         (decompose_multiword_subregs): Update accordingly.
21407
21408 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21409
21410         * lower-subreg.c (adjust_decomposed_uses): Delete.
21411         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
21412         Remove handling of null rtxes.
21413
21414 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21415
21416         * lower-subreg.c: Include rtl-iter.h.
21417         (resolve_subreg_use): Turn from being a for_each_rtx callback
21418         to being a function that examines each subrtx itself.  Remove
21419         handling of null rtxes.
21420         (resolve_reg_notes, resolve_simple_move): Update accordingly.
21421         (decompose_multiword_subregs): Likewise.
21422
21423 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21424
21425         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
21426         to being a function that examines each subrtx itself.
21427         (simplify_using_condition, simplify_using_initial_values): Update
21428         accordingly.
21429
21430 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21431
21432         * loop-iv.c: Include rtl-iter.h.
21433         (find_single_def_src): New function.
21434         (replace_single_def_regs): Turn from being a for_each_rtx callback
21435         to being a function that examines each subrtx itself.
21436         (replace_in_expr, simplify_using_initial_values): Update accordingly.
21437
21438 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21439
21440         * jump.c (eh_returnjump_p_1): Delete.
21441         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21442         Remove handling of null rtxes.
21443
21444 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21445
21446         * jump.c: Include rtl-iter.h.
21447         (returnjump_p_1): Delete.
21448         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21449         Remove handling of null rtxes.
21450
21451 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21452
21453         * ira.c: Include rtl-iter.h.
21454         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
21455         to being a function that examines each subrtx itself.  Remove
21456         handling of null rtxes.
21457         (update_equiv_regs): Update call accordingly.
21458
21459 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21460
21461         * fwprop.c: Include rtl-iter.h.
21462         (varying_mem_p): Turn from being a for_each_rtx callback to being
21463         a function that examines each subrtx itself.
21464         (propagate_rtx): Update accordingly.
21465
21466 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21467
21468         * function.c: Include rtl-iter.h
21469         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
21470         callback to being a function that examines each subrtx itself.
21471         Return the changed flag.
21472         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
21473         (instantiate_virtual_regs): Update calls accordingly.
21474
21475 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21476
21477         * final.c: Include rtl-iter.h.
21478         (mark_symbol_ref_as_used): Delete.
21479         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
21480         for_each_rtx.
21481
21482 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21483
21484         * emit-rtl.c: Include rtl-iter.h.
21485         (find_auto_inc): Turn from being a for_each_rtx callback to being
21486         a function that examines each subrtx itself.  Assume the first operand
21487         to an RTX_AUTOINC is the automodified register.
21488         (try_split): Update call accordingly.
21489
21490 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21491
21492         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
21493         Return a bool, inverting the result so that 0/false means "not ok".
21494         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
21495         subrtxes of a CONST.
21496         (mem_loc_descriptor, add_const_value_attribute)
21497         (resolve_addr_in_expr): Update calls accordingly.
21498
21499 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21500
21501         * dwarf2out.c: Include rtl-iter.h.
21502         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
21503         Remove unused data parameter.  Return a bool, inverting the result
21504         so that 0/false means "not ok".
21505         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
21506         instead of for_each_rtx.
21507
21508 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21509
21510         * dse.c: Include rtl-iter.h.
21511         (check_mem_read_rtx): Change void * parameter to real type.
21512         Remove return value.
21513         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
21514         for_each_rtx.  Don't handle null rtxes.
21515
21516 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21517
21518         * df-problems.c: Include rtl-iter.h.
21519         (find_memory): Turn from being a for_each_rtx callback to being
21520         a function that examines each subrtx itself.  Continue to look for
21521         volatile references even after a nonvolatile one has been found.
21522         (can_move_insns_across): Update calls accordingly.
21523
21524 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21525
21526         * ddg.c (walk_mems_2, walk_mems_1): Delete.
21527         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
21528         to iterate over subrtxes.  Return a bool rather than an int.
21529
21530 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21531
21532         * ddg.c: Include rtl-iter.h.
21533         (mark_mem_use_1): Rename to...
21534         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
21535         instead of for_each_rtx.
21536         (mem_read_insn_p): Update accordingly.
21537
21538 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21539
21540         * cse.c (change_cc_mode_args): Delete.
21541         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
21542         a function that examines each subrtx itself.  Take the fields of
21543         change_cc_mode_args as argument and return void.
21544         (cse_change_cc_mode_insn): Update calls accordingly.
21545
21546 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21547
21548         * cse.c (is_dead_reg): Change argument to const_rtx.
21549         (dead_debug_insn_data): Delete.
21550         (is_dead_debug_insn): Expand commentary.  Turn from being a
21551         for_each_rtx callback to being a function that examines
21552         each subrtx itself.  Take the fields of dead_debug_insn_data
21553         as argument.
21554         (delete_trivially_dead_insns): Update call accordingly.
21555
21556 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21557
21558         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
21559         being a for_each_rtx callback to being a function that examines
21560         each subrtx itself.
21561         (cse_extended_basic_block): Update call accordingly.
21562
21563 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21564
21565         * cse.c (check_dependence_data): Delete.
21566         (check_dependence): Change from being a for_each_rtx callback to being
21567         a function that examines all subrtxes itself.  Don't handle null rtxes.
21568         (invalidate): Update call accordingly.
21569
21570 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21571
21572         * cse.c: Include rtl-iter.h.
21573         (approx_reg_cost_1): Delete.
21574         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21575         Don't handle null rtxes.
21576
21577 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21578
21579         * cfgcleanup.c: Include rtl-iter.h.
21580         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
21581         to being a function that examines each subrtx itself.
21582         (thread_jump): Update accordingly.
21583
21584 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21585
21586         * combine-stack-adj.c: Include rtl-iter.h.
21587         (record_stack_refs_data): Delete.
21588         (record_stack_refs): Turn from being a for_each_rtx callback
21589         to being a function that examines each subrtx itself.
21590         Take a pointer to the reflist.  Invert sense of return value
21591         so that true means success and false means failure.  Don't
21592         handle null rtxes.
21593         (combine_stack_adjustments_for_block): Update accordingly.
21594
21595 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21596
21597         * combine.c (record_truncated_value): Turn from being a for_each_rtx
21598         callback to a function that takes an rtx and returns a bool
21599         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
21600         for_each_rtx.
21601
21602 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21603
21604         * combine.c: Include rtl-iter.h.
21605         (unmentioned_reg_p_1): Delete.
21606         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21607         Don't handle null rtxes.
21608
21609 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21610
21611         * calls.c: Include rtl-iter.h.
21612         (internal_arg_pointer_based_exp_1): Delete.
21613         (internal_arg_pointer_based_exp): Take a const_rtx.
21614         Use FOR_EACH_SUBRTX to iterate over subrtxes.
21615
21616 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21617
21618         * caller-save.c: Include rtl-iter.h.
21619         (add_used_regs_1): Delete.
21620         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
21621         to iterate over subrtxes.  Assert that any remaining pseudos
21622         have been spilled.
21623
21624 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21625
21626         * bt-load.c: Include rtl-iter.h.
21627         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
21628         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
21629         to iterate over subrtxes.
21630         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
21631         find_btr_use rather than btr_referenced_p.
21632
21633 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21634
21635         * alias.c: Include rtl-iter.h.
21636         (refs_newer_value_cb): Delete.
21637         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21638
21639 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21640
21641         * rtl-iter.h: New file.
21642         * rtlanal.c: Include it.
21643         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
21644         (generic_subrtx_iterator <T>::add_single_to_queue)
21645         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
21646         (generic_subrtx_iterator <T>::free_array): New functions.
21647         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
21648         (generic_subrtx_iterator <const_rtx_accessor>)
21649         (generic_subrtx_iterator <rtx_var_accessor>
21650         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
21651         (setup_reg_subrtx_bounds): New function.
21652         (init_rtlanal): Call it.
21653
21654 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
21655
21656         PR target/62261
21657         * config/sh/sh.md (ashlsi3): Handle negative shift count for
21658         TARGET_SHMEDIA.
21659         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
21660
21661 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
21662
21663         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
21664
21665 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21666
21667         * rtl.h (JUMP_LABEL_AS_INSN): New.
21668
21669 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21670
21671         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
21672         rtx_expr_list **.
21673         (alloc_EXPR_LIST): Strengthen return type from rtx to
21674         rtx_expr_list *.
21675         (remove_free_EXPR_LIST_node): Likewise for param.
21676         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
21677         from rtx to rtx_expr_list *.
21678         * sched-int.h (struct deps_desc): Strengthen fields
21679         "pending_read_mems" and "pending_write_mems" from rtx to
21680         rtx_expr_list *.
21681
21682         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
21683         rtx to rtx_expr_list *.
21684         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
21685         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
21686         rtx_expr_list **.
21687         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
21688         from rtx to rtx_expr_list *.
21689         * loop-iv.c (simplify_using_initial_values): Strengthen local
21690         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
21691         "pnote_next" from rtx * to rtx_expr_list **.
21692         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
21693         param "exprp" from rtx * to rtx_expr_list **.
21694         (add_insn_mem_dependence): Strengthen local "mem_list" from
21695         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
21696         to rtx_expr_list *.
21697         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
21698         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
21699         param "old_mems_p" from rtx * to rtx_expr_list **.
21700         * var-tracking.c (struct adjust_mem_data): Strengthen field
21701         "side_effects" from rtx to rtx_expr_list *.
21702         (adjust_insn): Replace NULL_RTX with NULL when assigning to
21703         rtx_expr_list *.
21704         (prepare_call_arguments): Likewise.
21705
21706 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21707
21708         * function.h (struct rtl_data): Strengthen field
21709         "x_stack_slot_list" from rtx to rtx_expr_list *.
21710
21711         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
21712         when assigning to stack_slot_list.
21713
21714 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21715
21716         * function.h (struct rtl_data): Strengthen field
21717         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
21718         * rtl.h (remove_node_from_expr_list): Strengthen second param from
21719         rtx * to rtx_expr_list **.
21720
21721         * cfgbuild.c (make_edges): In loop over
21722         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
21723         rtx_expr_list *, and use methods of the latter class to clarify
21724         the code.
21725         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
21726         rtx_expr_list *, and use methods of the latter class to clarify
21727         the code.
21728         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21729         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21730         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
21731         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
21732         to rtx_expr_list *.  Use methods of the latter class to clarify
21733         the code.
21734
21735 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21736
21737         * function.h (struct expr_status): Strengthen field
21738         "x_forced_labels" from rtx to rtx_expr_list *.
21739
21740         * cfgbuild.c (make_edges): Split local "x" into two locals,
21741         strengthening one from rtx to rtx_expr_list *, and using methods
21742         of said class.
21743         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
21744         loop over forced_labels, introduce strengthen it from rtx to
21745         rtx_expr_list *, using methods to clarify the code.
21746         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
21747         to rtx_expr_list *, using methods of said class to clarify the
21748         code.
21749         * reload1.c (set_initial_label_offsets): Split local "x" into two
21750         per-loop variables, strengthening the first from rtx to
21751         rtx_expr_list * and using methods.
21752
21753 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21754
21755         * coretypes.h (class rtx_expr_list): Add forward declaration.
21756         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
21757         * gengenrtl.c (special_rtx): Add EXPR_LIST.
21758         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
21759         invariant: GET_CODE (X) == EXPR_LIST.
21760         (is_a_helper <rtx_expr_list *>::test): New.
21761         (rtx_expr_list::next): New.
21762         (rtx_expr_list::element): New.
21763         (gen_rtx_EXPR_LIST): New.
21764
21765 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21766
21767         * varasm.c (mark_constants): Convert a GET_CODE check into a
21768         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21769         Use methods of rtx_sequence to clarify the code.
21770
21771 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21772
21773         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
21774         local "seq" via a checked cast, and use methods of rtx_sequence
21775         to simplify the code.
21776
21777 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21778
21779         * resource.c (mark_referenced_resources): Strengthen local
21780         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
21781         using methods of rtx_sequence to clarify the code.
21782         (find_dead_or_set_registers): Within the switch statement, convert
21783         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
21784         the JUMP_P handling, introduce another local "seq", adding a
21785         checked cast to rtx_sequence *.  In both cases, use methods of
21786         rtx_sequence to clarify the code.
21787         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
21788         via a checked cast, and use methods of rtx_sequence to simplify
21789         the code.
21790
21791 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21792
21793         * reorg.c (redundant_insn): In two places in the function, replace
21794         a check of GET_CODE with a dyn_cast, introducing local "seq", and
21795         usings methods of rtx_sequence to clarify the code.
21796
21797 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21798
21799         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
21800         local "seq" with a checked cast, and use methods of rtx_sequence
21801         to clarify the code.
21802
21803 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21804
21805         * function.c (contains): Introduce local "seq" for PATTERN (insn),
21806         with a checked cast, in the region for where we know it's a
21807         SEQUENCE.  Use methods of rtx_sequence.
21808
21809 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21810
21811         * final.c (get_attr_length_1): Replace GET_CODE check with a
21812         dyn_cast, introducing local "seq" and the use of methods of
21813         rtx_sequence.
21814         (shorten_branches): Likewise, introducing local "body_seq".
21815         Strengthen local "inner_insn" from rtx to rtx_insn *.
21816         (reemit_insn_block_notes): Replace GET_CODE check with a
21817         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
21818         Use methods of rtx_sequence.
21819         (final_scan_insn): Likewise, introducing local "seq" for when
21820         "body" is known to be a SEQUENCE, using its methods.
21821
21822 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21823
21824         * except.c (can_throw_external): Strengthen local "seq" from rtx
21825         to rtx_sequence *.  Use methods of rtx_sequence.
21826         (insn_nothrow_p): Likewise.
21827
21828 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21829
21830         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
21831         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21832         Use methods of rtx_sequence.
21833         (scan_trace): Likewise for local "pat".
21834
21835 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21836
21837         * coretypes.h (class rtx_sequence): Add forward declaration.
21838         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
21839         invariant: GET_CODE (X) == SEQUENCE.
21840         (is_a_helper <rtx_sequence *>::test): New.
21841         (is_a_helper <const rtx_sequence *>::test): New.
21842         (rtx_sequence::len): New.
21843         (rtx_sequence::element): New.
21844         (rtx_sequence::insn): New.
21845
21846 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21847
21848         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
21849         rtx_insn_list **.
21850         (alloc_INSN_LIST): Strengthen return type from rtx to
21851         rtx_insn_list *.
21852         (copy_INSN_LIST): Likewise for return type and param.
21853         (concat_INSN_LIST): Likewise for both params and return type.
21854         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
21855         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
21856         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
21857         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
21858
21859         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
21860         "implicit_sets", "control_uses", "clobbers" from rtx to
21861         rtx_insn_list *.
21862         (struct deps_desc): Likewise for fields "pending_read_insns",
21863         "pending_write_insns", "pending_jump_insns",
21864         "last_pending_memory_flush", "last_function_call",
21865         "last_function_call_may_noreturn", "sched_before_next_call",
21866         "sched_before_next_jump".
21867         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
21868         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
21869
21870         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
21871         from rtx to rtx_insn_list *.
21872         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
21873         rtx_insn_list *.
21874
21875         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
21876         to rtx_insn_list **.
21877         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
21878         rtx_insn_list *.
21879         (queue_insn): Likewise for local "link".
21880         (struct haifa_saved_data): Strengthen field "insn_queue" from
21881         rtx * to rtx_insn_list **.
21882         (save_backtrack_point): Update allocation of save->insn_queue to
21883         reflect the strengthening of elements from rtx to rtx_insn_list *.
21884         (queue_to_ready): Strengthen local "link" from rtx to
21885         rtx_insn_list *; use methods "next" and "insn" when traversing the
21886         list.
21887         (early_queue_to_ready): Likewise for locals "link", "next_link",
21888         "prev_link".
21889         (schedule_block): Update allocation of insn_queue to reflect the
21890         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
21891         local "link" from rtx to rtx_insn_list *, and use methods when
21892         working it.
21893         (add_to_speculative_block): Strengthen locals "twins" and
21894         "next_node" from rtx to rtx_insn_list *, and use methods when
21895         working with them.  Strengthen local "twin" from rtx to
21896         rtx_insn *, eliminating a checked cast.
21897         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
21898         from rtx to rtx_insn_list *, and use methods when working with
21899         them.
21900
21901         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
21902         from rtx to rtx_insn_list *, adding a checked cast.
21903         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
21904         rtx_insn_list **.
21905         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
21906         "newlink" from rtx to rtx_insn_list *.  Strengthen local
21907         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
21908         from rtx to rtx_insn *.
21909         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
21910         from rtx to rtx_insn_list *.  Use methods of the latter class.
21911         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
21912         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
21913         (remove_free_INSN_LIST_node): Strengthen return type and local
21914         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
21915         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
21916         rtx_insn_list *, using "insn" method.
21917
21918         * sched-deps.c (add_dependence_list):  Strengthen param "list"
21919         from rtx to rtx_insn_list *, and use methods when working with it.
21920         (add_dependence_list_and_free):  Strengthen param "listp" from
21921         rtx * to rtx_insn_list **.
21922         (remove_from_dependence_list): Strenghten param "listp" from rtx *
21923         to rtx_insn_list **, and use methods when working with *listp.
21924         (remove_from_both_dependence_lists): Strengthen param "listp" from
21925         rtx * to rtx_insn_list **
21926         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
21927         to rtx_insn_list **.  Eliminate local "link", in favor of two new
21928         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
21929         respectively.
21930         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
21931         by introducing local "cond_deps".
21932         (remove_from_deps): Strengthen param "insn" from rtx to
21933         rtx_insn *.
21934
21935         * sched-rgn.c (concat_insn_mem_list): Strengthen param
21936         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
21937         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
21938         Use methods of rtx_insn_list.
21939
21940         * store-motion.c (struct st_expr): Strengthen fields
21941         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
21942         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
21943         rtx_insn_list *.
21944         (find_moveable_store): Split out "tmp" into multiple more-tightly
21945         scoped locals.  Use methods of rtx_insn_list *.
21946         (compute_store_table): Strengthen local "tmp" from rtx to
21947         rtx_insn *.  Use methods of rtx_insn_list *.
21948
21949 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21950
21951         * coretypes.h (class rtx_insn_list): Add forward declaration.
21952         * rtl.h (class rtx_insn_list): New subclass of rtx_def
21953         (is_a_helper <rtx_insn_list *>::test): New.
21954         (rtx_insn_list::next): New.
21955         (rtx_insn_list::insn): New.
21956         (gen_rtx_INSN_LIST): Add prototype.
21957         * emit-rtl.c (gen_rtx_INSN_LIST): New.
21958         * gengenrtl.c (special_rtx): Add INSN_LIST.
21959
21960 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21961
21962         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
21963         "prev" from rtx to rtx_insn *.
21964
21965 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21966
21967         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
21968         functions.  Require merely an rtx for now, not an rtx_insn *.
21969         (BLOCK_FOR_INSN): Likewise.
21970         (INSN_LOCATION): Likewise.
21971         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
21972
21973 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21974
21975         * rtl.h (PATTERN): Convert this macro into a pair of inline
21976         functions, for now, requiring const_rtx and rtx.
21977
21978 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21979
21980         * target.def (unwind_emit): Strengthen param "insn" from rtx to
21981         rtx_insn *.
21982         (final_postscan_insn): Likewise.
21983         (adjust_cost): Likewise.
21984         (adjust_priority): Likewise.
21985         (variable_issue): Likewise.
21986         (macro_fusion_pair_p): Likewise.
21987         (dfa_post_cycle_insn): Likewise.
21988         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
21989         (first_cycle_multipass_issue): Likewise.
21990         (dfa_new_cycle): Likewise.
21991         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
21992         (speculate_insn): Likewise for param "insn".
21993         (gen_spec_check): Likewise for params "insn" and "label".
21994         (get_insn_spec_ds): Likewise for param "insn".
21995         (get_insn_checked_ds): Likewise.
21996         (dispatch_do): Likewise.
21997         (dispatch): Likewise.
21998         (cannot_copy_insn_p): Likewise.
21999         (invalid_within_doloop): Likewise.
22000         (legitimate_combined_insn): Likewise.
22001         (needed): Likewise.
22002         (after): Likewise.
22003
22004         * doc/tm.texi: Automatically updated to reflect changes to
22005         target.def.
22006
22007         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
22008         working with insn.
22009         (schedule_block): Likewise.
22010         (sched_init): Likewise.
22011         (sched_speculate_insn): Strengthen param "insn" from rtx to
22012         rtx_insn *.
22013         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
22014         working with insn.
22015         * hooks.c (hook_bool_rtx_true): Rename to...
22016         hook_bool_rtx_insn_true): ...this, and strengthen first param from
22017         rtx to rtx_insn *.
22018         (hook_constcharptr_const_rtx_null): Rename to...
22019         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22020         first param from const_rtx to const rtx_insn *.
22021         (hook_bool_rtx_int_false): Rename to...
22022         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22023         param from rtx to rtx_insn *.
22024         (hook_void_rtx_int): Rename to...
22025         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22026         rtx to rtx_insn *.
22027
22028         * hooks.h (hook_bool_rtx_true): Rename to...
22029         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
22030         rtx to rtx_insn *.
22031         (hook_bool_rtx_int_false): Rename to...
22032         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
22033         param from rtx to rtx_insn *.
22034         (hook_void_rtx_int): Rename to...
22035         (hook_void_rtx_insn_int): ...this, and strengthen first param from
22036         rtx to rtx_insn *.
22037         (hook_constcharptr_const_rtx_null): Rename to...
22038         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
22039         first param from const_rtx to const rtx_insn *.
22040
22041         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
22042         and local "prev" from rtx to rtx_insn *.
22043
22044         * sched-int.h (sched_speculate_insn): Strengthen first param from
22045         rtx to rtx_insn *.
22046
22047         * sel-sched.c (create_speculation_check): Likewise for local "label".
22048         * targhooks.c (default_invalid_within_doloop): Strengthen param
22049         "insn" from const_rtx to const rtx_insn *.
22050         * targhooks.h (default_invalid_within_doloop): Strengthen param
22051         from const_rtx to const rtx_insn *.
22052
22053         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
22054         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
22055
22056         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
22057         "insn".
22058         (arc_invalid_within_doloop): Likewise, with const.
22059
22060         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
22061         (arm_cannot_copy_insn_p): Likewise for param "insn".
22062         (arm_unwind_emit): Likewise.
22063
22064         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
22065         "dep_insn".
22066
22067         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
22068         (c6x_variable_issue): Likewise.  Removed now-redundant checked
22069         cast.
22070         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
22071
22072         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
22073         Likewise for param "insn".
22074         (epiphany_mode_after): Likewise.
22075         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
22076         params "insn", "dep_insn".
22077         (epiphany_mode_needed): Likewise for param "insn".
22078         (epiphany_mode_after): Likewise.
22079
22080         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
22081         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
22082         (ix86_avx_u128_mode_needed): Likewise.
22083         (ix86_i387_mode_needed): Likewise.
22084         (ix86_mode_needed): Likewise.
22085         (ix86_avx_u128_mode_after): Likewise.
22086         (ix86_mode_after): Likewise.
22087         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
22088         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
22089         (ix86_adjust_priority): Likewise for param "insn".
22090         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
22091         (do_dispatch): Likewise.
22092         (has_dispatch): Likewise.
22093         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
22094
22095         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
22096         reflect renaming of default hook implementation from
22097         hook_constcharptr_const_rtx_null to
22098         hook_constcharptr_const_rtx_insn_null.
22099         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
22100         rtx to rtx_insn *.
22101         (ia64_variable_issue): Likewise for param "insn".
22102         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
22103         (ia64_dfa_new_cycle): Likewise.
22104         (ia64_get_insn_spec_ds): Likewise.
22105         (ia64_get_insn_checked_ds): Likewise.
22106         (ia64_speculate_insn): Likewise.
22107         (ia64_gen_spec_check): Likewise for params "insn", "label".
22108         (ia64_asm_unwind_emit): Likewise for param "insn".
22109
22110         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
22111
22112         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
22113         "insn", "def_insn".
22114         (m68k_sched_variable_issue): Likewise for param "insn".
22115
22116         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
22117         "def_insn".
22118
22119         * config/microblaze/microblaze.c (microblaze_adjust_cost):
22120         Likewise for params "insn", "dep".
22121
22122         * config/mips/mips.c (mips_adjust_cost): Likewise.
22123         (mips_variable_issue): Likewise for param "insn".
22124         (mips_final_postscan_insn): Likewise.
22125
22126         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
22127         for params "insn", "dep".
22128
22129         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
22130         "dep_insn".
22131         (pa_adjust_priority): Likewise for param "insn".
22132
22133         * config/picochip/picochip.c (picochip_sched_adjust_cost):
22134         Likewise for params "insn", "dep_insn".
22135
22136         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
22137         param "insn".
22138         (rs6000_variable_issue): Likewise.
22139         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
22140         (rs6000_debug_adjust_cost): Likewise.
22141         (rs6000_adjust_priority): Likewise for param "insn".
22142         (rs6000_use_sched_lookahead_guard): Likewise.
22143         (get_next_active_insn): Likewise for return type and both params.
22144         (redefine_groups): Likewise for params "prev_head_insn", "tail"
22145         and locals "insn", "next_insn".
22146         (pad_groups): Likewise.
22147
22148         * config/s390/s390.c (s390_adjust_priority): Likewise for param
22149         "insn".
22150         (s390_cannot_copy_insn_p): Likewise.
22151         (s390_sched_variable_issue): Likewise for third param, eliminating
22152         checked cast.
22153         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
22154         default hook implementation from hook_constcharptr_const_rtx_null
22155         to hook_constcharptr_const_rtx_insn_null.
22156
22157         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
22158         from rtx to rtx_insn *.
22159         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
22160         (sh_variable_issue): Likewise for param "insn".
22161         (sh_dfa_new_cycle): Likewise.
22162         (sh_mode_needed): Likewise.
22163         (sh_mode_after): Likewise.
22164
22165         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
22166         params "insn", "dep_insn".
22167         (hypersparc_adjust_cost): Likewise.
22168         (sparc_adjust_cost): Likewise.
22169
22170         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
22171         param, eliminated checked cast.
22172         (spu_sched_adjust_cost): Likewise for first and third params.
22173
22174         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
22175         params "insn" and "dep_insn" from rtx to rtx_insn *.
22176
22177         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
22178
22179 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22180
22181         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
22182         (set_is_load_p): ...this, updating to work on a SET pattern rather
22183         than an insn.
22184         (is_store_insn): Rename to...
22185         (set_is_store_p): ...this, updating to work on a SET pattern
22186         rather than an insn.
22187         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
22188         top of function to where it is needed.  Rewrite the bogus
22189         condition that checks for "insn" and "dep" being PARALLEL to
22190         instead use single_set, introducing locals "insn_set" and
22191         "dep_set".  Given that we only ever returned "cost" for a non-pair
22192         of SETs, bail out early if we don't have a pair of SET.
22193         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
22194         use the new locals "insn_set" and "dep_set", and update calls to
22195         is_load_insn and is_store_insn to be calls to set_is_load_p and
22196         set_is_store_p.
22197
22198 2014-08-27  Guozhi Wei  <carrot@google.com>
22199
22200         PR target/62262
22201         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
22202         amount before using it.
22203
22204 2014-08-27  Richard Biener  <rguenther@suse.de>
22205
22206         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
22207         get_maxval_strlen inside a more useful API.
22208         (gimple_fold_builtin_with_strlen): Remove and fold into ...
22209         (gimple_fold_builtin): ... caller.
22210         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
22211         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
22212         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
22213         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
22214         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
22215         gimple_fold_builtin_sprintf): Adjust to compute maxval
22216         themselves.
22217
22218 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
22219
22220         PR other/62248
22221         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
22222
22223 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22224             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22225             Anna Tikhonova  <anna.tikhonova@intel.com>
22226             Ilya Tocar  <ilya.tocar@intel.com>
22227             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22228             Ilya Verbin  <ilya.verbin@intel.com>
22229             Kirill Yukhin  <kirill.yukhin@intel.com>
22230             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22231
22232         * config/i386/sse.md
22233         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
22234         Use `concat_tg_mode' attribute to determine asm register size.
22235
22236 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22237             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22238             Anna Tikhonova  <anna.tikhonova@intel.com>
22239             Ilya Tocar  <ilya.tocar@intel.com>
22240             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22241             Ilya Verbin  <ilya.verbin@intel.com>
22242             Kirill Yukhin  <kirill.yukhin@intel.com>
22243             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22244
22245         * config/i386/sse.md
22246         (define_mode_iterator VI48_AVX512VL): New.
22247         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
22248         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
22249         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
22250         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22251         with VI1): Change mode iterator.
22252         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22253         with VI_ULOADSTORE_BW_AVX512VL): New.
22254         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22255         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22256         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22257         with VI1): Change mode iterator.
22258         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22259         with VI_ULOADSTORE_BW_AVX512VL): New.
22260         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22261         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22262         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22263         with VI1): Change mode iterator.
22264         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22265         with VI_ULOADSTORE_BW_AVX512VL): New.
22266         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22267         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22268         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22269         (define_insn "<avx512>_storedqu<mode>_mask" with
22270         VI48_AVX512VL): New.
22271         (define_insn "<avx512>_storedqu<mode>_mask" with
22272         VI12_AVX512VL): Ditto.
22273
22274 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22275             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22276             Anna Tikhonova  <anna.tikhonova@intel.com>
22277             Ilya Tocar  <ilya.tocar@intel.com>
22278             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22279             Ilya Verbin  <ilya.verbin@intel.com>
22280             Kirill Yukhin  <kirill.yukhin@intel.com>
22281             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22282
22283         * config/i386/sse.md
22284         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22285         (define_mode_iterator VI48_AVX512BW): New.
22286         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22287         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22288         with VI48_AVX2_48_AVX512F): New.
22289         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22290         with VI2_AVX512VL): Ditto.
22291
22292 2014-08-27  Richard Biener  <rguenther@suse.de>
22293
22294         PR middle-end/62239
22295         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22296         (fold_builtin_3): Do not fold strcat_chk here.
22297         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22298         from builtins.c.
22299         (gimple_fold_builtin): Fold strcat_chk here.
22300
22301 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
22302
22303         * dwarf2out.h (dwarf2out_decl): Remove prototype.
22304         * dwarf2out.c (dwarf2out_decl): Make static.
22305
22306 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
22307
22308         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22309
22310 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22311
22312         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22313         from rtx to rtx_insn *.
22314         (cselib_lookup_from_insn): Likewise for final param.
22315         (cselib_subst_to_values_from_insn): Likewise.
22316         (cselib_add_permanent_equiv): Likewise.
22317
22318         * cselib.c (cselib_current_insn): Likewise for this variable.
22319         (cselib_subst_to_values_from_insn): Likewise for param "insn".
22320         (cselib_lookup_from_insn): Likewise.
22321         (cselib_add_permanent_equiv): Likewise for param "insn" and local
22322         "save_cselib_current_insn".
22323         (cselib_process_insn): Replace use of NULL_RTX with NULL.
22324
22325         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22326         from rtx to rtx_insn *.
22327
22328 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22329
22330         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22331         rtx_insn *.
22332
22333 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22334
22335         * df.h (df_dump_insn_problem_function): Strengthen first param of
22336         this callback from const_rtx to const rtx_insn *.
22337         (struct df_insn_info): Strengthen field "insn" from rtx to
22338         rtx_insn *.
22339         (DF_REF_INSN): Eliminate this function, reinstating the older
22340         macro definition.
22341         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
22342         (df_reg_defined): Likewise.
22343         (df_find_use): Likewise.
22344         (df_reg_used): Likewise.
22345         (df_dump_insn_top): Strengthen param 1 from const_rtx to
22346         const rtx_insn *.
22347         (df_dump_insn_bottom): Likewise.
22348         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
22349         (df_insn_debug_regno): Likewise.
22350         (debug_df_insn): Likewise.
22351         (df_rd_simulate_one_insn): Likewise for param 2.
22352         (df_word_lr_simulate_defs): Likewise for param 1.
22353         (df_word_lr_simulate_uses): Likewise.
22354         (df_md_simulate_one_insn): Likewise for param 2.
22355         (df_simulate_find_noclobber_defs): Likewise for param 1.
22356         (df_simulate_find_defs): Likewise.
22357         (df_simulate_defs): Likewise.
22358         (df_simulate_uses): Likewise.
22359         (df_simulate_one_insn_backwards): Likewise for param 2.
22360         (df_simulate_one_insn_forwards): Likewise.
22361         (df_uses_create): Likewise for param 2.
22362         (df_insn_create_insn_record): Likewise for param 1.
22363         (df_insn_delete): Likewise.
22364         (df_insn_rescan): Likewise.
22365         (df_insn_rescan_debug_internal): Likewise.
22366         (df_insn_change_bb): Likewise.
22367         (df_notes_rescan): Likewise.
22368         * rtl.h (remove_death): Likewise for param 2.
22369         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
22370         const rtx_insn *.
22371         * sched-int.h (reemit_notes): Strengthen param from rtx to
22372         rtx_insn *.
22373         * valtrack.h (propagate_for_debug): Likewise for param 1.
22374
22375         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
22376         local "tmp_rtx" from const_rtx to const rtx_insn *.
22377         * combine.c (remove_death): Strengthen param "insn" from rtx to
22378         rtx_insn *.
22379         (move_deaths): Likewise for local "where_dead".
22380         * cse.c (delete_trivially_dead_insns): Introduce local
22381         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
22382         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
22383         rtx_insn *.
22384         (df_reg_defined): Likewise.
22385         (df_find_use): Likewise.
22386         (df_reg_used): Likewise.
22387         (df_dump_insn_problem_data): Strengthen param "insn" from
22388         const_rtx to const rtx_insn *.
22389         (df_dump_insn_top): Likewise.
22390         (df_dump_insn_bottom): Likewise.
22391         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
22392         (df_insn_debug_regno): Likewise.
22393         (debug_df_insn): Likewise.
22394         (DF_REF_INSN): Delete.
22395         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
22396         from rtx to rtx_insn *.
22397         (df_chain_insn_top_dump): Strengthen param "insn" from
22398         const_rtx to const rtx_insn *.
22399         (df_chain_insn_bottom_dump): Likewise.
22400         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
22401         rtx_insn *.
22402         (df_word_lr_simulate_uses): Likewise.
22403         (df_print_note): Likewise.
22404         (df_remove_dead_and_unused_notes): Likewise.
22405         (df_set_unused_notes_for_mw): Likewise.
22406         (df_set_dead_notes_for_mw): Likewise.
22407         (df_create_unused_note): Likewise.
22408         (df_simulate_find_defs): Likewise.
22409         (df_simulate_find_uses): Likewise.
22410         (df_simulate_find_noclobber_defs): Likewise.
22411         (df_simulate_defs): Likewise.
22412         (df_simulate_uses): Likewise.
22413         (df_simulate_one_insn_backwards): Likewise.
22414         (df_simulate_one_insn_forwards): Likewise.
22415         (df_md_simulate_one_insn): Likewise.
22416         * df-scan.c (df_uses_create): Likewise.
22417         (df_insn_create_insn_record): Likewise.
22418         (df_insn_delete): Likewise.
22419         (df_insn_rescan): Likewise.
22420         (df_insn_rescan_debug_internal): Likewise.
22421         (df_insn_change_bb): Likewise.
22422         (df_notes_rescan): Likewise.
22423         (df_refs_add_to_chains): Likewise.
22424         (df_insn_refs_verify): Likewise.
22425         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
22426         when invoking df_insn_delete.
22427         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
22428         (set_unique_reg_note): Add checked cast.
22429         * final.c (cleanup_subreg_operands): Likewise.
22430         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
22431         "insn" from rtx to rtx_insn *.
22432         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
22433         "last" from rtx to rtx_insn *.
22434         * ira-emit.c (change_regs_in_insn): New function.
22435         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
22436         Invoke change_regs_in_insn rather than change_regs.
22437         * ira.c (update_equiv_regs): Strengthen locals "insn",
22438         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
22439         for_each_rtx_in_insn rather than for_each_rtx.
22440         * recog.c (confirm_change_group): Add checked casts.
22441         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
22442         Add checked cast.
22443         (peep2_fill_buffer): Add checked cast.
22444         * rtlanal.c (remove_note): Likewise.
22445         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
22446         locals "next" "end" from rtx to rtx_insn *.
22447
22448 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22449
22450         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
22451         to rtx_insn *.
22452         (struct reg_use_data): Likewise for field "insn".
22453         (insn_cost): Likewise for param.
22454         (real_insn_for_shadow): Likewise for return type and param.
22455         (increase_insn_priority): Likewise for param 1.
22456         (debug_dependencies): Likewise for both params.
22457
22458         * haifa-sched.c (insn_delay): Likewise for param "insn".
22459         (real_insn_for_shadow): Likewise for return type and param "insn".
22460         (update_insn_after_change): Likewise for param "insn".
22461         (recompute_todo_spec): Likewise for param "next" and locals "pro",
22462         "other".
22463         (insn_cost): Likewise for param "insn".
22464         (increase_insn_priority): Likewise.
22465         (calculate_reg_deaths): Likewise.
22466         (setup_insn_reg_pressure_info): Likewise.
22467         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
22468         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
22469         (model_recompute): Likewise.
22470         (must_restore_pattern_p): Likewise for param "next".
22471         (model_excess_cost): Likewise for param "insn".
22472         (queue_remove): Likewise.
22473         (adjust_priority): Likewise for param "prev".
22474         (update_register_pressure): Likewise for param "insn".
22475         (setup_insn_max_reg_pressure): Likewise for local "insn".
22476         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
22477         (model_add_to_schedule): Likewise.
22478         (model_reset_queue_indices): Likewise for local "insn".
22479         (unschedule_insns_until): Strengthen local "recompute_vec" from
22480         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
22481         "con" from rtx to rtx_insn *.
22482         (restore_last_backtrack_point): Likewise for both locals "x". Add
22483         checked casts.
22484         (estimate_insn_tick): Likewise for param "insn".
22485         (commit_schedule): Likewise for params "prev_head", "tail" and
22486         local "x".
22487         (verify_shadows): Likewise for locals "i1", "i2".
22488         (dump_insn_stream): Likewise for params "head", "tail" and locals
22489         "next_tail", "insn".
22490         (schedule_block): Likewise for locals "insn", "x".  Add a checked
22491         cast.
22492         (fix_inter_tick): Likewise for params "head", "tail".
22493         (create_check_block_twin): Likewise for local "jump".
22494         (haifa_change_pattern): Likewise for param "insn".
22495         (haifa_speculate_insn): Likewise.
22496         (dump_new_block_header): Likewise for params "head", "tail".
22497         (fix_jump_move): Likewise for param "jump".
22498         (move_block_after_check): Likewise.
22499         (sched_init_insn_luid): Likewise for param "insn".
22500         (sched_init_luids): Likewise for local "insn".
22501         (insn_luid): Likewise for param "insn".
22502         (init_h_i_d): Likewise.
22503         (haifa_init_h_i_d): Likewise for local "insn".
22504         (haifa_init_insn): Likewise for param "insn".
22505         * sched-deps.c (add_dependence): Likewise for local "real_pro",
22506         "other".
22507         (create_insn_reg_use): Likewise for param "insn".
22508         (setup_insn_reg_uses): Likewise.  Add a checked cast.
22509         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
22510         "tail" from rtx to rtx_insn *.
22511         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
22512         "insn", "next_tail".
22513
22514 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22515
22516         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
22517         from rtx to rtx_insn *.
22518         (model_add_to_schedule): Likewise for locals "start", "end",
22519         "iter".
22520
22521 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22522
22523         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
22524         rtx_insn *.
22525         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
22526         "to" and locals "insn", "next", "copy".  Remove now-redundant
22527         checked cast.
22528
22529 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22530
22531         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
22532         rtx_insn * and param 4 from rtx * to rtx_insn **.
22533         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
22534         param 2 from rtx * to rtx_insn **.
22535
22536         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
22537         rtx_insn * and final param from rtx * to rtx_insn **.
22538
22539         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
22540         from rtx to rtx_insn *.
22541         (try_head_merge_bb): Likewise for both locals named "move_upto".
22542         * df-problems.c (can_move_insns_across): Likewise for params
22543         "from", "to", "across_from", "across_to" and locals "insn",
22544         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
22545         rtx_insn **.
22546         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
22547         from rtx to rtx_insn *.
22548         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
22549         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
22550         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
22551         rtx_insn *.
22552         (noce_try_abs): Likewise.
22553         (noce_get_condition): Likewise for param "jump".  Strengthen param
22554         "earliest" from rtx * to rtx_insn **.
22555         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
22556         rtx_insn *.
22557         (find_cond_trap): Likewise.
22558         (dead_or_predicable): Likewise for local "earliest".
22559         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
22560         checked cast.
22561         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
22562         and local "prev".  Strengthen param "earliest" from rtx * to
22563         rtx_insn **.
22564         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
22565         Strengthen param "earliest" from rtx * to rtx_insn **.
22566
22567 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22568
22569         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
22570         "to" and local "insn" from rtx to rtx_insn *.
22571
22572 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22573
22574         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
22575         from rtx to rtx_insn *.
22576         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
22577         (code_motion_path_driver): Likewise for local "last_insn".
22578         (simplify_changed_insns): Likewise for local "insn".
22579
22580 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22581
22582         * rtl.h (push_to_sequence): Strengthen param from rtx to
22583         rtx_insn *.
22584         (push_to_sequence2): Likewise for both params.
22585         (delete_insns_since): Likewise for param.
22586         (reorder_insns_nobb): Likewise for all three params.
22587         (set_new_first_and_last_insn): Likewise for both params.
22588
22589         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
22590         rtx_insn *.  Remove now-redundant cast.
22591         (set_last_insn): Likewise.
22592
22593         * builtins.c (expand_builtin_return): Strengthen local
22594         "call_fusage" from rtx to rtx_insn *.
22595         * cfgrtl.c (create_basic_block_structure): Likewise for local
22596         "after".
22597         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
22598         "first", "last" and local "insn".
22599         (delete_insns_since): Likewise for param "from".
22600         (reorder_insns_nobb): Likewise for params "from", "to", "after"
22601         and local "x".
22602         (push_to_sequence): Likewise for param "first" and local "last".
22603         (push_to_sequence2): Likewise for params "first" and "last".
22604         * lra.c (emit_add3_insn): Likewise for local "last".
22605         (lra_emit_add): Likewise.
22606         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
22607         "last_insn".
22608         (process_address_1): Likewise for locals "insn", last".
22609         * modulo-sched.c (ps_first_note): Likewise for return type.
22610         * optabs.c (expand_binop_directly): Likewise for param "last".
22611
22612 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22613
22614         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
22615         to rtx_insn*.
22616         * emit-rtl.c (get_last_insn_anywhere): Likewise.
22617
22618 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22619
22620         * function.h (struct sequence_stack): Strengthen fields "first"
22621         and "last" from rtx to rtx_insn *.
22622         (struct emit_status): Likewise for fields "x_first_insn" and
22623         "x_last_insn".
22624
22625         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
22626         (set_first_insn): Add checked cast.
22627         (get_last_insn): Remove now-redundant checked cast.
22628         (set_last_insn): Add checked cast.
22629
22630         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
22631         "saved_first" and "saved_last" from rtx to rtx_insn *.
22632
22633 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22634
22635         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
22636         (unlink_insn_chain): Strengthen both params from rtx to
22637         rtx_insn *.
22638
22639         * cfgrtl.c (cfg_layout_function_header): Likewise for this
22640         variable.
22641         (unlink_insn_chain): Likewise for params "first" and "last".
22642         Remove now-redundant checked cast.
22643         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
22644         (fixup_reorder_chain): Strengthen local "insn" from rtx to
22645         rtx_insn *.
22646         * emit-rtl.c (link_insn_into_chain): Likewise for all three
22647         params.
22648         (add_insn): Likewise for param "insn" and local "prev".
22649         (add_insn_after_nobb): Likewise for both params and local "next".
22650         (add_insn_before_nobb): Likewise for both params and local "prev".
22651         (add_insn_after): Rename param "after" to "uncast_after",
22652         introducing local "after" with another checked cast.
22653         (add_insn_before): Rename params "insn" and "before", giving them
22654         "uncast_" prefixes, adding the old names back using checked casts.
22655         (emit_note_after): Likewise for param "after".
22656         (emit_note_before): Likewise for param "before".
22657         (emit_label): Add a checked cast.
22658
22659 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22660
22661         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
22662         "insn" from rtx to rtx_insn *.
22663
22664         * cselib.c (cselib_record_sets_hook): Likewise.
22665
22666         * var-tracking.c (add_with_sets): Likewise, renaming back from
22667         "uncast_insn" to "insn" and eliminating the checked cast from rtx
22668         to rtx_insn *.
22669
22670 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22671
22672         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
22673         and "header_" from rtx to rtx_insn *.
22674         (struct basic_block_d): Likewise for field "head_" within "x"
22675         field of union basic_block_il_dependent.
22676         (BB_HEAD): Drop function...
22677         (SET_BB_HEAD): ...and this function in favor of...
22678         (BB_HEAD): ...reinstate macro.
22679         (BB_END): Drop function...
22680         (SET_BB_END): ...and this function in favor of...
22681         (BB_END): ...reinstate macro.
22682         (BB_HEADER): Drop function...
22683         (SET_BB_HEADER): ...and this function in favor of...
22684         (BB_HEADER): ...reinstate macro.
22685
22686         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
22687         (fix_crossing_unconditional_branches): Likewise.
22688         * caller-save.c (save_call_clobbered_regs): Likewise.
22689         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
22690         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
22691         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
22692         (merge_blocks_move_successor_nojumps): Likewise.
22693         (outgoing_edges_match): Update use of for_each_rtx to
22694         for_each_rtx_in_insn.
22695         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
22696         (expand_gimple_cond): Likewise.
22697         (expand_gimple_tailcall): Likewise.
22698         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
22699         SET_BB_END.
22700         (construct_exit_block): Drop use of SET_BB_END.
22701         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
22702         rtx_insn *.
22703         (delete_insn): Rename param "insn" to "uncast_insn", introducing
22704         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
22705         SET_BB_HEAD and SET_BB_END.
22706         (create_basic_block_structure): Drop use of SET_BB_HEAD and
22707         SET_BB_END.
22708         (rtl_delete_block): Drop use of SET_BB_HEAD.
22709         (rtl_split_block): Drop use of SET_BB_END.
22710         (emit_nop_for_unique_locus_between): Likewise.
22711         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
22712         (block_label): Drop use of SET_BB_HEAD.
22713         (fixup_abnormal_edges): Drop use of SET_BB_END.
22714         (record_effective_endpoints): Drop use of SET_BB_HEADER.
22715         (relink_block_chain): Likewise.
22716         (fixup_reorder_chain): Drop use of SET_BB_END.
22717         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
22718         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
22719         rtx_insn **.  Drop use of SET_BB_HEADER.
22720         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
22721         SET_BB_HEAD.
22722         (BB_HEAD): Delete this function.
22723         (SET_BB_HEAD): Likewise.
22724         (BB_END): Likewise.
22725         (SET_BB_END): Likewise.
22726         (BB_HEADER): Likewise.
22727         (SET_BB_HEADER): Likewise.
22728         * emit-rtl.c (add_insn_after):  Rename param "insn" to
22729         "uncast_insn", adding a new local "insn" and a checked cast to
22730         rtx_insn *.  Drop use of SET_BB_END.
22731         (remove_insn): Strengthen locals "next" and "prev" from rtx to
22732         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
22733         (reorder_insns): Drop use of SET_BB_END.
22734         (emit_insn_after_1): Strengthen param "first" and locals "last",
22735         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
22736         (emit_pattern_after_noloc): Add checked cast.
22737         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
22738         (restore_other_notes): Likewise.
22739         (move_insn): Likewise.
22740         (sched_extend_bb): Likewise.
22741         (fix_jump_move): Likewise.
22742         * ifcvt.c (noce_process_if_block): Likewise.
22743         (dead_or_predicable): Likewise.
22744         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
22745         * reg-stack.c (change_stack): Drop use of SET_BB_END.
22746         * sel-sched-ir.c (sel_move_insn): Likewise.
22747         * sel-sched.c (move_nop_to_previous_block): Likewise.
22748
22749         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
22750         SET_BB_END.
22751         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
22752
22753 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22754
22755         * basic-block.h (create_basic_block_structure): Strengthen params
22756         1 "head" and 2 "end" from rtx to rtx_insn *.
22757         * cfgrtl.c (create_basic_block_structure): Likewise.
22758         (rtl_create_basic_block): Update casts from void * to rtx to
22759         rtx_insn *, so that we can pass them as rtx_insn * to
22760         create_basic_block_structure.
22761         * sel-sched-ir.c (sel_create_basic_block): Likewise.
22762
22763 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22764
22765         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
22766         rtx_insn **.
22767         (check_for_inc_dec): Strengthen param "insn" from rtx to
22768         rtx_insn *.
22769
22770         * cselib.h (cselib_process_insn): Likewise.
22771
22772         * cselib.c (cselib_record_sets): Likewise.
22773         (cselib_process_insn): Likewise.
22774
22775         * dse.c (struct insn_info): Likewise for field "insn".
22776         (check_for_inc_dec_1): Likewise for local "insn".
22777         (check_for_inc_dec): Likewise for param "insn".
22778         (scan_insn): Likewise.
22779         (dse_step1): Likewise for local "insn".
22780
22781         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
22782         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
22783
22784 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22785
22786         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
22787         from rtx to rtx_insn *.
22788         (DEP_PRO): Delete this function and...
22789         (SET_DEP_PRO): ...this function in favor of...
22790         (DEP_PRO): ...reinstate this macro.
22791         (DEP_CON): Delete this function and...
22792         (SET_DEP_CON): ...this function in favor of...
22793         (DEP_CON): ...reinstate this old macro.
22794         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
22795         (init_dep): Likewise.
22796         (set_priorities): Likewise for both params.
22797         (sd_copy_back_deps): Likewise for params 1 and 2.
22798
22799         * haifa-sched.c (priority): Likewise for param "insn" and local
22800         "next".
22801         (set_priorities): Likewise for params "head" and "tail" and local
22802         "insn".
22803         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
22804         local "consumer".
22805         (add_to_speculative_block): Add a checked cast.
22806         (create_check_block_twin): Drop use of SET_DEP_CON.
22807         (add_jump_dependencies): Strengthen params "insn" and "jump" from
22808         rtx to rtx_insn *.
22809
22810         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
22811         Drop use of SET_DEP_PRO
22812         (init_dep): Strengthen params "pro" and "con" from rtx to
22813         rtx_insn *.
22814         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
22815         use of SET_DEP_CON.
22816         (DEP_PRO): Delete.
22817         (DEP_CON): Delete.
22818         (SET_DEP_PRO): Delete.
22819         (SET_DEP_CON): Delete.
22820
22821 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22822
22823         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
22824         from rtx to rtx_insn *.
22825         (VINSN_INSN_RTX): Eliminate rvalue function and...
22826         (SET_VINSN_INSN): ...lvalue function in favor of...
22827         (VINSN_INSN_RTX): reinstate this old macro.
22828
22829         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
22830         in favor of VINSN_INSN_RTX.
22831         (VINSN_INSN_RTX): Delete this function.
22832         (SET_VINSN_INSN_RTX): Likewise.
22833
22834 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22835
22836         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
22837         (BND_TO): Delete this function and...
22838         (SET_BND_TO): ...this functions in favor of...
22839         (BND_TO): ...reinstating this macro.
22840         (struct _fence): Strengthen field "executing_insns" from
22841         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
22842         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
22843         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
22844         and param "insn" from rtx to insn_t.
22845         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
22846         rtx_insn *.
22847
22848         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
22849         vec<rtx_insn *> .
22850         (rtx_vec_t): Likewise.
22851         (struct sched_deps_info_def): Strengthen param of "start_insn"
22852         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
22853         "note_mem_dep" callback and first param of "note_dep" callback.
22854
22855         * haifa-sched.c (add_to_speculative_block): Strengthen param
22856         "insn" from rtx to rtx_insn *.
22857         (clear_priorities): Likewise.
22858         (calc_priorities): Likewise for local "insn".
22859
22860         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
22861         Remove redundant checked cast.
22862         (haifa_note_mem_dep): Likewise for param "pending_insn".
22863         (haifa_note_dep): Likewise for param "elem".
22864         (note_mem_dep): Likewise for param "e".
22865         (sched_analyze_1): Add checked casts.
22866         (sched_analyze_2): Likewise.
22867
22868         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
22869         from rtx to rtx_insn *.
22870         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
22871         from vec<rtx> * to vec<rtx_insn *> *.
22872
22873         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
22874         scaffolding.
22875         (flist_add): Strengthen param "executing_insns" from
22876         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22877         (advance_deps_context): Remove now-redundant checked cast.
22878         (init_fences): Replace uses of NULL_RTX with NULL.
22879         (merge_fences): Strengthen params "last_scheduled_insn" and
22880         "sched_next" from rtx to rtx_insn * and "executing_insns" from
22881         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22882         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
22883         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
22884         an instruction, rather than doing double-duty as a pattern.
22885         (return_nop_to_pool): Update for change of insn_t.
22886         (deps_init_id): Remove now-redundant checked cast.
22887         (struct sched_scan_info_def): Strengthen param of "init_insn"
22888         callback from rtx to insn_t.
22889         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
22890         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
22891         NULL.
22892         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
22893         "end" from rtx to rtx_insn *.
22894         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
22895         (rtx insn_rtx, bool force_unique_p)
22896         (BND_TO): Delete function.
22897         (SET_BND_TO): Delete function.
22898
22899         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
22900         rtx to rtx_insn *.
22901         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
22902         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
22903         rtx to rtx_insn *.
22904         (undo_transformations): Likewise for param "insn".
22905         (update_liveness_on_insn): Likewise.
22906         (compute_live_below_insn): Likewise for param "insn" and local
22907         "succ".
22908         (update_data_sets): Likewise for param "insn".
22909         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
22910         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
22911         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
22912         rtx_insn *.
22913         (move_cond_jump): Likewise for param "insn".
22914         (move_cond_jump): Drop use of SET_BND_TO.
22915         (compute_av_set_on_boundaries): Likewise.
22916         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
22917         (update_and_record_unavailable_insns): Strengthen local "bb_end"
22918         from rtx to rtx_insn *.
22919         (maybe_emit_renaming_copy): Likewise for param "insn".
22920         (maybe_emit_speculative_check): Likewise.
22921         (handle_emitting_transformations): Likewise.
22922         (remove_insn_from_stream): Likewise.
22923         (code_motion_process_successors): Strengthen local "succ" from rtx
22924         to insn_t.
22925
22926 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22927
22928         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
22929         ilist_t, not _xlist_t;
22930         (ILIST_INSN): Define in terms of new union field "insn".
22931         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
22932         _XLIST_NEXT.
22933         (struct _list_node): Add new field "insn" to the union, of type
22934         insn_t.
22935         (ilist_add): Replace macro with an inline function, requiring an
22936         insn_t.
22937         (ilist_remove): Define this macro directly in terms of
22938         _list_remove, rather than indirectly via _xlist_remove.
22939         (ilist_clear): Likewise, in terms of _list_clear rather than
22940         _xlist_clear.
22941         (ilist_is_in_p): Replace macro with an inline function, requiring
22942         an insn_t.
22943         (_list_iter_cond_insn): New function.
22944         (ilist_iter_remove): Define this macro directly in terms of
22945         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
22946         (ilist_iterator): Define directly in terms of _list_iterator
22947         rather than indirectly through _xlist_iterator.
22948         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
22949         than in terms of _FOR_EACH_X.
22950         (FOR_EACH_INSN_1): Likewise.
22951
22952 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
22953
22954         PR target/60606
22955         PR target/61330
22956         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
22957         DECL_HARD_REGISTER and return for invalid register specifications.
22958         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
22959         DECL_HARD_REGISTER, call expand_one_error_var.
22960         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
22961         CC_REGNUM with non-MODE_CC modes.
22962         (arm_regno_class): Return NO_REGS for PC_REGNUM.
22963
22964 2014-08-26  Marek Polacek  <polacek@redhat.com>
22965
22966         PR c/61271
22967         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
22968
22969 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
22970
22971         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
22972         qi cost; add di cost.
22973         (cortexa57_addrcost_table): Likewise.
22974
22975 2014-08-26  Marek Polacek  <polacek@redhat.com>
22976
22977         PR c/61271
22978         * expr.c (is_aligning_offset): Remove logical not.
22979
22980 2014-08-26  Marek Polacek  <polacek@redhat.com>
22981
22982         PR c/61271
22983         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
22984         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
22985
22986 2014-08-26  Richard Biener  <rguenther@suse.de>
22987
22988         PR tree-optimization/62175
22989         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
22990         expand possibly trapping operations.
22991
22992 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22993
22994         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
22995         "insn" from rtx to rtx_insn *.
22996         (permute_load): Likewise for param "insn".
22997         (permute_store): Likewise.
22998         (handle_special_swappables): Likewise for local "insn".
22999         (replace_swap_with_copy): Likewise for locals "insn" and
23000         "new_insn".
23001         (rs6000_analyze_swaps): Likewise for local "insn".
23002
23003 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23004
23005         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
23006         to rtx_insn *.
23007
23008 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23009
23010         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
23011         "note_list" from rtx to rtx_insn *.
23012         (BB_NOTE_LIST): Replace this function and...
23013         (SET_BB_NOTE_LIST): ...this function with...
23014         (BB_NOTE_LIST): ...the former macro implementation.
23015
23016         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
23017         local "from_start" from rtx to rtx_insn *.  Strengthen param
23018         "to_endp" from rtx * to rtx_insn **.
23019
23020         * haifa-sched.c (concat_note_lists): Likewise.
23021         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
23022         BB_NOTE_LIST.
23023         (sel_restore_notes): Likewise.
23024         (move_bb_info): Likewise.
23025         (BB_NOTE_LIST): Delete this function.
23026         (SET_BB_NOTE_LIST): Delete this function.
23027         * sel-sched.c (create_block_for_bookkeeping): Eliminate
23028         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
23029
23030 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23031
23032         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
23033         from rtx * to rtx_insn **.
23034         (reorder2): Likewise.
23035         (dependencies_evaluation_hook): Strengthen params "head", "tail"
23036         from rtx to rtx_insn *.
23037
23038         * doc/tm.texi: Update mechanically for above change to target.def.
23039
23040         * sched-int.h (note_list): Strengthen this variable from rtx to
23041         rtx_insn *.
23042         (remove_notes): Likewise for both params.
23043         (restore_other_notes): Likewise for return type and first param.
23044         (struct ready_list): Strengthen field "vec" from rtx * to
23045         rtx_insn **.
23046         (struct dep_replacement): Strenghten field "insn" from rtx to
23047         rtx_insn *.
23048         (struct deps_desc): Likewise for fields "last_debug_insn",
23049         "last_args_size".
23050         (struct haifa_sched_info): Likewise for callback field
23051         "can_schedule_ready_p"'s param, for first param of "new_ready"
23052         callback field, for both params of "rank" callback field, for
23053         first field of "print_insn" callback field (with a const), for
23054         both params of "contributes_to_priority" callback, for param
23055         of "insn_finishes_block_p" callback, for fields "prev_head",
23056         "next_tail", "head", "tail", for first param of "add_remove_insn"
23057         callback, for first param of "begin_schedule_ready" callback, for
23058         both params of "begin_move_insn" callback, and for second param
23059         of "advance_target_bb" callback.
23060         (add_dependence): Likewise for params 1 and 2.
23061         (sched_analyze): Likewise for params 2 and 3.
23062         (deps_analyze_insn): Likewise for param 2.
23063         (ready_element): Likewise for return type.
23064         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23065         (try_ready): Strenghten param from rtx to rtx_insn *.
23066         (sched_emit_insn): Likewise for return type.
23067         (record_delay_slot_pair): Likewise for params 1 and 2.
23068         (add_delay_dependencies): Likewise for param.
23069         (contributes_to_priority): Likewise for both params.
23070         (find_modifiable_mems): Likewise.
23071
23072         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
23073         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
23074         "first_older_only_insn" from rtx to rtx_insn *.
23075         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
23076         rtx_insn **.
23077
23078         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
23079         "last_scheduled_iter0" from rtx to rtx_insn *.
23080         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
23081         (c6x_sched_reorder_1): Strengthen param "ready" and locals
23082         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
23083         "insn" from rtx to rtx_insn *.
23084         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
23085         rtx_insn **.
23086         (c6x_sched_reorder2): Strengthen param "ready" and locals
23087         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
23088         "insn" from rtx to rtx_insn *.
23089         (c6x_variable_issue):  Add a checked cast when assigning from insn
23090         to ss.last_scheduled_iter0.
23091         (split_delayed_branch): Strengthen param "insn" and local "i1"
23092         from rtx to rtx_insn *.
23093         (split_delayed_nonbranch): Likewise.
23094         (undo_split_delayed_nonbranch): Likewise for local "insn".
23095         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
23096         "entry_after", "end_packet", "head_insn", "tail_insn",
23097         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
23098         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
23099         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
23100         but add a checked cast on loop->start_label.  Consolidate calls to
23101         avoid assigning result of gen_spkernel to "insn", now an
23102         rtx_insn *.
23103
23104         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
23105         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
23106         rtx to rtx_insn *.
23107         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
23108         rtx_insn **.  Strengthen locals "top", "next" from rtx to
23109         rtx_insn *.
23110         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
23111         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
23112         (add_parameter_dependencies): Strengthen params "call", "head" and
23113         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
23114         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
23115         (add_dependee_for_func_arg): Likewise for param "arg" and local
23116         "insn".
23117         (ix86_dependencies_evaluation_hook): Likewise for params "head",
23118         "tail" and locals "insn", "first_arg".
23119
23120         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
23121         for params "head", "tail" and locals "insn", "next", "next_tail".
23122         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
23123         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
23124         "insn", "lowest", "highest" from rtx to rtx_insn *.
23125         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
23126         rtx_insn **.
23127         (ia64_sched_reorder2): Likewise.
23128
23129         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
23130         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
23131         from rtx * to rtx_insn **.
23132         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
23133         rtx_insn **.
23134         (mep_print_sched_insn): Strengthen param "insn" from rtx to
23135         rtx_insn *.
23136         (mep_sched_reorder): Strengthen param "ready" from rtx * to
23137         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
23138         to rtx_insn *.
23139
23140         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
23141         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
23142         to rtx_insn *.
23143         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
23144         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
23145         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
23146         rtx_insn **.
23147         (vr4130_reorder): Likewise.
23148         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
23149         rtx to rtx_insn *.
23150         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
23151         rtx_insn **.
23152         (mips_sched_reorder): Likewise.
23153         (mips_sched_reorder2): Likewise.
23154
23155         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
23156
23157         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
23158         Strengthen local "tmp" from rtx to rtx_insn *.
23159         (rs6000_sched_reorder2): Likewise.
23160
23161         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
23162         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
23163         (s390_sched_reorder): Strengthen param "ready" from rtx * to
23164         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
23165
23166         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
23167         "tmp2" from rtx to rtx_insn *.
23168         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
23169         Strengthen local "insn" from rtx to rtx_insn *.
23170         (ready_reorder): Strengthen param "ready" from rtx * to
23171         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
23172         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
23173         (sh_reorder2): Likewise.
23174
23175         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
23176         local "insn" from rtx to rtx_insn *.
23177
23178         * haifa-sched.c (note_list): Strengthen this variable from rtx to
23179         rtx_insn *.
23180         (scheduled_insns): Strengthen this variable from vec<rtx> to
23181         vec<rtx_insn *>.
23182         (set_modulo_params): Likewise for locals "i1", "i2".
23183         (record_delay_slot_pair): Likewise for params "i1", "i2".
23184         (add_delay_dependencies): Likewise for param "insn".
23185         (cond_clobbered_p): Likewise.
23186         (recompute_todo_spec): Likewise for local "prev".
23187         (last_scheduled_insn): Likewise for this variable.
23188         (nonscheduled_insns_begin): Likewise.
23189         (model_set_excess_costs): Strengthen param "insns" from rtx * to
23190         rtx_insn **.
23191         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
23192         rtx_insn *.
23193         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
23194         Strengthen local "insn" from rtx to rtx_insn *.
23195         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
23196         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23197         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
23198         (ready_remove_first): Likewise for return type and local "t".
23199         (ready_element): Likewise for return type.
23200         (ready_remove): Likewise for return type and local "t".
23201         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
23202         (check_clobbered_conditions): Strengthen local "x" from rtx to
23203         rtx_insn *, adding a checked cast.
23204         (schedule_insn): Likewise for param "insn".
23205         (remove_notes): Likewise for params "head", "tail" and locals
23206         "next_tail", "insn", "next".
23207         (struct haifa_saved_data): Likewise for fields
23208         "last_scheduled_insn", "nonscheduled_insns_begin".
23209         (save_backtrack_point): Update for change to field "vec" of
23210         struct ready_list.
23211         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
23212         rtx_insn **.
23213         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
23214         from rtx to rtx_insn *
23215         (resolve_dependencies): Strengthen param "insn" from rtx to
23216         rtx_insn *
23217         (restore_other_notes): Likewise for return type, for param "head"
23218         and local "note_head".
23219         (undo_all_replacements): Likewise for local "insn".
23220         (first_nonscheduled_insn): Likewise for return type and local "insn".
23221         (queue_to_ready): Likewise for local "insn", adding checked casts.
23222         (early_queue_to_ready): Likewise for local "insn".
23223         (debug_ready_list_1): Strengthen local "p" from rtx * to
23224         rtx_insn **.
23225         (move_insn): Strengthen param "insn" and local "note" from rtx to
23226         rtx_insn *
23227         (insn_finishes_cycle_p): Likewise for param "insn".
23228         (max_issue): Likewise for local "insn".
23229         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
23230         to rtx_insn **.
23231         (commit_schedule): Strengthen param "prev_head" and local "insn"
23232         from rtx to rtx_insn *
23233         (prune_ready_list): Likewise for local "insn".
23234         (schedule_block): Likewise for locals "prev_head", "head", "tail",
23235         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
23236         (set_priorities): Likewise for local "prev_head".
23237         (try_ready): Likewise for param "next".
23238         (fix_tick_ready): Likewise.
23239         (change_queue_index): Likewise.
23240         (sched_extend_ready_list): Update for change to field "vec" of
23241         struct ready_list.
23242         (generate_recovery_code): Strengthen param "insn" from rtx to
23243         rtx_insn *.
23244         (begin_speculative_block): Likewise.
23245         (create_check_block_twin): Likewise for param "insn" and locals
23246         "label", "check", "twin".  Introduce local "check_pat" to avoid
23247         "check" being used as a plain rtx before being used as an insn.
23248         (fix_recovery_deps): Add a checked cast to rtx_insn * when
23249         extracting elements from ready_list.
23250         (sched_remove_insn): Strengthen param "insn" from rtx to
23251         rtx_insn *.
23252         (sched_emit_insn): Likewise for return type.
23253         (ready_remove_first_dispatch): Likewise for return type and local
23254         "insn".
23255
23256         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
23257
23258         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
23259         const rtx_insn *.
23260
23261         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23262         from rtx to rtx_insn *.
23263         (add_dependence_list): Likewise for param "insn".  Add a checked
23264         cast.
23265         (add_dependence_list_and_free): Strengthen param "insn" from rtx
23266         to rtx_insn *.  Strengthen param "list_p" from rtx * to
23267         rtx_insn **.
23268         (chain_to_prev_insn): Strengthen param "insn" and locals
23269         "prec_nonnote", "i" from rtx to rtx_insn *.
23270         (flush_pending_lists): Likewise for param "insn".
23271         (cur_insn): Likewise for this variable.
23272         (haifa_start_insn): Add a checked cast.
23273         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23274         (sched_analyze_reg): Likewise for param "insn".
23275         (sched_analyze_1): Likewise.
23276         (sched_analyze_2): Likewise.  Add checked casts.
23277         (sched_analyze_insn): Likewise.  Also for local "prev".
23278         (deps_analyze_insn): Likewise for param "insn".
23279         (sched_analyze): Likewise for params "head", "tail" and local "insn".
23280         (add_dependence_1): Likewise for params "insn", "elem".
23281         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23282         (parse_add_or_inc): Likewise for param "insn".
23283         (find_inc): Likewise for local "inc_cand".
23284         (find_modifiable_mems): Likewise for params "head", "tail" and
23285         locals "insn", "next_tail".
23286
23287         * sched-ebb.c (init_ready_list): Likewise for local "insn".
23288         (begin_schedule_ready): Likewise for param "insn".
23289         (begin_move_insn): Likewise for params "insn" and "last".
23290         (ebb_print_insn): Strengthen param "insn" from const_rtx to
23291         const rtx_insn *.
23292         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23293         (ebb_contributes_to_priority): Likewise for params "next", "insn".
23294         (ebb_add_remove_insn): Likewise for param "insn".
23295         (advance_target_bb): Likewise.
23296
23297         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23298         "insn".
23299         (check_live): Likewise for param "insn".
23300         (init_ready_list): Likewise for local "insn".
23301         (can_schedule_ready_p): Likewise for param "insn".
23302         (begin_schedule_ready): Likewise.
23303         (new_ready): Likewise for param "next".
23304         (rgn_print_insn): Likewise for param "insn".
23305         (rgn_rank): Likewise for params "insn1", "insn2".
23306         (contributes_to_priority): Likewise for params "next", "insn".
23307         (rgn_insn_finishes_block_p): Likewise for param "insn".
23308         (add_branch_dependences): Likewise for params "head", "tail" and
23309         locals "insn", "last".
23310         (rgn_add_remove_insn): Likewise for param "insn".
23311         (advance_target_bb): Likewise.
23312
23313         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23314         const_rtx to const rtx_insn *.
23315
23316         * sel-sched-dump.h (sel_print_insn): Likewise.
23317
23318         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23319         (deps_init_id): Likewise.
23320
23321         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23322         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23323         rtx_insn **.
23324
23325 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23326
23327         * output.h (final_start_function): Strengthen param 1 from rtx to
23328         rtx_insn *.
23329
23330         * final.c (final_start_function): Likewise, renaming back from
23331         "uncast_first" to "first", and dropping the checked cast from rtx
23332         to rtx_insn *.
23333
23334 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23335
23336         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
23337         * final.c (final): Likewise.  Rename param back from
23338         "uncast_first" to "first" and eliminate the checked cast from rtx
23339         to rtx_insn *.
23340
23341 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23342
23343         * output.h (shorten_branches): Strengthen param from rtx to
23344         rtx_insn *.
23345
23346         * final.c (shorten_branches): Likewise, renaming param back from
23347         "uncast_first" to "first", and dropping the checked cast from rtx
23348         to rtx_insn *.
23349
23350         * genattr.c (gen_attr): Likewise when writing out the prototype of
23351         shorten_branches.
23352
23353 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23354
23355         * sched-int.h (struct haifa_sched_info): Strengthen fields
23356         "prev_head" and "next_tail" from rtx to rtx_insn *.
23357
23358 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23359
23360         * rtl.h (rtx_jump_table_data::get_labels): New method.
23361         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
23362         with use of the new rtx_jump_table_data::get_labels method.
23363         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
23364         to rtx_jump_table_data *.  Simplify by using get_labels method.
23365         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
23366         a dyn_cast, introducing local "table", using it to replace
23367         label-lookup logic with a get_labels method call.
23368         (patch_jump_insn): Simplify using get_labels method.
23369         * dwarf2cfi.c (create_trace_edges): Likewise.
23370         * rtlanal.c (label_is_jump_target_p): Likewise.
23371
23372 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23373
23374         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
23375         to rtx_insn *.
23376
23377         * emit-rtl.c (unshare_all_rtl_1): Likewise.
23378         (unshare_all_rtl_again): Likewise, also for local "p".
23379
23380 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23381
23382         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
23383         to rtx_insn *.
23384         * cfgrtl.c (delete_insn_and_edges): Likewise.
23385
23386 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23387
23388         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
23389         from rtx to rtx_insn *.
23390
23391         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
23392
23393 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23394
23395         * function.c (thread_prologue_and_epilogue_insns): Likewise for
23396         locals "returnjump", "epilogue_end", "insn", "next".
23397
23398         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
23399         "returnjump" from rtx * to rtx_insn **.
23400         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
23401
23402 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23403
23404         * basic-block.h (struct edge_def). Strengthen "r" within
23405         union edge_def_insns from rtx to rtx_insn *.
23406
23407         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
23408         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
23409         rtx_insn *.
23410         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
23411         from rtx to rtx_insn *.
23412         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
23413         rtx_insn *.
23414         * postreload-gcse.c (reg_killed_on_edge): Likewise.
23415         (reg_used_on_edge): Likewise.
23416         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
23417         (gt_pch_nx): New overload for rtx_insn *&.
23418         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
23419         from rtx to rtx_insn *.
23420
23421 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23422
23423         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
23424         from rtx to rtx_insn *.
23425         (BB_FOOTER): Replace function with access macro.
23426         (SET_BB_FOOTER): Delete.
23427
23428         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
23429         with BB_FOOTER.
23430         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
23431         (emit_barrier_after_bb): Likewise.
23432         (record_effective_endpoints): Likewise.
23433         (relink_block_chain): Likewise.
23434         (fixup_fallthru_exit_predecessor): Likewise.
23435         (cfg_layout_duplicate_bb): Likewise.
23436         (cfg_layout_split_block): Likewise.
23437         (cfg_layout_delete_block): Likewise.
23438         (cfg_layout_merge_blocks): Likewise.
23439         (BB_FOOTER): Delete function.
23440         (SET_BB_FOOTER): Delete function.
23441         * combine.c (update_cfg_for_uncondjump): Replace uses of
23442         SET_BB_FOOTER with BB_FOOTER.
23443
23444 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23445
23446         * except.h (struct eh_landing_pad_d): Strengthen field
23447         "landing_pad" from rtx to rtx_code_label *.
23448
23449         * except.c (sjlj_emit_dispatch_table): Likewise for param
23450         "dispatch_label"
23451         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
23452
23453 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23454
23455         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
23456         first param from rtx to rtx_insn *.
23457         * config/xtensa/xtensa.c (struct machine_function): Likewise for
23458         field "set_frame_ptr_insn".
23459         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
23460         "csend" from rtx to rtx_code_label *.
23461         (xtensa_expand_atomic): Likewise for local "csloop".
23462         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
23463         rtx_insn *.
23464         (xtensa_call_tls_desc): Likewise for return type and locals
23465         "call_insn", "insns".
23466         (xtensa_legitimize_tls_address): Likewise for local "insns".
23467         (xtensa_expand_prologue): Likewise for locals "insn", "first".
23468
23469 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23470
23471         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
23472         first param from rtx to rtx_insn *.
23473         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
23474         "insn".
23475
23476 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23477
23478         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
23479         Strengthen param 1 from rtx to rtx_insn *.
23480         (tilepro_output_cbranch): Likewise.
23481         (tilepro_adjust_insn_length): Likewise.
23482         (tilepro_final_prescan_insn): Likewise for sole param.
23483
23484         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
23485         Likewise for local "last".
23486         (cbranch_predicted_p): Likewise for param "insn".
23487         (tilepro_output_simple_cbranch_with_opcode): Likewise.
23488         (tilepro_output_cbranch_with_opcode): Likewise.
23489         (tilepro_output_cbranch): Likewise.
23490         (frame_emit_load): Likewise for return type and locals "seq",
23491         "insn".
23492         (emit_sp_adjust): Likewise for return type and local "insn".
23493         (tilepro_expand_epilogue): Likewise for locals "last_insn",
23494         "insn".
23495         (tilepro_adjust_insn_length): Likewise for param "insn".
23496         (next_insn_to_bundle): Likewise for return type and params
23497         "r", "end".
23498         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
23499         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
23500         local "new_insns".
23501         (match_addli_pcrel): Likewise for param "insn".
23502         (replace_addli_pcrel): Likewise.
23503         (match_auli_pcrel): Likewise.
23504         (replace_auli_pcrel): Likewise.
23505         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
23506         "next_insn".
23507         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23508         "queue", "next_queue", "prev".
23509         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
23510         (tilepro_final_prescan_insn): Likewise for param "insn".
23511
23512 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23513
23514         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
23515         Strengthen param 1 from rtx to rtx_insn *.
23516         (tilegx_output_cbranch): Likewise.
23517         (tilegx_adjust_insn_length): Likewise.
23518         (tilegx_final_prescan_insn): Likewise for sole param.
23519
23520         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
23521         or local "last".
23522         (cbranch_predicted_p): Likewise for param "insn".
23523         (tilegx_output_simple_cbranch_with_opcode): Likewise.
23524         (tilegx_output_cbranch_with_opcode): Likewise.
23525         (tilegx_output_cbranch): Likewise.
23526         (frame_emit_load): Likewise for return type.
23527         (set_frame_related_p): Likewise for locals "seq", "insn".
23528         (emit_sp_adjust): Likewise for return type, and for local "insn".
23529         Introduce local "pat" for use in place of "insn" where the latter
23530         isn't an instruction.
23531         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
23532         from rtx to rtx_insn *.
23533         (tilegx_adjust_insn_length): Likewise for param "insn".
23534         (next_insn_to_bundle): Likewise for return type and params "r" and
23535         "end".
23536         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
23537         "end".
23538         (replace_insns): Likewise for params "old_insn", "new_insns".
23539         (replace_mov_pcrel_step1): Likewise for param "insn" and local
23540         "new_insns".
23541         (replace_mov_pcrel_step2): Likewise.
23542         (replace_mov_pcrel_step3): Likewise.
23543         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
23544         "next_insn".
23545         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23546         "queue", "next_queue", "prev".
23547         (tilegx_output_mi_thunk): Likewise for local "insn".
23548         (tilegx_final_prescan_insn): Likewise for param "insn".
23549
23550 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23551
23552         * config/spu/spu.c (frame_emit_store): Strengthen return type from
23553         rtx to rtx_insn *.
23554         (frame_emit_load): Likewise.
23555         (frame_emit_add_imm): Likewise, also for local "insn".
23556         (spu_expand_prologue): Likewise for local "insn".
23557         (struct spu_bb_info): Likewise for field "prop_jump".
23558         (emit_nop_for_insn): Likewise for param "insn" and local
23559         "new_insn".
23560         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
23561         "hbr_insn".
23562         (spu_emit_branch_hint): Likewise for params "before", "branch" and
23563         locals "hint", "insn".
23564         (get_branch_target): Likewise for param "branch".
23565         (insn_clobbers_hbr): Likewise for param "insn".
23566         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
23567         locals "insn", "before_4", "before_16".
23568         (insert_hbrp): Likewise for local "insn".
23569         (spu_machine_dependent_reorg): Likewise for locals "branch",
23570         "insn", "next", "bbend".
23571         (uses_ls_unit): Likewise for param "insn".
23572         (get_pipe): Likewise.
23573         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
23574         introducing a checked cast.
23575         (spu_sched_adjust_cost): Likewise for params "insn" and
23576         "dep_insn".
23577         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
23578         (spu_sms_res_mii): Likewise.
23579
23580 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23581
23582         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
23583         from rtx to rtx_insn *.
23584         (output_cbranch): Likewise for param 6.
23585         (output_return): Likewise for param 1.
23586         (output_sibcall): Likewise.
23587         (output_v8plus_shift): Likewise.
23588         (output_v8plus_mult): Likewise.
23589         (output_v9branch): Likewise for param 7.
23590         (output_cbcond):  Likewise for param 3.
23591
23592         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
23593         for local "insn".
23594         (sparc_legitimize_pic_address): Likewise.
23595         (sparc_emit_call_insn): Likewise.
23596         (emit_save_or_restore_regs): Likewise.
23597         (emit_window_save): Likewise for return type and local "insn".
23598         (sparc_expand_prologue): Likewise for local "insn".
23599         (sparc_flat_expand_prologue): Likewise.
23600         (output_return): Likewise for param "insn".
23601         (output_sibcall): Likewise for param "insn" and local "delay".
23602         (output_ubranch): Likewise for param "insn".
23603         (output_cbranch): Likewise.
23604         (output_cbcond): Likewise.
23605         (output_v9branch): Likewise.
23606         (output_v8plus_shift): Likewise.
23607         (sparc_output_mi_thunk): Likewise for local "insn".
23608         (get_some_local_dynamic_name): Likewise.
23609         (output_v8plus_mult): Likewise for param "insn".
23610
23611 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23612
23613         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
23614         from rtx to rtx_insn *.
23615         (output_branchy_insn): Likewise for param 3.
23616         (output_far_jump): Likewise for param 1.
23617         (final_prescan_insn): Likewise.
23618         (sh_insn_length_adjustment): Likewise for sole param.
23619
23620         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
23621         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
23622         rtx_code_label *.
23623         (sh_emit_compare_and_set): Likewise for local "lab".
23624         (output_far_jump): Strengthen param "insn" and local "prev" from
23625         rtx to rtx_insn *.
23626         (output_branchy_insn): Likewise for param "insn" and local
23627         "next_insn".
23628         (output_ieee_ccmpeq): Likewise for param "insn".
23629         (struct label_ref_list_d): Strengthen field "label" from rtx to
23630         rtx_code_label *.
23631         (pool_node): Likewise.
23632         (pool_window_label): Likewise for this global.
23633         (add_constant): Likewise for return type and locals "lab", "new_rtx".
23634         (dump_table): Strengthen params "start", "barrier" and local
23635         "scan" from rtx to rtx_insn *.
23636         (broken_move): Likewise for param "insn".
23637         (untangle_mova): Likewise for params "first_mova" and "new_mova".
23638         Strengthen param "first_mova" from rtx * to rtx_insn **.
23639         (mova_p): Likewise for param "insn".
23640         (fixup_mova): Likewise for param "mova".
23641         (find_barrier): Likewise for return type, params "mova" and
23642         "from", and locals "barrier_before_mova", "found_barrier",
23643         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
23644         "label" from rtx to rtx_code_label *.
23645         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
23646         rtx to rtx_insn *.
23647         (sh_reorg): Likewise for locals "link", "scan", "barrier".
23648         (split_branches): Likewise for param "first" and local "insn".
23649         (final_prescan_insn): Likewise for param "insn".
23650         (sequence_insn_p): Likewise for locals "prev", "next".
23651         (sh_insn_length_adjustment): Likewise for param "insn".
23652         (sh_can_redirect_branch): Likewise for local "insn".
23653         (find_r0_life_regions): Likewise for locals "end", "insn".
23654         (sh_output_mi_thunk): Likewise for local "insns".
23655
23656 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23657
23658         * config/score/score.c (score_output_mi_thunk): Strengthen local
23659         "insn" from rtx to rtx_insn *.
23660         (score_prologue): Likewise.
23661
23662 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23663
23664         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
23665         1 from rtx to rtx_insn *.
23666         (s390_emit_jump): Likewise for return type.
23667         (s390_emit_call): Likewise.
23668         (s390_load_got): Likewise.
23669
23670         * config/s390/s390.c (last_scheduled_insn): Likewise for this
23671         variable.
23672         (s390_match_ccmode): Likewise for param "insn".
23673         (s390_emit_jump): Likewise for return type.
23674         (s390_split_branches): Likewise for local "label".
23675         (struct constant): Strengthen field "label" from rtx to
23676         rtx_code_label *.
23677         (struct constant_pool): Likewise for field "label".  Strengthen
23678         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
23679         rtx_insn *.
23680         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
23681         insns.
23682         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
23683         (s390_end_pool): Likewise.
23684         (s390_dump_pool): Likewise for local "insn".
23685         (s390_mainpool_start): Likewise.
23686         (s390_chunkify_start): Likewise.
23687         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
23688         with insns.  Strengthen locals "label", "jump", "barrier", "next",
23689         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
23690         (s390_chunkify_finish): Strengthen local "insn" from rtx to
23691         rtx_insn *.
23692         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
23693         "jump", "label", "next_insn".
23694         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
23695         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
23696         "tbegin_insn".
23697         (s390_load_got): Likewise for return type and local "insns".
23698         (s390_save_gprs_to_fprs): Likewise for local "insn".
23699         (s390_restore_gprs_from_fprs): Likewise.
23700         (pass_s390_early_mach::execute): Likewise.
23701         (s390_emit_prologue): Likewise for local "insns".
23702         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
23703         rtx_code_label *.
23704         (s390_emit_call): Strengthen return type and local "insn" from
23705         rtx to rtx_insn *.
23706         (s390_emit_tpf_eh_return): Likewise for local "insn".
23707         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
23708         "next_insn", introducing locals "s_pat", "rpat" to allow this.
23709         (s390_fix_long_loop_prediction): Likewise for param "insn" and
23710         local "cur_insn".
23711         (s390_non_addr_reg_read_p): Likewise for param "insn".
23712         (find_cond_jump): Likewise for return type and param "insn".
23713         (s390_swap_cmp): Likewise for param "insn".
23714         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
23715         "prev_insn", "next_insn".
23716         (s390_reorg): Likewise for locals "insn", "target".
23717         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
23718         (s390_sched_variable_issue): For now, rename param "insn" to
23719         "uncast_insn", introducing a checked cast.
23720         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
23721         insn.
23722         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
23723         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
23724
23725 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23726
23727         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
23728         param from rtx to rtx_insn *.
23729         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
23730
23731 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23732
23733         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
23734         4 from rtx to rtx_insn *.
23735         (rs6000_final_prescan_insn): Likewise for first param.
23736         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
23737         local "insn".
23738         (rs6000_get_some_local_dynamic_name): Likewise.
23739         (output_cbranch): Likewise for param "insn".
23740         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
23741         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
23742         (rs6000_emit_allocate_stack): Likewise for local "insn".
23743         (load_cr_save): Likewise.
23744         (restore_saved_cr): Likewise.
23745         (restore_saved_lr): Likewise.
23746         (emit_cfa_restores): Likewise.
23747         (rs6000_output_function_epilogue): Likewise for locals "insn" and
23748         "deleted_debug_label".
23749         (rs6000_output_mi_thunk): Likewise for local "insn".
23750         (rs6000_final_prescan_insn): Likewise for param "insn".
23751
23752 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23753
23754         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
23755         Strengthen param "insn" from rtx to rtx_insn *.
23756         * config/picochip/picochip.c (picochip_current_prescan_insn):
23757         Likewise for this variable.
23758         (picochip_final_prescan_insn): Likewise for param "insn".
23759
23760 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23761
23762         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
23763         from rtx to rtx_insn *.
23764         (pa_output_indirect_call): Likewise.
23765         (pa_adjust_insn_length): Likewise.
23766         (pa_attr_length_millicode_call): Likewise.
23767         (pa_attr_length_call): Likewise.
23768         (pa_attr_length_indirect_call): Likewise.
23769
23770         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
23771         "insn".
23772         (pa_attr_length_millicode_call): Likewise.
23773         (pa_attr_length_call): Likewise.
23774         (pa_output_call): Likewise.
23775         (pa_attr_length_indirect_call): Likewise.
23776         (pa_output_indirect_call): Likewise.
23777
23778 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23779
23780         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
23781         Strengthen first param from rtx to rtx_insn *.
23782         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
23783         param "insn".
23784
23785 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23786
23787         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
23788         type from rtx to rtx_insn *.
23789         (mips_expand_call): Likewise.
23790         (mips_adjust_insn_length): Likewise for first param.
23791         (mips_output_conditional_branch): Likewise.
23792         (mips_output_order_conditional_branch): Likewise.
23793         (mips_final_prescan_insn): Likewise.
23794
23795         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
23796         rtx_insn * for the SEQUENCE case.
23797         (SEQ_END): Likewise.
23798         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
23799         (mips_emit_call_insn): Likewise, also for local "insn".
23800         (mips16_gp_pseudo_reg): Likewise for local "scan".
23801         (mips16_build_call_stub): Likewise for return type and for local
23802         "insn".  Introduce a new local "pattern" so that "insn" can indeed
23803         be an insn.
23804         (mips_expand_call): Strengthen return type and local "insn" from
23805         rtx to rtx_insn *.
23806         (mips_block_move_loop): Strengthen local "label" from rtx to
23807         rtx_code_label *.
23808         (mips_expand_synci_loop): Likewise for locals "label",
23809         "end_label".
23810         (mips_set_frame_expr): Strengthen local "insn" from rtx to
23811         rtx_insn *.
23812         (mips16e_collect_argument_saves): Likewise for locals "insn",
23813         "next".
23814         (mips_find_gp_ref): Likewise for param of callback for "pred"
23815         param, and for local "insn".
23816         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
23817         (mips_insn_has_flexible_gp_ref_p): Likewise.
23818         (mips_epilogue_emit_cfa_restores): Likewise for return type and
23819         local "insn".
23820         (mips_epilogue_set_cfa): Likewise for local "insn".
23821         (mips_expand_epilogue): Likewise.
23822         (mips_adjust_insn_length): Likewise for param "insn".
23823         (mips_output_conditional_branch): Likewise.
23824         (mips_output_order_conditional_branch): Likewise.
23825         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
23826         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
23827         "falu2_turn_enabled_insn".
23828         (mips_builtin_branch_and_move): Strengthen locals "true_label",
23829         "done_label" from rtx to rtx_code_label *.
23830         (struct mips16_constant): Likewise for field "label".
23831         (mips16_add_constant): Likewise for return type.
23832         (mips16_emit_constants_1): Strengthen return type and param "insn"
23833         from rtx to rtx_insn *.
23834         (mips16_emit_constants): Likewise for param "insn".
23835         (mips16_insn_length): Likewise.
23836         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
23837         to rtx_code_label *.
23838         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
23839         from rtx to rtx_insn *.
23840         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
23841         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
23842         (r10k_simplify_address): Strengthen param "insn" and local
23843         "def_insn" from rtx to rtx_insn *.
23844         (r10k_safe_address_p): Strengthen param "insn" from rtx to
23845         rtx_insn *.
23846         (r10k_needs_protection_p_1): Update target type of cast of data
23847         from to rtx to rtx_insn *.
23848         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
23849         rtx * to rtx_insn **.
23850         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
23851         rtx_insn *.
23852         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
23853         (mips_call_expr_from_insn): Likewise for param "insn".
23854         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
23855         (mips_find_pic_call_symbol): Likewise for param "insn".
23856         (mips_annotate_pic_calls): Likewise for local "insn".
23857         (mips_sim_insn): Likewise for this variable.
23858         (struct mips_sim): Likewise for field "insn" within elements of
23859         last_set array.
23860         (mips_sim_wait_reg): Likewise for param "insn".
23861         (mips_sim_wait_regs): Likewise.
23862         (mips_sim_wait_units): Likewise.
23863         (mips_sim_wait_insn): Likewise.
23864         (mips_sim_issue_insn): Likewise.
23865         (mips_sim_finish_insn): Likewise.
23866         (mips_seq_time): Likewise for param "seq" and local "insn".
23867         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
23868         locals "first", "second".
23869         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
23870         "last", "last2", "next".
23871         (mips_avoid_hazard): Likewise for params "after", "insn".
23872         (mips_reorg_process_insns): Likewise for locals "insn",
23873         "last_insn", "subinsn", "next_insn".
23874         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
23875         (mips16_split_long_branches): Likewise for locals "insn" "jump",
23876         "jump_sequence".
23877         (mips_output_mi_thunk): Likewise for local "insn".
23878         (mips_final_prescan_insn): Likewise for param "insn".
23879
23880 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23881
23882         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
23883         Strengthen return type and local "insns" from rtx to rtx_insn *.
23884         (microblaze_legitimize_tls_address): Likewise for local "insns".
23885         (microblaze_block_move_loop): Strengthen local "label" from rtx
23886         to rtx_code_label *.
23887         (microblaze_expand_prologue): Strengthen two locals named "insn"
23888         from rtx to rtx_insn *.
23889         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
23890         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
23891         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
23892         to rtx_code_label *.
23893
23894 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23895
23896         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
23897         param from rtx to rtx_insn *.
23898         (mep_reuse_lo): Likewise for third param.
23899         (mep_use_post_modify_p): Likewise for first param.
23900         (mep_core_address_length): Likewise.
23901         (mep_cop_address_length): Likewise.
23902         (mep_final_prescan_insn): Likewise.
23903         (mep_store_data_bypass_p): Likewise for both params.
23904         (mep_mul_hilo_bypass_p): Likewise.
23905         (mep_ipipe_ldc_p): Likewise for param.
23906
23907         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
23908         (mep_rewrite_mult): Likewise.
23909         (mep_rewrite_mulsi3): Likewise.
23910         (mep_rewrite_maddsi3): Likewise.
23911         (mep_reuse_lo_p_1): Likewise.
23912         (mep_reuse_lo_p): Likewise.
23913         (mep_frame_expr): Likewise.
23914         (mep_make_parallel): Likewise for both params.
23915         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
23916         local "insn".
23917         (mep_use_post_modify_p): Likewise for param "insn".
23918         (mep_core_address_length): Likewise.
23919         (mep_cop_address_length): Likewise.
23920         (mep_reg_set_in_function): Likewise for local "insn".
23921         (mep_asm_without_operands_p): Likewise.
23922         (F): Likewise for return type and param "x".
23923         (add_constant): Likewise for local "insn".
23924         (maybe_dead_move): Likewise for return type and local "insn".
23925         (mep_expand_prologue): Likewise for local "insn".
23926         (mep_final_prescan_insn): Likewise for param "insn".
23927         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
23928         "next", "follow", "x".
23929         (mep_insert_repeat_label_last): Likewise for return type, param
23930         "last_insn", and locals "next", "prev".  Strengthen param "label"
23931         from rtx to rtx_code_label *.
23932         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
23933         rtx_insn *.
23934         (struct mep_doloop_end): Likewise for fields "insn" and
23935         "fallthrough".
23936         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
23937         Strengthen local "repeat_label" from rtx to rtx_code_label *.
23938         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
23939         rtx_insn *.
23940         (mep_invert_branch): Likewise for params "insn" and "after".
23941         (mep_reorg_erepeat): Likewise for param "insns" and locals
23942         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
23943         "l" from rtx to rtx_code_label *.
23944         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
23945         from rtx to rtx_insn *.
23946         (mep_reorg_addcombine): Likewise for param "insns" and locals
23947         "i", "n".
23948         (add_sp_insn_p): Likewise for param "insn".
23949         (mep_reorg_noframe): Likewise for param "insns" and locals
23950         "start_frame_insn", "end_frame_insn", "next".
23951         (mep_reorg): Likewise for local "insns".
23952         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
23953         cast.
23954         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
23955         (mep_mul_hilo_bypass_p): Likewise.
23956         (mep_ipipe_ldc_p): Likewise for param "insn".
23957         (mep_make_bundle): Likewise for return type, param "cop" and local
23958         "insn", splitting out the latter into a new local "seq" for when it
23959         is a SEQUENCE rather than an insn.
23960         (core_insn_p): Likewise for param "insn".
23961         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
23962         "last", "first", "note", "prev", "core_insn".
23963
23964 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23965
23966         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
23967         rtx to rtx_insn *.
23968         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
23969         (m68k_final_prescan_insn): Likewise for first param.
23970
23971         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
23972         (m68k_set_frame_related): Likewise for param "insn".
23973         (output_btst): Likewise for param "insn".
23974         (m68k_final_prescan_insn): Likewise.
23975         (m68k_move_to_reg): Likewise for local "insn".
23976         (m68k_call_tls_get_addr): Likewise for local "insns".
23977         (m68k_call_m68k_read_tp): Likewise.
23978         (strict_low_part_peephole_ok): Likewise for param "first_insn".
23979         (m68k_output_mi_thunk): Likewise for local "insn".
23980
23981 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23982
23983         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
23984         first param from rtx to rtx_insn *.
23985         (iq2000_adjust_insn_length): Likewise.
23986         (iq2000_output_conditional_branch): Likewise.
23987         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
23988         "insn" and local "nop_insn".
23989         (iq2000_annotate_frame_insn): Likewise for param "insn".
23990         (iq2000_expand_prologue): Likewise for both locals "insn".
23991         (iq2000_adjust_insn_length): Likewise for param "insn".
23992         (iq2000_output_conditional_branch): Likewise.
23993
23994 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23995
23996         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
23997         "insns" from rtx to rtx_insn *.
23998         (ia64_emit_cond_move): Likewise for locals "insn", "first".
23999         (struct spill_fill_data): Likewise for field "init_after" and for
24000         elements of array field "prev_insn".
24001         (spill_restore_mem): Likewise for locals "insn", "first".
24002         (do_spill): Likewise for local "insn".
24003         (do_restore): Likewise.
24004         (ia64_expand_prologue): Likewise.
24005         (ia64_expand_epilogue): Likewise.
24006         (emit_insn_group_barriers): Likewise for locals "insn",
24007         "last_label".
24008         (emit_all_insn_group_barriers): Likewise for locals "insn",
24009         "last".
24010         (dfa_stop_insn): Likewise for this global.
24011         (dfa_pre_cycle_insn): Likewise.
24012         (ia64_nop): Likewise.
24013         (final_emit_insn_group_barriers): Likewise for locals "insn",
24014         "last".
24015         (emit_predicate_relation_info): Likewise for locals "head", "n",
24016         "insn", "b", "a".
24017         (ia64_reorg): Likewise for local "insn".
24018         (ia64_output_mi_thunk): Likewise.
24019         (expand_vec_perm_interleave_2): Likewise for local "seq".
24020
24021 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24022
24023         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
24024         param 1 "insn" from rtx to rtx_insn *.
24025         (ix86_use_lea_for_mov): Likewise.
24026         (ix86_avoid_lea_for_addr): Likewise.
24027         (ix86_split_lea_for_addr): Likewise.
24028         (ix86_lea_for_add_ok): Likewise.
24029         (ix86_output_call_insn): Likewise.
24030
24031         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
24032         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
24033         (ix86_output_function_epilogue): Likewise for locals "insn",
24034         "deleted_debug_label".
24035         (legitimize_tls_address): Likewise for local "insn".
24036         (get_some_local_dynamic_name): Likewise.
24037         (increase_distance): Likewise for params "prev", "next".
24038         (distance_non_agu_define_in_bb): Likewise for params "insn",
24039         "start" and locals "prev", "next".
24040         (distance_non_agu_define): Likewise for param "insn".
24041         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
24042         locals "next", "prev".
24043         (distance_agu_use): Likewise for param "insn".
24044         (ix86_lea_outperforms): Likewise.
24045         (ix86_ok_to_clobber_flags): Likewise.
24046         (ix86_avoid_lea_for_add): Likewise.
24047         (ix86_use_lea_for_mov): Likewise.
24048         (ix86_avoid_lea_for_addr): Likewise.
24049         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
24050         (ix86_split_lea_for_addr): Likewise for param "insn".
24051         (ix86_lea_for_add_ok): Likewise for param "insn".
24052         (ix86_expand_carry_flag_compare): Likewise for local
24053         "compare_seq".
24054         (ix86_expand_int_movcc): Likewise.
24055         (ix86_output_call_insn): Likewise for param "insn".
24056         (ix86_output_call_insn): Likewise for local "i".
24057         (x86_output_mi_thunk): Introduce local "insn", using it in place
24058         of "tmp" when dealing with insns.
24059         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
24060         "start".
24061         (ix86_pad_returns): Likewise for locals "ret", "prev".
24062         (ix86_count_insn_bb): Likewise for local "insn".
24063         (ix86_pad_short_function): Likewise for locals "ret", "insn".
24064         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
24065         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
24066         (expand_vec_perm_interleave2): Likewise for local "seq".
24067         (expand_vec_perm_vperm2f128_vblend): Likewise.
24068         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
24069         call to for_each_rtx with for_each_rtx_in_insn.
24070
24071 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24072
24073         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
24074         "label" from rtx to rtx_code_label *.
24075         (ix86_expand_prologue): Likewise.
24076         (ix86_expand_split_stack_prologue): Likewise for locals "label",
24077         "varargs_label".
24078         (ix86_split_idivmod): Likewise for locals "end_label" and
24079         "qimode_label".
24080         (ix86_expand_branch): Likewise for local "label2".
24081         (ix86_expand_aligntest): Likewise for return type and local "label".
24082         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
24083         "top_label".
24084         (expand_movmem_epilogue): Likewise for the various locals named
24085         "label".
24086         (expand_setmem_epilogue): Likewise.
24087         (expand_small_movmem_or_setmem): Likewise for local "label".
24088         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24089         Strengthen param "done_label" from rtx * to rtx_code_label **.
24090         Strengthen locals "loop_label" and "label" from rtx to
24091         rtx_code_label *.
24092         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
24093         Likewise for locals "loop_label", "label".
24094         (ix86_expand_set_or_movmem): Likewise for locals "label",
24095         "jump_around_label", "hot_label".
24096         (ix86_expand_strlensi_unroll_1): Likewise for locals
24097         "align_2_label", align_3_label", "align_4_label", "end_0_label",
24098         "end_2_label".
24099         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
24100         (void ix86_emit_i387_log1p): Likewise for locals "label1",
24101         "label2", "jump_label".
24102         (ix86_expand_sse_compare_and_jump): Likewise for return type and
24103         local "label".
24104         (ix86_expand_lfloorceil): Likewise for local "label".
24105         (ix86_expand_rint): Likewise.
24106         (ix86_expand_floorceildf_32): Likewise.
24107         (ix86_expand_floorceil): Likewise.
24108         (ix86_expand_rounddf_32): Likewise.
24109         (ix86_expand_trunc): Likewise.
24110         (ix86_expand_truncdf_32): Likewise.
24111         (ix86_expand_round): Likewise.
24112
24113 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24114
24115         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
24116         first param from rtx to rtx_insn *.
24117         (h8300_insn_length_from_table): Likewise.
24118         * config/h8300/h8300.c (F): Likewise for return type and param
24119         "x".
24120         (Fpa): Add a checked cast to rtx_insn *.
24121         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
24122         rtx_insn *.
24123         (final_prescan_insn): Likewise for param "insn".
24124         (h8300_binary_length): Likewise.
24125         (h8300_insn_length_from_table): Likewise.
24126
24127 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24128
24129         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
24130         Strengthen first param "insn" from rtx to rtx_insn *.
24131
24132         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
24133         Likewise.
24134         (frame_insn): Likewise for return type.  Introduce local "insn"
24135         for use in place of local "x" for use as an rtx_insn *.
24136         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
24137         (epiphany_expand_prologue): Likewise for local "insn".
24138         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
24139         * config/epiphany/resolve-sw-modes.c
24140         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
24141         "seq".
24142
24143 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24144
24145         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
24146         param from rtx to rtx_insn *.
24147         (c6x_final_prescan_insn): Likewise for first param.
24148
24149         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
24150         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
24151         (c6x_expand_compare): Strengthen local "insns" from rtx to
24152         rtx_insn *.
24153         (c6x_get_unit_specifier): Likewise for param "insn".
24154         (c6x_print_unit_specifier_field): Likewise.
24155         (c6x_final_prescan_insn): Likewise.
24156         (emit_add_sp_const): Likewise for local "insn".
24157         (c6x_expand_prologue): Likewise.
24158
24159 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24160
24161         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
24162         param 1 from rtx to rtx_insn *.
24163         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
24164         the various locals named "insn".
24165         (expand_epilogue_reg_restore): Likewise.
24166         (frame_related_constant_load): Likewise.
24167         (add_to_reg): Likewise.
24168         (emit_link_insn): Likewise.
24169         (do_link): Likewise.
24170         (expand_interrupt_handler_prologue): Likewise.
24171         (branch_dest): Likewise for param "branch".
24172         (asm_conditional_branch): Likewise for param "insn".
24173         (gen_one_bundle): Likewise for elements of param "slot" and local
24174         "t".
24175         (bfin_gen_bundles): Likewise for locals "insn", "next" and
24176         elements of local "slot".
24177         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24178         "queue", "next_queue", "prev".
24179         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
24180         (add_sched_insns_for_speculation): Likewise for local "insn".
24181
24182 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24183
24184         * config/avr/avr-protos.h (output_movqi): Strengthen first param
24185         from rtx to rtx_insn *.
24186         (output_movhi): Likewise.
24187         (output_movsisf): Likewise.
24188         (avr_out_tstsi): Likewise.
24189         (avr_out_tsthi): Likewise.
24190         (avr_out_tstpsi): Likewise.
24191         (avr_out_compare): Likewise.
24192         (avr_out_compare64): Likewise.
24193         (avr_out_movpsi): Likewise.
24194         (ashlqi3_out): Likewise.
24195         (ashlhi3_out): Likewise.
24196         (ashlsi3_out): Likewise.
24197         (ashrqi3_out): Likewise.
24198         (ashrhi3_out): Likewise.
24199         (ashrsi3_out): Likewise.
24200         (lshrqi3_out): Likewise.
24201         (lshrhi3_out): Likewise.
24202         (lshrsi3_out): Likewise.
24203         (avr_out_ashlpsi3): Likewise.
24204         (avr_out_ashrpsi3): Likewise.
24205         (avr_out_lshrpsi3): Likewise.
24206         (avr_out_fract): Likewise.
24207         (avr_out_sbxx_branch): Likewise.
24208         (avr_out_round): Likewise.
24209         (avr_out_xload): Likewise.
24210         (avr_out_movmem): Likewise.
24211         (adjust_insn_length): Likewise.
24212         (avr_out_lpm): Likewise.
24213         (reg_unused_after): Likewise.
24214         (_reg_unused_after): Likewise.
24215         (avr_jump_mode): Likewise for second param.
24216         (jump_over_one_insn): Likewise for first param.
24217         (avr_final_prescan_insn): Likewise.
24218         (out_shift_with_cnt): Likewise for second param.
24219
24220         * config/avr/avr.c (get_sequence_length): Likewise for param
24221         "insns" and local "insn".
24222         (emit_push_byte): Likewise for local "insn".
24223         (emit_push_sfr): Likewise.
24224         (avr_prologue_setup_frame): Likewise for locals "insn",
24225         "fp_plus_insns", "sp_plus_insns".
24226         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
24227         "sp_plus_insns".
24228         (avr_jump_mode): Likewise for param "insn".
24229         (avr_final_prescan_insn): Likewise.
24230         (avr_find_unused_d_reg): Likewise.
24231         (avr_out_lpm_no_lpmx): Likewise.
24232         (avr_out_lpm): Likewise.
24233         (avr_out_xload): Likewise.
24234         (output_movqi): Likewise.
24235         (output_movhi): Likewise.
24236         (out_movqi_r_mr): Likewise.
24237         (out_movhi_r_mr): Likewise.
24238         (out_movsi_r_mr): Likewise.
24239         (out_movsi_mr_r): Likewise.
24240         (output_movsisf): Likewise.
24241         (avr_out_load_psi): Likewise.
24242         (avr_out_store_psi): Likewise.
24243         (avr_out_movpsi): Likewise.
24244         (out_movqi_mr_r): Likewise.
24245         (avr_out_movhi_mr_r_xmega): Likewise.
24246         (out_movhi_mr_r): Likewise.
24247         (compare_condition): Likewise for param "insn" and local "next".
24248         (compare_sign_p): Likewise for param "insn".
24249         (compare_diff_p): Likewise.
24250         (compare_eq_p): Likewise.
24251         (avr_out_compare): Likewise.
24252         (avr_out_compare64): Likewise.
24253         (avr_out_tsthi): Likewise.
24254         (avr_out_tstpsi): Likewise.
24255         (avr_out_tstsi): Likewise.
24256         (out_shift_with_cnt): Likewise.
24257         (ashlqi3_out): Likewise.
24258         (ashlhi3_out): Likewise.
24259         (avr_out_ashlpsi3): Likewise.
24260         (ashlsi3_out): Likewise.
24261         (ashrqi3_out): Likewise.
24262         (ashrhi3_out): Likewise.
24263         (avr_out_ashrpsi3): Likewise.
24264         (ashrsi3_out): Likewise.
24265         (lshrqi3_out): Likewise.
24266         (lshrhi3_out): Likewise.
24267         (avr_out_lshrpsi3): Likewise.
24268         (lshrsi3_out): Likewise.
24269         (avr_out_fract): Likewise.
24270         (avr_out_round): Likewise.
24271         (avr_adjust_insn_length): Likewise.
24272         (reg_unused_after): Likewise.
24273         (_reg_unused_after): Likewise.
24274         (avr_compare_pattern): Likewise.
24275         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24276         and locals "branch1", "branch2", "insn2", "jump".
24277         (avr_reorg): Likewise for local "insn".
24278         (avr_2word_insn_p): Likewise for param "insn".
24279         (jump_over_one_insn_p): Likewise.
24280         (avr_out_sbxx_branch): Likewise.
24281         (avr_out_movmem): Likewise.
24282
24283 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24284
24285         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24286         param from rtx to rtx_insn *.
24287         (thumb1_final_prescan_insn): Likewise.
24288         (thumb2_final_prescan_insn): Likewise.
24289
24290         * config/arm/arm.c (emit_set_insn): Strengthen return type from
24291         rtx to rtx_insn *.
24292         (struct minipool_node): Likewise for field "insn".
24293         (dump_minipool): Likewise for param "scan".
24294         (create_fix_barrier): Likewise for local "from".  Strengthen local
24295         "label" from rtx to rtx_code_label *.
24296         (push_minipool_barrier): Strengthen param "insn" from rtx to
24297         rtx_insn *.
24298         (push_minipool_fix): Likewise.
24299         (note_invalid_constants): Likewise.
24300         (thumb2_reorg): Likewise for local "insn".
24301         (arm_reorg): Likewise.
24302         (thumb2_final_prescan_insn): Likewise for param
24303         "insn" and local "first_insn".
24304         (arm_final_prescan_insn): Likewise for param "insn" and locals
24305         "start_insn", "this_insn".
24306         (arm_debugger_arg_offset): Likewise for param "insn".
24307         (thumb1_emit_multi_reg_push): Likewise for return type and local
24308         "insn".
24309         (thumb1_final_prescan_insn): Likewise for param "insn".
24310         (thumb_far_jump_used_p): Likewise for local "insn".
24311         (thumb1_expand_prologue): Likewise.
24312         (arm_expand_epilogue_apcs_frame): Likewise.
24313         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24314         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24315         from rtx to rtx_code_label *.
24316         (arm_split_atomic_op): Likewise for local "label".
24317         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24318
24319 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24320
24321         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24322         first param from rtx to rtx_insn *.
24323         (arc_verify_short): Likewise.
24324         (arc_short_long): Likewise.
24325         (arc_need_delay): Likewise.
24326
24327         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24328         "target_insn".
24329         (arc_ccfsm_advance): Likewise for param "insn" and locals
24330         "start_insn", "this_insn".
24331         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24332         (arc_ccfsm_post_advance): Likewise for param "insn".
24333         (arc_next_active_insn): Likewise for return type and param "insn".
24334         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
24335         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
24336         (output_short_suffix): Likewise for local "insn".
24337         (arc_final_prescan_insn): Likewise for param "insn".  Remove
24338         now-redundant checked cast.
24339         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
24340         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
24341         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
24342         for use where lc_set became an insn.
24343         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
24344         rtx to rtx_insn *.
24345         (arc_get_insn_variants): Likewise for local "prev".
24346         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
24347         "next".
24348         (arc_predicate_delay_insns): Likewise for local "insn".
24349         (arc_pad_return): Likewise for local "prev".  For now, add a
24350         checked cast when extracting the insn from "final_sequence".
24351         (arc_short_long): Likewise for param "insn".
24352         (arc_need_delay): Likewise for param "insn" and local "next".
24353         (arc_label_align): Likewise for locals "prev", "next".
24354
24355 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24356
24357         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
24358         "insn" from rtx to rtx_insn *.
24359         (alpha_gp_save_rtx): Likewise for local "seq".
24360         (alpha_instantiate_decls): Likewise for local "top".
24361         (get_some_local_dynamic_name): Likewise for local "insn".
24362         (alpha_does_function_need_gp): Likewise.
24363         (set_frame_related_p): Likewise for return type and for locals
24364         "seq" and "insn".
24365         (emit_frame_store_1): Likewise for local "insn".
24366         (alpha_expand_prologue): Likewise for locals "insn", "seq".
24367         (alpha_end_function): Likewise for local "insn".
24368         (alpha_output_mi_thunk_osf): Likewise.
24369         (alphaev4_insn_pipe): Likewise for param "insn".
24370         (alphaev5_insn_pipe): Likewise.
24371         (alphaev4_next_group): Likewise for return type and param 1
24372         "insn".
24373         (alphaev5_next_group): Likewise.
24374         (alpha_align_insns_1): Likewise for return type and param 1 of
24375         callback param "next_group", and for locals "i", "next", "prev",
24376         "where", "where2", "insn".
24377
24378 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
24379
24380         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
24381         rather than modifying the stmt.
24382
24383 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24384
24385         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
24386         cgraph_state conversion.
24387
24388 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24389
24390         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24391         Strengthen local "insns" from rtx to rtx_insn *.
24392         (aarch64_set_frame_expr): Likewise for local "insn".
24393         (aarch64_save_or_restore_fprs): Likewise.
24394         (aarch64_save_or_restore_callee_save_registers): Likewise.
24395         (aarch64_expand_prologue): Likewise.
24396         (aarch64_expand_epilogue): Likewise.
24397         (aarch64_output_mi_thunk): Likewise.
24398         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
24399         "label2" from rtx to rtx_code_label *.
24400         (aarch64_split_atomic_op): Likewise for local "label".
24401
24402 2014-08-25  Martin Liska  <mliska@suse.cz>
24403
24404         * cgraph.h (symtab_node):
24405         (bool needed_p (void)): created from decide_is_symbol_needed
24406         (bool referred_to_p (void)): created from referred_to_p
24407         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
24408         * cgraph.h (cgraph_node):
24409         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
24410         (void expand (void)): created from expand_function
24411         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
24412         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
24413         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
24414         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
24415         * cgraph.h (varpool_node):
24416         (static void add (tree decl): created from varpool_add_new_variable
24417         * cgraph.h (cgraph_edge):
24418         void remove (void);
24419         (void remove_caller (void)): created from cgraph_edge_remove_caller
24420         (void remove_callee (void)): created from cgraph_edge_remove_callee
24421         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
24422           created from cgraph_set_call_stmt
24423         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
24424         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
24425         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
24426           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
24427         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
24428           created from cgraph_speculative_call_info
24429         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
24430           int freq_scale, bool update_original)): created from cgraph_clone_edge
24431         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
24432         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
24433         (bool recursive_p (void)): created from cgraph_edge_recursive_p
24434         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
24435         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
24436         (static void rebuild_references (void)): created from cgraph_rebuild_references
24437         * cgraph.h (symbol_table):
24438         (create_reference): renamed from add_reference
24439         (maybe_create_reference): renamed from maybe_add_reference
24440         (void register_symbol (symtab_node *node)): new function
24441         (void clear_asm_symbols (void)): new function
24442         (void unregister (symtab_node *node)): new function
24443         (void release_symbol (cgraph_node *node, int uid)): new function
24444         (cgraph_node * allocate_cgraph_symbol (void)): new function
24445         (void initialize (void)): created from cgraph_init
24446         (symtab_node *first_symbol (void)):new function
24447         (asm_node *first_asm_symbol (void)):new function
24448         (symtab_node *first_defined_symbol (void)):new function
24449         (varpool_node *first_variable (void)):new function
24450         (varpool_node *next_variable (varpool_node *node)):new function
24451         (varpool_node *first_static_initializer (void)):new function
24452         (varpool_node *next_static_initializer (varpool_node *node)):new function
24453         (varpool_node *first_defined_variable (void)):new function
24454         (varpool_node *next_defined_variable (varpool_node *node)):new function
24455         (cgraph_node *first_defined_function (void)):new function
24456         (cgraph_node *next_defined_function (cgraph_node *node)):new function
24457         (cgraph_node *first_function (void)):new function
24458         (cgraph_node *next_function (cgraph_node *node)):new function
24459         (cgraph_node *first_function_with_gimple_body (void)):new function
24460         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
24461         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
24462           created from symtab_remove_unreachable_nodes
24463         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
24464         (void process_new_functions (void)): created from cgraph_process_new_functions
24465         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
24466         (bool output_variables (void)): created from varpool_node::output_variables
24467         (void output_asm_statements (void)): created from output_asm_statements
24468         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
24469         (void compile (void)): created from compile
24470         (void output_weakrefs (void)): created from output_weakrefs
24471         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
24472         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
24473           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
24474         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
24475         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
24476           created from cgraph_next_function_with_gimple_body
24477         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
24478           created from cgraph_remove_edge_removal_hook
24479         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
24480           created from cgraph_add_node_removal_hook
24481         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
24482           created from cgraph_remove_node_removal_hook
24483         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
24484           created from varpool_add_node_removal_hook
24485         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
24486           created from varpool_remove_node_removal_hook
24487         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
24488           created from cgraph_add_function_insertion_hook
24489         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
24490           created from cgraph_remove_function_insertion_hook
24491         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
24492           created from varpool_add_variable_insertion_hook
24493         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
24494           created from varpool_remove_variable_insertion_hook
24495         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
24496           created from cgraph_add_edge_duplication_hook
24497         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
24498           created from cgraph_remove_edge_duplication_hook
24499         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
24500           created from cgraph_add_node_duplication_hook
24501         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
24502           created from cgraph_remove_node_duplication_hook
24503         (void call_edge_removal_hooks (cgraph_edge *e)):
24504           created from cgraph_call_edge_removal_hooks
24505         (void call_cgraph_insertion_hooks (cgraph_node *node)):
24506           created from call_function_insertion_hooks
24507         (void call_cgraph_removal_hooks (cgraph_node *node)):
24508           created from cgraph_call_node_removal_hooks
24509         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
24510           created from cgraph_node::call_duplication_hooks
24511         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
24512           created from cgraph_call_edge_duplication_hooks
24513         (void call_varpool_removal_hooks (varpool_node *node)):
24514           created from varpool_call_node_removal_hooks
24515         (void call_varpool_insertion_hooks (varpool_node *node)):
24516           created from varpool_call_variable_insertion_hooks
24517         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
24518           created from insert_to_assembler_name_hash
24519         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
24520           created from unlink_from_assembler_name_hash
24521         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
24522           created from symtab_prevail_in_asm_name_hash
24523         (void symtab_initialize_asm_name_hash (void)):
24524           created from symtab_initialize_asm_name_hash
24525         (void change_decl_assembler_name (tree decl, tree name)):
24526           created from change_decl_assembler_name
24527         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
24528         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
24529           created from decl_assembler_name_hash
24530         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
24531           created from decl_assembler_name_equal
24532         (static hashval_t hash_node_by_assembler_name (const void *p)):
24533           created from hash_node_by_assembler_name
24534         (static int eq_assembler_name (const void *p1, const void *p2)):
24535           created from eq_assembler_name
24536
24537 2014-08-25  Marek Polacek  <polacek@redhat.com>
24538
24539         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
24540
24541 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
24542
24543         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
24544         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
24545         SWI1248_AVX512BW mode iterator.
24546
24547 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
24548
24549         PR target/62111
24550         * config/sh/predicates.md (general_extend_operand): Disable
24551         TRUNCATE before reload completes.
24552
24553 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
24554
24555         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
24556
24557 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
24558
24559         PR target/61996
24560         * config/sh/sh.opt (musermode): Allow negative form.
24561         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
24562         targets that don't support it.
24563         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
24564         Document -mno-usermode option.
24565
24566 2014-08-24  Kito Cheng  <kito@0xlab.org>
24567
24568         * system.h (CALLER_SAVE_PROFITABLE): Poison.
24569         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
24570         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
24571         * doc/tm.texi: Regenerate.
24572
24573 2014-08-24  Kito Cheng  <kito@0xlab.org>
24574
24575         * ira.c: Fix typo in comment.
24576
24577 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
24578
24579         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
24580         Deprecate c++1y. Change language to reflect greater confidence in C++14.
24581
24582 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
24583
24584         PR target/62038
24585         * config/pa/pa.c (pa_output_function_epilogue): Don't set
24586         last_address when the current function is a thunk.
24587         (pa_asm_output_mi_thunk): When we don't have named sections or they
24588         are not being used, check that thunk can reach the stub table with a
24589         short branch.
24590
24591 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24592
24593         * web.c (union_match_dups): Strengthen param "insn" from rtx to
24594         rtx_insn *.
24595         (pass_web::execute): Likewise for local "insn".
24596
24597 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24598
24599         * var-tracking.c (struct micro_operation_def): Strengthen field
24600         "insn" from rtx to rtx_insn *.
24601         (struct emit_note_data_def): Likewise.
24602         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
24603         (vt_stack_adjustments): Likewise for local "insn".
24604         (adjust_insn): Likewise for param "insn".
24605         (val_store): Likewise.
24606         (val_resolve): Likewise.
24607         (struct count_use_info): Likewise for field "insn".
24608         (log_op_type): Likewise for param "insn".
24609         (reverse_op): Likewise.
24610         (prepare_call_arguments): Likewise.
24611         (add_with_sets):  The initial param takes an insn, but we can't
24612         yet strengthen it from rtx to rtx_insn * since it's used as a
24613         cselib_record_sets_hook callback.  For now rename initial param
24614         from "insn" to "uncast_insn", and introduce a local "insn" of
24615         the stronger rtx_insn * type, with a checked cast.
24616         (compute_bb_dataflow): Strengthen local "insn" from rtx to
24617         rtx_insn *.
24618         (emit_note_insn_var_location): Likewise.
24619         (emit_notes_for_changes): Likewise.
24620         (emit_notes_for_differences): Likewise.
24621         (next_non_note_insn_var_location): Likewise for return type and
24622         for param "insn".
24623         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
24624         (vt_initialize): Likewise for local "insn".
24625         (delete_debug_insns): Likewise for locals "insn" and "next".
24626
24627 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24628
24629         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
24630         rtx_insn *.
24631         (mark_constant_pool): Likewise for local "insn".
24632
24633 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24634
24635         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
24636         rtx to rtx_insn *.
24637         (dead_debug_promote_uses): Likewise.
24638         (dead_debug_insert_temp): Likewise.
24639
24640 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24641
24642         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
24643         from const_rtx to const rtx_insn *.
24644         (store_killed_after): Likewise.  Strengthen locals "last", "act"
24645         from rtx to rtx_insn *.
24646         (store_killed_before): Strengthen param "insn" from const_rtx to
24647         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
24648         (find_moveable_store): Strengthen param "insn" from rtx to
24649         rtx_insn *.
24650         (compute_store_table): Likewise for local "insn".
24651         (insert_insn_start_basic_block): Likewise for param "insn" and
24652         locals "prev", "before", "insn".
24653         (insert_store): For now, add a checked cast to rtx_insn * on the
24654         result of gen_move_insn.
24655         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
24656         to rtx_insn *.
24657         (replace_store_insn): Likewise.  For now, add a checked cast to
24658         rtx_insn * on the result of gen_move_insn.
24659
24660 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24661
24662         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
24663         rtx_insn *.
24664         (expand_sjlj_dispatch_table): Likewise.
24665
24666 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24667
24668         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
24669         "insn" from rtx to rtx_insn *.
24670
24671 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24672
24673         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
24674         "insn" from rtx to rtx_insn *.
24675         (dup_block_and_redirect): Likewise for param 3 "before".
24676
24677         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
24678         from rtx to rtx_insn *.
24679         (move_insn_for_shrink_wrap): Likewise.
24680         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
24681         (dup_block_and_redirect): Likewise for param "before" and local
24682         "insn".
24683         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
24684         "end".
24685         (convert_to_simple_return): Likewise for local "start".
24686
24687         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
24688         Strengthen local "insn" from rtx to rtx_insn *, for use when
24689         invoking requires_stack_frame_p.
24690
24691 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24692
24693         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
24694         rtx_insn *.
24695         (speculate_expr): Likewise for locals "orig_insn_rtx",
24696         "spec_insn_rtx".
24697         (eq_transformed_insns): Likewise for locals "i1", "i2".
24698         (check_for_new_jump): Likewise for return type and local "end".
24699         (find_new_jump): Likewise for return type and local "jump".
24700         (sel_split_edge): Likewise for local "jump".
24701         (sel_create_recovery_block): Likewise.
24702         (sel_redirect_edge_and_branch_force): Likewise.
24703         (sel_redirect_edge_and_branch): Likewise.
24704
24705 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24706
24707         * sel-sched.c (substitute_reg_in_expr): Strengthen local
24708         "new_insn" from rtx to rtx_insn *.
24709         (create_insn_rtx_with_rhs): Likewise for return type and for local
24710         "insn_rtx".
24711         (create_insn_rtx_with_lhs): Likewise.
24712         (create_speculation_check): Likewise for local "insn_rtx".
24713         (implicit_clobber_conflict_p): Likewise for local "insn".
24714         (get_expr_cost): Likewise.
24715         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
24716         (move_cond_jump): Likewise for locals "next", "prev", "link",
24717         "head", "from", "to".
24718
24719 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24720
24721         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
24722         "next" from rtx to rtx_insn *.
24723         (find_conditional_protection): Likewise for local "next".
24724         (is_conditionally_protected): Likewise for local "insn1".
24725         (is_pfree): Likewise for locals "insn1", "insn2".
24726
24727 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24728
24729         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
24730         from rtx to rtx_insn *.
24731
24732         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
24733         locals "insn1", "insn2" from rtx to rtx_insn *.
24734         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
24735         locals "insn", "prev", "last_jump", "next_tail".
24736         (schedule_ebb): Likewise for params "head", "tail".
24737         (schedule_ebbs): Likewise for locals "tail", "head".
24738
24739         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
24740         to rtx_insn on "last_insn" in one of the invocations of
24741         schedule_ebb.
24742
24743 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24744
24745         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
24746         "elem", "insn" from rtx to rtx_insn *.
24747         (change_spec_dep_to_hard): Likewise.
24748         (get_back_and_forw_lists): Likewise for local "con".
24749         (sd_add_dep): Likewise for locals "elem", "insn".
24750         (sd_resolve_dep): Likewise for locals "pro", "con".
24751         (sd_unresolve_dep): Likewise.
24752         (sd_delete_dep): Likewise.
24753         (chain_to_prev_insn): Likewise for local "pro".
24754         (find_inc): Likewise for locals "pro", "con".
24755
24756 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24757
24758         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
24759         to rtx_insn *.
24760         (reg_set_between_p): Strengthen local "insn" from const_rtx to
24761         const rtx_insn *.
24762         (modified_between_p): Strengthen local "insn" from rtx to
24763         rtx_insn *.
24764         (remove_reg_equal_equiv_notes_for_regno): Likewise.
24765         (keep_with_call_p): Strengthen local "i2" from const_rtx to
24766         const rtx_insn *.
24767
24768 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24769
24770         * resource.c (next_insn_no_annul): Strengthen local "next" from
24771         rtx to rtx_insn *.
24772         (mark_referenced_resources): Likewise for local "insn".
24773
24774 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24775
24776         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
24777         to rtx_insn *.
24778         (find_reloads): Likewise for param 1.
24779         (subst_reloads): Likewise for sole param.
24780         (find_equiv_reg): Likwise for param 2.
24781         (regno_clobbered_p): Likwise for param 2.
24782         (reload): Likewise for param 1.
24783
24784         * caller-save.c (save_call_clobbered_regs): Strengthen local
24785         "insn" from rtx to rtx_insn *.
24786         (insert_one_insn): Likewise for local "insn".
24787
24788         * reload.c (this_insn): Likewise for this global.
24789         (find_reloads): Likewise for param "insn".
24790         (find_reloads_toplev): Likewise.
24791         (find_reloads_address): Likewise.
24792         (subst_reg_equivs): Likewise.
24793         (update_auto_inc_notes): Likewise.
24794         (find_reloads_address_1): Likewise.
24795         (find_reloads_subreg_address): Likewise.
24796         (subst_reloads): Likewise.
24797         (find_equiv_reg): Likewise, also for local "p".
24798         (regno_clobbered_p): Likewise for param "insn".
24799
24800         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
24801         array.
24802         (spill_reg_store): Likewise for the elements of this array.
24803         (remove_init_insns): Likewise for local "equiv_insn".
24804         (will_delete_init_insn_p): Likewise for param "insn".
24805         (reload): Likewise for param ""first" and local "insn".
24806         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
24807         rtx_insn *.
24808         (calculate_elim_costs_all_insns): Likewise.
24809         (delete_caller_save_insns): Likewise.
24810         (spill_failure): Likewise for param "insn".
24811         (delete_dead_insn): Likewise.
24812         (set_label_offsets): Likewise.
24813         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
24814         "prev_insn".
24815         (elimination_costs_in_insn): Likewise for param "insn".
24816         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
24817         when referring to an insn.
24818         (set_initial_label_offsets): Likewise.
24819         (set_offsets_for_label): Strengthen param "insn" from rtx to
24820         rtx_insn *.
24821         (init_eliminable_invariants): Likewise for param "first" and local
24822         "insn".
24823         (fixup_eh_region_note): Likewise for param "insn".
24824         (reload_as_needed): Likewise for locals "prev", "insn",
24825         "old_next", "old_prev", "next".
24826         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
24827         "last".
24828         (reload_inheritance_insn): Strengthen elements of this array from
24829         rtx to rtx_insn *.
24830         (failed_reload): Likewise for param "insn".
24831         (choose_reload_regs): Likewise for local "insn".  Replace use of
24832         NULL_RTX with NULL when referring to an insn.
24833         (input_reload_insns): Strengthen elements of this array from rtx
24834         to rtx_insn *.
24835         (other_input_address_reload_insns): Likewise for this global.
24836         (other_input_reload_insns): Likewise for this global.
24837         (input_address_reload_insns): Likwise for the elements of this
24838         array.
24839         (inpaddr_address_reload_insns): Likwise for the elements of this
24840         array.
24841         (output_reload_insns): Likewise for the elements of this array.
24842         (output_address_reload_insns): Likewise for the elements of this
24843         array.
24844         (outaddr_address_reload_insns): Likewise for the elements of this
24845         array.
24846         (operand_reload_insns): Likewise for this global.
24847         (other_operand_reload_insns): Likewise for this global.
24848         (other_output_reload_insns): Likewise for the elements of this
24849         array.
24850         (new_spill_reg_store): Likewise for the elements of this
24851         array.
24852         (emit_input_reload_insns): Likewise for locals "insn", "temp".
24853         Strengthen local "where" from rtx * to rtx_insn **.
24854         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
24855         from rtx to rtx_insn *.
24856         (do_input_reload): Likewise for local "insn".
24857         (do_output_reload): Likewise for local "insn".
24858         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
24859         (emit_insn_if_valid_for_reload): Likewise for return type and local
24860         "last".  Add checked cast to rtx_insn when returning "insn" since
24861         this has been through emit_insn.
24862         (gen_reload): Strengthen return type and locals "last", "insn", "set"
24863         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
24864         returning "insn" since it's been through
24865         emit_insn_if_valid_for_reload at this point.
24866         (delete_output_reload): Strengthen param "insn" and locals
24867         "output_reload_insn", "i2" from rtx to rtx_insn *.
24868         (delete_address_reloads): Likewise for params "dead_insn",
24869         "current_insn" and locals "prev", "next".
24870         (delete_address_reloads_1): Likewise for params "dead_insn",
24871         "current_insn" and locals "prev", "i2".
24872         (inc_for_reload): Likewise for locals "last", "add_insn".
24873         (add_auto_inc_notes): Strengthen param "insn" from rtx to
24874         rtx_insn *.
24875
24876         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
24877         param of this duplicate of the prototype from reload.h
24878
24879 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24880
24881         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
24882         rtx to rtx_insn *.
24883         (regstat_bb_compute_calls_crossed): Likewise.
24884
24885 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24886
24887         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
24888         to rtx_insn *.
24889         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
24890         with an insn.
24891         (regrename_analyze): Strengthen local "insn" from rtx to
24892         rtx_insn *.
24893         (scan_rtx_reg): Likewise for param "insn".
24894         (scan_rtx_address): Likewise.
24895         (scan_rtx): Likewise.
24896         (restore_operands): Likewise.
24897         (record_out_operands): Likewise.
24898         (build_def_use): Likewise for local "insn".  Replace use of
24899         NULL_RTX with NULL when dealing with an insn.
24900
24901 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24902
24903         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
24904         * reginfo.c (reg_scan): Likewise, also for local "insn".
24905         (reg_scan_mark_refs): Likewise for param "insn".
24906         (init_subregs_of_mode): Likewise for local "insn".
24907
24908 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24909
24910         * regcprop.c (struct queued_debug_insn_change): Strengthen field
24911         "insn" from rtx to rtx_insn *.
24912         (replace_oldest_value_reg): Likewise for param "insn".
24913         (replace_oldest_value_addr): Likewise.
24914         (replace_oldest_value_mem): Likewise.
24915         (apply_debug_insn_changes): Likewise for local "last_insn".
24916         (copyprop_hardreg_forward_1): Likewise for local "insn".
24917
24918 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24919
24920         * reg-stack.c (next_flags_user): Strengthen return type and param
24921         "insn" from rtx to rtx_insn *.
24922         (straighten_stack): Likewise for param "insn".
24923         (check_asm_stack_operands): Likewise.
24924         (remove_regno_note): Likewise.
24925         (emit_pop_insn): Likewise for return type, param "insn", local
24926         "pop_insn".
24927         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
24928         "limit" from rtx to rtx_insn *.
24929         (swap_to_top): Likewise for param "insn".
24930         (move_for_stack_reg): Likewise.
24931         (move_nan_for_stack_reg): Likewise.
24932         (swap_rtx_condition): Likewise.
24933         (compare_for_stack_reg): Likewise.
24934         (subst_all_stack_regs_in_debug_insn): Likewise.
24935         (subst_stack_regs_pat): Likewise, and local "insn2".
24936         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
24937         rtx_insn *.
24938         (subst_stack_regs): Likewise.
24939         (change_stack): Likewise.
24940         (convert_regs_1): Likewise for locals "insn", "next".
24941
24942 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24943
24944         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
24945         rtx_insn *.
24946         (combine_set_extension): Likewise for param "curr_insn".
24947         (transform_ifelse): Likewise for param "def_insn".
24948         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
24949         from vec<rtx> * to vec<rtx_insn *> *.
24950         (is_cond_copy_insn): Likewise for param "insn".
24951         (struct ext_state): Strengthen the four vec fields from vec<rtx>
24952         to vec<rtx_insn *>.
24953         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
24954         local "def_insn" from rtx to rtx_insn *.
24955         (get_sub_rtx): Likewise for param "def_insn".
24956         (merge_def_and_ext): Likewise.
24957         (combine_reaching_defs): Likewise.
24958         (add_removable_extension): Likewise for param "insn".
24959         (find_removable_extensions): Likewise for local "insn".
24960         (find_and_remove_re): Likewise for locals "curr_insn" and
24961         "def_insn".  Strengthen locals "reinsn_del_list" and
24962         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
24963
24964 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24965
24966         * recog.c (split_insn): Strengthen param "insn" and locals
24967         "first", "last" from rtx to rtx_insn *.
24968         (split_all_insns): Likewise for locals "insn", "next".
24969         (split_all_insns_noflow): Likewise.
24970
24971 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24972
24973         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
24974         const rtx_insn *.
24975         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24976         (debug_rtx_find): Likewise for param 1 "x".
24977
24978         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
24979         const_rtx to const rtx_insn *.  Likewise for local "insn".
24980         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24981         (debug_rtx_find): Likewise for param 1 "x".
24982         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
24983         from const_rtx to const rtx_insn * within the appropriate cases of
24984         the switch statement.
24985
24986         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
24987         Strengthen local "insns" from rtx to rtx_insn * since this is
24988         passed to a call to debug_rtx_list.
24989
24990 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24991
24992         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
24993         to rtx_insn *.
24994
24995         * function.c (stack_protect_epilogue): Add checked cast to
24996         rtx_insn for now when invoking predict_insn_def.
24997
24998         * predict.c (predict_insn): Strengthen param "insn" from rtx to
24999         rtx_insn *.
25000         (predict_insn_def): Likewise.
25001         (rtl_predict_edge): Likewise for local "last_insn".
25002         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
25003         const rtx_insn *.
25004         (combine_predictions_for_insn): Strengthen param "insn" from rtx
25005         to rtx_insn *.
25006         (bb_estimate_probability_locally): Likewise for local "last_insn".
25007         (expensive_function_p): Likewise for local "insn".
25008
25009         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
25010         local "jmp", since this is used when invoking predict_insn_def.
25011
25012 2014-08-22  Marek Polacek  <polacek@redhat.com>
25013
25014         PR c++/62199
25015         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
25016
25017 2014-08-22  Marek Polacek  <polacek@redhat.com>
25018
25019         PR c/61271
25020         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
25021         a comparison in parens.
25022         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
25023         in parens.
25024
25025 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25026
25027         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
25028         rtx_insn *.
25029
25030         * cprop.c (fis_get_condition): Likewise.
25031
25032         * postreload.c (reload_cse_regs): Likewise for param "first".
25033         (reload_cse_simplify): Likewise for param "insn".
25034         (reload_cse_regs_1): Likewise for local "insn".
25035         (reload_cse_simplify_set): Likewise for param "insn".
25036         (reload_cse_simplify_operands): Likewise.
25037         (struct reg_use): Likewise for field "insn".
25038         (reload_combine_purge_insn_uses): Likewise for param "insn".
25039         (fixup_debug_insns): Likewise for params "from", "to" and local
25040         "insn".
25041         (try_replace_in_use): Likewise for local "use_insn".
25042         (reload_combine_recognize_const_pattern): Likewise for param
25043         "insn" and locals "add_moved_after_insn", "use_insn".
25044         (reload_combine_recognize_pattern): Likewise for param "insn" and
25045         local "prev".
25046         (reload_combine): Likewise for locals "insn", "prev".
25047         (reload_combine_note_use): Likewise for param "insn".
25048         (move2add_use_add2_insn): Likewise.
25049         (move2add_use_add3_insn): Likewise.
25050         (reload_cse_move2add): Likewise, also for local "next".
25051         (move2add_note_store): Likewise for local "insn".
25052
25053 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25054
25055         * postreload-gcse.c (struct occr): Strengthen field "insn" from
25056         rtx to rtx_insn *.
25057         (struct unoccr): Likewise.
25058         (struct modifies_mem): Likewise.
25059         (alloc_mem): Likewise for local "insn".
25060         (insert_expr_in_table): Likewise for param "insn".
25061         (dump_expr_hash_table_entry): Likewise for local "insn".
25062         (oprs_unchanged_p): Likewise for param "insn".
25063         (load_killed_in_block_p): Likewise for local "setter".
25064         (record_last_reg_set_info): Likewise for param "insn".
25065         (record_last_reg_set_info_regno): Likewise.
25066         (record_last_mem_set_info): Likewise.
25067         (record_last_set_info): Likewise for local "last_set_insn".
25068         (record_opr_changes): Likewise for param "insn".
25069         (hash_scan_set): Likewise.
25070         (compute_hash_table): Likewise for local "insn".
25071         (get_avail_load_store_reg): Likewise for param "insn".
25072         (eliminate_partially_redundant_load): Likewise, also for locals
25073         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
25074         RTX for insns.
25075         (eliminate_partially_redundant_loads): Likewise for local "insn".
25076
25077 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25078
25079         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
25080         rtx to rtx_insn *.
25081         (expand_binop): Likewise for locals "entry_last", "last", "insns"
25082         (expand_twoval_unop): Likewise for locals entry_last", "last".
25083         (expand_twoval_binop): Likewise.
25084         (expand_twoval_binop_libfunc): Likewise for local "insns".
25085         (widen_leading): Likewise for local "last".
25086         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
25087         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
25088         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
25089         (expand_parity): Likewise for locals "last" and "seq".
25090         (expand_ffs): Likewise for local "seq".  Strengthen local
25091         "nonzero_label" from rtx to rtx_code_label *.
25092         (expand_absneg_bit): Strengthen local "insns" from rtx to
25093         rtx_insn *.
25094         (expand_unop_direct): Likewise for local "last".
25095         (expand_unop): Likewise for locals "last", "insns".
25096         (expand_abs_nojump): Likewise for local "last".
25097         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
25098         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
25099         rtx_insn *.
25100         (expand_copysign_absneg): Strengthen local "label" from rtx to
25101         rtx_code_label *.
25102         (expand_copysign_bit): Strengthen local "insns" from rtx to
25103         rtx_insn *.
25104         (struct no_conflict_data): Likewise for fields "first", "insn".
25105         (emit_libcall_block_1): Likewise for param "insns" and locals
25106         "next", "last", "insn".
25107         (emit_libcall_block): For now, add a checked cast to rtx_insn *
25108         on "insns" when invoking emit_libcall_block_1.  Ultimately we
25109         want to strengthen insns itself.
25110         (prepare_cmp_insn): Strengthen local "last" from rtx to
25111         rtx_insn *.
25112         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
25113         (prepare_float_lib_cmp): Likewise for local "insns".
25114         (emit_conditional_move): Likewise for local "last".
25115         (emit_conditional_add): Likewise.
25116         (have_sub2_insn): Likewise for local "seq".
25117         (expand_float): Likewise for local "insns".  Strengthen locals
25118         "label", "neglabel" from rtx to rtx_code_label *.
25119         (expand_fix): Likewise for locals "last", "insn", "insns" (to
25120         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
25121         (expand_fixed_convert): Likewise for local "insns" (to
25122         rtx_insn *).
25123         (expand_sfix_optab): Likewise for local "last".
25124         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
25125         to rtx_code_label *.
25126         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
25127         from rtx to rtx_insn *.
25128         (expand_atomic_fetch_op): Likewise for local "insn".
25129         (maybe_legitimize_operand_same_code): Likewise for local "last".
25130         (maybe_legitimize_operands): Likewise.
25131
25132 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25133
25134         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
25135         "insn" from rtx to rtx_insn *.
25136         (ps_rtl_insn): Likewise for return type.
25137         (doloop_register_get): Likewise for params "head", "tail" and
25138         locals "insn", "first_insn_not_to_check".
25139         (schedule_reg_move): Likewise for local "this_insn".
25140         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
25141         of gen_move_insn for now.
25142         (reset_sched_times): Strengthen local "insn" from rtx to
25143         rtx_insn *.
25144         (permute_partial_schedule): Likewise.
25145         (duplicate_insns_of_cycles): Likewise for local "u_insn".
25146         (dump_insn_location): Likewise for param "insn".
25147         (loop_canon_p): Likewise for local "insn".
25148         (sms_schedule): Likewise.
25149         (print_partial_schedule): Likewise.
25150         (ps_has_conflicts): Likewise.
25151
25152 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25153
25154         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
25155         "tailp" from rtx * to rtx_insn **.
25156
25157         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
25158         from rtx to rtx_insn *.
25159         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
25160         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
25161         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
25162         rtx to rtx_insn *.
25163         * modulo-sched.c (const_iteration_count): Strengthen return type
25164         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
25165         use of NULL_RTX with NULL when working with insns.
25166         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
25167         to rtx_insn *.
25168         (sms_schedule): Likewise.
25169         * sched-rgn.c (init_ready_list): Likewise, also for locals
25170         "src_head" and "src_next_tail".
25171         (compute_block_dependences): Likewise.
25172         (free_block_dependencies): Likewise.
25173         (debug_rgn_dependencies): Likewise.
25174         (free_rgn_deps): Likewise.
25175         (compute_priorities): Likewise.
25176         (schedule_region): Likewise.
25177         * sel-sched.c (find_ebb_boundaries): Likewise.
25178
25179         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
25180         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
25181
25182 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25183
25184         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
25185         from rtx to rtx_insn *.
25186         (new_seginfo): Likewise for param "insn".
25187         (create_pre_exit): Likewise for locals "last_insn",
25188         "before_return_copy", "return_copy".
25189         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
25190         "mode_set".
25191
25192 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25193
25194         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
25195         from rtx to rtx_insn *.
25196         (lra_push_insn): Likewise for 1st param.
25197         (lra_push_insn_and_update_insn_regno_info): Likewise.
25198         (lra_pop_insn): Likewise for return type.
25199         (lra_invalidate_insn_data): Likewise for 1st param.
25200         (lra_set_insn_deleted): Likewise.
25201         (lra_delete_dead_insn): Likewise.
25202         (lra_process_new_insns): Likewise for first 3 params.
25203         (lra_set_insn_recog_data): Likewise for 1st param.
25204         (lra_update_insn_recog_data): Likewise.
25205         (lra_set_used_insn_alternative): Likewise.
25206         (lra_invalidate_insn_regno_info): Likewise.
25207         (lra_update_insn_regno_info): Likewise.
25208         (lra_former_scratch_operand_p): Likewise.
25209         (lra_eliminate_regs_1): Likewise.
25210         (lra_get_insn_recog_data): Likewise.
25211
25212         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
25213         rtx to rtx_insn *.
25214
25215         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
25216         "mv1" and "mv2".
25217         (substitute_within_insn): New.
25218         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
25219         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
25220         Replace call to "substitute" with call to substitute_within_insn.
25221
25222         * lra-constraints.c (curr_insn): Strengthen from rtx to
25223         rtx_insn *.
25224         (get_equiv_with_elimination): Likewise for param "insn".
25225         (match_reload): Strengthen params "before" and "after" from rtx *
25226         to rtx_insn **.
25227         (emit_spill_move): Likewise for return type.  Add a checked cast
25228         to rtx_insn * on result of gen_move_insn for now.
25229         (check_and_process_move): Likewise for local "before".  Replace
25230         NULL_RTX with NULL when referring to insns.
25231         (process_addr_reg): Strengthen params "before" and "after" from
25232         rtx * to rtx_insn **.
25233         (insert_move_for_subreg): Likewise.
25234         (simplify_operand_subreg): Strengthen locals "before" and "after"
25235         from rtx to rtx_insn *.
25236         (process_address_1): Strengthen params "before" and "after" from
25237         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
25238         rtx to rtx_insn *.
25239         (process_address): Strengthen params "before" and "after" from
25240         rtx * to rtx_insn **.
25241         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
25242         (curr_insn_transform): Strengthen locals "before" and "after"
25243         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
25244         to insns.
25245         (loc_equivalence_callback): Update cast of "data", changing
25246         resulting type from rtx to rtx_insn *.
25247         (substitute_pseudo_within_insn): New.
25248         (inherit_reload_reg): Strengthen param "insn" from rtx to
25249         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
25250         NULL when referring to insns.  Add a checked cast to rtx_insn *
25251         when using usage_insn to invoke lra_update_insn_regno_info.
25252         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
25253         likewise for locals "restore", "save".  Add checked casts to
25254         rtx_insn * when using usage_insn to invoke
25255         lra_update_insn_regno_info and lra_process_new_insns.  Replace
25256         NULL_RTX with NULL when referring to insns.
25257         (split_if_necessary): Strengthen param "insn" from rtx to
25258         rtx_insn *.
25259         (update_ebb_live_info): Likewise for params "head", "tail" and local
25260         "prev_insn".
25261         (get_last_insertion_point): Likewise for return type and local "insn".
25262         (get_live_on_other_edges): Likewise for local "last".
25263         (inherit_in_ebb): Likewise for params "head", "tail" and locals
25264         "prev_insn", "next_insn", "restore".
25265         (remove_inheritance_pseudos): Likewise for local "prev_insn".
25266         (undo_optional_reloads): Likewise for local "insn".
25267
25268         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25269         "insn".
25270         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25271         insns.
25272         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25273         rtx_insn *.
25274         (spill_pseudos): Likewise for local "insn".
25275         (init_elimination): Likewise.
25276         (process_insn_for_elimination): Likewise for param "insn".
25277
25278         * lra-lives.c (curr_insn): Likewise.;
25279
25280         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25281         (remove_pseudos): Likewise for param "insn".
25282         (spill_pseudos): Likewise for local "insn".
25283         (lra_final_code_change): Likewise for locals "insn", "curr".
25284
25285         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25286         (lra_set_insn_deleted): Likewise.
25287         (lra_delete_dead_insn): Likewise, and for local "prev".
25288         (new_insn_reg): Likewise for param "insn".
25289         (lra_set_insn_recog_data): Likewise.
25290         (lra_update_insn_recog_data): Likewise.
25291         (lra_set_used_insn_alternative): Likewise.
25292         (get_insn_freq): Likewise.
25293         (invalidate_insn_data_regno_info): Likewise.
25294         (lra_invalidate_insn_regno_info): Likewise.
25295         (lra_update_insn_regno_info): Likewise.
25296         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25297         vec<rtx_insn *>.
25298         (lra_push_insn_1): Strengthen param "insn" from rtx to
25299         rtx_insn *.
25300         (lra_push_insn): Likewise.
25301         (lra_push_insn_and_update_insn_regno_info): Likewise.
25302         (lra_pop_insn): Likewise for return type and local "insn".
25303         (push_insns): Likewise for params "from", "to", and local "insn".
25304         (setup_sp_offset): Likewise for params "from", "last" and locals
25305         "before", "insn".
25306         (lra_process_new_insns): Likewise for params "insn", "before",
25307         "after" and local "last".
25308         (struct sloc): Likewise for field "insn".
25309         (lra_former_scratch_operand_p): Likewise for param "insn".
25310         (remove_scratches): Likewise for locals "insn", "last".
25311         (check_rtl): Likewise for local "insn".
25312         (add_auto_inc_notes): Likewise for param "insn".
25313         (update_inc_notes): Likewise for local "insn".
25314         (lra): Replace NULL_RTX with NULL when referring to insn.
25315
25316 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25317
25318         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
25319         to rtx_insn *.
25320         (resolve_reg_notes): Likewise.
25321         (resolve_simple_move): Likewise for return type, param "insn", and
25322         locals "insns", "minsn".
25323         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
25324         (resolve_use): Likewise.
25325         (resolve_debug): Likewise.
25326         (find_decomposable_shift_zext): Likewise.
25327         (resolve_shift_zext): Likewise for return type, param "insn", and
25328         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
25329         (decompose_multiword_subregs): Likewise for local "insn",
25330         "orig_insn", "decomposed_shift", "end".
25331
25332 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25333
25334         * basic-block.h (basic_block split_edge_and_insert): Strengthen
25335         param "insns" from rtx to rtx_insn *.
25336
25337         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
25338         rtx to rtx_insn *.
25339         (struct iv_to_split): Likewise.
25340         (loop_exit_at_end_p): Likewise for local "insn".
25341         (split_edge_and_insert): Likewise for param "insns".
25342         (compare_and_jump_seq): Likewise for return type, param "cinsn",
25343         and locals "seq", "jump".
25344         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
25345         "branch_code"; update invocations of compare_and_jump_seq to
25346         eliminate NULL_RTX in favor of NULL.
25347         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
25348         rtx to rtx_insn *.
25349         (reset_debug_uses_in_loop): Likewise.
25350         (analyze_insn_to_expand_var): Likewise for param "insn".
25351         (analyze_iv_to_split_insn): Likewise.
25352         (analyze_insns_in_loop): Likewise for local "insn".
25353         (insert_base_initialization): Likewise for param
25354         "insn" and local "seq".
25355         (split_iv): Likewise for param "insn" and local "seq".
25356         (expand_var_during_unrolling): Likewise for param "insn".
25357         (insert_var_expansion_initialization): Likewise for local "seq".
25358         (combine_var_copies_in_loop_exit): Likewise.
25359         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
25360         "insn".
25361         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
25362         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
25363         "next".
25364
25365 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25366
25367         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
25368         rtx_insn *.
25369         (iv_analyze_result): Likewise.
25370         (iv_analyze_expr): Likewise.
25371         (biv_p): Likewise.
25372
25373         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
25374         local "def_insn" from rtx to rtx_insn *.
25375         (get_biv_step_1): Likewise for local "insn".
25376         (iv_analyze_expr): Likewise for param "insn".
25377         (iv_analyze_def): Likewise for local "insn".
25378         (iv_analyze_op): Likewise for param "insn".
25379         (iv_analyze): Likewise.
25380         (iv_analyze_result): Likewise.
25381         (biv_p): Likewise.
25382         (suitable_set_for_replacement): Likewise.
25383         (simplify_using_initial_values): Likewise for local "insn".
25384         (iv_number_of_iterations): Likewise for param "insn".
25385         (check_simple_exit): Add checked cast to rtx_insn when invoking
25386         iv_number_of_iterations for now (until get_condition is
25387         strengthened).
25388
25389         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
25390         "insn" from rtx to rtx_insn *.
25391         (analyze_insns_in_loop): Likewise for local "insn".
25392
25393 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25394
25395         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
25396         to rtx_insn *.
25397         (struct invariant): Likewise.
25398         (hash_invariant_expr_1): Likewise for param "insn".
25399         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
25400         (find_exits): Likewise for local "insn".
25401         (create_new_invariant): Likewise for param "insn".
25402         (check_dependencies): Likewise.
25403         (find_invariant_insn): Likewise.
25404         (record_uses): Likewise.
25405         (find_invariants_insn): Likewise.
25406         (find_invariants_bb): Likewise for local "insn".
25407         (get_pressure_class_and_nregs): Likewise for param "insn".
25408         (calculate_loop_reg_pressure): Likewise for local "insn".
25409
25410 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25411
25412         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
25413         to rtx_insn *.
25414         (add_test): Likewise for locals "seq", "jump".
25415         (doloop_modify): Likewise for locals "sequence", "jump_insn".
25416
25417 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25418
25419         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
25420         rtx_insn *.
25421         (rebuild_jump_labels_chain): Likewise for param "chain".
25422
25423         * cfgexpand.c (pass_expand::execute): Add checked cast to
25424         rtx_insn * when calling rebuild_jump_labels_chain in region where
25425         we know e->insns.r is non-NULL.
25426
25427         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
25428         rtx_insn *.
25429         (rebuild_jump_labels): Likewise.
25430         (rebuild_jump_labels_chain): Likewise for param "chain".
25431         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
25432         (init_label_info): Likewise for param "f".
25433         (maybe_propagate_label_ref): Likewise for params "jump_insn",
25434         "prev_nonjump_insn".
25435         (mark_all_labels): Likewise for param "f" and locals "insn",
25436         "prev_nonjump_insn".
25437
25438 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25439
25440         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
25441         from rtx to rtx_insn *insn.
25442         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
25443         (ira_add_allocno_copy): Likewise.
25444         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
25445         rtx to rtx_insn *.
25446         (ira_create_copy): Likewise.
25447         (ira_add_allocno_copy): Likewise.
25448         (create_bb_allocnos): Likewise for local "insn".
25449         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
25450         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
25451         process_regs_for_copy for rtx_insn * param.
25452         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
25453         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
25454         process_regs_for_copy for rtx_insn * param.
25455         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
25456         * ira-costs.c (record_reg_classes): Likewise for param "insn".
25457         (record_operand_costs): Likewise.
25458         (scan_one_insn): Likewise for return type, and for param "insn".
25459         (process_bb_for_costs): Likewise for local "insn".
25460         (process_bb_node_for_hard_reg_moves): Likewise.
25461         * ira-emit.c (struct move): Likewise for field "insn".
25462         (create_move): Eliminate use of NULL_RTX when dealing with an
25463         rtx_insn *.
25464         (emit_move_list): Strengthen return type and locals "result",
25465         "insn" from rtx to rtx_insn *insn.
25466         (emit_moves): Likewise for locals "insns", "tmp".
25467         (ira_emit): Likewise for local "insn".
25468         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
25469         "insn".
25470         (find_call_crossed_cheap_reg): Likewise.
25471         (process_bb_node_lives): Likewise for local "insn".
25472         * ira.c (decrease_live_ranges_number): Likewise.
25473         (compute_regs_asm_clobbered): Likewise.
25474         (build_insn_chain): Likewise.
25475         (find_moveable_pseudos): Likewise, also locals "def_insn",
25476         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
25477         to rtx_insn **.  Add a checked cast when assigning from
25478         "closest_use" into closest_uses array in a region where we know
25479         it's a non-NULL insn.
25480         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
25481         to rtx_insn *.
25482         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
25483         "last_interesting_insn", "uin".
25484         (move_unallocated_pseudos): Likewise for locals "def_insn",
25485         "move_insn", "newinsn".
25486
25487 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25488
25489         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
25490         Strengthen locals "done_label", "do_error" from rtx to
25491         rtx_code_label *.
25492         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
25493         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
25494         rtx_code_label *.
25495         (ubsan_expand_si_overflow_neg_check): Likewise for locals
25496         "done_label", "do_error" to rtx_code_label * and local  "last" to
25497         rtx_insn *.
25498         (ubsan_expand_si_overflow_mul_check): Likewise for locals
25499         "done_label", "do_error", "large_op0", "small_op0_large_op1",
25500         "one_small_one_large", "both_ops_large", "after_hipart_neg",
25501         "after_lopart_neg", "do_overflow", "hipart_different"  to
25502         rtx_code_label * and local  "last" to rtx_insn *.
25503
25504 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25505
25506         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
25507         "insn" and "move_insn" from rtx to rtx_insn *.
25508
25509 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25510
25511         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
25512         rtx_insn *.
25513         (cheap_bb_rtx_cost_p): Likewise.
25514         (first_active_insn): Likewise for return type and local "insn".
25515         (last_active_insn):  Likewise for return type and locals "insn",
25516         "head".
25517         (struct noce_if_info): Likewise for fields "jump", "insn_a",
25518         "insn_b".
25519         (end_ifcvt_sequence): Likewise for return type and locals "insn",
25520         "seq".
25521         (noce_try_move): Likewise for local "seq".
25522         (noce_try_store_flag): Likewise.
25523         (noce_try_store_flag_constants): Likewise.
25524         (noce_try_addcc): Likewise.
25525         (noce_try_store_flag_mask): Likewise.
25526         (noce_try_cmove): Likewise.
25527         (noce_try_minmax): Likewise.
25528         (noce_try_abs): Likewise.
25529         (noce_try_sign_mask): Likewise.
25530         (noce_try_bitop): Likewise.
25531         (noce_can_store_speculate_p): Likewise for local "insn".
25532         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
25533         seq".
25534         (check_cond_move_block): Likewise for local "insn".
25535         (cond_move_convert_if_block): Likewise.
25536         (cond_move_process_if_block): Likewise for locals "seq",
25537         "loc_insn".
25538         (noce_find_if_block): Likewise for local "jump".
25539         (merge_if_block): Likewise for local "last".
25540         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
25541         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
25542         (block_has_only_trap): Likewise for return type and local "trap".
25543         (find_if_case_1): Likewise for local "jump".
25544         (dead_or_predicable): Likewise for locals "head", "end", "jump",
25545         "insn".
25546
25547 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25548
25549         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
25550         "last_insn", "loop_end" from rtx to rtx_insn *.
25551
25552         * hw-doloop.c (scan_loop): Likewise for local "insn".
25553         (discover_loop): Likewise for param "tail_insn".
25554         (discover_loops): Likewise for local "tail".
25555
25556         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
25557         cast to rtx_insn * when assigning from an rtx local to a
25558         hwloop_info's "last_insn" field.
25559
25560 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25561
25562         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
25563         (add_delay_dependencies): Strengthen local "pro" from rtx to
25564         rtx_insn *.
25565         (recompute_todo_spec): Likewise.
25566         (dep_cost_1): Likewise for locals "insn", "used".
25567         (schedule_insn): Likewise for local "dbg".
25568         (schedule_insn): Likewise for locals "pro", "next".
25569         (unschedule_insns_until): Likewise for local "con".
25570         (restore_pattern): Likewise for local "next".
25571         (estimate_insn_tick): Likewise for local "pro".
25572         (resolve_dependencies): Likewise for local "next".
25573         (fix_inter_tick): Likewise.
25574         (fix_tick_ready): Likewise for local "pro".
25575         (add_to_speculative_block): Likewise for locals "check", "twin",
25576         "pro".
25577         (sched_extend_bb): Likewise for locals "end", "insn".
25578         (init_before_recovery): Likewise for local "x".
25579         (sched_create_recovery_block): Likewise for local "barrier".
25580         (create_check_block_twin): Likewise for local "pro".
25581         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
25582         "consumer".
25583         (unlink_bb_notes): Update for change to type of bb_header.
25584         Strengthen locals "prev", "label", "note", "next" from rtx to
25585         rtx_insn *.
25586         (clear_priorities): Likewise for local "pro".
25587
25588 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25589
25590         * gcse.c (struct occr): Strengthen field "insn" from rtx to
25591         rtx_insn *.
25592         (test_insn): Likewise for this global.
25593         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
25594         const rtx_insn *.
25595         (oprs_anticipatable_p): Likewise.
25596         (oprs_available_p): Likewise.
25597         (insert_expr_in_table): Strengthen param "insn" from  rtx to
25598         rtx_insn *.
25599         (hash_scan_set): Likewise.
25600         (hash_scan_clobber): Likewise.
25601         (hash_scan_call): Likewise.
25602         (hash_scan_insn): Likewise.
25603         (compute_hash_table_work): Likewise for local "insn".
25604         (process_insert_insn): Likewise for return type and local "pat".
25605         (insert_insn_end_basic_block): Likewise for locals "new_insn",
25606         "pat", "pat_end", "maybe_cc0_setter".
25607         (pre_edge_insert): Likewise for local "insn".
25608         (pre_insert_copy_insn): Likewise for param "insn".
25609         (pre_insert_copies): Likewise for local "insn".
25610         (struct set_data): Likewise for field "insn".
25611         (single_set_gcse): Likewise for param "insn".
25612         (gcse_emit_move_after): Likewise.
25613         (pre_delete): Likewise for local "insn".
25614         (update_bb_reg_pressure): Likewise for param "from" and local
25615         "insn".
25616         (should_hoist_expr_to_dom): Likewise for param "from".
25617         (hoist_code): Likewise for local "insn".
25618         (get_pressure_class_and_nregs): Likewise for param "insn".
25619         (calculate_bb_reg_pressure): Likewise for local "insn".
25620         (compute_ld_motion_mems): Likewise.
25621
25622 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25623
25624         * genpeep.c (main): Rename param back from "uncast_ins1" to
25625         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
25626         checked cast.
25627
25628         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
25629
25630 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
25631
25632         PR target/62195
25633         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
25634         documentation to state it is only for VSX operations.
25635
25636         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
25637         constraint only active if VSX.
25638
25639         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
25640         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
25641         (lfiwzx): Likewise.
25642
25643 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25644
25645         * fwprop.c (single_def_use_dom_walker::before_dom_children):
25646         Strengthen local "insn" from rtx to rtx_insn *.
25647         (use_killed_between): Likewise for param "target_insn".
25648         (all_uses_available_at): Likewise for param "target_insn" and
25649         local "next".
25650         (update_df_init): Likewise for params "def_insn", "insn".
25651         (update_df): Likewise for param "insn".
25652         (try_fwprop_subst): Likewise for param "def_insn" and local
25653         "insn".
25654         (free_load_extend): Likewise for param "insn".
25655         (forward_propagate_subreg): Likewise for param "def_insn" and
25656         local "use_insn".
25657         (forward_propagate_asm): Likewise for param "def_insn" and local
25658         "use_insn".
25659         (forward_propagate_and_simplify): Likewise for param "def_insn"
25660         and local "use_insn".
25661         (forward_propagate_into): Likewise for locals "def_insn" and
25662         "use_insn".
25663
25664 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25665
25666         * function.c (emit_initial_value_sets): Strengthen local "seq"
25667         from rtx to rtx_insn *.
25668         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
25669         local "seq".
25670         (instantiate_virtual_regs): Likewise for local "insn".
25671         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
25672         (reorder_blocks_1): Likewise for param "insns" and local "insn".
25673         (expand_function_end): Likewise for locals "insn" and "seq".
25674         (epilogue_done): Likewise for local "insn".
25675         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
25676         "last", "trial".
25677         (reposition_prologue_and_epilogue_notes): Likewise for locals
25678         "insn", "last", "note", "first".
25679         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
25680         (pass_match_asm_constraints::execute): Likewise for local "insn".
25681
25682 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25683
25684         * output.h (final_scan_insn): Strengthen return type from rtx to
25685         rtx_insn *.
25686         (final_forward_branch_p): Likewise for param.
25687         (current_output_insn): Likewise for this global.
25688
25689         * final.c (rtx debug_insn): Likewise for this variable.
25690         (current_output_insn): Likewise.
25691         (get_attr_length_1): Rename param "insn" to "uncast_insn",
25692         adding "insn" back in as an rtx_insn * with a checked cast, so
25693         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
25694         first param.
25695         (compute_alignments): Strengthen local "label" from rtx to
25696         rtx_insn *.
25697         (shorten_branches): Rename param from "first" to "uncast_first",
25698         introducing a new local rtx_insn * "first" using a checked cast to
25699         effectively strengthen "first" from rtx to rtx_insn * without
25700         affecting the type signature.  Strengthen locals "insn", "seq",
25701         "next", "label" from rtx to rtx_insn *.
25702         (change_scope): Strengthen param "orig_insn" and local "insn" from
25703         rtx to rtx_insn *.
25704         (final_start_function): Rename param from "first" to "uncast_first",
25705         introducing a new local rtx_insn * "first" using a checked cast to
25706         effectively strengthen "first" from rtx to rtx_insn * without
25707         affecting the type signature.  Strengthen local "insn" from rtx to
25708         rtx_insn *.
25709         (dump_basic_block_info): Strengthen param "insn" from rtx to
25710         rtx_insn *.
25711         (final): Rename param from "first" to "uncast_first",
25712         introducing a new local rtx_insn * "first" using a checked cast to
25713         effectively strengthen "first" from rtx to rtx_insn * without
25714         affecting the type signature.  Strengthen locals "insn", "next"
25715         from rtx to rtx_insn *.
25716         (output_alternate_entry_point): Strengthen param "insn" from rtx to
25717         rtx_insn *.
25718         (call_from_call_insn): Strengthen param "insn" from rtx to
25719         rtx_call_insn *.
25720         (final_scan_insn): Rename param from "insn" to "uncast_insn",
25721         introducing a new local rtx_insn * "insn" using a checked cast to
25722         effectively strengthen "insn" from rtx to rtx_insn * without
25723         affecting the type signature.  Strengthen return type and locals
25724         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
25725         now-redundant checked cast to rtx_insn * from both invocations of
25726         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
25727         introducing a local "call_insn" for use when invoking
25728         call_from_call_insn.
25729         (notice_source_line): Strengthen param "insn" from rtx to
25730         rtx_insn *.
25731         (leaf_function_p): Likewise for local "insn".
25732         (final_forward_branch_p): Likewise.
25733         (leaf_renumber_regs): Likewise for param "first".
25734         (rest_of_clean_state): Likewise for locals "insn" and "next".
25735         (self_recursive_call_p): Likewise for param "insn".
25736         (collect_fn_hard_reg_usage): Likewise for local "insn".
25737         (get_call_fndecl): Likewise for param "insn".
25738         (get_call_cgraph_rtl_info): Likewise.
25739         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
25740         introducing a new local rtx_insn * "insn" using a checked cast to
25741         effectively strengthen "insn" from rtx to rtx_insn * without
25742         affecting the type signature.
25743
25744         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
25745         cast when assigning from param "insn" to current_output_insn.
25746         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
25747         so that we can assign it back to current_output_insn.
25748
25749 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25750
25751         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
25752         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
25753         atmxt540s and atmxt540sreva devices.
25754         * config/avr/avr-tables.opt: Regenerate.
25755         * config/avr/t-multilib: Regenerate.
25756         * doc/avr-mmcu.texi: Regenerate.
25757
25758 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25759
25760         * expr.c (convert_move): Strengthen local "insns" from rtx to
25761         rtx_insn *.
25762         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
25763         "top_label" from rtx to rtx_code_label *.
25764         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
25765         rtx_insn *.
25766         (emit_single_push_insn): Likewise for locals "prev", "last".
25767         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
25768         to rtx_code_label *.
25769         (store_constructor): Likewise for locals "loop_start", "loop_end".
25770         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
25771         rtx_insn *.
25772         (expand_expr_real_2): Likewise.
25773         (expand_expr_real_1): Strengthen local "label" from rtx to
25774         rtx_code_label *.
25775
25776 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25777
25778         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
25779         from rtx to rtx_insn *.
25780         (store_bit_field_1): Likewise.
25781         (extract_bit_field_1): Likewise.
25782         (expand_mult_const): Likewise for local "insns".
25783         (expmed_mult_highpart): Strengthen local "label" from rtx to
25784         rtx_code_label *.
25785         (expand_smod_pow2): Likewise.
25786         (expand_sdiv_pow2): Likewise.
25787         (expand_divmod): Strengthen locals "last", "insn" from rtx to
25788         rtx_insn *.  Strengthen locals "label", "label1", "label2",
25789         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
25790         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
25791         (emit_store_flag): Likewise.
25792         (emit_store_flag_force): Strengthen local "label" from rtx to
25793         rtx_code_label *.
25794         (do_cmp_and_jump): Likewise for param "label".
25795
25796 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25797
25798         * explow.c (force_reg): Strengthen local "insn" from rtx to
25799         rtx_insn *.
25800         (adjust_stack_1): Likewise.
25801         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
25802         "final_label", "available_label", "space_available" from rtx to
25803         rtx_code_label *.
25804         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
25805         (anti_adjust_stack_and_probe): Likewise.
25806
25807 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25808
25809         * except.h (sjlj_emit_function_exit_after): Strengthen param
25810         "after" from rtx to rtx_insn *.  This is only called with
25811         result of get_last_insn (in function.c) so type-change should be
25812         self-contained.
25813
25814         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
25815         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
25816         to rtx_insn *.  These fields are only used from except.c so this
25817         type-change should be self-contained to this patch.
25818
25819         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
25820         local "last" from rtx to rtx_insn *.
25821         (dw2_build_landing_pads): Likewise for local "seq".
25822         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
25823         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
25824         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
25825         rtx to rtx_insn *.
25826         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
25827         to rtx_insn *.
25828         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
25829         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
25830         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
25831         referring to an insn.  Strengthen local "dispatch_label" from
25832         rtx to rtx_code_label *.
25833         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
25834         rtx_insn *.
25835         (expand_eh_return): Strengthen local "around_label" from
25836         rtx to rtx_code_label *.
25837         (convert_to_eh_region_ranges): Strengthen locals "iter",
25838         "last_action_insn", "first_no_action_insn",
25839         "first_no_action_insn_before_switch",
25840         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
25841
25842 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25843
25844         * dwarf2out.c (last_var_location_insn): Strengthen this variable
25845         from rtx to rtx_insn *.
25846         (cached_next_real_insn): Likewise.
25847         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
25848         working with insns.
25849         (dwarf2out_var_location): Strengthen locals "next_real",
25850         "next_note", "expected_next_loc_note", "last_start", "insn" from
25851         rtx to rtx_insn *.
25852
25853 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25854
25855         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
25856         from rtx to rtx_insn *.
25857         (create_pseudo_cfg): Likewise for local "insn".
25858
25859 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25860
25861         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
25862         from rtx to rtx_insn *.
25863         (df_bb_regno_last_def_find): Likewise.
25864
25865         * df-problems.c (df_rd_bb_local_compute): Likewise.
25866         (df_lr_bb_local_compute): Likewise.
25867         (df_live_bb_local_compute): Likewise.
25868         (df_chain_remove_problem): Likewise.
25869         (df_chain_create_bb): Likewise.
25870         (df_word_lr_bb_local_compute): Likewise.
25871         (df_remove_dead_eq_notes): Likewise for param "insn".
25872         (df_note_bb_compute): Likewise for local "insn".
25873         (simulate_backwards_to_point): Likewise.
25874         (df_md_bb_local_compute): Likewise.
25875
25876         * df-scan.c (df_scan_free_bb_info): Likewise.
25877         (df_scan_start_dump): Likewise.
25878         (df_scan_start_block): Likewise.
25879         (df_install_ref_incremental): Likewise for local "insn".
25880         (df_insn_rescan_all): Likewise.
25881         (df_reorganize_refs_by_reg_by_insn): Likewise.
25882         (df_reorganize_refs_by_insn_bb): Likewise.
25883         (df_recompute_luids): Likewise.
25884         (df_bb_refs_record): Likewise.
25885         (df_update_entry_exit_and_calls): Likewise.
25886         (df_bb_verify): Likewise.
25887
25888 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25889
25890         * ddg.h (struct ddg_node): Strengthen fields "insn" and
25891         "first_note" from rtx to rtx_insn *.
25892         (get_node_of_insn): Likewise for param 2 "insn".
25893         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25894
25895         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
25896         rtx_insn *.
25897         (mem_write_insn_p): Likewise.
25898         (mem_access_insn_p): Likewise.
25899         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25900         (def_has_ccmode_p): Likewise for param "insn".
25901         (add_cross_iteration_register_deps): Likewise for locals
25902         "def_insn" and "use_insn".
25903         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
25904         (build_intra_loop_deps): Likewise for local "src_insn".
25905         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
25906         to rtx_insn *.
25907         (get_node_of_insn): Likewise for param "insn".
25908
25909 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25910
25911         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
25912         (deletable_insn_p): Strengthen param "insn" from rtx to
25913         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
25914         find_call_stack_args, since this is guarded by CALL_P (insn).
25915         (marked_insn_p): Strengthen param "insn" from rtx to
25916         rtx_insn *.
25917         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
25918         invoking find_call_stack_args, since this is guarded by
25919         CALL_P (insn).
25920         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
25921         rtx_insn *; we know this is an insn since this was called by
25922         mark_nonreg_stores.
25923         (mark_nonreg_stores_2): Likewise.
25924         (mark_nonreg_stores): Strengthen param "insn" from rtx to
25925         rtx_insn *.
25926         (find_call_stack_args): Strengthen param "call_insn" from rtx to
25927         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
25928         to rtx_insn *.
25929         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
25930         from rtx to rtx_insn *.
25931         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
25932         "next", "ref_insn".
25933         (delete_unmarked_insns): Likewise for locals "insn", "next".
25934         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
25935         (mark_reg_dependencies): Likewise for param "insn".
25936         (rest_of_handle_ud_dce): Likewise for local "insn".
25937         (word_dce_process_block): Likewise.
25938         (dce_process_block): Likewise.
25939
25940 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25941
25942         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
25943         from rtx to rtx_insn *.
25944         (struct change_cc_mode_args): Likewise for field "insn".
25945         (this_insn): Strengthen from rtx to rtx_insn *.
25946         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
25947         with insn.
25948         (validate_canon_reg): Strengthen param "insn" from rtx to
25949         rtx_insn *.
25950         (canon_reg): Likewise.
25951         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
25952         dealing with insn.
25953         (record_jump_equiv): Strengthen param "insn" from rtx to
25954         rtx_insn *.
25955         (try_back_substitute_reg): Likewise, also for locals "prev",
25956         "bb_head".
25957         (find_sets_in_insn): Likewise for param "insn".
25958         (canonicalize_insn): Likewise.
25959         (cse_insn): Likewise.  Add a checked cast.
25960         (invalidate_from_clobbers): Likewise for param "insn".
25961         (invalidate_from_sets_and_clobbers): Likewise.
25962         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
25963         dealing with insn.
25964         (cse_prescan_path): Strengthen local "insn" from rtx to
25965         rtx_insn *.
25966         (cse_extended_basic_block): Likewise for locals "insn" and
25967         "prev_insn".
25968         (cse_main): Likewise for param "f".
25969         (check_for_label_ref): Likewise for local "insn".
25970         (set_live_p): Likewise for second param ("insn").
25971         (insn_live_p): Likewise for first param ("insn") and for local
25972         "next".
25973         (cse_change_cc_mode_insn): Likewise for first param "insn".
25974         (cse_change_cc_mode_insns): Likewise for first and second params
25975         "start" and "end".
25976         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
25977         and "end".
25978         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
25979         "cc_src_insn".
25980
25981 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25982             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25983             Anna Tikhonova  <anna.tikhonova@intel.com>
25984             Ilya Tocar  <ilya.tocar@intel.com>
25985             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25986             Ilya Verbin  <ilya.verbin@intel.com>
25987             Kirill Yukhin  <kirill.yukhin@intel.com>
25988             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25989
25990         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
25991         New.
25992         * config/i386/sse.md
25993         (define_mode_iterator VI248_AVX2): Delete.
25994         (define_mode_iterator VI2_AVX2_AVX512BW): New.
25995         (define_mode_iterator VI48_AVX2): Ditto.
25996         (define_insn <shift_insn><mode>3): Delete.
25997         (define_insn "<shift_insn><mode>3<mask_name>" with
25998         VI2_AVX2_AVX512BW): New.
25999         (define_insn "<shift_insn><mode>3<mask_name>" with
26000         VI48_AVX2): Ditto.
26001
26002 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26003             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26004             Anna Tikhonova  <anna.tikhonova@intel.com>
26005             Ilya Tocar  <ilya.tocar@intel.com>
26006             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26007             Ilya Verbin  <ilya.verbin@intel.com>
26008             Kirill Yukhin  <kirill.yukhin@intel.com>
26009             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26010
26011         * config/i386/sse.md
26012         (define_mode_iterator VI4F_BRCST32x2): New.
26013         (define_mode_attr 64x2_mode): Ditto.
26014         (define_mode_attr 32x2mode): Ditto.
26015         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
26016         with VI4F_BRCST32x2): Ditto.
26017         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
26018         with V16FI mode iterator): Ditto.
26019         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26020         with V16FI): Ditto.
26021         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
26022         with VI8F_BRCST64x2): Ditto.
26023
26024 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
26025             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
26026             Anna Tikhonova  <anna.tikhonova@intel.com>
26027             Ilya Tocar  <ilya.tocar@intel.com>
26028             Andrey Turetskiy  <andrey.turetskiy@intel.com>
26029             Ilya Verbin  <ilya.verbin@intel.com>
26030             Kirill Yukhin  <kirill.yukhin@intel.com>
26031             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
26032
26033         * config/i386/sse.md
26034         (define_mode_iterator VI8_AVX512VL): New.
26035         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
26036
26037 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
26038
26039         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
26040         (define_mode_iterator V48_AVX512VL): New.
26041         (define_mode_iterator V12_AVX512VL): Ditto.
26042         (define_insn <avx512>_load<mode>_mask): Split into two similar
26043         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
26044         Refactor output template.
26045         (define_insn "<avx512>_store<mode>_mask"): Ditto.
26046
26047 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26048
26049         * cprop.c (struct occr): Strengthen field "insn" from rtx to
26050         rtx_insn *.
26051         (reg_available_p): Likewise for param "insn".
26052         (insert_set_in_table): Likewise.
26053         (hash_scan_set): Likewise.
26054         (hash_scan_insn): Likewise.
26055         (make_set_regs_unavailable): Likewise.
26056         (compute_hash_table_work): Likewise for local "insn".
26057         (reg_not_set_p): Strengthen param "insn" from const_rtx to
26058         const rtx_insn *.
26059         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
26060         (try_replace_reg): Likewise.
26061         (find_avail_set): Likewise.
26062         (cprop_jump): Likewise for params "setcc", "jump".
26063         (constprop_register): Likewise for param "insn".
26064         (cprop_insn): Likewise.
26065         (do_local_cprop): Likewise.
26066         (local_cprop_pass): Likewise for local "insn".
26067         (bypass_block): Likewise for params "setcc" and "jump".
26068         (bypass_conditional_jumps): Likewise for locals "setcc" and
26069         "insn".
26070         (one_cprop_pass): Likewise for local "insn".
26071
26072 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26073
26074         * compare-elim.c (struct comparison_use): Strengthen field "insn"
26075         from rtx to rtx_insn *.
26076         (struct comparison): Likewise, also for field "prev_clobber".
26077         (conforming_compare): Likewise for param "insn".
26078         (arithmetic_flags_clobber_p): Likewise.
26079         (find_flags_uses_in_insn): Likewise.
26080         (find_comparison_dom_walker::before_dom_children): Likewise for
26081         locals "insn", "next", "last_clobber".
26082         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
26083
26084 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
26085
26086         * combine-stack-adj.c (struct csa_reflist): Strengthen field
26087         "insn" from rtx to rtx_insn *.
26088         (single_set_for_csa): Likewise for param "insn".
26089         (record_one_stack_ref): Likewise.
26090         (try_apply_stack_adjustment): Likewise.
26091         (struct record_stack_refs_data): Likewise for field "insn".
26092         (maybe_move_args_size_note): Likewise for params "last" and "insn".
26093         (prev_active_insn_bb): Likewise for return type and param "insn".
26094         (next_active_insn_bb): Likewise.
26095         (force_move_args_size_note): Likewise for params "prev" and "last"
26096         and locals "test", "next_candidate", "prev_candidate".
26097         (combine_stack_adjustments_for_block): Strengthen locals
26098         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
26099         rtx_insn *.
26100
26101 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26102
26103         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
26104         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
26105         (subst_insn): Likewise for this variable.
26106         (added_links_insn): Likewise.
26107         (struct insn_link): Likewise for field "insn".
26108         (alloc_insn_link): Likewise for param "insn".
26109         (struct undobuf): Likewise for field "other_insn".
26110         (find_single_use): Likewise for param "insn" and local "next".
26111         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
26112         (delete_noop_moves): Likewise for locals "insn", "next".
26113         (create_log_links): Likewise for locals "insn", "use_insn".
26114         Strengthen local "next_use" from rtx * to rtx_insn **.
26115         (insn_a_feeds_b): Likewise for params "a", "b".
26116         (combine_instructions): Likewise for param "f" and locals "insn",
26117         "next", "prev", "first", "last_combined_insn", "link", "link1",
26118         "temp".  Replace use of NULL_RTX with NULL when referring to
26119         insns.
26120         (setup_incoming_promotions): Likewise for param "first"
26121         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
26122         (can_combine_p): Likewise for params "insn", "i3", "pred",
26123         "pred2", "succ", "succ2" and for local "p".
26124         (combinable_i3pat): Likewise for param "i3".
26125         (cant_combine_insn_p): Likewise for param "insn".
26126         (likely_spilled_retval_p): Likewise.
26127         (adjust_for_new_dest): Likewise.
26128         (update_cfg_for_uncondjump): Likewise, also for local "insn".
26129         (try_combine): Likewise for return type and for params "i3", "i2",
26130         "i1", "i0", "last_combined_insn", and for locals "insn",
26131         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
26132         "i0_insn".  Eliminate local "tem" in favor of new locals
26133         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
26134         checked cast for now to rtx_insn * on the return type of
26135         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
26136         insns.
26137         (find_split_point): Strengthen param "insn" from rtx to
26138         rtx_insn *.
26139         (simplify_set): Likewise for local "other_insn".
26140         (recog_for_combine): Likewise for param "insn".
26141         (record_value_for_reg): Likewise.
26142         (record_dead_and_set_regs_1): Likewise for local
26143         "record_dead_insn".
26144         (record_dead_and_set_regs): Likewise for param "insn".
26145         (record_promoted_value): Likewise.
26146         (check_promoted_subreg): Likewise.
26147         (get_last_value_validate): Likewise.
26148         (reg_dead_at_p): Likewise.
26149         (move_deaths): Likewise for param "to_insn".
26150         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
26151         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
26152         in favor of new locals "tem_note" and "tem_insn", the latter being
26153         an rtx_insn *.
26154         (distribute_links): Strengthen locals "place", "insn" from rtx to
26155         rtx_insn *.
26156
26157 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26158
26159         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
26160         than a const_rtx.
26161         (can_delete_label_p): Require a const rtx_code_label * rather than
26162         a const_rtx.
26163         (delete_insn): Add checked cast to rtx_code_label * when we know
26164         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
26165         rtx to rtx_insn *.
26166         (delete_insn_chain): Strengthen locals "prev" and "current" from
26167         rtx to rtx_insn *.  Add a checked cast when assigning from
26168         "finish" (strengthening the params will come later).  Add a
26169         checked cast to rtx_note * in region where we know
26170         NOTE_P (current).
26171         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
26172         rtx_insn *.
26173         (compute_bb_for_insn): Likewise.
26174         (free_bb_for_insn): Likewise for local "insn".
26175         (compute_bb_for_insn): Likewise.
26176         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
26177         local "insn" from rtx to rtx_insn *
26178         (flow_active_insn_p): Require a const rtx_insn * rather than a
26179         const_rtx.
26180         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
26181         rtx_insn *.
26182         (can_fallthru): Likewise for locals "insn" and "insn2".
26183         (bb_note): Likewise for local "note".
26184         (first_insn_after_basic_block_note): Likewise for local "note" and
26185         for return type.
26186         (rtl_split_block): Likewise for locals "insn" and "next".
26187         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
26188         "end".
26189         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
26190         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
26191         "prev", "tmp".
26192         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
26193         them), "kill_from", "barrier", "new_insn".
26194         (patch_jump_insn): Likewise for params "insn", "old_label".
26195         (redirect_branch_edge): Likewise for locals "old_label", "insn".
26196         (force_nonfallthru_and_redirect): Likewise for locals "insn",
26197         "old_label", "new_label".
26198         (rtl_tidy_fallthru_edge): Likewise for local "q".
26199         (rtl_split_edge): Likewise for locals "before", "last".
26200         (commit_one_edge_insertion): Likewise for locals "before",
26201         "after", "insns", "tmp", "last", adding a checked cast where
26202         currently necessary.
26203         (commit_edge_insertions): Likewise.
26204         (rtl_dump_bb): Likewise for locals "insn", "last".
26205         (print_rtl_with_bb): Likewise for local "x".
26206         (rtl_verify_bb_insns): Likewise for local "x".
26207         (rtl_verify_bb_pointers): Likewise for local "insn".
26208         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
26209         "head", "end".
26210         (rtl_verify_fallthru): Likewise for local "insn".
26211         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
26212         (purge_dead_edges): Likewise for local "insn".
26213         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
26214         (skip_insns_after_block): Likewise for return type and for locals
26215         "insn", "last_insn", "next_head", "prev".
26216         (record_effective_endpoints): Likewise for locals "next_insn",
26217         "insn", "end".
26218         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
26219         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
26220         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
26221         (duplicate_insn_chain): For now, add checked cast from rtx to
26222         rtx_insn * when returning insn.
26223         (cfg_layout_duplicate_bb): Likewise for local "insn".
26224         (cfg_layout_delete_block): Likewise for locals "insn", "next",
26225         "prev", "remaints".
26226         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
26227         (rtl_block_empty_p): Likewise.
26228         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
26229         "split_point", "last".
26230         (rtl_block_ends_with_call_p): Likewise for local "insn".
26231         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
26232         const rtx_insn *.
26233         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
26234         "split_at_insn" from rtx to rtx_insn *.
26235         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
26236         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
26237         to const rtx_insn *.
26238         (rtl_account_profile_record): Likewise.
26239
26240 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26241
26242         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
26243         rtx to rtx_insn *.
26244         (average_num_loop_insns): Likewise.
26245         (init_set_costs): Likewise for local "seq".
26246         (seq_cost): Likewise for param "seq", from const_rtx to const
26247         rtx_insn *.
26248
26249 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26250
26251         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
26252         rtx to rtx_insn *.
26253
26254 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26255
26256         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
26257         "f1" and "f2" from rtx * to rtx_insn **.
26258         (flow_find_head_matching_sequence): Likewise.
26259
26260         * cfgcleanup.c (try_simplify_condjump): Strengthen local
26261         "cbranch_insn" from rtx to rtx_insn *.
26262         (thread_jump): Likewise for local "insn".
26263         (try_forward_edges): Likewise for local "last".
26264         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26265         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26266         "real_b_end".
26267         (can_replace_by): Likewise for params "i1", "i2".
26268         (old_insns_match_p): Likewise.
26269         (merge_notes): Likewise.
26270         (walk_to_nondebug_insn): Likewise for param "i1".
26271         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26272         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
26273         "afterlast1", "afterlast2" from rtx to rtx_insn *.
26274         (flow_find_head_matching_sequence): Strengthen params "f1" and
26275         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
26276         "last1", "last2", "beforelast1", "beforelast2" from rtx to
26277         rtx_insn *.
26278         (outgoing_edges_match): Likewise for locals "last1", "last2".
26279         (try_crossjump_to_edge): Likewise for local "insn".
26280         Replace call to for_each_rtx with for_each_rtx_in_insn.
26281
26282         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26283         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26284         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
26285         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26286         (try_optimize_cfg): Strengthen local "last" from rtx to
26287         rtx_insn *.
26288         (delete_dead_jumptables): Likewise for locals "insn", "next",
26289         "label".
26290
26291         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26292         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26293         "rtx else_first_tail", to reflect the basic-block.h changes above.
26294
26295 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26296
26297         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26298         rtx_insn *.
26299         (purge_dead_tablejump_edges): Likewise.
26300         (find_bb_boundaries): Likewise for locals "insn", "end",
26301         "flow_transfer_insn".
26302
26303 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26304
26305         * caller-save.c (save_call_clobbered_regs): Strengthen locals
26306         "ins" and "prev" from rtx to rtx_insn *.
26307
26308 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26309
26310         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26311         rtx_insn *.
26312         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
26313         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
26314         "scan_start".
26315         (load_register_parameters): Likewise for local "before_arg".
26316         (check_sibcall_argument_overlap): Likewise for param "insn".
26317         (expand_call): Likewise for locals "normal_call_insns",
26318         "tail_call_insns", "insns", "before_call", "after_args",
26319         "before_arg", "last", "prev".  Strengthen one of the "last" from
26320         rtx to rtx_call_insn *.
26321         (fixup_tail_calls): Strengthen local "insn" from rtx to
26322         rtx_insn *.
26323         (emit_library_call_value_1): Likewise for locals "before_call" and
26324         "last".
26325
26326 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26327
26328         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
26329         and "last" from rtx to rtx_insn *.
26330         (expand_builtin_nonlocal_goto): Likewise for local "insn".
26331         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
26332         rtx_call_insn *.
26333         (expand_errno_check): Strengthen local "lab" from rtx to
26334         rtx_code_label *.
26335         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
26336         rtx_insn *.
26337         (expand_builtin_mathfn_2): Likewise.
26338         (expand_builtin_mathfn_ternary): Likewise.
26339         (expand_builtin_mathfn_3): Likewise.
26340         (expand_builtin_interclass_mathfn): Likewise for local "last".
26341         (expand_builtin_int_roundingfn): Likewise for local "insns".
26342         (expand_builtin_int_roundingfn_2): Likewise.
26343         (expand_builtin_strlen): Likewise for local "before_strlen".
26344         (expand_builtin_strncmp): Likewise for local "seq".
26345         (expand_builtin_signbit): Likewise for local "last".
26346         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
26347         from rtx to rtx_code_label *.
26348         (expand_stack_restore):  Strengthen local "prev" from rtx to
26349         rtx_insn *.
26350
26351 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26352
26353         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
26354         to rtx_insn *.
26355         (struct btr_def_s): Likewise.
26356         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
26357         const rtx_insn *.
26358         (add_btr_def): Likewise.
26359         (new_btr_user): Likewise.
26360         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
26361         rtx to rtx_insn *.
26362         (link_btr_uses): Likewise.
26363         (move_btr_def): Likewise for locals "insp", "old_insn",
26364         "new_insn".  Add checked cast to rtx_insn * for now on result of
26365         gen_move_insn.
26366         (can_move_up): Strengthen param "insn" from const_rtx to
26367         const rtx_insn *.
26368
26369 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26370
26371         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
26372         rtx_insn *.
26373         (get_uncond_jump_length): Likewise for locals "label", "jump".
26374         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
26375         "jump", "insn".
26376         (add_labels_and_missing_jumps): Likewise for local "new_jump".
26377         (fix_up_fall_thru_edges): Likewise for local "old_jump".
26378         (find_jump_block): Likewise for local "insn".
26379         (fix_crossing_conditional_branches): Likewise for locals
26380         "old_jump", "new_jump".
26381         (fix_crossing_unconditional_branches): Likewise for locals
26382         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
26383         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
26384
26385 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26386
26387         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
26388         rtx to rtx_insn *.
26389         (struct mem_insn): Likewise for field "insn".
26390         (reg_next_use): Strengthen from rtx * to rtx_insn **.
26391         (reg_next_inc_use): Likewise.
26392         (reg_next_def): Likewise.
26393         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
26394         from rtx to rtx_insn *.
26395         (move_insn_before): Likewise for param "next_insn" and local "insns".
26396         (attempt_change): Likewise for local "mov_insn".
26397         (try_merge): Likewise for param "last_insn".
26398         (get_next_ref): Likewise for return type and local "insn".
26399         Strengthen param "next_array" from rtx * to rtx_insn **.
26400         (parse_add_or_inc): Strengthen param "insn" from rtx to
26401         rtx_insn *.
26402         (find_inc): Likewise for locals "insn" and "other_insn" (three of
26403         the latter).
26404         (merge_in_block): Likewise for locals "insn", "curr",
26405         "other_insn".
26406         (pass_inc_dec::execute): Update allocations of the arrays to
26407         reflect the stronger types.
26408
26409 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26410
26411         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
26412         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
26413         from rtx to rtx_code_label *.
26414
26415 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26416
26417         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
26418         to rtx_insn *.
26419
26420 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26421
26422         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
26423         generated a warning and prevented bootstrapping the compiler.
26424
26425 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26426
26427         * rtl.h (delete_related_insns): Strengthen return type from rtx to
26428         rtx_insn *.
26429
26430         * jump.c (delete_related_insns): Likewise, also for locals "next"
26431         and "prev".
26432
26433 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26434
26435         * genautomata.c (output_internal_insn_latency_func): When writing
26436         the function "internal_insn_latency" to insn-automata.c,
26437         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
26438         allowing the optional guard function of (define_bypass) clauses to
26439         expect a pair of rtx_insn *, rather than a pair of rtx.
26440         (output_insn_latency_func): When writing the function
26441         "insn_latency", add an "uncast_" prefix to params "insn" and
26442         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
26443         using checked casts from the params, thus enabling the above
26444         change to the generated "internal_insn_latency" function.
26445
26446 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
26447
26448         PR tree-optimization/62091
26449         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
26450         handle correctly arrays.
26451         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
26452         inheritance binfos.
26453         (record_known_type): Walk into inner type.
26454         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
26455         condition on no type changes.
26456
26457 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26458
26459         * genattrtab.c (write_attr_get): Within the generated get_attr_
26460         functions, rename param "insn" to "uncast_insn" and reintroduce
26461         "insn" as an local rtx_insn * using a checked cast, so that "insn"
26462         is an rtx_insn * within insn-attrtab.c
26463
26464 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26465
26466         * output.h (peephole): Strengthen return type from rtx to
26467         rtx_insn *.
26468         * rtl.h (delete_for_peephole): Likewise for both params.
26469         * genpeep.c (main): In generated "peephole" function, strengthen
26470         return type and local "insn" from rtx to rtx_insn *.  For now,
26471         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
26472         rtx_insn *, with a checked cast.
26473         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
26474         locals "insn", "next", "prev" from rtx to rtx_insn *.
26475
26476 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
26477
26478         PR tree-optimization/62112
26479         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
26480         * gimple-iterator.h (gsi_replace): Return bool.
26481         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
26482         moved from ref_may_alias_global_p.
26483         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
26484         New overloads.
26485         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
26486         (stmt_kills_ref_p_1): Rename...
26487         (stmt_kills_ref_p): ... to this.
26488         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
26489         stmt_kills_ref_p): Declare.
26490         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
26491         Move the self-assignment case...
26492         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
26493
26494 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26495
26496         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
26497
26498         * emit-rtl.c (try_split): Likewise, also for locals "before" and
26499         "after".  For now, don't strengthen param "trial", which requires
26500         adding checked casts when returning it.
26501
26502 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26503
26504         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
26505         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
26506         "var_location" hook from rtx to rtx_insn *.
26507         (debug_nothing_rtx): Delete in favor of...
26508         (debug_nothing_rtx_code_label): New prototype.
26509         (debug_nothing_rtx_rtx): Delete unused prototype.
26510         (debug_nothing_rtx_insn): New prototype.
26511
26512         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
26513         invoking debug_hooks->var_location (in two places, one in a NOTE
26514         case of a switch statement, the other guarded by a CALL_P
26515         conditional.  Add checked cast to rtx_code_label * when invoking
26516         debug_hooks->label (within CODE_LABEL case of switch statement).
26517
26518         * dbxout.c (dbx_debug_hooks): Update "label" hook from
26519         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26520         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
26521         (xcoff_debug_hooks): Likewise.
26522         * debug.c (do_nothing_debug_hooks): Likewise.
26523         (debug_nothing_rtx): Delete in favor of...
26524         (debug_nothing_rtx_insn): New function.
26525         (debug_nothing_rtx_rtx): Delete unused function.
26526         (debug_nothing_rtx_code_label): New function.
26527         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
26528         debug_nothing_rtx to debug_nothing_rtx_code_label.
26529         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
26530         to rtx_insn *.
26531         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
26532         debug_nothing_rtx to debug_nothing_rtx_insn.
26533         (sdbout_label): Strengthen param "insn" from rtx to
26534         rtx_code_label *.
26535         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
26536         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26537         "var_location" hook from debug_nothing_rtx to
26538         debug_nothing_rtx_insn.
26539
26540 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26541
26542         * recog.h (insn_output_fn): Update this function typedef to match
26543         the changes below to the generated output functions, strengthening
26544         the 2nd param from rtx to rtx_insn *.
26545
26546         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
26547         insn when invoking an output function, to match the new signature
26548         of insn_output_fn with a stronger second param.
26549
26550         * genconditions.c (write_header): In the generated code for
26551         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
26552         to match the other changes in this patch.
26553
26554         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
26555         the generated "gen_" functions from rtx to rtx_insn * within their
26556         implementations.
26557
26558         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
26559         the subfunctions within the generated "recog_", "split", "peephole2"
26560         function trees from rtx to rtx_insn *.  For now, the top-level
26561         generated functions ("recog", "split", "peephole2") continue to
26562         take a plain rtx for "insn", to avoid introducing dependencies on
26563         other patches.  Rename this 2nd param from "insn" to
26564         "uncast_insn", and reintroduce "insn" as a local variable of type
26565         rtx_insn *, initialized at the top of the generated function with
26566         a checked cast on "uncast_insn".
26567         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
26568         the generated "gen_" functions from rtx to rtx_insn * within their
26569         prototypes.
26570
26571         * genoutput.c (process_template): Strengthen the 2nd param within
26572         the generated "output_" functions "insn" from rtx to rtx_insn *.
26573
26574 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26575
26576         * tree-profile.c (tree_profiling): Skip external functions
26577         when doing coverage instrumentation.
26578         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
26579
26580 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26581
26582         * config/rs6000/altivec.h (vec_cpsgn): New #define.
26583         (vec_mergee): Likewise.
26584         (vec_mergeo): Likewise.
26585         (vec_cntlz): Likewise.
26586         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
26587         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
26588         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
26589         VMRGEW, and VMRGOW.
26590         * doc/extend.texi: Document various forms of vec_cpsgn,
26591         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
26592         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
26593         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
26594         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
26595         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
26596
26597 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26598
26599         * config/rs6000/rs6000.c (context.h): New include.
26600         (tree-pass.h): Likewise.
26601         (make_pass_analyze_swaps): New decl.
26602         (rs6000_option_override): Register pass_analyze_swaps.
26603         (swap_web_entry): New subsclass of web_entry_base (df.h).
26604         (special_handling_values): New enum.
26605         (union_defs): New function.
26606         (union_uses): Likewise.
26607         (insn_is_load_p): Likewise.
26608         (insn_is_store_p): Likewise.
26609         (insn_is_swap_p): Likewise.
26610         (rtx_is_swappable_p): Likewise.
26611         (insn_is_swappable_p): Likewise.
26612         (chain_purpose): New enum.
26613         (chain_contains_only_swaps): New function.
26614         (mark_swaps_for_removal): Likewise.
26615         (swap_const_vector_halves): Likewise.
26616         (adjust_subreg_index): Likewise.
26617         (permute_load): Likewise.
26618         (permute_store): Likewise.
26619         (handle_special_swappables): Likewise.
26620         (replace_swap_with_copy): Likewise.
26621         (dump_swap_insn_table): Likewise.
26622         (rs6000_analyze_swaps): Likewise.
26623         (pass_data_analyze_swaps): New pass_data.
26624         (pass_analyze_swaps): New rtl_opt_pass.
26625         (make_pass_analyze_swaps): New function.
26626         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
26627
26628 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26629
26630         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
26631         type from rtx to rtx_insn *.
26632         (create_copy_of_insn_rtx): Likewise.
26633         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
26634         (create_copy_of_insn_rtx): Likewise, also for local "res".
26635
26636 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26637
26638         * rtl.h (find_first_parameter_load): Strengthen return type from
26639         rtx to rtx_insn *.
26640         * rtlanal.c (find_first_parameter_load): Strengthen return type
26641         from rtx to rtx_insn *.  Add checked cast for now, to postpone
26642         strengthening the params.
26643
26644 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26645
26646         PR fortran/44054
26647         * diagnostic.c: Set default caret.
26648         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
26649         line is needed.
26650         * diagnostic.h (struct diagnostic_context):
26651
26652 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26653
26654         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
26655         (sel_bb_head): Strengthen return type insn_t (currently just an
26656         rtx) to rtx_insn *.
26657         (sel_bb_end): Likewise.
26658
26659         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
26660         (sel_bb_head): Strengthen return type and local "head" from
26661         insn_t (currently just an rtx) to rtx_insn *.
26662         (sel_bb_end): Likewise for return type.
26663         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
26664         working with insn.
26665
26666 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26667
26668         * basic-block.h (get_last_bb_insn): Strengthen return type from
26669         rtx to rtx_insn *.
26670         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
26671         end".
26672
26673 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26674
26675         PR fortran/44054
26676         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
26677         to here ...
26678         (diagnostic_report_diagnostic): ... from here.
26679         * toplev.c (general_init): Move code to c-family.
26680
26681 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26682
26683         * df.h (web_entry_base): Replace existing struct web_entry with a
26684         new class web_entry_base with only the predecessor member.
26685         (unionfind_root): Remove declaration and move to class member.
26686         (unionfind_union): Remove declaration and move to friend
26687         function.
26688         (union_defs): Remove declaration.
26689         * web.c (web_entry_base::unionfind_root): Modify to be member
26690         function and adjust accessors.
26691         (unionfind_union): Modify to be friend function and adjust
26692         accessors.
26693         (web_entry): New subclass of web_entry_base containing the reg
26694         member.
26695         (union_match_dups): Modify for struct -> class changes.
26696         (union_defs): Likewise.
26697         (entry_register): Likewise.
26698         (pass_web::execute): Likewise.
26699
26700 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
26701
26702         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
26703         builtin define __VEC_ELEMENT_REG_ORDER__.
26704
26705 2014-08-20  Martin Jambor  <mjambor@suse.cz>
26706             Wei Mi  <wmi@google.com>
26707
26708         PR ipa/60449
26709         PR middle-end/61776
26710         * tree-ssa-operands.c (update_stmt_operands): Remove
26711         MODIFIED_NORETURN_CALLS.
26712         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
26713         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
26714         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
26715         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
26716         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
26717         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
26718         (gimple_call_set_ctrl_altering): New func.
26719         (gimple_call_ctrl_altering_p): Ditto.
26720         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
26721         (make_blocks): Use gimple_call_initialize_ctrl_altering.
26722         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
26723         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
26724         remove MODIFIED_NORETURN_CALLS.
26725
26726 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26727
26728         * coverage.c (coverage_compute_profile_id): Return non-0;
26729         also handle symbols with unique name.
26730         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
26731
26732 2014-08-20  Steve Ellcey  <sellcey@mips.com>
26733
26734         PR middle-end/49191
26735         * doc/sourcebuild.texi (non_strict_align): New.
26736
26737 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26738
26739         * cgraphunit.c (ipa_passes, compile): Reshedule
26740         symtab_remove_unreachable_nodes passes; update comments.
26741         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
26742         TODO_remove_functions before the pass; the functions ought to be
26743         already removed.
26744         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
26745         TODO_remove_functions.
26746         * passes.c (pass_data_early_local_passes): Do not schedule function
26747         removal.
26748         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
26749
26750 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26751
26752         PR c/59304
26753         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
26754         before setting the option.
26755         * diagnostic.c (diagnostic_classify_diagnostic): Record
26756         command-line status.
26757
26758 2014-08-20  Richard Biener  <rguenther@suse.de>
26759
26760         PR lto/62190
26761         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
26762         to build uint{16,32,64}_type_node.
26763
26764 2014-08-20  Terry Guo  <terry.guo@arm.com>
26765
26766         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
26767         with immediate_operand.
26768
26769 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
26770
26771         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
26772         "insn" from an as_a to a safe_as_a, for the case when "insn" is
26773         NULL.
26774
26775 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26776
26777         PR preprocessor/51303
26778         * incpath.c (remove_duplicates): Use cpp_warning.
26779
26780 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26781
26782         PR c/60975
26783         PR c/53063
26784         * doc/options.texi (CPP): Document it.
26785         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
26786         * optc-gen.awk: Handle CPP.
26787         * opth-gen.awk: Likewise.
26788
26789 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26790
26791         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
26792         rtx_insn *.
26793         (duplicate_insn_chain): Likewise.
26794         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
26795         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
26796         checked cast for now (until we can strengthen the params in the
26797         same way).
26798         (duplicate_insn_chain): Likewise.
26799
26800 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26801
26802         * rtl.h (next_cc0_user): Strengthen return type from rtx to
26803         rtx_insn *.
26804         (prev_cc0_setter): Likewise.
26805
26806         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
26807         rtx_insn *, adding checked casts for now as necessary.
26808         (prev_cc0_setter): Likewise.
26809
26810 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26811
26812         * expr.h (emit_move_insn): Strengthen return type from rtx to
26813         rtx_insn *.
26814         (emit_move_insn_1): Likewise.
26815         (emit_move_complex_push): Likewise.
26816         (emit_move_complex_parts): Likewise.
26817
26818         * expr.c (emit_move_via_integer): Strengthen return type from rtx
26819         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
26820         with insns.
26821         (emit_move_complex_push): Strengthen return type from rtx to
26822         rtx_insn *.
26823         (emit_move_complex): Likewise, also for local "ret".
26824         (emit_move_ccmode): Likewise.
26825         (emit_move_multi_word): Likewise for return type and locals
26826         "last_insn", "seq".
26827         (emit_move_insn_1): Likewise for return type and locals "result",
26828         "ret".
26829         (emit_move_insn): Likewise for return type and local "last_insn".
26830         (compress_float_constant): Likewise.
26831
26832 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26833
26834         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
26835         from rtx to rtx_insn *.
26836
26837         * rtl.h (emit_insn_before): Likewise.
26838         (emit_insn_before_noloc): Likewise.
26839         (emit_insn_before_setloc): Likewise.
26840         (emit_jump_insn_before): Likewise.
26841         (emit_jump_insn_before_noloc): Likewise.
26842         (emit_jump_insn_before_setloc): Likewise.
26843         (emit_call_insn_before): Likewise.
26844         (emit_call_insn_before_noloc): Likewise.
26845         (emit_call_insn_before_setloc): Likewise.
26846         (emit_debug_insn_before): Likewise.
26847         (emit_debug_insn_before_noloc): Likewise.
26848         (emit_debug_insn_before_setloc): Likewise.
26849         (emit_label_before): Likewise.
26850         (emit_insn_after): Likewise.
26851         (emit_insn_after_noloc): Likewise.
26852         (emit_insn_after_setloc): Likewise.
26853         (emit_jump_insn_after): Likewise.
26854         (emit_jump_insn_after_noloc): Likewise.
26855         (emit_jump_insn_after_setloc): Likewise.
26856         (emit_call_insn_after): Likewise.
26857         (emit_call_insn_after_noloc): Likewise.
26858         (emit_call_insn_after_setloc): Likewise.
26859         (emit_debug_insn_after): Likewise.
26860         (emit_debug_insn_after_noloc): Likewise.
26861         (emit_debug_insn_after_setloc): Likewise.
26862         (emit_label_after): Likewise.
26863         (emit_insn): Likewise.
26864         (emit_debug_insn): Likewise.
26865         (emit_jump_insn): Likewise.
26866         (emit_call_insn): Likewise.
26867         (emit_label): Likewise.
26868         (gen_clobber): Likewise.
26869         (emit_clobber): Likewise.
26870         (gen_use): Likewise.
26871         (emit_use): Likewise.
26872         (emit): Likewise.
26873
26874         (emit_barrier_before): Strengthen return type from rtx to
26875         rtx_barrier *.
26876         (emit_barrier_after): Likewise.
26877         (emit_barrier): Likewise.
26878
26879         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
26880         from rtx to rtx_insn *.  Add checked casts for now when converting
26881         "last" from rtx to rtx_insn *.
26882         (emit_insn_before_noloc): Likewise for return type.
26883         (emit_jump_insn_before_noloc): Likewise.
26884         (emit_call_insn_before_noloc): Likewise.
26885         (emit_debug_insn_before_noloc): Likewise.
26886         (emit_barrier_before): Strengthen return type and local "insn"
26887         from rtx to rtx_barrier *.
26888         (emit_label_before): Strengthen return type from rtx to
26889         rtx_insn *.  Add checked cast for now when returning param
26890         (emit_pattern_after_noloc): Strengthen return type from rtx to
26891         rtx_insn *.  Add checked casts for now when converting "last" from
26892         rtx to rtx_insn *.
26893         (emit_insn_after_noloc): Strengthen return type from rtx to
26894         rtx_insn *.
26895         (emit_jump_insn_after_noloc): Likewise.
26896         (emit_call_insn_after_noloc): Likewise.
26897         (emit_debug_insn_after_noloc): Likewise.
26898         (emit_barrier_after): Strengthen return type from rtx to
26899         rtx_barrier *.
26900         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
26901         Add checked cast for now when converting "label" from rtx to
26902         rtx_insn *.
26903         (emit_pattern_after_setloc): Strengthen return type from rtx to
26904         rtx_insn *.  Add checked casts for now when converting "last" from
26905         rtx to rtx_insn *.
26906         (emit_pattern_after): Strengthen return type from rtx to
26907         rtx_insn *.
26908         (emit_insn_after_setloc): Likewise.
26909         (emit_insn_after): Likewise.
26910         (emit_jump_insn_after_setloc): Likewise.
26911         (emit_jump_insn_after): Likewise.
26912         (emit_call_insn_after_setloc): Likewise.
26913         (emit_call_insn_after): Likewise.
26914         (emit_debug_insn_after_setloc): Likewise.
26915         (emit_debug_insn_after): Likewise.
26916         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
26917         when converting "last" from rtx to rtx_insn *.
26918         (emit_pattern_before): Strengthen return type from rtx to
26919         rtx_insn *.
26920         (emit_insn_before_setloc): Likewise.
26921         (emit_insn_before): Likewise.
26922         (emit_jump_insn_before_setloc): Likewise.
26923         (emit_jump_insn_before): Likewise.
26924         (emit_call_insn_before_setloc): Likewise.
26925         (emit_call_insn_before): Likewise.
26926         (emit_debug_insn_before_setloc): Likewise.
26927         (emit_debug_insn_before): Likewise.
26928         (emit_insn): Strengthen return type and locals "last", "insn",
26929         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
26930         within cases where we know we have an insn.
26931         (emit_debug_insn): Likewise.
26932         (emit_jump_insn): Likewise.
26933         (emit_call_insn): Strengthen return type and local "insn" from rtx
26934         to rtx_insn *.
26935         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
26936         a checked cast to rtx_insn * for now on "label".
26937         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
26938         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
26939         (emit_use): Likewise.
26940         (gen_use): Likewise, also for local "seq".
26941         (emit): Likewise for return type and local "insn".
26942         (rtx_insn): Likewise for return type and local "new_rtx".
26943
26944         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
26945         from rtx to rtx_barrier *.
26946
26947         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
26948         changed return type from rtx to rtx_insn *, we must update
26949         "emit_fn" type, and this in turn means updating...
26950         (frame_insn): ...this.  Strengthen return type from rtx to
26951         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
26952
26953 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26954
26955         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
26956         rtx to rtx_jump_table_data *.  Also for local.
26957         * rtl.h (emit_jump_table_data): Likewise.
26958
26959 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26960
26961         * basic-block.h (create_basic_block_structure): Strengthen third
26962         param "bb_note" from rtx to rtx_note *.
26963         * rtl.h (emit_note_before): Strengthen return type from rtx to
26964         rtx_note *.
26965         (emit_note_after): Likewise.
26966         (emit_note): Likewise.
26967         (emit_note_copy): Likewise.  Also, strengthen param similarly.
26968         * function.h (struct rtl_data): Strengthen field
26969         "x_stack_check_probe_note" from rtx to rtx_note *.
26970
26971         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
26972         from rtx to rtx_note *.
26973         * cfgrtl.c (create_basic_block_structure): Strengthen third param
26974         "bb_note" from rtx to rtx_note *.
26975         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
26976         when calling emit_note_copy.
26977         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
26978         rtx_note *.
26979         (emit_note_after): Likewise.
26980         (emit_note_before): Likewise.
26981         (emit_note_copy): Likewise.  Also, strengthen param similarly.
26982         (emit_note): Likewise.
26983         * except.c (emit_note_eh_region_end): Likewise for return type.
26984         Strengthen local "next" from rtx to rtx_insn *.
26985         (convert_to_eh_region_ranges): Strengthen local "note"
26986         from rtx to rtx_note *.
26987         * final.c (change_scope): Likewise.
26988         (reemit_insn_block_notes): Likewise, for both locals named "note".
26989         Also, strengthen local "insn" from rtx to rtx_insn *.
26990         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
26991         rtx to rtx_note *.
26992         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
26993         strengthen local "seq" from rtx to rtx_insn *.
26994         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
26995         to rtx_note *.
26996         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
26997         vec<rtx_note *>.
26998         (get_bb_note_from_pool): Strengthen return type from rtx to
26999         rtx_note *.
27000         (sel_create_basic_block): Strengthen local "new_bb_note" from
27001         insn_t to rtx_note *.
27002         * var-tracking.c (emit_note_insn_var_location): Strengthen local
27003         "note" from rtx to rtx_note *.
27004         (emit_notes_in_bb): Likewise.
27005
27006 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27007
27008         * function.h (struct rtl_data): Strengthen field
27009         "x_parm_birth_insn" from rtx to rtx_insn *.
27010         * function.c (struct assign_parm_data_all): Strengthen fields
27011         "first_conversion_insn" and "last_conversion_insn" from rtx to
27012         rtx_insn *.
27013
27014 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27015
27016         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
27017         to rtx_insn *; also for local "var_end_seq".
27018         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
27019         (maybe_cleanup_end_of_block): Likewise for param "last" and local
27020         "insn".
27021         (expand_gimple_cond): Likewise for locals "last2" and "last".
27022         (mark_transaction_restart_calls): Likewise for local "insn".
27023         (expand_gimple_stmt): Likewise for return type and locals "last"
27024         and "insn".
27025         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
27026         (avoid_complex_debug_insns): Likewise for param "insn".
27027         (expand_debug_locations): Likewise for locals "insn", "last",
27028         "prev_insn" and "insn2".
27029         (expand_gimple_basic_block): Likewise for local "last".
27030         (construct_exit_block): Likewise for locals "head", "end",
27031         "orig_end".
27032         (pass_expand::execute): Likewise for locals "var_seq",
27033         "var_ret_seq", "next".
27034
27035 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27036
27037         * asan.h (asan_emit_stack_protection): Strengthen return type from
27038         rtx to rtx_insn *.
27039         * asan.c (asan_emit_stack_protection): Likewise.  Add local
27040         "insns" to hold the return value.
27041
27042 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27043
27044         * basic-block.h (bb_note): Strengthen return type from rtx to
27045         rtx_note *.
27046         * sched-int.h (bb_note): Likewise.
27047         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
27048
27049 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27050
27051         * rtl.h (make_insn_raw): Strengthen return type from rtx to
27052         rtx_insn *.
27053
27054         * emit-rtl.c (make_insn_raw): Strengthen return type and local
27055         "insn" from rtx to rtx_insn *.
27056         (make_debug_insn_raw): Strengthen return type from rtx to
27057         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
27058         (make_jump_insn_raw):  Strengthen return type from rtx to
27059         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
27060         (make_call_insn_raw):  Strengthen return type from rtx to
27061         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
27062         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
27063         callback from rtx to rtx_insn *; likewise for local "insn" and
27064         "next", adding a checked cast to rtx_insn in the relevant cases of
27065         the switch statement.
27066         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
27067         callback from rtx to rtx_insn *.
27068         (emit_pattern_after_setloc): Likewise.
27069         (emit_pattern_after): Likewise.
27070         (emit_pattern_before_setloc): Likewise.
27071         (emit_pattern_before): Likewise.
27072
27073 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27074
27075         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
27076         rtx_call_insn *.
27077         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
27078         accepting an rtx_insn *.
27079         (last_call_insn): Strengthen return type from rtx to
27080         rtx_call_insn *.
27081
27082 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27083
27084         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
27085         "insns" from rtx to rtx_insn *.
27086         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
27087         locals "insn" and "prev".
27088
27089 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27090
27091         * rtl.h (tablejump_p): Strengthen third param from rtx * to
27092         rtx_jump_table_data **.
27093
27094         * cfgbuild.c (make_edges): Introduce local "table", using it in
27095         place of "tmp" for jump table data.
27096         (find_bb_boundaries): Strengthen local "table" from rtx to
27097         rtx_jump_table_data *.
27098         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27099         (outgoing_edges_match): Likewise for locals "table1" and "table2".
27100         (try_crossjump_to_edge): Likewise.
27101         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
27102         "table".
27103         (patch_jump_insn): Introduce local "table", using it in place of
27104         "tmp" for jump table data.
27105         (force_nonfallthru_and_redirect): Introduce local "table", so that
27106         call to tablejump_p can receive an rtx_jump_table_data **.  Update
27107         logic around the call to overwrite "note" appropriately if
27108         tablejump_p returns non-zero.
27109         (get_last_bb_insn): Introduce local "table", using it in place of
27110         "tmp" for jump table data.
27111         * dwarf2cfi.c (create_trace_edges): Likewise.
27112
27113         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
27114         from rtx to rtx_jump_table_data *.
27115         (create_fix_barrier): Strengthen local "tmp" from rtx to
27116         rtx_jump_table_data *.
27117         (arm_reorg): Likewise for local "table".
27118
27119         * config/s390/s390.c (s390_chunkify_start): Likewise.
27120
27121         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
27122
27123         * jump.c (delete_related_insns): Strengthen local "lab_next" from
27124         rtx to rtx_jump_table_data *.
27125
27126         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
27127         rtx_jump_table_data **.  Add a checked cast when writing through
27128         the pointer: we know there that local "table" is non-NULL and that
27129         JUMP_TABLE_DATA_P (table) holds.
27130         (label_is_jump_target_p): Introduce local "table", using it in
27131         place of "tmp" for jump table data.
27132
27133 2014-08-19  Marek Polacek  <polacek@redhat.com>
27134
27135         PR c++/62153
27136         * doc/invoke.texi: Document -Wbool-compare.
27137
27138 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27139
27140         * rtl.h (entry_of_function): Strengthen return type from rtx to
27141         rtx_insn *.
27142         * cfgrtl.c (entry_of_function): Likewise.
27143
27144 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27145
27146         * emit-rtl.h (get_insns): Strengthen return type from rtx to
27147         rtx_insn *, adding a checked cast for now.
27148         (get_last_insn): Likewise.
27149
27150 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27151
27152         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
27153         rtx_code_label *.
27154
27155         * emit-rtl.c (gen_label_rtx): Likewise.
27156
27157 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27158
27159         * rtl.h (previous_insn): Strengthen return type from rtx to
27160         rtx_insn *.
27161         (next_insn): Likewise.
27162         (prev_nonnote_insn): Likewise.
27163         (prev_nonnote_insn_bb): Likewise.
27164         (next_nonnote_insn): Likewise.
27165         (next_nonnote_insn_bb): Likewise.
27166         (prev_nondebug_insn): Likewise.
27167         (next_nondebug_insn): Likewise.
27168         (prev_nonnote_nondebug_insn): Likewise.
27169         (next_nonnote_nondebug_insn): Likewise.
27170         (prev_real_insn): Likewise.
27171         (next_real_insn): Likewise.
27172         (prev_active_insn): Likewise.
27173         (next_active_insn): Likewise.
27174
27175         * emit-rtl.c (next_insn): Strengthen return type from rtx to
27176         rtx_insn *, adding a checked cast.
27177         (previous_insn): Likewise.
27178         (next_nonnote_insn): Likewise.
27179         (next_nonnote_insn_bb): Likewise.
27180         (prev_nonnote_insn): Likewise.
27181         (prev_nonnote_insn_bb): Likewise.
27182         (next_nondebug_insn): Likewise.
27183         (prev_nondebug_insn): Likewise.
27184         (next_nonnote_nondebug_insn): Likewise.
27185         (prev_nonnote_nondebug_insn): Likewise.
27186         (next_real_insn): Likewise.
27187         (prev_real_insn): Likewise.
27188         (next_active_insn): Likewise.
27189         (prev_active_insn): Likewise.
27190
27191         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
27192         param "stepfunc" so that it returns an rtx_insn * rather than an
27193         rtx, to track the change to prev_nonnote_insn_bb, which is the
27194         only function this is called with.
27195         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
27196
27197 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
27198
27199         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
27200         assert.
27201
27202 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27203
27204         * coretypes.h (class rtx_debug_insn): Add forward declaration.
27205         (class rtx_nonjump_insn): Likewise.
27206         (class rtx_jump_insn): Likewise.
27207         (class rtx_call_insn): Likewise.
27208         (class rtx_jump_table_data): Likewise.
27209         (class rtx_barrier): Likewise.
27210         (class rtx_code_label): Likewise.
27211         (class rtx_note): Likewise.
27212
27213         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
27214         adding the invariant DEBUG_INSN_P (X).
27215         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
27216         the invariant NONJUMP_INSN_P (X).
27217         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
27218         the invariant JUMP_P (X).
27219         (class rtx_call_insn): New, a subclass of rtx_insn, adding
27220         the invariant CALL_P (X).
27221         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
27222         invariant JUMP_TABLE_DATA_P (X).
27223         (class rtx_barrier): New, a subclass of rtx_insn, adding the
27224         invariant BARRIER_P (X).
27225         (class rtx_code_label): New, a subclass of rtx_insn, adding
27226         the invariant LABEL_P (X).
27227         (class rtx_note): New, a subclass of rtx_insn, adding
27228         the invariant NOTE_P(X).
27229         (is_a_helper <rtx_debug_insn *>::test): New.
27230         (is_a_helper <rtx_nonjump_insn *>::test): New.
27231         (is_a_helper <rtx_jump_insn *>::test): New.
27232         (is_a_helper <rtx_call_insn *>::test): New.
27233         (is_a_helper <rtx_jump_table_data *>::test): New functions,
27234         overloaded for both rtx and rtx_insn *.
27235         (is_a_helper <rtx_barrier *>::test): New.
27236         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
27237         for both rtx and rtx_insn *.
27238         (is_a_helper <rtx_note *>::test): New.
27239
27240 2014-08-19  Marek Polacek  <polacek@redhat.com>
27241
27242         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
27243         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27244         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
27245         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27246
27247 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27248
27249         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
27250         rtx_insn *.  To help with transition, for now, convert from an
27251         access macro into a pair of functions: BND_TO, returning an
27252         rtx_insn *, and...
27253         (SET_BND_TO): New function, for use where BND_TO is used as an
27254         lvalue.
27255
27256         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
27257         SET_BND_TO.
27258         (BND_TO): New function, adding a checked cast.
27259         (SET_BND_TO): New function.
27260
27261         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27262         SET_BND_TO.
27263         (compute_av_set_on_boundaries): Likewise.
27264
27265 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27266
27267         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27268         destination if it is used in source.
27269         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27270         (*popcount<mode>2_falsedep_1): Likewise.
27271
27272 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27273
27274         PR other/62168
27275         * configure.ac: Set install_gold_as_default to no first.
27276         * configure: Regenerated.
27277
27278 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27279
27280         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27281         "note_list" field will eventually be an rtx_insn *.  To help with
27282         transition, for now, convert from an access macro into a pair of
27283         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27284         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27285         used as an lvalue.
27286
27287         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27288         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27289
27290         * sel-sched-ir.c (init_bb): Likewise.
27291         (sel_restore_notes): Likewise.
27292         (move_bb_info): Likewise.
27293         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27294         (SET_BB_NOTE_LIST): New function.
27295
27296 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27297
27298         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27299         field will eventually be an rtx_insn *.  To help with transition,
27300         for now, convert from an access macro into a pair of functions:
27301         VINSN_INSN_RTX, returning an rtx_insn *, and...
27302         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27303         is used as an lvalue.
27304
27305         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27306         SET_VINSN_INSN_RTX where it's used as an lvalue.
27307         (VINSN_INSN_RTX): New function.
27308         (SET_VINSN_INSN_RTX): New function.
27309
27310 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27311
27312         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
27313         eventually be rtx_insn *, but to help with transition, for now,
27314         convert from an access macro into a pair of functions: DEP_PRO
27315         returning an rtx_insn * and...
27316         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
27317         lvalue, returning an rtx&.
27318         (DEP_CON): Analogous changes to DEP_PRO above.
27319         (SET_DEP_CON): Likewise.
27320
27321         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
27322         an lvalue to SET_DEP_CON.
27323         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
27324         (sd_copy_back_deps): Likewise for DEP_CON.
27325         (DEP_PRO): New function, adding a checked cast for now.
27326         (DEP_CON): Likewise.
27327         (SET_DEP_PRO): New function.
27328         (SET_DEP_CON): Likewise.
27329
27330 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27331
27332         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
27333         (extra_options): Add i386/cygwin.opt.
27334         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
27335         (CPP_SPEC): Accept -pthread.
27336         (LINK_SPEC): Ditto.
27337         (GOMP_SELF_SPECS): Update comment.
27338         * config/i386/cygwin.opt: New file for -pthread flag.
27339
27340 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27341
27342         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
27343         * df.h (DF_REF_INSN): Convert from a macro to a function, so
27344         that we can return an rtx_insn *.
27345
27346 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27347
27348         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
27349         when building executables, not DLLs.  Add --large-address-aware
27350         under the same conditions.
27351         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
27352         when building executables, not DLLs.  Add --large-address-aware
27353         under the same conditions when using -m32.
27354
27355         * config/i386/cygwin-stdint.h: Throughout, make type
27356         definitions dependent on target architecture, not host.
27357
27358 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27359
27360         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
27361         the return type from rtx to rtx_insn *,  which will enable various
27362         conversions in followup patches.  For now this is is done by a
27363         checked cast.
27364         (NEXT_INSN): Likewise.
27365         (SET_PREV_INSN): Convert to an inline function.  This is intended
27366         for use as an lvalue, and so returns an rtx& to allow in-place
27367         modification.
27368         (SET_NEXT_INSN): Likewise.
27369
27370 2014-07-08  Mark Wielaard  <mjw@redhat.com>
27371
27372         PR debug/59051
27373         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
27374
27375 2014-08-19  Marek Polacek  <polacek@redhat.com>
27376
27377         PR c/61271
27378         * cgraphunit.c (handle_alias_pairs): Fix condition.
27379
27380 2014-08-19  Richard Biener  <rguenther@suse.de>
27381
27382         * gimple-fold.c (fold_gimple_assign): Properly build a
27383         null-pointer constant when devirtualizing addresses.
27384
27385 2014-07-07  Mark Wielaard  <mjw@redhat.com>
27386
27387         * dwarf2out.c (decl_quals): New function.
27388         (modified_type_die): Take one cv_quals argument instead of two,
27389         one for const and one for volatile.
27390         (add_type_attribute): Likewise.
27391         (generic_parameter_die): Call add_type_attribute with one modifier
27392         argument.
27393         (base_type_for_mode): Likewise.
27394         (add_bounds_info): Likewise.
27395         (add_subscript_info): Likewise.
27396         (gen_array_type_die): Likewise.
27397         (gen_descr_array_type_die): Likewise.
27398         (gen_entry_point_die): Likewise.
27399         (gen_enumeration_type_die): Likewise.
27400         (gen_formal_parameter_die): Likewise.
27401         (gen_subprogram_die): Likewise.
27402         (gen_variable_die): Likewise.
27403         (gen_const_die): Likewise.
27404         (gen_field_die): Likewise.
27405         (gen_pointer_type_die): Likewise.
27406         (gen_reference_type_die): Likewise.
27407         (gen_ptr_to_mbr_type_die): Likewise.
27408         (gen_inheritance_die): Likewise.
27409         (gen_subroutine_type_die): Likewise.
27410         (gen_typedef_die): Likewise.
27411         (force_type_die): Likewise.
27412
27413 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27414
27415         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
27416         if unset.
27417         * configure: Regenerate.
27418
27419 2014-08-19  Richard Biener  <rguenther@suse.de>
27420
27421         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
27422         DECL_EXTERNALs in BLOCKs as non-references.
27423         * tree-streamer-out.c (streamer_write_chain): Likewise.
27424
27425 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27426             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27427             Anna Tikhonova  <anna.tikhonova@intel.com>
27428             Ilya Tocar  <ilya.tocar@intel.com>
27429             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27430             Ilya Verbin  <ilya.verbin@intel.com>
27431             Kirill Yukhin  <kirill.yukhin@intel.com>
27432             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27433
27434         * config/i386/sse.md
27435         (define_mode_iterator VI48_AVX512F): Delete.
27436         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
27437         (define_mode_iterator VI2_AVX512VL): Ditto.
27438         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
27439         Delete.
27440         (define_insn
27441         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
27442         New.
27443         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
27444         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
27445         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27446         with VI48_AVX512F_AVX512VL): New.
27447         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27448         with VI2_AVX512VL): Ditto.
27449
27450 2014-08-19  Marek Polacek  <polacek@redhat.com>
27451
27452         * doc/invoke.texi: Document -Wc99-c11-compat.
27453
27454 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27455
27456         * rtl.h (PREV_INSN): Split macro in two: the existing one,
27457         for rvalues, and...
27458         (SET_PREV_INSN): New macro, for use as an lvalue.
27459         (NEXT_INSN, SET_NEXT_INSN): Likewise.
27460
27461         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
27462         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
27463         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
27464         (fixup_abnormal_edges): Likewise.
27465         (unlink_insn_chain): Likewise.
27466         (fixup_reorder_chain): Likewise.
27467         (cfg_layout_delete_block): Likewise.
27468         (cfg_layout_merge_blocks): Likewise.
27469         * combine.c (update_cfg_for_uncondjump): Likewise.
27470         * emit-rtl.c (link_insn_into_chain): Likewise.
27471         (remove_insn): Likewise.
27472         (delete_insns_since): Likewise.
27473         (reorder_insns_nobb): Likewise.
27474         (emit_insn_after_1): Likewise.
27475         * final.c (rest_of_clean_state): Likewise.
27476         (final_scan_insn): Likewise.
27477         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
27478         * haifa-sched.c (concat_note_lists): Likewise.
27479         (remove_notes): Likewise.
27480         (restore_other_notes): Likewise.
27481         (move_insn): Likewise.
27482         (unlink_bb_notes): Likewise.
27483         (restore_bb_notes): Likewise.
27484         * jump.c (delete_for_peephole): Likewise.
27485         * optabs.c (emit_libcall_block_1): Likewise.
27486         * reorg.c (emit_delay_sequence): Likewise.
27487         (fill_simple_delay_slots): Likewise.
27488         * sel-sched-ir.c (sel_move_insn): Likewise.
27489         (sel_remove_insn): Likewise.
27490         (get_bb_note_from_pool): Likewise.
27491         * sel-sched.c (move_nop_to_previous_block): Likewise.
27492
27493         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
27494         * config/c6x/c6x.c (gen_one_bundle): Likewise.
27495         (c6x_gen_bundles): Likewise.
27496         (hwloop_optimize): Likewise.
27497         * config/frv/frv.c (frv_function_prologue): Likewise.
27498         (frv_register_nop): Likewise.
27499         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
27500         (ia64_reorg): Likewise.
27501         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
27502         (mep_make_bundle): Likewise.
27503         (mep_bundle_insns): Likewise.
27504         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
27505         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
27506         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
27507
27508 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27509
27510         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
27511         return type from rtx to rtx_insn *.
27512         (BB_END): Likewise.
27513         (BB_HEADER): Likewise.
27514         (BB_FOOTER): Likewise.
27515         (SET_BB_HEAD): Convert to a function.
27516         (SET_BB_END): Likewise.
27517         (SET_BB_HEADER): Likewise.
27518         (SET_BB_FOOTER): Likewise.
27519
27520         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
27521         Strengthen the return type from rtx to rtx_insn *.  For now, this
27522         is done by adding a checked cast, but this will eventually
27523         become a field lookup.
27524         (BB_END): Likewise.
27525         (BB_HEADER): Likewise.
27526         (BB_FOOTER): Likewise.
27527         (SET_BB_HEAD): New function, from macro of same name.  This is
27528         intended for use as an lvalue, and so returns an rtx& to allow
27529         in-place modification.
27530         (SET_BB_END): Likewise.
27531         (SET_BB_HEADER): Likewise.
27532         (SET_BB_FOOTER): Likewise.
27533
27534 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27535
27536         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
27537         for rvalues, and...
27538         (SET_BB_HEAD): New macro, for use as a lvalue.
27539         (BB_END, SET_BB_END): Likewise.
27540         (BB_HEADER, SET_BB_HEADER): Likewise.
27541         (BB_FOOTER, SET_BB_FOOTER): Likewise.
27542
27543         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
27544         of BB_* macros into SET_BB_* macros.
27545         (fix_crossing_unconditional_branches): Likewise.
27546         * caller-save.c (save_call_clobbered_regs): Likewise.
27547         (insert_one_insn): Likewise.
27548         * cfgbuild.c (find_bb_boundaries): Likewise.
27549         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27550         (outgoing_edges_match): Likewise.
27551         (try_optimize_cfg): Likewise.
27552         * cfgexpand.c (expand_gimple_cond): Likewise.
27553         (expand_gimple_tailcall): Likewise.
27554         (expand_gimple_basic_block): Likewise.
27555         (construct_exit_block): Likewise.
27556         * cfgrtl.c (delete_insn): Likewise.
27557         (create_basic_block_structure): Likewise.
27558         (rtl_delete_block): Likewise.
27559         (rtl_split_block): Likewise.
27560         (emit_nop_for_unique_locus_between): Likewise.
27561         (rtl_merge_blocks): Likewise.
27562         (block_label): Likewise.
27563         (try_redirect_by_replacing_jump): Likewise.
27564         (emit_barrier_after_bb): Likewise.
27565         (fixup_abnormal_edges): Likewise.
27566         (record_effective_endpoints): Likewise.
27567         (relink_block_chain): Likewise.
27568         (fixup_reorder_chain): Likewise.
27569         (fixup_fallthru_exit_predecessor): Likewise.
27570         (cfg_layout_duplicate_bb): Likewise.
27571         (cfg_layout_split_block): Likewise.
27572         (cfg_layout_delete_block): Likewise.
27573         (cfg_layout_merge_blocks): Likewise.
27574         * combine.c (update_cfg_for_uncondjump): Likewise.
27575         * emit-rtl.c (add_insn_after): Likewise.
27576         (remove_insn): Likewise.
27577         (reorder_insns): Likewise.
27578         (emit_insn_after_1): Likewise.
27579         * haifa-sched.c (get_ebb_head_tail): Likewise.
27580         (restore_other_notes): Likewise.
27581         (move_insn): Likewise.
27582         (sched_extend_bb): Likewise.
27583         (fix_jump_move): Likewise.
27584         * ifcvt.c (noce_process_if_block): Likewise.
27585         (dead_or_predicable): Likewise.
27586         * ira.c (update_equiv_regs): Likewise.
27587         * reg-stack.c (change_stack): Likewise.
27588         * sel-sched-ir.c (sel_move_insn): Likewise.
27589         * sel-sched.c (move_nop_to_previous_block): Likewise.
27590
27591         * config/c6x/c6x.c (hwloop_optimize): Likewise.
27592         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
27593
27594 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27595
27596         * rtl.h (for_each_rtx_in_insn): New function.
27597         * rtlanal.c (for_each_rtx_in_insn): Likewise.
27598
27599 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27600
27601         * coretypes.h (class rtx_insn): Add forward declaration.
27602
27603         * rtl.h: Include is-a.h.
27604         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
27605         workaround to ensure gengtype knows inheritance is occurring,
27606         whilst continuing to use the pre-existing special-casing for
27607         rtx_def.
27608         (class rtx_insn): New subclass of rtx_def, adding the
27609         invariant that we're dealing with something we can sanely use
27610         INSN_UID, NEXT_INSN, PREV_INSN on.
27611         (is_a_helper <rtx_insn *>::test): New.
27612         (is_a_helper <const rtx_insn *>::test): New.
27613
27614 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27615
27616         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
27617
27618 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27619
27620         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
27621         comdats as extern.
27622
27623 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27624
27625         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
27626         to BUILT_IN_UNREACHABLE.
27627
27628 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
27629
27630         PR target/62011
27631         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
27632         New tune flag.
27633         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
27634         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
27635         (ffs<mode>2): Do not expand with tzcnt for
27636         TARGET_AVOID_FALSE_DEP_FOR_BMI.
27637         (ffssi2_no_cmove): Ditto.
27638         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
27639         (ctz<mode>2): New expander.
27640         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
27641         (*ctz<mode>2_falsedep): New insn.
27642         (*ctz<mode>2): Rename from ctz<mode>2.
27643         (clz<mode>2_lzcnt): New expander.
27644         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
27645         (*clz<mode>2_lzcnt_falsedep): New insn.
27646         (*clz<mode>2): Rename from ctz<mode>2.
27647         (popcount<mode>2): New expander.
27648         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
27649         (*popcount<mode>2_falsedep): New insn.
27650         (*popcount<mode>2): Rename from ctz<mode>2.
27651         (*popcount<mode>2_cmp): Remove.
27652         (*popcountsi2_cmp_zext): Ditto.
27653
27654 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
27655
27656         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
27657         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
27658         * config/microblaze/microblaze.h
27659         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
27660
27661 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
27662
27663         PR other/62168
27664         * configure.ac: Set install_gold_as_default to no for
27665         --enable-gold=no.
27666         * configure: Regenerated.
27667
27668 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
27669
27670         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
27671         * config.in: Add undef of HAVE_isl.
27672         * configure: Regenerate.
27673         * configure.ac: Add definition of HAVE_isl.
27674         * graphite-blocking.c: Add checking of HAVE_isl.
27675         * graphite-dependences.c: Likewise.
27676         * graphite-interchange.c: Likewise.
27677         * graphite-isl-ast-to-gimple.c: Likewise.
27678         * graphite-optimize-isl.c: Likewise.
27679         * graphite-poly.c: Likewise.
27680         * graphite-scop-detection.c: Likewise.
27681         * graphite-sese-to-poly.c: Likewise.
27682         * graphite.c: Likewise.
27683         * toplev.c: Replace the checking of HAVE_cloog with the checking
27684         of HAVE_isl.
27685
27686 2014-08-18  Richard Biener  <rguenther@suse.de>
27687
27688         PR tree-optimization/62090
27689         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
27690         (fold_builtin_3): Do not fold snprintf.
27691         (fold_builtin_4): Likewise.
27692         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
27693         moved from builtins.c.
27694         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
27695         (gimple_fold_builtin): Do not fold sprintf here.
27696
27697 2014-08-18  Richard Biener  <rguenther@suse.de>
27698
27699         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
27700         code to ...
27701         (maybe_canonicalize_mem_ref_addr): ... this function.
27702         (fold_stmt_1): Apply it here before all simplification.
27703
27704 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
27705
27706         PR ipa/61800
27707         * cgraph.h (cgraph_node::create_indirect_edge): Add
27708         compute_indirect_info param.
27709         * cgraph.c (cgraph_node::create_indirect_edge): Compute
27710         indirect_info only when it is required.
27711         * cgraphclones.c (cgraph_clone_edge): Do not recompute
27712         indirect_info fore cloned indirect edge.
27713
27714 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27715             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27716             Anna Tikhonova  <anna.tikhonova@intel.com>
27717             Ilya Tocar  <ilya.tocar@intel.com>
27718             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27719             Ilya Verbin  <ilya.verbin@intel.com>
27720             Kirill Yukhin  <kirill.yukhin@intel.com>
27721             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27722
27723         * config/i386/sse.md
27724         (define_mode_iterator VI8_AVX2_AVX512BW): New.
27725         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
27726
27727 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27728             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27729             Anna Tikhonova  <anna.tikhonova@intel.com>
27730             Ilya Tocar  <ilya.tocar@intel.com>
27731             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27732             Ilya Verbin  <ilya.verbin@intel.com>
27733             Kirill Yukhin  <kirill.yukhin@intel.com>
27734             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27735
27736         * config/i386/sse.md
27737         (define_mode_iterator VF1_AVX512VL): New.
27738         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
27739         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
27740         New.
27741
27742 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27743             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27744             Anna Tikhonova  <anna.tikhonova@intel.com>
27745             Ilya Tocar  <ilya.tocar@intel.com>
27746             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27747             Ilya Verbin  <ilya.verbin@intel.com>
27748             Kirill Yukhin  <kirill.yukhin@intel.com>
27749             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27750
27751         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
27752         * config/i386/i386.md
27753         (define_code_iterator any_float): New.
27754         (define_code_attr floatsuffix): New.
27755         * config/i386/sse.md
27756         (define_mode_iterator VF1_128_256VL): New.
27757         (define_mode_iterator VF2_512_256VL): New.
27758         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
27759         TARGET check.
27760         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
27761         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
27762         New.
27763         (define_mode_attr qq2pssuff): New.
27764         (define_mode_attr sselongvecmode): New.
27765         (define_mode_attr sselongvecmodelower): New.
27766         (define_mode_attr sseintvecmode3): New.
27767         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
27768         New.
27769         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
27770         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
27771         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
27772         (define_insn "ufloatv2siv2df2<mask_name>"): New.
27773
27774 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27775             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27776             Anna Tikhonova  <anna.tikhonova@intel.com>
27777             Ilya Tocar  <ilya.tocar@intel.com>
27778             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27779             Ilya Verbin  <ilya.verbin@intel.com>
27780             Kirill Yukhin  <kirill.yukhin@intel.com>
27781             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27782
27783         * config/i386/sse.md
27784         (define_mode_iterator VF2_AVX512VL): New.
27785         (define_mode_attr sseintvecmode2): New.
27786         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
27787         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
27788         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
27789         (define_insn
27790         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
27791         Ditto.
27792         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27793         Ditto.
27794         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27795         Ditto.
27796
27797 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27798             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27799             Anna Tikhonova  <anna.tikhonova@intel.com>
27800             Ilya Tocar  <ilya.tocar@intel.com>
27801             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27802             Ilya Verbin  <ilya.verbin@intel.com>
27803             Kirill Yukhin  <kirill.yukhin@intel.com>
27804             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27805
27806         * config/i386/i386.md
27807         (define_insn "*movoi_internal_avx"): Add evex version.
27808         (define_insn "*movti_internal"): Ditto.
27809
27810 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27811             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27812             Anna Tikhonova  <anna.tikhonova@intel.com>
27813             Ilya Tocar  <ilya.tocar@intel.com>
27814             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27815             Ilya Verbin  <ilya.verbin@intel.com>
27816             Kirill Yukhin  <kirill.yukhin@intel.com>
27817             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27818
27819         * config/i386/i386.md
27820         (define_attr "isa"): Add avx512dq, noavx512dq.
27821         (define_attr "enabled"): Ditto.
27822         * config/i386/sse.md
27823         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
27824
27825 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27826             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27827             Anna Tikhonova  <anna.tikhonova@intel.com>
27828             Ilya Tocar  <ilya.tocar@intel.com>
27829             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27830             Ilya Verbin  <ilya.verbin@intel.com>
27831             Kirill Yukhin  <kirill.yukhin@intel.com>
27832             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27833
27834         * config/i386/i386.c
27835         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
27836         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
27837         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
27838         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
27839         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
27840         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
27841         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
27842         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
27843         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
27844         * config/i386/sse.md
27845         (define_mode_iterator VMOVE): Allow V4TI mode.
27846         (define_mode_iterator V_AVX512VL): New.
27847         (define_mode_iterator V): New handling for AVX512VL.
27848         (define_insn "avx512f_load<mode>_mask"): Delete.
27849         (define_insn "<avx512>_load<mode>_mask"): New.
27850         (define_insn "avx512f_store<mode>_mask"): Delete.
27851         (define_insn "<avx512>_store<mode>_mask"): New.
27852
27853
27854 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
27855
27856         PR sanitizer/62089
27857         * asan.c (instrument_derefs): Fix bitfield check.
27858
27859 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27860
27861         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
27862         * config/rs6000/htm.md (ttest): Remove clobber.
27863         * config/rs6000/predicates.md (any_mask_operand): New predicate.
27864         (and_operand): Reformat.
27865         (and_2rld_operand): New predicate.
27866         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
27867         parameter.
27868         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
27869         parameter.  Handle AND directly.
27870         (rs6000_split_logical_di): Remove last parameter.
27871         (rs6000_split_logical): Remove last parameter.  Remove obsolete
27872         comment.
27873         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
27874         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
27875         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
27876         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
27877         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
27878         and 5 anonymous splitters):  Delete.
27879         (and<mode>3): New expander.
27880         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
27881         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
27882         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
27883         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
27884         (floatdisf2_internal1): Remove clobbers.
27885         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
27886         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
27887         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
27888         (and<mode>3 for BOOL_128): Remove clobber.
27889         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
27890         rs6000_split_logical.
27891         (*bool<mode>3_internal for BOOL_128): Adjust call of
27892         rs6000_split_logical.
27893         (*boolc<mode>3_internal1 for BOOL_128,
27894         *boolc<mode>3_internal2 for BOOL_128,
27895         *boolcc<mode>3_internal1 for BOOL_128,
27896         *boolcc<mode>3_internal2 for BOOL_128,
27897         *eqv<mode>3_internal1 for BOOL_128,
27898         *eqv<mode>3_internal2 for BOOL_128,
27899         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
27900         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
27901         clobber.
27902         (*vec_reload_and_reg_<mptrsize>): Delete.
27903
27904 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27905
27906         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
27907         and split, *boolccsi3_internal3 and split): Delete.
27908         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
27909         *boolccdi3_internal3 and split): Delete.
27910         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
27911         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
27912
27913 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27914
27915         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
27916         and split, *boolcsi3_internal3 and split): Delete.
27917         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
27918         *boolcdi3_internal3 and split): Delete.
27919         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
27920
27921 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27922
27923         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
27924         <'u'>: Also support printing the low-order 16 bits.
27925         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
27926         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
27927         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
27928         *booldi3_internal3 and split): Delete.
27929         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
27930         *bool<mode>3_dot2): New.
27931         (two anonymous define_splits for non_logical_cint_operand): Merge.
27932
27933 2014-08-17  Marek Polacek  <polacek@redhat.com>
27934             Manuel López-Ibáñez  <manu@gcc.gnu.org>
27935
27936         PR c/62059
27937         * diagnostic.c (adjust_line): Add gcc_checking_assert.
27938         (diagnostic_show_locus): Don't print caret diagnostic
27939         if a column is larger than the line_width.
27940
27941 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
27942
27943         * common.opt: Make the ISL AST generator to be the main code generator
27944         of Graphite.
27945
27946 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
27947
27948         * wide-int.h (generic_wide_int): Declare as class instead of struct.
27949
27950 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
27951
27952         PR target/61641
27953         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
27954         Declare.
27955         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
27956         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
27957         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
27958         Define.
27959         * config/pa/pa.md (begin_brtab): Delete insn.
27960         (end_brtab): Likewise.
27961
27962 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27963
27964         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
27965
27966 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
27967
27968         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
27969         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
27970         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
27971         (get_dynamic_type): Remove.
27972         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
27973         (clear_speculation): Bring to ipa-deivrt.h
27974         (get_class_context): Rename to ...
27975         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
27976         (contains_type_p): Update.
27977         (get_dynamic_type): Rename to ...
27978         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
27979         (possible_polymorphic_call_targets): UPdate.
27980         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
27981         * ipa-prop.c (ipa_analyze_call_uses): Update.
27982
27983 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
27984
27985         * doc/invoke.texi (SH options): Document missing processor variant
27986         options.  Remove references to Hitachi.  Undocument deprecated mspace
27987         option.
27988
27989 2014-08-15  Jason Merrill  <jason@redhat.com>
27990
27991         * tree.c (type_hash_canon): Uncomment assert.
27992
27993 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27994
27995         * input.h (in_system_header_at): Add comment.
27996
27997 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27998
27999         PR fortran/44054
28000         * diagnostic.c (build_message_string): Make it extern.
28001         * diagnostic.h (build_message_string): Make it extern.
28002
28003 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
28004
28005         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
28006         load/store from/to non-floating class pseudo.
28007
28008 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28009
28010         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
28011
28012 2014-08-15  Richard Biener  <rguenther@suse.de>
28013
28014         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
28015         (get_constraint_for_ssa_var): Remove dead code.
28016         (get_constraint_for_1): Adjust.
28017         (find_what_var_points_to): Likewise.
28018         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
28019
28020 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
28021
28022         PR target/61878
28023         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
28024         (_mm512_mask_cmpge_epu32_mask): Ditto.
28025         (_mm512_cmpge_epu32_mask): Ditto.
28026         (_mm512_mask_cmpge_epi64_mask): Ditto.
28027         (_mm512_cmpge_epi64_mask): Ditto.
28028         (_mm512_mask_cmpge_epu64_mask): Ditto.
28029         (_mm512_cmpge_epu64_mask): Ditto.
28030         (_mm512_mask_cmple_epi32_mask): Ditto.
28031         (_mm512_cmple_epi32_mask): Ditto.
28032         (_mm512_mask_cmple_epu32_mask): Ditto.
28033         (_mm512_cmple_epu32_mask): Ditto.
28034         (_mm512_mask_cmple_epi64_mask): Ditto.
28035         (_mm512_cmple_epi64_mask): Ditto.
28036         (_mm512_mask_cmple_epu64_mask): Ditto.
28037         (_mm512_cmple_epu64_mask): Ditto.
28038         (_mm512_mask_cmplt_epi32_mask): Ditto.
28039         (_mm512_cmplt_epi32_mask): Ditto.
28040         (_mm512_mask_cmplt_epu32_mask): Ditto.
28041         (_mm512_cmplt_epu32_mask): Ditto.
28042         (_mm512_mask_cmplt_epi64_mask): Ditto.
28043         (_mm512_cmplt_epi64_mask): Ditto.
28044         (_mm512_mask_cmplt_epu64_mask): Ditto.
28045         (_mm512_cmplt_epu64_mask): Ditto.
28046         (_mm512_mask_cmpneq_epi32_mask): Ditto.
28047         (_mm512_mask_cmpneq_epu32_mask): Ditto.
28048         (_mm512_cmpneq_epu32_mask): Ditto.
28049         (_mm512_mask_cmpneq_epi64_mask): Ditto.
28050         (_mm512_cmpneq_epi64_mask): Ditto.
28051         (_mm512_mask_cmpneq_epu64_mask): Ditto.
28052         (_mm512_cmpneq_epu64_mask): Ditto.
28053         (_mm512_castpd_ps): Ditto.
28054         (_mm512_castpd_si512): Ditto.
28055         (_mm512_castps_pd): Ditto.
28056         (_mm512_castps_si512): Ditto.
28057         (_mm512_castsi512_ps): Ditto.
28058         (_mm512_castsi512_pd): Ditto.
28059         (_mm512_castpd512_pd128): Ditto.
28060         (_mm512_castps512_ps128): Ditto.
28061         (_mm512_castsi512_si128): Ditto.
28062         (_mm512_castpd512_pd256): Ditto.
28063         (_mm512_castps512_ps256): Ditto.
28064         (_mm512_castsi512_si256): Ditto.
28065         (_mm512_castpd128_pd512): Ditto.
28066         (_mm512_castps128_ps512): Ditto.
28067         (_mm512_castsi128_si512): Ditto.
28068         (_mm512_castpd256_pd512): Ditto.
28069         (_mm512_castps256_ps512): Ditto.
28070         (_mm512_castsi256_si512): Ditto.
28071         (_mm512_cmpeq_epu32_mask): Ditto.
28072         (_mm512_mask_cmpeq_epu32_mask): Ditto.
28073         (_mm512_mask_cmpeq_epu64_mask): Ditto.
28074         (_mm512_cmpeq_epu64_mask): Ditto.
28075         (_mm512_cmpgt_epu32_mask): Ditto.
28076         (_mm512_mask_cmpgt_epu32_mask): Ditto.
28077         (_mm512_mask_cmpgt_epu64_mask): Ditto.
28078         (_mm512_cmpgt_epu64_mask): Ditto.
28079         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
28080         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
28081         * config/i386/i386.c (enum ix86_builtins): Add
28082         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
28083         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
28084         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
28085         (bdesc_args): Add __builtin_ia32_si512_256si,
28086         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
28087         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
28088         __builtin_ia32_pd512_pd.
28089         (ix86_expand_args_builtin): Handle new FTYPEs.
28090         * config/i386/sse.md (castmode): Add 512-bit modes.
28091         (AVX512MODE2P): New.
28092         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
28093         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
28094
28095 2014-08-15  Richard Biener  <rguenther@suse.de>
28096
28097         * fold-const.c (tree_swap_operands_p): Put all constants
28098         last, also strip sign-changing NOPs when considering further
28099         canonicalization.  Canonicalize also when optimizing for size.
28100
28101 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28102
28103         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
28104         one_match > zero_match case to just before simple_sequence.
28105
28106 2014-08-15  Richard Biener  <rguenther@suse.de>
28107
28108         * data-streamer.h (streamer_string_index, string_for_index):
28109         Remove.
28110         * data-streamer-out.c (streamer_string_index): Make static.
28111         * data-streamer-in.c (string_for_index): Likewise.
28112         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
28113         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
28114
28115 2014-08-15  Richard Biener  <rguenther@suse.de>
28116
28117         PR tree-optimization/62031
28118         * tree-data-ref.c (dr_analyze_indices): Do not set
28119         DR_UNCONSTRAINED_BASE.
28120         (dr_may_alias_p): All indirect accesses have to go the
28121         formerly DR_UNCONSTRAINED_BASE path.
28122         * tree-data-ref.h (struct indices): Remove
28123         unconstrained_base member.
28124         (DR_UNCONSTRAINED_BASE): Remove.
28125
28126 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
28127
28128         PR middle-end/62092
28129         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
28130         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
28131         in OMP_CLAUSE_MAP in some outer target region.
28132
28133 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
28134
28135         * tree-ssa-loop-ivopts.c (ivopts_data): New field
28136         name_expansion_cache.
28137         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
28138         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
28139         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
28140         (difference_cannot_overflow_p): New parameter.  Use affine
28141         expansion for equality check.
28142         (iv_elimination_compare_lt): Pass new argument.
28143
28144 2014-08-14  DJ Delorie  <dj@redhat.com>
28145
28146         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
28147         variables to the accumulator.
28148
28149         * config/rl78/predicates.md (rl78_near_mem_operand): New.
28150         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
28151         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
28152         with far-far moves.
28153
28154         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
28155         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
28156         (umulqihi3_virt): Likewise.
28157         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
28158         (umulqihi3_real): Likewise.
28159
28160         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
28161
28162 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28163
28164         PR tree-optimization/62091
28165         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
28166         function_entry_reached.
28167         (walk_aliased_vdefs): Clear it here.
28168         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
28169
28170 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28171
28172         * ipa-utils.h (compare_virtual_tables): Declare.
28173         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
28174
28175 2014-08-14  Marek Polacek  <polacek@redhat.com>
28176
28177         DR 458
28178         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
28179         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
28180
28181 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28182
28183         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
28184
28185 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28186
28187         PR rtl-optimization/62004
28188         PR rtl-optimization/62030
28189         * ifcvt.c (rtx_interchangeable_p): New function.
28190         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
28191         * emit-rtl.h (mem_attrs_eq_p): Declare.
28192
28193 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
28194
28195         * graphite-scop-detection.c:
28196         Add inclusion of cp-tree.h.
28197         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
28198         in case they are pointers to object types
28199
28200 2014-08-14  Richard Biener  <rguenther@suse.de>
28201
28202         * BASE-VER: Change to 5.0.0
28203
28204 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28205             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28206             Anna Tikhonova  <anna.tikhonova@intel.com>
28207             Ilya Tocar  <ilya.tocar@intel.com>
28208             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28209             Ilya Verbin  <ilya.verbin@intel.com>
28210             Kirill Yukhin  <kirill.yukhin@intel.com>
28211             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28212
28213         * config/i386/sse.md (define_mode_attr avx512): New.
28214         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
28215         V4DI modes.
28216         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
28217         (define_mode_attr ssse3_avx2): Ditto.
28218         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
28219         (define_mode_attr avx2_avx512bw): New.
28220         (define_mode_attr ssedoublemodelower): New.
28221         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
28222         V32HI, V64QI modes.
28223         (define_mode_attr ssebytemode): Allow V8DI modes.
28224         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
28225         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
28226         (define_mode_attr ssePSmode2): New.
28227         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
28228         V16HI, V32HI modes.
28229         (define_mode_attr dbpsadbwmode): New.
28230         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
28231         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
28232         (vi8_sse4_1_avx2_avx512): New.
28233         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
28234         mode attribute.
28235         (define_mode_attr blendbits): Move before its immediate use.
28236
28237 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28238             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28239             Anna Tikhonova  <anna.tikhonova@intel.com>
28240             Ilya Tocar  <ilya.tocar@intel.com>
28241             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28242             Ilya Verbin  <ilya.verbin@intel.com>
28243             Kirill Yukhin  <kirill.yukhin@intel.com>
28244             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28245
28246         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
28247         * config/i386/subst.md
28248         (define_mode_iterator SUBST_V): Update.
28249         (define_mode_iterator SUBST_A): Ditto.
28250         (define_subst_attr "mask_operand7"): New.
28251         (define_subst_attr "mask_operand10"): New.
28252         (define_subst_attr "mask_operand_arg34") : New.
28253         (define_subst_attr "mask_expand_op3"): New.
28254         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
28255         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
28256         (define_subst_attr "mask_avx512vl_condition"): New.
28257         (define_subst_attr "round_mask_operand4"): Ditto.
28258         (define_subst_attr "round_mask_scalar_op3"): Delete.
28259         (define_subst_attr "round_mask_op4"): New.
28260         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
28261         V16SImode.
28262         (define_subst_attr "round_modev8sf_condition"): New.
28263         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28264         <MODE>mode.
28265         (define_subst_attr "round_saeonly_mask_operand4"): New.
28266         (define_subst_attr "round_saeonly_mask_op4"): New.
28267         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28268         V8DImode, V16SImode.
28269         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28270         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28271         (define_subst_attr "mask_expand4_args"): New.
28272         (define_subst "mask_expand4"): New.
28273
28274 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28275             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28276             Anna Tikhonova  <anna.tikhonova@intel.com>
28277             Ilya Tocar  <ilya.tocar@intel.com>
28278             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28279             Ilya Verbin  <ilya.verbin@intel.com>
28280             Kirill Yukhin  <kirill.yukhin@intel.com>
28281             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28282
28283         * config/i386/i386.md
28284         (define_attr "isa"): Add avx512bw,noavx512bw.
28285         (define_attr "enabled"): Ditto.
28286         (define_split): Add 32/64-bit mask logic.
28287         (define_insn "*k<logic>qi"): New.
28288         (define_insn "*k<logic>hi"): New.
28289         (define_insn "*anddi_1"): Add mask version.
28290         (define_insn "*andsi_1"): Ditto.
28291         (define_insn "*<code><mode>_1"): Ditto.
28292         (define_insn "*<code>hi_1"): Ditto.
28293         (define_insn "kxnor<mode>"): New.
28294         (define_insn "kunpcksi"): New.
28295         (define_insn "kunpckdi"): New.
28296         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28297         (define_insn "*one_cmplhi2_1"): Ditto.
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/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28309         V32HImode.
28310
28311 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28312             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28313             Anna Tikhonova  <anna.tikhonova@intel.com>
28314             Ilya Tocar  <ilya.tocar@intel.com>
28315             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28316             Ilya Verbin  <ilya.verbin@intel.com>
28317             Kirill Yukhin  <kirill.yukhin@intel.com>
28318             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28319
28320         * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
28321         registers.
28322         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
28323         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
28324         xmm/ymm16+ when availble.
28325         * config/i386/i386.h
28326         (HARD_REGNO_NREGS): Add mask regs.
28327         (VALID_AVX512F_REG_MODE): Ditto.
28328         (VALID_AVX512F_REG_MODE) : Define.
28329         (VALID_MASK_AVX512BW_MODE): Ditto.
28330         (reg_class) (MASK_REG_P(X)): Define.
28331         * config/i386/i386.md: Do not split long moves with mask register,
28332         use kmovb if avx512bw is availible.
28333         (movdi_internal): Handle mask registers.
28334
28335 2014-08-14  Richard Biener  <rguenther@suse.de>
28336
28337         PR tree-optimization/62081
28338         * tree-ssa-loop.c (pass_fix_loops): New pass.
28339         (pass_tree_loop::gate):  Do not fixup loops here.
28340         * tree-pass.h (make_pass_fix_loops): Declare.
28341         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
28342
28343 2014-08-14  Richard Biener  <rguenther@suse.de>
28344
28345         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
28346         (type_hash_canon): ... this and avoid 2nd lookup for the add.
28347
28348 2014-08-14  Richard Biener  <rguenther@suse.de>
28349
28350         PR tree-optimization/62090
28351         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
28352         (fold_builtin_2): Do not fold sprintf.
28353         (fold_builtin_3): Likewise.
28354         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
28355         moved from builtins.c.
28356         (gimple_fold_builtin): Fold sprintf.
28357
28358 2014-08-14  Richard Biener  <rguenther@suse.de>
28359
28360         PR rtl-optimization/62079
28361         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
28362         run cleanup_cfg.
28363
28364 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28365
28366         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
28367         current_function_decl.
28368
28369 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28370
28371         * cgraph.c (cgraph_node::function_symbol): Fix wrong
28372         cgraph_function_node to cgraph_node::function_symbol
28373         refactoring.
28374
28375 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
28376
28377         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
28378         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
28379
28380 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
28381
28382         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
28383         warning.
28384
28385 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
28386
28387         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
28388         generator.
28389
28390 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
28391
28392         PR target/62025
28393         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
28394         any registers that are used in mem_insn.
28395
28396 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28397
28398         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
28399
28400 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28401
28402         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
28403         (MULTILIB_DIRNAMES): Ditto.
28404         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
28405         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
28406         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
28407         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
28408         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
28409         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
28410
28411 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28412
28413         PR target/61413
28414         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
28415         of __ARM_SIZEOF_WCHAR_T.
28416
28417 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28418
28419         PR target/62098
28420         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
28421         Remove unnecessary attributes.
28422
28423 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
28424
28425         * internal-fn.c (init_internal_fns): Fix off-by-one.
28426
28427 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28428             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28429             Anna Tikhonova  <anna.tikhonova@intel.com>
28430             Ilya Tocar  <ilya.tocar@intel.com>
28431             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28432             Ilya Verbin  <ilya.verbin@intel.com>
28433             Kirill Yukhin  <kirill.yukhin@intel.com>
28434             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28435
28436         * config/i386/i386.c (standard_sse_constant_opcode): Use
28437         vpxord/vpternlog if avx512 is availible.
28438
28439 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28440
28441         PR middle-end/62103
28442         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
28443         bitfields, that is when size doesn't match the size of type or the
28444         size of the constructor.
28445
28446 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28447
28448         * config/rs6000/constraints.md (wh constraint): New constraint,
28449         for FP registers if direct move is available.
28450         (wi constraint): New constraint, for VSX/FP registers that can
28451         handle 64-bit integers.
28452         (wj constraint): New constraint for VSX/FP registers that can
28453         handle 64-bit integers for direct moves.
28454         (wk constraint): New constraint for VSX/FP registers that can
28455         handle 64-bit doubles for direct moves.
28456         (wy constraint): Make documentation match implementation.
28457
28458         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
28459         scalar_in_vmx_p field to simplify tests of whether SFmode or
28460         DFmode can go in the Altivec registers.
28461         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
28462         (rs6000_setup_reg_addr_masks): Likewise.
28463         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
28464         field, and wh/wi/wj/wk constraints.
28465         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
28466         the wh/wi/wj/wk constraints.
28467         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
28468         upper registers, prefer VSX registers unless the operation is a
28469         memory operation with REG+OFFSET addressing.
28470
28471         * config/rs6000/vsx.md (VSr mode attribute): Add support for
28472         DImode.  Change SFmode to use ww constraint instead of d to allow
28473         SF registers in the upper registers.
28474         (VSr2): Likewise.
28475         (VSr3): Likewise.
28476         (VSr5): Fix thinko in comment.
28477         (VSa): New mode attribute that is an alternative to wa, that
28478         returns the VSX register class that a mode can go in, but may not
28479         be the preferred register class.
28480         (VS_64dm): New mode attribute for appropriate register classes for
28481         referencing 64-bit elements of vectors for direct moves and normal
28482         moves.
28483         (VS_64reg): Likewise.
28484         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
28485         register allocator to only registers the data type can handle.
28486         (vsx_le_perm_load_<mode>): Likewise.
28487         (vsx_le_perm_store_<mode>): Likewise.
28488         (vsx_xxpermdi2_le_<mode>): Likewise.
28489         (vsx_xxpermdi4_le_<mode>): Likewise.
28490         (vsx_lxvd2x2_le_<mode>): Likewise.
28491         (vsx_lxvd2x4_le_<mode>): Likewise.
28492         (vsx_stxvd2x2_le_<mode>): Likewise.
28493         (vsx_add<mode>3): Likewise.
28494         (vsx_sub<mode>3): Likewise.
28495         (vsx_mul<mode>3): Likewise.
28496         (vsx_div<mode>3): Likewise.
28497         (vsx_tdiv<mode>3_internal): Likewise.
28498         (vsx_fre<mode>2): Likewise.
28499         (vsx_neg<mode>2): Likewise.
28500         (vsx_abs<mode>2): Likewise.
28501         (vsx_nabs<mode>2): Likewise.
28502         (vsx_smax<mode>3): Likewise.
28503         (vsx_smin<mode>3): Likewise.
28504         (vsx_sqrt<mode>2): Likewise.
28505         (vsx_rsqrte<mode>2): Likewise.
28506         (vsx_tsqrt<mode>2_internal): Likewise.
28507         (vsx_fms<mode>4): Likewise.
28508         (vsx_nfma<mode>4): Likewise.
28509         (vsx_eq<mode>): Likewise.
28510         (vsx_gt<mode>): Likewise.
28511         (vsx_ge<mode>): Likewise.
28512         (vsx_eq<mode>_p): Likewise.
28513         (vsx_gt<mode>_p): Likewise.
28514         (vsx_ge<mode>_p): Likewise.
28515         (vsx_xxsel<mode>): Likewise.
28516         (vsx_xxsel<mode>_uns): Likewise.
28517         (vsx_copysign<mode>3): Likewise.
28518         (vsx_float<VSi><mode>2): Likewise.
28519         (vsx_floatuns<VSi><mode>2): Likewise.
28520         (vsx_fix_trunc<mode><VSi>2): Likewise.
28521         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
28522         (vsx_x<VSv>r<VSs>i): Likewise.
28523         (vsx_x<VSv>r<VSs>ic): Likewise.
28524         (vsx_btrunc<mode>2): Likewise.
28525         (vsx_b2trunc<mode>2): Likewise.
28526         (vsx_floor<mode>2): Likewise.
28527         (vsx_ceil<mode>2): Likewise.
28528         (vsx_<VS_spdp_insn>): Likewise.
28529         (vsx_xscvspdp): Likewise.
28530         (vsx_xvcvspuxds): Likewise.
28531         (vsx_float_fix_<mode>2): Likewise.
28532         (vsx_set_<mode>): Likewise.
28533         (vsx_extract_<mode>_internal1): Likewise.
28534         (vsx_extract_<mode>_internal2): Likewise.
28535         (vsx_extract_<mode>_load): Likewise.
28536         (vsx_extract_<mode>_store): Likewise.
28537         (vsx_splat_<mode>): Likewise.
28538         (vsx_xxspltw_<mode>): Likewise.
28539         (vsx_xxspltw_<mode>_direct): Likewise.
28540         (vsx_xxmrghw_<mode>): Likewise.
28541         (vsx_xxmrglw_<mode>): Likewise.
28542         (vsx_xxsldwi_<mode>): Likewise.
28543         (vsx_xscvdpspn): Tighten constraints to only use register classes
28544         the types use.
28545         (vsx_xscvspdpn): Likewise.
28546         (vsx_xscvdpspn_scalar): Likewise.
28547
28548         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
28549         wj, and wk constraints.
28550         (GPR_REG_CLASS_P): New helper macro for register classes targeting
28551         general purpose registers.
28552
28553         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
28554         direct moves.
28555         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
28556         DImode instead of wm.  Use wk constraint for direct move of DFmode
28557         instead of wm.
28558         (extendsidi2_lfiwax): Likewise.
28559         (lfiwax): Likewise.
28560         (lfiwzx): Likewise.
28561         (movdi_internal64): Likewise.
28562
28563         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
28564         wk constraints. Make the wy constraint documentation match them
28565         implementation.
28566
28567 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
28568
28569         Replacement of isl_int by isl_val
28570         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
28571         (compute_bounds_for_param): use isl_val instead of isl_int
28572         (compute_bounds_for_loop): likewise
28573         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
28574         (build_linearized_memory_access): use isl_val instead of isl_int
28575         (pdr_stride_in_loop): likewise
28576         * graphite-optimize-isl.c:
28577         (getPrevectorMap): use isl_val instead of isl_int
28578         * graphite-poly.c:
28579         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
28580         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
28581         (extern the_isl_ctx): declare
28582         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
28583         (extract_affine_gmp): likewise
28584         (wrap): likewise
28585         (build_loop_iteration_domains): likewise
28586         (add_param_constraints): likewise
28587
28588 2014-08-11  Richard Biener  <rguenther@suse.de>
28589
28590         PR tree-optimization/62075
28591         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
28592         handle uses in patterns.
28593
28594 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28595             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28596             Anna Tikhonova  <anna.tikhonova@intel.com>
28597             Ilya Tocar  <ilya.tocar@intel.com>
28598             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28599             Ilya Verbin  <ilya.verbin@intel.com>
28600             Kirill Yukhin  <kirill.yukhin@intel.com>
28601             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28602
28603         * common/config/i386/i386-common.c
28604         (OPTION_MASK_ISA_AVX512VL_SET): Define.
28605         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
28606         (ix86_handle_option): Handle OPT_mavx512vl.
28607         * config/i386/cpuid.h (bit_AVX512VL): Define.
28608         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
28609         set -mavx512vl accordingly.
28610         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28611         OPTION_MASK_ISA_AVX512VL.
28612         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
28613         (ix86_option_override_internal): Define PTA_AVX512VL, handle
28614         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
28615         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
28616         * config/i386/i386.h (TARGET_AVX512VL): Define.
28617         (TARGET_AVX512VL_P(x)): Ditto.
28618         * config/i386/i386.opt: Add mavx512vl.
28619
28620 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
28621
28622         PR tree-optimization/62073
28623         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
28624         a basic block.
28625
28626 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28627             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28628             Anna Tikhonova  <anna.tikhonova@intel.com>
28629             Ilya Tocar  <ilya.tocar@intel.com>
28630             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28631             Ilya Verbin  <ilya.verbin@intel.com>
28632             Kirill Yukhin  <kirill.yukhin@intel.com>
28633             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28634
28635         * common/config/i386/i386-common.c
28636         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
28637         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
28638         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
28639         (ix86_handle_option): Handle OPT_mavx512bw.
28640         * config/i386/cpuid.h (bit_AVX512BW): Define.
28641         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
28642         set -mavx512bw accordingly.
28643         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28644         OPTION_MASK_ISA_AVX512BW.
28645         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
28646         (ix86_option_override_internal): Define PTA_AVX512BW, handle
28647         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
28648         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
28649         * config/i386/i386.h (TARGET_AVX512BW): Define.
28650         (TARGET_AVX512BW_P(x)): Ditto.
28651         * config/i386/i386.opt: Add mavx512bw.
28652
28653 2014-08-11  Richard Biener  <rguenther@suse.de>
28654
28655         PR tree-optimization/62070
28656         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
28657         Remove SSA checking.
28658
28659 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28660
28661         * asan.c (asan_check_flags): New enum.
28662         (build_check_stmt_with_calls): Removed function.
28663         (build_check_stmt): Split inlining logic to
28664         asan_expand_check_ifn.
28665         (instrument_derefs): Rename parameter.
28666         (instrument_mem_region_access): Rename parameter.
28667         (instrument_strlen_call): Likewise.
28668         (asan_expand_check_ifn): New function.
28669         (asan_instrument): Remove old code.
28670         (pass_sanopt::execute): Change handling of
28671         asan-instrumentation-with-call-threshold.
28672         (asan_clear_shadow): Fix formatting.
28673         (asan_function_start): Likewise.
28674         (asan_emit_stack_protection): Likewise.
28675         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
28676         Update description.
28677         * internal-fn.c (expand_ASAN_CHECK): New function.
28678         * internal-fn.def (ASAN_CHECK): New internal function.
28679         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
28680         Update description.
28681         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
28682         * tree.c: Small comment fix.
28683
28684 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28685
28686         * gimple.c (gimple_call_fnspec): Support internal functions.
28687         (gimple_call_return_flags): Use const.
28688         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
28689         * internal-fn.def: Add fnspec information.
28690         * internal-fn.h (internal_fn_fnspec): New function.
28691         (init_internal_fns): Declare new function.
28692         * internal-fn.c (internal_fn_fnspec_array): New global variable.
28693         (init_internal_fns): New function.
28694         * tree-core.h: Update macro call.
28695         * tree.c (build_common_builtin_nodes): Initialize internal fns.
28696
28697 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
28698
28699         * lto-streamer.h (struct output_block::symbol): Change from
28700         struct symtab_node to plain symtab_node.
28701         (referenced_from_this_partition_p): Change first parameter
28702         from struct symtab_node to plain symtab_node.
28703
28704 2014-08-10  Marek Polacek  <polacek@redhat.com>
28705
28706         PR c/51849
28707         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
28708
28709 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
28710
28711         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
28712         DECL correctly; do not give up on types in static storage.
28713
28714 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
28715
28716         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
28717
28718 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
28719
28720         * graphite-isl-ast-to-gimple.c:
28721         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
28722
28723         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
28724
28725 2014-08-08  Guozhi Wei  <carrot@google.com>
28726
28727         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
28728
28729 2014-08-08  Cary Coutant  <ccoutant@google.com>
28730
28731         * dwarf2out.c (get_skeleton_type_unit): Remove.
28732         (output_skeleton_debug_sections): Remove skeleton type units.
28733         (output_comdat_type_unit): Likewise.
28734         (dwarf2out_finish): Likewise.
28735
28736 2014-08-07  Yi Yang  <ahyangyi@google.com>
28737
28738         * predict.c (expr_expected_value_1): Remove the redundant assignment.
28739
28740 2014-08-08  Richard Biener  <rguenther@suse.de>
28741
28742         * lto-streamer.h (struct lto_input_block): Make it a class
28743         with a constructor.
28744         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
28745         (struct lto_function_header, struct lto_simple_header,
28746         struct lto_simple_header_with_strings,
28747         struct lto_decl_header, struct lto_function_header): Make
28748         a simple inheritance hieararchy.  Remove unused fields.
28749         (struct lto_asm_header): Remove.
28750         * lto-streamer-out.c (produce_asm): Adjust.
28751         (lto_output_toplevel_asms): Likewise.
28752         (produce_asm_for_decls): Likewise.
28753         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
28754         * data-streamer-in.c (string_for_index): Likewise.
28755         * ipa-inline-analysis.c (inline_read_section): Likewise.
28756         * ipa-prop.c (ipa_prop_read_section): Likewise.
28757         (read_replacements_section): Likewise.
28758         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28759         * lto-section-in.c (lto_create_simple_input_block): Likewise.
28760         (lto_destroy_simple_input_block): Likewise.
28761         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
28762         (lto_input_toplevel_asms): Likewise.
28763
28764 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28765             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28766             Anna Tikhonova  <anna.tikhonova@intel.com>
28767             Ilya Tocar  <ilya.tocar@intel.com>
28768             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28769             Ilya Verbin  <ilya.verbin@intel.com>
28770             Kirill Yukhin  <kirill.yukhin@intel.com>
28771             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28772
28773         * common/config/i386/i386-common.c
28774         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
28775         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
28776         (ix86_handle_option): Handle OPT_mavx512dq.
28777         * config/i386/cpuid.h (bit_AVX512DQ): Define.
28778         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
28779         set -mavx512dq accordingly.
28780         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28781         OPTION_MASK_ISA_AVX512DQ.
28782         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
28783         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
28784         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
28785         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
28786         * config/i386/i386.h (TARGET_AVX512DQ): Define.
28787         (TARGET_AVX512DQ_P(x)): Ditto.
28788         * config/i386/i386.opt: Add mavx512dq.
28789
28790 2014-08-08  Richard Biener  <rguenther@suse.de>
28791
28792         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
28793         target_percent, target_percent_s): Export.
28794         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
28795         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
28796         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
28797         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
28798         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
28799         Move to gimple-fold.c.
28800         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
28801         strcat and strcpy.
28802         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
28803         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
28804         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
28805         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
28806         (rewrite_call_expr_array): Remove.
28807         (fold_builtin_sprintf_chk): Likewise.
28808         (fold_builtin_snprintf_chk): Likewise.
28809         (fold_builtin_varargs): Remove handling of sprintf_chk,
28810         vsprintf_chk, snprintf_chk and vsnprintf_chk.
28811         (gimple_fold_builtin_sprintf_chk): Remove.
28812         (gimple_fold_builtin_snprintf_chk): Likewise.
28813         (gimple_fold_builtin_varargs): Likewise.
28814         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
28815         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
28816         * gimple.c (gimple_seq_add_seq_without_update): New function.
28817         * gimple.h (gimple_seq_add_seq_without_update): Declare.
28818         * gimple-fold.c: Include output.h.
28819         (gsi_replace_with_seq_vops): New function, split out from ...
28820         (gimplify_and_update_call_from_tree): ... here.
28821         (replace_call_with_value): New function.
28822         (replace_call_with_call_and_fold): Likewise.
28823         (var_decl_component_p): Moved from builtins.c.
28824         (gimple_fold_builtin_memory_op): Moved from builtins.c
28825         fold_builtin_memory_op and rewritten to GIMPLE.
28826         (gimple_fold_builtin_memset): Likewise.
28827         (gimple_fold_builtin_strcpy): Likewise.
28828         (gimple_fold_builtin_strncpy): Likewise.
28829         (gimple_fold_builtin_strcat): Likewise.
28830         (gimple_fold_builtin_fputs): Likewise.
28831         (gimple_fold_builtin_memory_chk): Likewise.
28832         (gimple_fold_builtin_stxcpy_chk): Likewise.
28833         (gimple_fold_builtin_stxncpy_chk): Likewise.
28834         (gimple_fold_builtin_snprintf_chk): Likewise.
28835         (gimple_fold_builtin_sprintf_chk): Likewise.
28836         (gimple_fold_builtin_strlen): New function.
28837         (gimple_fold_builtin_with_strlen): New function split out from
28838         gimple_fold_builtin.
28839         (gimple_fold_builtin): Change signature and handle
28840         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
28841         here.  Call gimple_fold_builtin_with_strlen.
28842         (gimple_fold_call): Adjust.
28843
28844 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28845
28846         * calls.c (precompute_arguments): Check
28847         promoted_for_signed_and_unsigned_p and set the promoted mode.
28848         (promoted_for_signed_and_unsigned_p): New function.
28849         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
28850         and set the promoted mode.
28851         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
28852         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
28853         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
28854
28855
28856 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28857
28858         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
28859         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28860         (expand_call): Likewise.
28861         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
28862         to get promoted mode.
28863         * combine.c (record_promoted_value): Skip > 0 comparison with
28864         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
28865         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
28866         of SUBREG_PROMOTED_UNSIGNED_P.
28867         (convert_modes): Likewise.
28868         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
28869         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
28870         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
28871         SUBREG_PROMOTED_UNSIGNED_SET.
28872         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
28873         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28874         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
28875         SUBREG_PROMOTED_SET.
28876         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
28877         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
28878         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
28879         of SUBREG_PROMOTED_UNSIGNED_P.
28880         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
28881         (SUBREG_PROMOTED_SET): New define.
28882         (SUBREG_PROMOTED_GET): Likewise.
28883         (SUBREG_PROMOTED_SIGN): Likewise.
28884         (SUBREG_PROMOTED_SIGNED_P): Likewise.
28885         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
28886         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
28887         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
28888         instead of SUBREG_PROMOTED_UNSIGNED_GET.
28889         (nonzero_bits1): Skip > 0 comparison with the results as
28890         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
28891         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
28892         of !SUBREG_PROMOTED_UNSIGNED_P.
28893         * simplify-rtx.c (simplify_unary_operation_1): Use new
28894         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
28895         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
28896         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
28897         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
28898
28899 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
28900
28901         * ipa-devirt.c: Include gimple-pretty-print.h
28902         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
28903         further tests.
28904         (decl_maybe_in_construction_p): Fix conditional on cdtor check
28905         (get_polymorphic_call_info): Fix return value
28906         (type_change_info): New sturcture based on ipa-prop
28907         variant.
28908         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
28909         based on ipa-prop variant.
28910         (extr_type_from_vtbl_ptr_store): New function
28911         based on ipa-prop variant.
28912         (record_known_type): New function.
28913         (check_stmt_for_type_change): New function.
28914         (get_dynamic_type): New function.
28915         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
28916         * tree-ssa-pre.c: ipa-utils.h
28917         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
28918         machinery; sanity check with ipa-prop devirtualization.
28919         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
28920         polymorphic flag.
28921
28922 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
28923
28924         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
28925         * alias.c, cfgexpand.c, cgraphbuild.c,
28926         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
28927         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
28928         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
28929         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
28930         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
28931         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
28932         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
28933         dse.c, except.c, gengtype.c, gimple-expr.c,
28934         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
28935         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
28936         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
28937         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
28938         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
28939         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
28940         pointer-set.h.
28941         * pointer-set.c: Remove file.
28942         * pointer-set.h: Remove file.
28943
28944 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28945
28946         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
28947         * config/arm/types.md (f_sels, f_seld): Delete.
28948
28949 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28950
28951         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
28952         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
28953         (aarch64_movdi_<mode>high): Likewise.
28954         (aarch64_mov<mode>high_di): Likewise.
28955         (aarch64_movdi_<mode>low): Likewise.
28956         (aarch64_mov<mode>low_di): Likewise.
28957         (aarch64_movtilow_tilow): Likewise.
28958         Add comment explaining usage of fp,simd attributes and of
28959         TARGET_FLOAT and TARGET_SIMD.
28960
28961 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
28962             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28963
28964         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
28965         Use MOVN when one of the half-words is 0xffff.
28966
28967 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
28968
28969         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
28970
28971 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28972
28973         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
28974         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
28975         (rfs_str): String corresponding to RFS_* constants.
28976         (rank_for_schedule_stats_t): New typedef.
28977         (rank_for_schedule_stats): New static variable.
28978         (rfs_result): New static function.
28979         (rank_for_schedule): Track statistics for deciding heuristics.
28980         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
28981         static functions.
28982         (ready_sort): Use them for debug printouts.
28983         (schedule_block): Init statistics state.  Print statistics on
28984         rank_for_schedule decisions.
28985
28986 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28987
28988         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
28989
28990 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
28991
28992         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
28993         constraint.
28994
28995 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
28996
28997         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
28998         function to not conflict.
28999         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
29000         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
29001         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
29002         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
29003         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
29004         of pointer_map.
29005
29006 2014-08-07  Marek Polacek  <polacek@redhat.com>
29007
29008         * fold-const.c (fold_binary_loc): Add folding of
29009         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
29010
29011 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
29012
29013         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
29014         instead of type size.
29015         (ASM_FINISH_DECLARE_OBJECT): Likewise.
29016
29017 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
29018
29019         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
29020         (*thumb1_movqi_insn): Likewise.
29021         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
29022
29023 2014-08-07  Tom de Vries  <tom@codesourcery.com>
29024
29025         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29026         (glibc_2_11_or_earlier): Remove effective-target keywords.
29027
29028 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
29029
29030         * config/arm/arm.c (bdesc_2arg): Fix typo.
29031         (arm_atomic_assign_expand_fenv): Remove The default implementation.
29032
29033 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
29034
29035         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
29036
29037 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
29038
29039         PR debug/61923
29040         * haifa-sched.c (advance_one_cycle): Fix dump.
29041         (schedule_block): Don't advance cycle if we are already at the
29042         beginning of the cycle.
29043
29044 2014-08-06  Martin Jambor  <mjambor@suse.cz>
29045
29046         PR ipa/61393
29047         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
29048
29049 2014-08-06  Richard Biener  <rguenther@suse.de>
29050
29051         PR lto/62034
29052         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
29053         SCCs here.
29054         (lto_input_tree): Pop SCCs here.
29055
29056 2014-08-06  Richard Biener  <rguenther@suse.de>
29057
29058         PR tree-optimization/61320
29059         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
29060         handle misaligned loads.
29061
29062 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
29063
29064         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
29065         (aarch64_expand_vec_perm_const): Check for dup before zip.
29066
29067 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29068
29069         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
29070         CONST_INT_P instead of GET_CODE and compare.
29071         (aarch64_select_cc_mode): Likewise.
29072         (aarch64_print_operand): Likewise.
29073         (aarch64_rtx_costs): Likewise.
29074         (aarch64_simd_valid_immediate): Likewise.
29075         (aarch64_simd_check_vect_par_cnst_half): Likewise.
29076         (aarch64_simd_emit_pair_result_insn): Likewise.
29077
29078 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
29079
29080         * gdbhooks.py (find_gcc_source_dir): New helper function.
29081         (class PassNames): New class, locating and parsing passes.def.
29082         (class BreakOnPass): New command "break-on-pass".
29083
29084 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
29085
29086         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
29087         getting olde.
29088
29089 2014-08-05  Richard Biener  <rguenther@suse.de>
29090
29091         PR rtl-optimization/61672
29092         * emit-rtl.h (mem_attrs_eq_p): Declare.
29093         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
29094         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
29095         * cfgcleanup.c (merge_memattrs): Likewise.
29096         Include emit-rtl.h.
29097
29098 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29099
29100         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
29101         rather than singleton vectors.
29102         (vqdmlsls_lane_s32): Likewise.
29103
29104 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29105
29106         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
29107         Use VSDQ_HSI mode iterator.
29108         (aarch64_sqrdmulh_laneq<mode>): Likewise.
29109         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
29110         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
29111         Use BUILTIN_VDQHS macro.
29112         (sqrdmulh_laneq): Likewise.
29113         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
29114         (vqdmlals_laneq_s32): Likewise.
29115         (vqdmlslh_laneq_s16): Likewise.
29116         (vqdmlsls_laneq_s32): Likewise.
29117         (vqdmulhh_laneq_s16): Likewise.
29118         (vqdmulhs_laneq_s32): Likewise.
29119         (vqrdmulhh_laneq_s16): Likewise.
29120         (vqrdmulhs_laneq_s32): Likewise.
29121
29122 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29123
29124         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
29125         (vmuld_laneq_f64): Likewise.
29126         (vmuls_laneq_f32): Likewise.
29127         (vmul_n_f64): Likewise.
29128         (vmuld_lane_f64): Reimplement in C.
29129         (vmuls_lane_f32): Likewise.
29130
29131 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29132
29133         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
29134         to reservation.
29135         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
29136
29137 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29138
29139         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
29140         (rbitsi2): Likewise.
29141         (*arm_rev): Set predicable and predicable_short_it attributes.
29142
29143 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29144
29145         * convert.c (convert_to_integer): Guard transformation to lrint by
29146         -fno-math-errno.
29147
29148 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
29149
29150         * config/aarch64/aarch64-builtins.c
29151         (aarch64_simd_builtin_type_mode): Delete.
29152         (v8qi_UP): Remap to V8QImode.
29153         (v4hi_UP): Remap to V4HImode.
29154         (v2si_UP): Remap to V2SImode.
29155         (v2sf_UP): Remap to V2SFmode.
29156         (v1df_UP): Remap to V1DFmode.
29157         (di_UP): Remap to DImode.
29158         (df_UP): Remap to DFmode.
29159         (v16qi_UP):V16QImode.
29160         (v8hi_UP): Remap to V8HImode.
29161         (v4si_UP): Remap to V4SImode.
29162         (v4sf_UP): Remap to V4SFmode.
29163         (v2di_UP): Remap to V2DImode.
29164         (v2df_UP): Remap to V2DFmode.
29165         (ti_UP): Remap to TImode.
29166         (ei_UP): Remap to EImode.
29167         (oi_UP): Remap to OImode.
29168         (ci_UP): Map to CImode.
29169         (xi_UP): Remap to XImode.
29170         (si_UP): Remap to SImode.
29171         (sf_UP): Remap to SFmode.
29172         (hi_UP): Remap to HImode.
29173         (qi_UP): Remap to QImode.
29174         (aarch64_simd_builtin_datum): Make mode a machine_mode.
29175         (VAR1): Build builtin name.
29176         (aarch64_init_simd_builtins): Remove dead code.
29177
29178 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29179
29180         * graphite-isl-ast-to-gimple.c:
29181         (set_options): New function.
29182         (scop_to_isl_ast): Add calling of set_options.
29183
29184 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
29185
29186         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
29187         (analyze_iv_to_split_insn): Don't initialize them.
29188         (get_ivts_expr): Removed.
29189         (allocate_basic_variable, insert_base_initialization): Use
29190         SET_SRC instead of *get_ivts_expr.
29191         (split_iv): Use &SET_SRC instead of get_ivts_expr.
29192
29193 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29194
29195         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
29196         (translate_isl_ast_for_loop): Add checking of the
29197         flag_loop_parallelize_all.
29198         (ast_build_before_for): New function.
29199         (scop_to_isl_ast): Add checking of the
29200         flag_loop_parallelize_all.
29201         * graphite-dependences.c: Move the defenition of the
29202         scop_get_dependences from graphite-optimize-isl.c to this file.
29203         (apply_schedule_on_deps): Add checking of the ux's emptiness.
29204         (carries_deps): Add checking of the x's value.
29205         * graphite-optimize-isl.c: Move the defenition of the
29206         scop_get_dependences to graphite-dependences.c.
29207         * graphite-poly.h: Add declarations of scop_get_dependences
29208         and carries_deps.
29209
29210 2014-08-04  Rohit  <rohitarulraj@freescale.com>
29211
29212         PR target/60102
29213         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
29214         names.
29215         (alt_reg_names): Likewise.
29216         (rs6000_dwarf_register_span): For SPE high registers, replace
29217         dwarf register numbers with GCC hard register numbers.
29218         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
29219         (rs6000_dbx_register_number): For SPE high registers, return dwarf
29220         register number for the corresponding GCC hard register number.
29221         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
29222         newly added GCC hard register numbers for SPE high registers.
29223         (DWARF_FRAME_REGISTERS):  Likewise.
29224         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
29225         (DWARF_FRAME_REGNUM): Likewise.
29226         (FIXED_REGISTERS): Likewise.
29227         (CALL_USED_REGISTERS): Likewise.
29228         (CALL_REALLY_USED_REGISTERS): Likewise.
29229         (REG_ALLOC_ORDER): Likewise.
29230         (enum reg_class): Likewise.
29231         (REG_CLASS_NAMES): Likewise.
29232         (REG_CLASS_CONTENTS): Likewise.
29233         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
29234
29235 2014-08-04  Richard Biener  <rguenther@suse.de>
29236
29237         * gimple-fold.h (gimple_fold_builtin): Remove.
29238         * gimple-fold.c (gimple_fold_builtin): Make static.
29239         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
29240         fold_stmt, not gimple_fold_builtin.
29241
29242 2014-08-04  Martin Liska <mliska@suse.cz>
29243
29244         * cgraph.h (csi_end_p): Removed.
29245         (csi_next): Likewise.
29246         (csi_node): Likewise.
29247         (csi_start): Likewise.
29248         (cgraph_node_in_set_p): Likewise.
29249         (cgraph_node_set_size): Likewise.
29250         (vsi_end_p): Likewise.
29251         (vsi_next): Likewise.
29252         (vsi_node): Likewise.
29253         (vsi_start): Likewise.
29254         (varpool_node_set_size): Likewise.
29255         (cgraph_node_set_nonempty_p): Likewise.
29256         (varpool_node_set_nonempty_p): Likewise.
29257         * cgraphunit.c (cgraph_process_new_functions): vec replaces
29258         cgraph_node_set.
29259         * ipa-inline-transform.c: Likewise.
29260         * ipa-utils.c (cgraph_node_set_new): Removed.
29261         (cgraph_node_set_add): Likewise.
29262         (cgraph_node_set_remove): Likewise.
29263         (cgraph_node_set_find): Likewise.
29264         (dump_cgraph_node_set): Likewise.
29265         (debug_cgraph_node_set): Likewise.
29266         (free_cgraph_node_set): Likewise.
29267         (varpool_node_set_new): Likewise.
29268         (varpool_node_set_add): Likewise.
29269         (varpool_node_set_remove): Likewise.
29270         (varpool_node_set_find): Likewise.
29271         (dump_varpool_node_set): Likewise.
29272         (free_varpool_node_set): Likewise.
29273         (debug_varpool_node_set): Likewise.
29274         * tree-emutls.c (struct tls_var_data):
29275         (emutls_index): Removed.
29276         (emutls_decl): Likewise.
29277         (gen_emutls_addr): Function implementation uses newly added
29278         hash_map<varpool_node *, tls_var_data>.
29279         (clear_access_vars): Likewise.
29280         (create_emultls_var): Likewise.
29281         (ipa_lower_emutls): Likewise.
29282         (reset_access): New function.
29283
29284 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29285
29286         * config/i386/i386.c (ix86_option_override_internal): Add
29287         PTA_RDRND and PTA_MOVBE for bdver4.
29288
29289 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29290             James Greenhalgh  <james.greenhalgh@arm.com>
29291
29292         * doc/md.texi (clrsb): Document.
29293         (clz): Change reference to x into operand 1.
29294         (ctz): Likewise.
29295         (popcount): Likewise.
29296
29297 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29298
29299         PR target/61713
29300         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29301         move to subtarget in serial version if result is ignored.
29302
29303 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29304             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29305
29306         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29307         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
29308         (sched_analyze_insn): Update use of try_group_insn to
29309         sched_macro_fuse_insns.
29310         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
29311         arguments that are not conditional jumps.
29312
29313 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29314
29315         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
29316         family information. Handle BTVER2 cpu with cpuid family value.
29317
29318 2014-08-04  Tom de Vries  <tom@codesourcery.com>
29319
29320         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29321         (glibc_2_11_or_earlier): Document effective-target keywords.
29322
29323 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29324
29325         * ipa-devirt.c (odr_type_warn_count): Add type.
29326         (possible_polymorphic_call_targets): Set it.
29327         (ipa_devirt): Use it.
29328
29329 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29330
29331         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
29332         Document.
29333         * ipa-devirt.c: Include hash-map.h
29334         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
29335         (clear_speculation): Break out of ...
29336         (get_class_context): ... here; speed up handling obviously useless
29337         speculations.
29338         (odr_type_warn_count, decl_warn_count): New structures.
29339         (final_warning_record): New structure.
29340         (final_warning_records): New static variable.
29341         (possible_polymorphic_call_targets): Cleanup handling of
29342         speculative info; do not build speculation when user do not care;
29343         record info about warnings when asked for.
29344         (add_decl_warning): New function.
29345         (type_warning_cmp): New function.
29346         (decl_warning_cmp): New function.
29347         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
29348         (gate): Enable pass when warnings are requested.
29349         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
29350         options.
29351
29352 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29353
29354         * hash-map.h (default_hashmap_traits::mark_key_deleted):
29355         Fix cast.
29356         (hash_map::remove): New method.
29357         (hash_map::traverse): New method.
29358         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
29359         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
29360         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
29361         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
29362         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
29363         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
29364         pointer_map.
29365
29366 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29367
29368         * hash-set.h: new File.
29369         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
29370         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
29371         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
29372         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
29373         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
29374         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
29375         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
29376         varpool.c: Use hash_set instead of pointer_set.
29377
29378 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
29379
29380         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
29381
29382 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29383
29384         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
29385         for frame access when strict_p is false.
29386
29387 2014-08-01  Renlin Li <renlin.li@arm.com>
29388 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29389
29390         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
29391         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
29392         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
29393         Declaration.
29394         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
29395         predicate.
29396         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
29397         aarch64_mem_pair_offset.
29398
29399 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29400
29401         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
29402         offset.
29403         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
29404         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
29405
29406 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
29407
29408         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
29409
29410 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
29411
29412         PR regression/61510
29413         * cgraphunit.c (analyze_functions): Use get_create rather than get
29414         for decls which are clones of abstract functions.
29415
29416 2014-08-01  Martin Liska  <mliska@suse.cz>
29417
29418         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
29419         * ipa-prop.h (count_formal_params): Global function created from static.
29420         * ipa-prop.c (count_formal_params): Likewise.
29421         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
29422         profiles for semantically equivalent functions.
29423         * passes.c (do_per_function): If we load body of a function
29424         during WPA, this condition should behave same.
29425         * varpool.c (ctor_for_folding): More tolerant assert for variable
29426         aliases created during WPA.
29427
29428 2014-08-01  Martin Liska  <mliska@suse.cz>
29429
29430         * doc/invoke.texi (Options That Control Optimization): Documentation
29431         for -foptimize-strlen introduced. Optimization levels default options
29432         fixed.
29433
29434 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
29435
29436         * opts.c (common_handle_option): Handle -fsanitize=alignment.
29437         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
29438         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
29439         type to bool.
29440         * stor-layout.h (min_align_of_type): New prototype.
29441         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
29442         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
29443         check.
29444         * ubsan.c: Include builtins.h.
29445         (ubsan_expand_bounds_ifn): Change return type to bool,
29446         always return true.
29447         (ubsan_expand_null_ifn): Change return type to bool, change
29448         argument to gimple_stmt_iterator *.  Handle both null and alignment
29449         sanitization, take type from ckind argument's type rather than
29450         first argument.
29451         (instrument_member_call): Removed.
29452         (instrument_mem_ref): Remove t argument, add mem and base arguments.
29453         Handle both null and alignment sanitization, don't say whole
29454         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
29455         call instead of 2 argument.
29456         (instrument_null): Adjust instrument_mem_ref caller.  Don't
29457         instrument calls here.
29458         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
29459         like SANITIZE_NULL.
29460         * stor-layout.c (min_align_of_type): New function.
29461         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
29462         Or it into SANITIZE_UNDEFINED.
29463         * doc/invoke.texi (-fsanitize=alignment): Document.
29464
29465 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29466
29467         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
29468
29469 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29470
29471         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
29472         inchash.
29473         (vn_reference_compute_hash): Dito.
29474         (vn_nary_op_compute_hash): Dito.
29475         (vn_phi_compute_hash): Dito.
29476         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
29477
29478 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29479
29480         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
29481         Rename to inchash:add_expr_commutative. Convert to inchash.
29482         (iterative_hash_hashable_expr): Rename to
29483         inchash:add_hashable_expr. Convert to inchash.
29484         (avail_expr_hash): Dito.
29485
29486 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29487
29488         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
29489         Convert to inchash.
29490
29491 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29492
29493         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
29494
29495 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29496
29497         * Makefile.in (OBJS): Add rtlhash.o
29498         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
29499         (loc_checksum): Dito.
29500         (loc_checksum_ordered): Dito.
29501         (hash_loc_operands): Dito.
29502         (hash_locs): Dito.
29503         (hash_loc_list): Dito.
29504         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
29505         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
29506         * rtlhash.c: New file.
29507         * rtlhash.h: New file.
29508
29509 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29510
29511         * inchash.h (inchash): Change inchash class to namespace.
29512         (class hash): ... Rename from inchash.
29513         (add_object): Move from macro to class template.
29514         * lto-streamer-out.c (hash_tree): Change inchash
29515         to inchash::hash.
29516         * tree.c (build_type_attribute_qual_variant): Dito.
29517         (type_hash_list): Dito.
29518         (attribute_hash_list): Dito.
29519         (iterative_hstate_expr): Rename to inchash::add_expr
29520         (build_range_type_1): Change inchash to inchash::hash
29521         and use hash::add_expr.
29522         (build_array_type_1): Dito.
29523         (build_function_type): Dito
29524         (build_method_type_directly): Dito.
29525         (build_offset_type): Dito.
29526         (build_complex_type): Dito.
29527         (make_vector_type): Dito.
29528         * tree.h (iterative_hash_expr): Dito.
29529
29530 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
29531
29532         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
29533
29534 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29535
29536         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
29537         correct alphabetical position.
29538         (vpaddd_f64): Rewrite using builtins.
29539         (vpaddd_s64): Move to correct alphabetical position.
29540         (vpaddd_u64): New.
29541
29542 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
29543
29544         PR target/61844
29545         * config/sh/sh.c (sh_legitimate_address_p,
29546         sh_legitimize_reload_address): Handle reg+reg address modes when
29547         ALLOW_INDEXED_ADDRESS is false.
29548         * config/sh/predicates.md (general_movsrc_operand,
29549         general_movdst_operand): Likewise.
29550
29551 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29552
29553         * config/aarch64/aarch64-builtins.c
29554         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
29555         BYTES_BIG_ENDIAN.
29556
29557 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29558
29559         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
29560         the generated mask based on BYTES_BIG_ENDIAN.
29561         (aarch64_simd_check_vect_par_cnst_half): New.
29562         * config/aarch64/aarch64-protos.h
29563         (aarch64_simd_check_vect_par_cnst_half): New.
29564         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
29565         the check out to aarch64_simd_check_vect_par_cnst_half.
29566         (vect_par_cnst_lo_half): Likewise.
29567         * config/aarch64/aarch64-simd.md
29568         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
29569         (move_hi_quad_<mode>): Always generate a low mask.
29570
29571 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29572
29573         * doc/invoke.texi (AVR Options): Add documentation about
29574         __AVR_DEVICE_NAME__ built-in macro.
29575
29576 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
29577
29578         PR target/61948
29579         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
29580         constraints are satisfied.
29581         (<shift>di3_neon): Likewise.
29582
29583 2014-07-31  Richard Biener  <rguenther@suse.de>
29584
29585         PR tree-optimization/61964
29586         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
29587         by structural equality.
29588
29589 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
29590
29591         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
29592         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
29593         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
29594         New enums.
29595         * gcc.c (sanitize_spec_function): Support new option.
29596         (SANITIZER_SPEC): Remove now redundant check.
29597         * opts.c (common_handle_option): Support new option.
29598         (finish_options): Check for incompatibilities.
29599         * toplev.c (process_options): Split userspace-specific checks.
29600
29601 2014-07-31  Richard Biener  <rguenther@suse.de>
29602
29603         * lto-streamer.h (struct output_block): Remove global.
29604         (struct data_in): Remove labels, num_named_labels and
29605         num_unnamed_labels.
29606         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
29607         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
29608
29609 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
29610
29611         PR c++/60517
29612         * common.opt (-Wreturn-local-addr): Moved from c.opt.
29613         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
29614         (isolate_path): New argument to avoid inserting a trap.
29615         (find_implicit_erroneous_behaviour): Handle returning the address
29616         of a local variable.
29617         (find_explicit_erroneous_behaviour): Likewise.
29618
29619 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
29620
29621         PR lto/61868
29622         * toplev.c (init_random_seed): Move piece of code never called to
29623         set_random_seed.
29624         (set_random_seed): see above.
29625
29626 2014-07-31  Tom de Vries  <tom@codesourcery.com>
29627
29628         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
29629
29630 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
29631
29632         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
29633         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
29634
29635 2014-07-31  Richard Biener  <rguenther@suse.de>
29636
29637         * data-streamer.h (streamer_write_data_stream): Declare here,
29638         renamed from ...
29639         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
29640         * lto-cgraph.c (lto_output_node): Adjust.
29641         (lto_output_varpool_node): Likewise.
29642         * data-streamer-out.c (streamer_string_index): Likewise.
29643         (streamer_write_data_stream, lto_append_block): Move from ...
29644         * lto-section-out.c (lto_output_data_stream,
29645         lto_append_block): ... here.
29646
29647 2014-07-30  Mike Stump  <mikestump@comcast.net>
29648
29649         * configure.ac: Also check for popen.
29650         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
29651         * configure: Regenerate.
29652         * config.in:  Regenerate.
29653
29654 2014-07-30  Martin Jambor  <mjambor@suse.cz>
29655
29656         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
29657         parameter to gimple.
29658
29659 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29660
29661         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
29662         address as second parameter to __tpf_eh_return routine.
29663
29664 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
29665
29666         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
29667         Thumb2.
29668
29669 2014-07-30  Tom Tromey  <tromey@redhat.com>
29670
29671         PR c/59855
29672         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
29673         * doc/extend.texi (Type Attributes): Document designated_init
29674         attribute.
29675
29676 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
29677
29678         * graphite-isl-ast-to-gimple.c:
29679         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
29680         (gcc_expression_from_isl_expression): Pass type to
29681         gcc_expression_from_isl_ast_expr_id.
29682
29683 2014-07-30  Richard Biener  <rguenther@suse.de>
29684
29685         * lto-streamer.h (lto_write_data): New function.
29686         * langhooks.c (lhd_append_data): Do not free block.
29687         * lto-section-out.c (lto_write_data): New function writing
29688         raw data to the current section.
29689         (lto_write_stream): Adjust for langhook semantic change.
29690         (lto_destroy_simple_output_block): Write header directly.
29691         * lto-opts.c (lto_write_options): Write options directly.
29692         * lto-streamer-out.c (produce_asm): Write heaeder directly.
29693         (lto_output_toplevel_asms): Likewise.
29694         (copy_function_or_variable): Copy data directly.
29695         (write_global_references): Output index table directly.
29696         (lto_output_decl_state_refs): Likewise.
29697         (write_symbol): Write data directly.
29698         (produce_symtab): Adjust.
29699         (produce_asm_for_decls): Output header and refs directly.
29700
29701 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29702
29703         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
29704         to speculative_targets
29705         (get_class_context): Fix handling of contextes without outer type;
29706         avoid matching non-polymorphic types in LTO.
29707         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
29708         parameter to speculative_targetsp; handle speculation.
29709         (dump_possible_polymorphic_call_targets): Update dumping.
29710
29711 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29712
29713         * common.opt (Wodr): Enable by default.
29714
29715 2014-07-29  Olivier Hainque  <hainque@adacore.com>
29716
29717         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
29718
29719 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
29720
29721         PR bootstrap/61914
29722         * gengtype.c (strtoken): New function.
29723         (create_user_defined_type): Replace strtok with strtoken.
29724
29725 2014-07-29  Nathan Sidwell  <nathan@acm.org>
29726
29727         * gcov-io.c (gcov_var): Make hidden.
29728         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
29729         (gcov_do_dump): Declare.
29730         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
29731
29732 2014-07-29  Martin Jambor  <mjambor@suse.cz>
29733
29734         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
29735         parameter to gimple.
29736         (sra_modify_assign): Likewise.
29737
29738 2014-07-29  Richard Biener  <rguenther@suse.de>
29739
29740         PR middle-end/52478
29741         * expr.c (expand_expr_real_2): Revert last change.
29742
29743 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29744
29745         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
29746         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
29747         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
29748         call.
29749         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
29750         (contains_type_p): Forward declare.
29751         (polymorphic_call_target_hasher::hash): Hash speculative info.
29752         (polymorphic_call_target_hasher::equal): Compare speculative info.
29753         (get_class_context): Handle speuclation.
29754         (contains_type_p): Update.
29755         (get_polymorphic_call_info_for_decl): Update.
29756         (walk_ssa_copies): Break out from ...
29757         (get_polymorphic_call_info): ... here; set speculative context
29758         before giving up.
29759         * ipa-prop.c (ipa_write_indirect_edge_info,
29760         ipa_read_indirect_edge_info): Stream speculative context.
29761         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
29762         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
29763         SPECULATIVE_MAYBE_DERIVED_TYPE).
29764         (possible_polymorphic_call_targets overriders): Update.
29765         (dump_possible_polymorphic_call_targets overriders): Update.
29766         (dump_possible_polymorphic_call_target_p overriders): Update.
29767
29768 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29769
29770         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
29771         ipa-devirt path; fix thinko there.
29772
29773 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
29774
29775         * config/i386/i386.c (ix86_return_in_memory): Replace one
29776         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
29777
29778 2014-07-28  Marek Polacek  <polacek@redhat.com>
29779
29780         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
29781
29782 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
29783
29784         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
29785         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
29786         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
29787         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29788         (USE_LD_AS_NEEDED): Likewise.
29789         (ASM_APP_ON): Likewise.
29790         (ASM_APP_OFF): Likewise.
29791         (TARGET_POSIX_IO): Likewise.
29792         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
29793         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29794         (USE_LD_AS_NEEDED): Likewise.
29795         (ASM_APP_ON): Likewise.
29796         (ASM_APP_OFF): Likewise.
29797         (TARGET_POSIX_IO): Likewise.
29798
29799 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
29800
29801         PR middle-end/61734
29802         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
29803         operators other than the equality operators.
29804
29805 2014-07-28  Richard Biener  <rguenther@suse.de>
29806
29807         PR middle-end/52478
29808         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
29809         sure to register SImode ones, not only >= word_mode ones.
29810         * expr.c (expand_expr_real_2): When expanding -ftrapv
29811         binops do not use OPTAB_LIB_WIDEN.
29812
29813 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
29814
29815         PR middle-end/61919
29816         * tree-outof-ssa.c (insert_partition_copy_on_edge)
29817         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
29818         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
29819         inserting them in the insn stream.
29820
29821 2014-07-28  Marek Polacek  <polacek@redhat.com>
29822
29823         PR middle-end/61913
29824         * common.opt (Wodr): Add Var.
29825
29826 2014-07-28  Richard Biener  <rguenther@suse.de>
29827
29828         PR tree-optimization/61921
29829         * tree-ssa-structalias.c (create_variable_info_for_1): Check
29830         if there is a varpool node before dereferencing it.
29831
29832 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29833
29834         * graphite-sese-to-poly.c:
29835         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
29836         id of the pbb), which contains pointer to the pbb1.
29837
29838         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
29839
29840 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29841
29842         * graphite-isl-ast-to-gimple.c:
29843         (graphite_create_new_guard): New function.
29844         (translate_isl_ast_node_if): New function.
29845         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
29846
29847         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
29848
29849 2014-07-27  Anthony Green  <green@moxielogic.com>
29850
29851         * config.gcc: Add moxie-*-moxiebox* configuration.
29852         * config/moxie/moxiebox.h: New file.
29853
29854 2014-07-26  Andrew Pinski  <apinski@cavium.com>
29855
29856         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
29857         from the read only register.
29858
29859 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29860
29861         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
29862         as the allocation class if it isn't likely to be spilled.
29863
29864 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29865
29866         * rtl.h (tls_referenced_p): Declare.
29867         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
29868         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
29869         (mips_cannot_force_const_mem): Use tls_referenced_p.
29870         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
29871         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
29872         instead of pa_tls_referenced_p.
29873         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
29874         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
29875         (pa_legitimate_constant_p): Likewise.
29876         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
29877         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
29878         (rs6000_cannot_force_const_mem, rs6000_emit_move)
29879         (rs6000_address_for_altivec): Use tls_referenced_p instead of
29880         rs6000_tls_referenced_p.
29881         (rs6000_tls_symbol_ref_1): Delete.
29882
29883 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
29884
29885         PR target/44551
29886         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
29887         Optimize inverse of a VEC_CONCAT.
29888
29889 2014-07-25  Xinliang David Li  <davidxl@google.com>
29890
29891         * params.def: New parameter.
29892         * coverage.c (get_coverage_counts): Check new flag.
29893         (coverage_compute_profile_id): Check new flag.
29894         (coverage_begin_function): Check new flag.
29895         (coverage_end_function): Check new flag.
29896         * value-prof.c (coverage_node_map_initialized_p): New function.
29897         (init_node_map): Populate map with all functions.
29898         * doc/invoke.texi: Document new parameter.
29899
29900 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
29901             Richard Biener <rguenther@suse.de>
29902
29903         * lto-streamer-out.c (struct sccs): Turn to ...
29904         (class DFS): ... this one; refactor the DFS walk so it can
29905         be re-done on per-SCC basis.
29906         (DFS::DFS): New constructor.
29907         (DFS::~DFS): New destructor.
29908         (hash_tree): Add new MAP argument holding in-SCC hash values;
29909         remove POINTER_TYPE hashing hack.
29910         (scc_entry_compare): Rename to ...
29911         (DFS::scc_entry_compare): ... this one.
29912         (hash_scc): Rename to ...
29913         (DFS::hash_scc): ... this one; pass output_block instead
29914         of streamer_cache; work harder to get unique and stable SCC
29915         hashes.
29916         (DFS_write_tree): Rename to ...
29917         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
29918         (lto_output_tree): Update.
29919
29920 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29921
29922         * lto-streamer-out.c (hash_tree): Convert to inchash.
29923
29924 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29925
29926         * tree.c (build_type_attribute_qual_variant): Use inchash.
29927         (type_hash_list): Dito.
29928         (attribute_hash_list): Dito
29929         (iterative_hstate_expr): Dito.
29930         (iterative_hash_expr): Dito.
29931         (build_range_type_1): Dito.
29932         (build_array_type_1): Dito.
29933         (build_function_type): Dito.
29934         (build_method_type_directly): Dito.
29935         (build_offset_type): Dito.
29936         (build_complex_type): Dito.
29937         (make_vector_type): Dito.
29938         * tree.h (iterative_hash_expr): Add compat wrapper.
29939         (iterative_hstate_expr): Add.
29940
29941 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29942
29943         * Makefile.in (OBJS): Add inchash.o.
29944         (PLUGIN_HEADERS): Add inchash.h.
29945         * ipa-devirt.c: Include inchash.h.
29946         * lto-streamer-out.c: Dito.
29947         * tree-ssa-dom.c: Dito.
29948         * tree-ssa-pre.c: Dito.
29949         * tree-ssa-sccvn.c: Dito.
29950         * tree-ssa-tail-merge.c: Dito.
29951         * asan.c: Dito.
29952         * tree.c (iterative_hash_hashval_t): Move to ...
29953         (iterative_hash_host_wide_int): Move to ...
29954         * inchash.c: Here. New file.
29955         * tree.h (iterative_hash_hashval_t): Move to ...
29956         (iterative_hash_host_wide_int): Move to ...
29957         * inchash.h: Here. New file.
29958
29959 2014-07-25  Richard Biener  <rguenther@suse.de>
29960
29961         PR middle-end/61762
29962         PR middle-end/61894
29963         * fold-const.c (native_encode_int): Add and handle offset
29964         parameter to do partial encodings of expr.
29965         (native_encode_fixed): Likewise.
29966         (native_encode_real): Likewise.
29967         (native_encode_complex): Likewise.
29968         (native_encode_vector): Likewise.
29969         (native_encode_string): Likewise.
29970         (native_encode_expr): Likewise.
29971         * fold-const.c (native_encode_expr): Add offset parameter
29972         defaulting to -1.
29973         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
29974         (fold_ctor_reference): Handle all reads from tcc_constant
29975         ctors.
29976
29977 2014-07-25  Richard Biener  <rguenther@suse.de>
29978
29979         * tree-inline.c (estimate_move_cost): Mark speed_p argument
29980         as possibly unused.
29981
29982 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29983
29984         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
29985
29986 2014-07-24  Kyle McMartin  <kyle@redhat.com>
29987
29988         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
29989
29990 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29991
29992         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
29993         Add prototype.
29994         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
29995         function.
29996         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
29997         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
29998         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
29999
30000 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30001
30002         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
30003         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
30004         aggregate types.  Instead, *all* aggregate types, except for single-
30005         element or homogeneous float/vector aggregates, are quadword-aligned
30006         if required by their type alignment.  Issue -Wpsabi note when a type
30007         is now treated differently than before.
30008
30009 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
30010
30011         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
30012         does not fit fully into floating-point registers, and there is still
30013         space in the register parameter area, use GPRs to pass those parts
30014         of the argument.  Issue -Wpsabi note if any parameter is now treated
30015         differently than before.
30016         (rs6000_arg_partial_bytes): Update.
30017
30018 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
30019
30020         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
30021
30022 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30023
30024         * rtl.h (target_rtl): Remove lang_dependent_initialized.
30025         * toplev.c (initialize_rtl): Don't use it.  Move previously
30026         "language-dependent" calls to...
30027         (backend_init): ...here.
30028         (lang_dependent_init_target): Don't set lang_dependent_initialized.
30029         Assert that RTL initialization hasn't happend yet.
30030
30031 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30032
30033         PR rtl-optimization/61629
30034         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
30035         they have already been initialized.
30036
30037 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
30038
30039         PR middle-end/61268
30040         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
30041         DECL_INCOMING_RTL and entry_parm.
30042         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
30043         * calls.c (load_register_parameters): Likewise argument values.
30044         (emit_library_call_value_1, store_one_arg): Likewise argument
30045         save areas.
30046         * config/i386/i386.c (assign_386_stack_local): Likewise the local
30047         stack slot.
30048         * explow.c (validize_mem): Modify the argument in-place.
30049
30050 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30051
30052         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
30053         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
30054
30055 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30056
30057         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
30058         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
30059
30060 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30061
30062         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
30063         (aarch64_save_callee_saves): New parameter "skip_wb".
30064         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
30065
30066 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30067
30068         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
30069         "wb_candidate2".
30070         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
30071
30072 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30073
30074         * graphite-isl-ast-to-gimple.c:
30075         (graphite_create_new_loop): Add calling of isl_id_free to properly
30076         decrement reference counts.
30077
30078         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
30079
30080 2014-07-24  Martin Liska  <mliska@suse.cz>
30081         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
30082         function used.
30083         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
30084         (rs6000_code_end): Likewise.
30085
30086 2014-07-24  Martin Liska  <mliska@suse.cz>
30087
30088         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
30089         symtab_node funtion used.
30090         (rs6000_xcoff_declare_object_name): Likewise.
30091
30092 2014-07-24  Martin Liska  <mliska@suse.cz>
30093
30094         * cgraphunit.c (compile): Correct function used.
30095
30096 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30097
30098         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
30099         as non-indexable.
30100
30101 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
30102
30103         PR lto/61802
30104         * varasm.c (bss_initializer_p): Handle offlined ctors.
30105         (align_variable, get_variable_align): Likewise.
30106         (make_decl_one_only): Likewise.
30107         (default_binds_local_p_1): Likewise.
30108         (decl_binds_to_current_def_p): Likewise.
30109         (get_variable_section): Get constructor if it is offlined.
30110         (assemble_variable_contents): Sanity check that the caller
30111         streamed in the ctor in LTO.
30112
30113 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
30114
30115         * graphite-isl-ast-to-gimple.c:
30116         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
30117         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
30118         isl_ast_op_pdiv_r to the different case.
30119
30120         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
30121
30122 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30123
30124         PR middle-end/61876
30125         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
30126         when flag_errno_math is on.
30127
30128 2014-07-24  Martin Liska  <mliska@suse.cz>
30129
30130         * cgraph.h (varpool_node):
30131         (availability get_availability (void)):
30132         created from cgraph_variable_initializer_availability
30133         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
30134         created from: cgraph_variable_initializer_availability
30135         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
30136         (void finalize_named_section_flags (void)):
30137         created from varpool_finalize_named_section_flags
30138         (bool assemble_decl (void)): created from varpool_assemble_decl
30139         (void analyze (void)): created from varpool_analyze_node
30140         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
30141         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
30142         (void remove_initializer (void)): created from varpool_remove_initializer
30143         (tree get_constructor (void)): created from varpool_get_constructor
30144         (bool externally_visible_p (void)): created from varpool_externally_visible_p
30145         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
30146         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
30147         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
30148         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
30149         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
30150         (static bool output_variables (void)): created from varpool_output_variables
30151         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
30152         created from varpool_extra_name_alias
30153         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
30154         (static void dump_varpool (FILE *f)): created from dump_varpool
30155         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
30156         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
30157         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
30158         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
30159         (void assemble_aliases (void)): created from assemble_aliases
30160
30161 2014-07-24  Martin Liska  <mliska@suse.cz>
30162
30163         * cgraph.h (symtab_node):
30164         (void register_symbol (void)): created from symtab_register_node
30165         (void remove (void)): created from symtab_remove_node
30166         (void dump (FILE *f)): created from dump_symtab_node
30167         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
30168         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
30169         (struct ipa_ref *add_reference (symtab_node *referred_node,
30170         enum ipa_ref_use use_type)): created from add_reference
30171         (struct ipa_ref *add_reference (symtab_node *referred_node,
30172         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
30173         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
30174         gimple stmt)): created from maybe_add_reference
30175         (bool semantically_equivalent_p (symtab_node *target)): created from
30176         symtab_semantically_equivalent_p
30177         (void remove_from_same_comdat_group (void)): created from
30178         remove_from_same_comdat_group
30179         (void add_to_same_comdat_group (symtab_node *old_node)): created from
30180         symtab_add_to_same_comdat_group
30181         (void dissolve_same_comdat_group_list (void)): created from
30182         symtab_dissolve_same_comdat_group_list
30183         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
30184         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
30185         created from symtab_alias_ultimate_target
30186         (inline symtab_node *next_defined_symbol (void)): created from
30187         symtab_next_defined_symbol
30188         (bool resolve_alias (symtab_node *target)): created from
30189         symtab_resolve_alias
30190         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
30191         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
30192         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
30193         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
30194         (void set_section (const char *section)): created from set_section_1
30195         (enum availability get_availability (void)): created from symtab_node_availability
30196         (void make_decl_local (void)): created from symtab_make_decl_local
30197         (bool real_symbol_p (void)): created from symtab_read_node
30198         (can_be_discarded_p (void)): created from symtab_can_be_discarded
30199         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
30200         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
30201         symtab_in_same_comdat_p;
30202         (bool address_taken_from_non_vtable_p (void)): created from
30203         address_taken_from_non_vtable_p
30204         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
30205         (static void dump_table (FILE *)): created from dump_symtab
30206         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
30207         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
30208         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
30209         symtab_used_from_object_file_p
30210         (void dump_base (FILE *)): created from dump_symtab_base
30211         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
30212         (void unregister (void)): created from symtab_unregister_node
30213         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
30214         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
30215         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
30216         symtab_nonoverwritable_alias_1
30217         * cgraph.h (cgraph_node):
30218         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
30219         created from cgraph_remove_node_and_inline_clones
30220         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
30221         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
30222         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
30223         (cgraph_node *function_symbol (enum availability *avail = NULL)):
30224         created from cgraph_function_node
30225         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
30226         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
30227         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
30228         created from cgraph_create_clone
30229         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
30230         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
30231         created from cgraph_create_virtual_clone
30232         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
30233         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
30234         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
30235         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
30236         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
30237         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
30238         created from cgraph_function_version_info
30239         (struct cgraph_function_version_info *insert_new_function_version (void)):
30240         created from insert_new_cgraph_node_version
30241         (struct cgraph_function_version_info *function_version (void)): created from
30242         get_cgraph_node_version
30243         (void analyze (void)): created from analyze_function
30244         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
30245         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
30246         tree real_alias) cgraph_add_thunk
30247         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
30248         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
30249         created from cgraph_function_or_thunk_node
30250         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
30251         created from expand_thunk
30252         (void reset (void)): created from cgraph_reset_node
30253         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
30254         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
30255         (void remove (void)): created from cgraph_remove_node
30256         (void dump (FILE *f)): created from dump_cgraph_node
30257         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
30258         (bool get_body (void)): created from cgraph_get_body
30259         (void release_body (void)): created from cgraph_release_function_body
30260         (void unnest (void)): created from cgraph_unnest_node
30261         (void make_local (void)): created from cgraph_make_node_local
30262         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30263         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30264         gcov_type count, int freq)): created from cgraph_create_edge
30265         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30266         gcov_type count, int freq)): created from cgraph_create_indirect_edge
30267         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30268         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30269         created from cgraph_create_edge_including_clones
30270         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30271         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30272         (void remove_callers (void)): created from cgraph_node_remove_callers
30273         (void remove_callees (void)): created from cgraph_node_remove_callees
30274         (enum availability get_availability (void)): created from cgraph_function_body_availability
30275         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30276         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30277         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30278         (void call_duplication_hooks (cgraph_node *node2)): created from
30279         cgraph_call_node_duplication_hooks
30280         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30281         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30282         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30283         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30284         (void call_function_insertion_hooks (void)):
30285         created from cgraph_call_function_insertion_hooks
30286         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30287         (bool local_p (void)): created from cgraph_local_node
30288         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30289         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30290         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30291         (inline bool only_called_directly_or_aliased_p (void)):
30292         created from cgraph_only_called_directly_or_aliased_p
30293         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30294         created from cgraph_will_be_removed_from_program_if_no_direct_calls
30295         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30296         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30297         (bool can_remove_if_no_direct_calls_p (void)):
30298         created from cgraph_can_remove_if_no_direct_calls_p
30299         (inline bool has_gimple_body_p (void)):
30300         created from cgraph_function_with_gimple_body_p
30301         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30302         (static void dump_cgraph (FILE *f)): created from dump_cgraph
30303         (static inline void debug_cgraph (void)): created from debug_cgraph
30304         (static void record_function_versions (tree decl1, tree decl2)):
30305         created from record_function_versions
30306         (static void delete_function_version (tree decl)):
30307         created from delete_function_version
30308         (static void add_new_function (tree fndecl, bool lowered)):
30309         created from cgraph_add_new_function
30310         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
30311         (static cgraph_node * create (tree decl)): created from cgraph_create_node
30312         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
30313         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
30314         (static cgraph_node *get_for_asmname (tree asmname)):
30315         created from cgraph_node_for_asm
30316         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
30317         created from cgraph_same_body_alias
30318         (static bool used_from_object_file_p_worker (cgraph_node *node,
30319         void *): new function
30320         (static bool non_local_p (cgraph_node *node, void *)):
30321         created from cgraph_non_local_node_p_1
30322         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
30323         created from verify_cgraph
30324         (static bool make_local (cgraph_node *node, void *)):
30325         created from cgraph_make_node_local
30326         (static cgraph_node *create_alias (tree alias, tree target)):
30327         created from cgraph_create_function_alias
30328         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
30329         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
30330         created from cgraph_create_edge_1
30331         * cgraph.h (varpool_node):
30332         (void remove (void)): created from varpool_remove_node
30333         (void dump (FILE *f)): created from dump_varpool_node
30334
30335 2014-07-24  Richard Biener  <rguenther@suse.de>
30336
30337         PR ipa/61823
30338         * tree-ssa-structalias.c (create_variable_info_for_1):
30339         Use varpool_get_constructor.
30340         (create_variable_info_for): Likewise.
30341
30342 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30343
30344         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
30345         subtract outgoing area size when restoring stack_pointer_rtx.
30346
30347 2014-07-24  Nick Clifton  <nickc@redhat.com>
30348
30349         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
30350         that operations are taking place in parallel.
30351         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
30352
30353 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
30354
30355         * omp-low.c (extract_omp_for_data): Add missing break statement.
30356
30357 2014-07-24  Richard Biener  <rguenther@suse.de>
30358
30359         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
30360         * tree-inline.c (estimate_move_cost): Add speed_p parameter
30361         and adjust MOVE_RATIO query accordingly.
30362         (estimate_num_insns): Adjust callers.
30363         * ipa-prop.c (ipa_populate_param_decls): Likewise.
30364         * ipa-cp.c (gather_context_independent_values,
30365         estimate_local_effects): Likewise.
30366         * ipa-split.c (consider_split): Likewise.
30367
30368 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
30369
30370         * config/i386/driver-i386.c: Remove names of unused arguments and
30371         unnecessary unused attributes.
30372         * config/i386/host-mingw32.c: Likewise.
30373         * config/i386/i386.c: Likewise.
30374         * config/i386/winnt-stubs.c: Likewise.
30375         * config/i386/winnt.c: Likewise.
30376
30377 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30378
30379         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
30380         (aarch64_gen_loadwb_pair): New helper function.
30381         (aarch64_expand_epilogue): Simplify code using new helper functions.
30382         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
30383
30384 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30385
30386         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
30387         (aarch64_gen_storewb_pair): New helper function.
30388         (aarch64_expand_prologue): Simplify code using new helper functions.
30389         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
30390
30391 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30392
30393         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
30394         Rename to aarch64_save_callee_saves, remove restore code.
30395         (aarch64_restore_callee_saves): New function.
30396
30397 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30398
30399         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
30400         (aarch64_save_callee_saves): New function to handle reg save
30401         for both core and vectore regs.
30402
30403 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30404
30405         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
30406         (aarch64_gen_store_pair): New helper function.
30407         (aarch64_save_or_restore_callee_save_registers)
30408         (aarch64_save_or_restore_fprs): Use new helper functions.
30409
30410 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30411
30412         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
30413         (aarch64_save_or_restore_callee_save_registers)
30414         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
30415
30416 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30417
30418         * config/aarch64/aarch64.c
30419         (aarch64_save_or_restore_callee_save_registers)
30420         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
30421
30422 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30423
30424         * config/aarch64/aarch64.c
30425         (aarch64_save_or_restore_callee_save_registers)
30426         (aarch64_save_or_restore_fprs): Remove 'increment'.
30427
30428 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30429
30430         * config/aarch64/aarch64.c
30431         (aarch64_save_or_restore_callee_save_registers)
30432         (aarch64_save_or_restore_fprs): Use register offset in
30433         cfun->machine->frame.reg_offset.
30434
30435 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30436
30437         * config/aarch64/aarch64.c
30438         (aarch64_save_or_restore_callee_save_registers)
30439         (aarch64_save_or_restore_fprs): Remove base_rtx.
30440
30441 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30442
30443         * config/aarch64/aarch64.c
30444         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
30445         to 'start_offset'.  Remove local variable 'start_offset'.
30446
30447 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30448
30449         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
30450         type to HOST_WIDE_INT.
30451
30452 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30453
30454         * config/aarch64/aarch64.c (aarch64_expand_prologue)
30455         (aarch64_save_or_restore_fprs)
30456         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
30457
30458 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30459
30460         * config/arm/t-rtems-eabi: Add
30461         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
30462         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
30463         mbig-endian/mthumb/march=armv7-r, and
30464         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
30465         multilibs.
30466
30467 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30468             Chris Johns <chrisj@rtems.org>
30469             Joel Sherrill <joel.sherrill@oarcorp.com>
30470
30471         * config.gcc: Add nios2-*-rtems*.
30472         * config/nios2/rtems.h: New file.
30473         * gcc/config/nios2/t-rtems: New file.
30474
30475 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
30476
30477         PR target/61396
30478         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
30479         constant numbers, not general constants.
30480         (rs6000_expand_vector_init): Ditto.
30481
30482 2014-07-23  Nathan Sidwell  <nathan@acm.org>
30483
30484         * gcov-tool.c (gcov_list): Declare here.
30485         (set_gcov_list): Remove.
30486         (gcov_output_files): Set gcov_list directly.
30487
30488 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
30489
30490         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
30491
30492 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30493
30494         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
30495         callee-saved registers are available for padding purpose
30496         and r3 is not mandatory, then prefer use those callee-saved
30497         instead of r3.
30498
30499 2014-07-23  Richard Biener  <rguenther@suse.de>
30500
30501         * params.def (PARAM_MAX_COMBINE_INSNS): New.
30502         * combine.c: Include statistics.h and params.h.
30503         (combine_instructions): Guard three and four insn combines
30504         with max-combine-insns value.  Record statistics for combines
30505         performed.
30506         * doc/invoke.texi (max-combine-insns): Document new param.
30507
30508 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30509
30510         * graphite-isl-ast-to-gimple.c:
30511         (translate_isl_ast_node_block): New function.
30512         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
30513
30514         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
30515         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
30516
30517 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30518
30519         * graphite-isl-ast-to-gimple.c:
30520         (get_max_schedule_dimensions): New function.
30521         (extend_schedule): Likewise.
30522         (generate_isl_schedule): Add calling of extend_schedule and
30523         get_max_schedule_dimensions.
30524
30525 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30526
30527         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
30528         (case UNSPEC): Handle UNSPEC_RBIT.
30529
30530 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30531
30532         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
30533         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
30534
30535 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30536
30537         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
30538
30539 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
30540
30541         * graphite-isl-ast-to-gimple.c:
30542         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
30543         (ivs_params_clear):
30544         (build_iv_mapping): New function.
30545         (translate_isl_ast_node_user): Likewise.
30546         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
30547
30548         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
30549         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
30550         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
30551
30552 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30553
30554         PR target/55701
30555         * config/arm/arm.md (setmem): New pattern.
30556         * config/arm/arm-protos.h (struct tune_params): New fields.
30557         (arm_gen_setmem): New prototype.
30558         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
30559         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30560         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30561         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
30562         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
30563         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
30564         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
30565         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30566         (arm_const_inline_cost): New function.
30567         (arm_block_set_max_insns): New function.
30568         (arm_block_set_non_vect_profit_p): New function.
30569         (arm_block_set_vect_profit_p): New function.
30570         (arm_block_set_unaligned_vect): New function.
30571         (arm_block_set_aligned_vect): New function.
30572         (arm_block_set_unaligned_non_vect): New function.
30573         (arm_block_set_aligned_non_vect): New function.
30574         (arm_block_set_vect, arm_gen_setmem): New functions.
30575
30576 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30577
30578         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
30579
30580 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
30581
30582         PR target/61855
30583         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
30584         out of #ifdef __OPTIMIZE__.
30585
30586 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30587
30588         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
30589         different trapping status if -fnon-call-exceptions is enabled.
30590
30591 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30592
30593         * expr.c (store_field): Handle VOIDmode for calls that return values
30594         in multiple locations.
30595
30596 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30597
30598         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
30599         (altivec_vsldoi_<mode>): Likewise.
30600
30601 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30602
30603         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
30604         to the number of characters in the line.
30605
30606 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30607
30608         * graphite-isl-ast-to-gimple.c: Add using of
30609         build_nonstandard_integer_type instead of int128_integer_type_node.
30610
30611 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
30612
30613         * toplev.c (output_stack_usage): Adjust the location of the warning.
30614
30615 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
30616
30617         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
30618         (*membar_storeload): Disable for LEON3.
30619
30620 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30621
30622         PR rtl-optimization/61461
30623         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
30624
30625 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
30626
30627         PR target/61794
30628         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
30629         Fix instruction constraint.
30630         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
30631
30632 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
30633
30634         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
30635
30636 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
30637
30638         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
30639         GNU coding standards.
30640         (nds32_register_move_cost): Likewise.
30641         (nds32_memory_move_cost): Likewise.
30642         (nds32_address_cost): Likewise.
30643
30644 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30645
30646         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
30647
30648 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
30649
30650         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
30651         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
30652         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
30653         (HAVE_sync_compare_and_swapqi): Define.
30654         (HAVE_sync_compare_and_swaphi): Likewise.
30655         (HAVE_sync_compare_and_swapsi): Likewise.
30656
30657 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
30658
30659         * config/mips/p5600.md: Add missing cpu tests.
30660
30661 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30662
30663         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
30664         (vmla_f64): Likewise.
30665         (vfms_f64): Likewise.
30666         (vmls_f64): Likewise.
30667
30668 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30669
30670         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
30671         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
30672
30673 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30674
30675         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
30676         (vmlal_high_lane_s32): Likewise.
30677         (vmlal_high_lane_u16): Likewise.
30678         (vmlal_high_lane_u32): Likewise.
30679         (vmlsl_high_lane_s16): Likewise.
30680         (vmlsl_high_lane_s32): Likewise.
30681         (vmlsl_high_lane_u16): Likewise.
30682         (vmlsl_high_lane_u32): Likewise.
30683
30684 2014-07-17  Terry Guo  <terry.guo@arm.com>
30685
30686         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
30687         (alus_reg): Renamed to alus_sreg.
30688         * config/arm/arm-fixed.md: Change type of non-dsp instructions
30689         from alu_reg to alu_sreg.  Change type of dsp instructions from
30690         alu_reg to alu_dsp_reg.
30691         * config/arm/thumb1.md: Likewise.
30692         * config/arm/thumb2.md: Likewise.
30693         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
30694         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
30695         with alu_sreg and alus_sreg.
30696         * config/arm/arm1026ejs.md (alu_op): Likewise.
30697         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
30698         * config/arm/arm926ejs.md (9_alu_op): Likewise.
30699         * config/arm/fa526.md (526_alu_op): Likewise.
30700         * config/arm/fa606te.md (606te_alu_op): Likewise.
30701         * config/arm/fa626te.md (626te_alu_op): Likewise.
30702         * config/arm/fa726te.md (726te_alu_op): Likewise.
30703         * config/arm/fmp626.md (mp626_alu_op): Likewise.
30704         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
30705         alu_sreg, alu_dsp_reg and alus_sreg.
30706         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
30707         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30708         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30709         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
30710         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
30711         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30712         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30713         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30714         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
30715         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
30716         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
30717         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
30718         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
30719         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
30720         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
30721         alus_reg to alus_sreg.
30722
30723 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
30724
30725         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
30726         infinity format.
30727
30728 2014-07-17  Richard Biener  <rguenther@suse.de>
30729
30730         PR rtl-optimization/61801
30731         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
30732         don't set reg_pending_barrier if it appears in a debug-insn.
30733
30734 2014-07-16  DJ Delorie  <dj@redhat.com>
30735
30736         * config/rx/rx.c (rx_option_override): Fix alignment values.
30737         (rx_align_for_label): Likewise.
30738
30739 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
30740
30741         PR target/61737.
30742         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
30743         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
30744         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
30745         functions.
30746         (cris_print_index, cris_print_operand, cris_constant_index_p)
30747         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
30748         (cris_address_cost): Ditto last CONSTANT_P.
30749         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
30750         callers changed.  Yield cris_offsettable_symbol for non-PIC
30751         constant symbolic expressions including labels.  Yield cris_unspec
30752         for all unspecs.
30753         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
30754         target to pic_offset_table_rtx for calls that will likely go
30755         through PLT, const0_rtx when they can't.  All callers changed.
30756         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
30757         symbolic expressions to be PICified.  Remove second, redundant,
30758         assert on can_create_pseudo_p returning non-zero.  Use
30759         replace_equiv_address_nv, not replace_equiv_address, for final
30760         operand update.
30761         * config/cris/cris.md ("movsi"): Move variable t to pattern
30762         toplevel. Adjust assert for new cris_symbol_type member.  Use
30763         CONSTANT_P instead of CONSTANT_ADDRESS_P.
30764         ("*movsi_internal") <case 9>: Make check for valid unspec operands
30765         for lapc stricter.
30766         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
30767         ("call", "call_value"): Use second incoming operand as a marker
30768         for pic-offset-table-register being used.
30769         ("*expanded_call_non_v32", "*expanded_call_v32")
30770         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
30771         second incoming operand to CALL, match cris_call_type_marker.
30772         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
30773         ("*expanded_call_side"): Ditto.  Fix typo in comment.
30774         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
30775         CONSTANT_P.
30776         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
30777         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
30778         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
30779         users changed.  Add members cris_offsettable_symbol and cris_unspec.
30780         (cris_symbol_type): Rename from cris_pic_symbol_type.
30781         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
30782         just CONSTANT_P.
30783         * config/cris/cris-protos.h (cris_symbol_type_of,
30784         cris_expand_pic_call_address): Adjust prototypes.
30785         (cris_legitimate_constant_p): New prototype.
30786
30787         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
30788         an existing tmake_file.  Don't add t-slibgcc and t-linux.
30789
30790 2014-07-17  Jason Merrill  <jason@redhat.com>
30791
30792         PR c++/61623
30793         * symtab.c (symtab_remove_from_same_comdat_group): Also
30794         set_comdat_group to NULL_TREE.
30795         (verify_symtab): Fix diagnostic.
30796
30797 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
30798
30799         PR target/61662
30800         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
30801
30802 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
30803
30804         Support location tracking for built-in macro tokens
30805         * input.h (is_location_from_builtin_token): New function declaration.
30806         * input.c (is_location_from_builtin_token): New function definition.
30807         * toplev.c (general_init): Tell libcpp what the pre-defined
30808         spelling location for built-in tokens is.
30809
30810 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
30811
30812         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
30813         on the FUNCTION_DECL.
30814
30815 2014-07-16  Richard Biener  <rguenther@suse.de>
30816
30817         PR other/61782
30818         * doc/extend.texi (always_inline): Clarify.
30819
30820 2014-07-15  Eric Christopher  <echristo@gmail.com>
30821
30822         * doc/invoke.texi (Link Options): Document -z option.
30823
30824 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
30825
30826         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
30827         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
30828
30829 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
30830
30831         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
30832
30833 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
30834
30835         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
30836         varpool_assemble_decl.
30837         * varpool.c (varpool_assemble_decl): Assert that node->definition is
30838         true.
30839
30840 2014-07-15  Michael Matz  <matz@suse.de>
30841
30842         PR rtl-optimization/61772
30843         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
30844
30845 2014-07-15  Richard Biener  <rguenther@suse.de>
30846
30847         * opts.c (default_options_table): Disable bit-ccp at -Og.
30848
30849 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30850
30851         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
30852
30853 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30854
30855         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
30856         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
30857         call langhook for unknown declaration.
30858         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
30859         * tree.h (DECL_ARGUMENTS): Update.
30860         * print-tree.c (print_node): Update.
30861         * tree-core.h (tree_decl_non_common): Remove arguments.
30862         (tree_function_decl): Add arguments.
30863
30864 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
30865
30866         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
30867
30868 2014-07-14  Richard Biener  <rguenther@suse.de>
30869
30870         PR tree-optimization/61779
30871         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
30872         simplifying a condition.
30873
30874 2014-07-14  Richard Biener  <rguenther@suse.de>
30875
30876         * builtins.c (c_strlen): Make only_value == 2 really only
30877         affect warning generation.
30878
30879 2014-07-14  Richard Biener  <rguenther@suse.de>
30880
30881         PR tree-optimization/61757
30882         PR tree-optimization/61783
30883         PR tree-optimization/61787
30884         * tree-ssa-dom.c (record_equality): Revert canonicalization
30885         change and add comment.
30886         (propagate_rhs_into_lhs): Revert previous fix, removing
30887         loop depth restriction again.
30888
30889 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30890
30891         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
30892         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30893         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30894         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
30895         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30896         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30897         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30898
30899 2014-07-14  Richard Biener  <rguenther@suse.de>
30900
30901         * cgraph.h (decl_in_symtab_p): Make inline.
30902
30903 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
30904
30905         PR middle-end/61294
30906         * doc/invoke.texi (-Wmemset-transposed-args): Document.
30907
30908         PR target/61656
30909         * config/i386/i386.c (classify_argument): Don't merge classes above
30910         number of words.
30911
30912 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
30913
30914         * cgraph.h (symtab_node): Add nonzero_address.
30915         (decl_in_symtab_p): Break out from ...
30916         (symtab_get_node): ... here.
30917         * fold-const.c: Include cgraph.h
30918         (tree_single_nonzero_warnv_p): Use symtab to determine
30919         if symbol is non-zero.
30920         * symtab.c (symtab_node::nonzero_address): New method.
30921
30922 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30923
30924         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
30925         forgotten in previous commit.
30926
30927 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30928
30929         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
30930         on builtin types.
30931         * ipa-devirt.c: Include stor-layout.h and intl.h
30932         (odr_subtypes_equivalent_p): New function.
30933         (warn_odr): New function.
30934         (warn_type_mismatch): New function.
30935         (odr_types_equivalent_p): New function.
30936         (add_type_duplicate): Use it.
30937         * common.opt (Wodr): New flag.
30938         * doc/invoke.texi (Wodr): Document new warning.
30939
30940 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30941
30942         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
30943         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
30944         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
30945         (varpool_get_constructor): Push CTORS_IN timevar.
30946         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
30947
30948 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
30949
30950         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
30951         Remove VOID_FTYPE_PUSHORT.
30952         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
30953         Change code to USHORT_FTYPE_VOID.
30954         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
30955         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
30956         (ix86_atomic_assign_expand_fenv): Update for
30957         __builtin_ia32_fnstsw changes.
30958         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
30959         (fnstsw): Change operand 0 to nonimmediate operand.
30960
30961 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30962
30963         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
30964         (varpool_get_constructor): New function.
30965         (varpool_ctor_useable_for_folding_p): Break out from ...
30966         (ctor_for_folding): ... here; use varpool_get_constructor.
30967         (varpool_assemble_decl): Likewise.
30968         * lto-streamer.h (struct output_block): Turn cgraph_node
30969         to symbol filed.
30970         (lto_input_variable_constructor): Declare.
30971         * ipa-visibility.c (function_and_variable_visibility): Use
30972         varpool_get_constructor.
30973         * cgraph.h (varpool_get_constructor): Declare.
30974         (varpool_ctor_useable_for_folding_p): New function.
30975         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
30976         parameter; return error_mark_node for non-trivial constructors.
30977         (lto_write_tree_1, DFS_write_tree): Update use of
30978         get_symbol_initial_value.
30979         (output_function): Update initialization of symbol.
30980         (output_constructor): New function.
30981         (copy_function): Rename to ..
30982         (copy_function_or_variable): ... this one; handle vars too.
30983         (lto_output): Output variable sections.
30984         * lto-streamer-in.c (input_constructor): New function.
30985         (lto_read_body): Rename from ...
30986         (lto_read_body_or_constructor): ... this one; handle vars too.
30987         (lto_input_variable_constructor): New function.
30988         * ipa-prop.c (ipa_prop_write_jump_functions,
30989         ipa_prop_write_all_agg_replacement): Update.
30990         * lto-cgraph.c (compute_ltrans_boundary): Use it.
30991         (output_cgraph_opt_summary): Set symbol to NULL.
30992
30993 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30994
30995         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
30996         non-polymorphic types.
30997         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
30998         * ipa-devirt.c (types_same_for_odr): Do not explode when one
30999         of types is not polymorphic.
31000
31001 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
31002
31003         * lra-constraints.c (remove_inheritance_pseudos): Process
31004         destination pseudo too.
31005
31006 2014-07-11  Rong Xu  <xur@google.com>
31007
31008         * gcov-tool.c (gcov_output_files): Fix build error introduced in
31009         commit r212448.
31010
31011 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
31012
31013         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
31014         * config/avr/avr-devices.c (AVR_MCU): Same.
31015         (avr_mcu_types): add text start value to end of device list.
31016         * config/avr/avr-mcus.def: Add text section start for all devices.
31017         (ata5782): Add new avr5 device.
31018         (ata5831): Same.
31019         * config/avr/avr-tables.opt: Regenerate.
31020         * config/avr/avr.h: Add declaration for text section start handler.
31021         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
31022         SPEC functions.
31023         (LINK_SPEC): Include text section start handler to linker spec.
31024         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
31025         pass -Ttext option to linker if the text section start for the device
31026         is not zero.
31027         * config/avr/t-multilib: Regenerate.
31028         * doc/avr-mmcu.texi: Regenerate.
31029
31030 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
31031
31032         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
31033         * config/rs6000/aix52.h (LINK_SPEC): Same.
31034         * config/rs6000/aix53.h (LINK_SPEC): Same.
31035         * config/rs6000/aix61.h (LINK_SPEC): Same.
31036         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
31037
31038 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
31039
31040         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
31041         (graphite_verify): New function.
31042         (ivs_params_clear): New function.
31043         (gcc_expression_from_isl_ast_expr_id): New function.
31044         (gcc_expression_from_isl_expr_int): New function.
31045         (binary_op_to_tree): New function.
31046         (ternary_op_to_tree): New function.
31047         (unary_op_to_tree): New function.
31048         (nary_op_to_tree): New function.
31049         (gcc_expression_from_isl_expr_op): New function.
31050         (gcc_expression_from_isl_expression): New function.
31051         (graphite_create_new_loop): New function.
31052         (translate_isl_ast_for_loop): New function.
31053         (get_upper_bound): New function.
31054         (graphite_create_new_loop_guard): New function.
31055         (translate_isl_ast_node_for): New function.
31056         (translate_isl_ast): New function.
31057         (add_parameters_to_ivs_params): New function.
31058         (scop_to_isl_ast): New parameter ip.
31059         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
31060
31061 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
31062
31063         * config/xtensa/predicates.md (call expander): Update for
31064         DECL_SECTION_NAME being string.
31065
31066 2014-07-11  Richard Biener  <rguenther@suse.de>
31067
31068         PR middle-end/61473
31069         * builtins.c (fold_builtin_memory_op): Inline memory moves that
31070         can be implemented with a single load followed by a single store.
31071         (c_strlen): Only warn when only_value is not 2.
31072
31073 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
31074
31075         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
31076
31077 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
31078
31079         PR target/61561
31080         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
31081         (*movhi_bytes): Likewise.
31082         (*arm_movqi_insn): Likewise.
31083
31084 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
31085
31086         PR target/56858
31087         * config/alpha/alpha.c: Include tree-pass.h, context.h
31088         and pass_manager.h.
31089         (pass_data_handle_trap_shadows): New pass.
31090         (pass_handle_trap_shadows::gate): New pass gate function.
31091         (make_pass_handle_trap_shadows): New function.
31092         (rest_of_handle_trap_shadows): Ditto.
31093
31094         (alpha_align_insns_1): Rename from alpha_align_insns.
31095         (pass_data_align_insns): New pass.
31096         (pass_align_insns::gate): New pass gate function.
31097         (make_pass_aling_insns): New function.
31098         (rest_of_align_insns): Ditto.
31099         (alpha_align_insns): Ditto.
31100
31101         (alpha_option_override): Declare handle_trap_shadows info
31102         and align_insns_info.  Register handle_trap_shadows and align_insns
31103         passes here.
31104         (alpha_reorg): Do not call alpha_trap_shadows and
31105         alpha_align_insn from here.
31106
31107         (alpha_pad_function_end): Do not skip BARRIERs.
31108
31109 2014-07-10  Rong Xu  <xur@google.com>
31110
31111         Add gcov-tool: an offline gcda profile processing tool support.
31112         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
31113         (gcov_is_error): Ditto.
31114         (gcov_read_string): Ditto.
31115         (gcov_read_sync): Ditto.
31116         * gcov-io.h: Move counter defines to gcov-counter.def.
31117         * gcov-dump.c (tag_counters): Use gcov-counter.def.
31118         * coverage.c: Ditto.
31119         * gcov-tool.c: Offline gcda profile processing tool.
31120         (unlink_gcda_file): Remove one gcda file.
31121         (unlink_profile_dir): Remove gcda files from the profile path.
31122         (gcov_output_files): Output gcda files to an output dir.
31123         (profile_merge): Merge two profiles in directory.
31124         (print_merge_usage_message): Print merge usage.
31125         (merge_usage): Print merge usage and exit.
31126         (do_merge): Driver for profile merge sub-command.
31127         (profile_rewrite): Rewrite profile.
31128         (print_rewrite_usage_message): Print rewrite usage.
31129         (rewrite_usage): Print rewrite usage and exit.
31130         (do_rewrite): Driver for profile rewrite sub-command.
31131         (print_usage): Print gcov-info usage and exit.
31132         (print_version): Print gcov-info version.
31133         (process_args): Process arguments.
31134         (main): Main routine for gcov-tool.
31135         * Makefile.in: Build and install gcov-tool.
31136         * gcov-counter.def: New file split from gcov-io.h.
31137         * doc/gcc.texi: Include gcov-tool.texi.
31138         * doc/gcov-tool.texi: Document for gcov-tool.
31139
31140 2014-07-10  Richard Biener  <rguenther@suse.de>
31141
31142         PR tree-optimization/61757
31143         * tree-ssa-dom.c (loop_depth_of_name): Restore.
31144         (propagate_rhs_into_lhs): Revert part of last change.
31145
31146 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
31147
31148         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
31149         FUNCTION_DECLs.
31150
31151 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
31152
31153         PR middle-end/53590
31154         * function.c (allocate_struct_function): Revert r188667 change.
31155
31156         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
31157
31158 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
31159
31160         * doc/install.texi: Remove links to defunct package providers for
31161         Solaris.
31162
31163 2014-07-09  Tom de Vries  <tom@codesourcery.com>
31164
31165         * final.c (get_call_fndecl): Declare.
31166         (self_recursive_call_p): New function.
31167         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
31168
31169 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31170
31171         * ipa-devirt.c (record_node): Walk through aliases.
31172
31173 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31174
31175         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
31176
31177 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31178
31179         Revert:
31180         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31181
31182 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31183
31184         * ipa-visibility.c (function_and_variable_visibility): Remove
31185         temporary hack disabling local aliases on AIX.
31186
31187 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31188
31189         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
31190         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
31191
31192 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31193
31194         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
31195         * rs6000/rs6000.c: Inline output of .set instruction.
31196         (declare_alias_data): New struct.
31197         (rs6000_declare_alias): New function.
31198         (rs6000_xcoff_declare_function_name): Use it.
31199         (rs6000_xcoff_declare_object_name): New function.
31200         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
31201         (ASM_OUTPUT_DEF): Turn to empty definition.
31202
31203 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31204
31205         PR bootstrap/61679
31206         * hash-table.h: use hash_table::value_type instead of
31207         Descriptor::value_type in the return types of several methods.
31208
31209 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31210
31211         * tree-pass.h (pass_data): Remove has_execute member.
31212         * passes.c (execute_one_pass): Don't check pass->has_execute.
31213         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31214         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31215         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31216         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31217         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31218         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31219         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31220         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31221         gimple-low.c, gimple-ssa-isolate-paths.c,
31222         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31223         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
31224         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
31225         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
31226         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
31227         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31228         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
31229         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
31230         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
31231         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
31232         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
31233         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31234         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31235         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31236         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31237         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31238         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31239         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31240         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31241         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31242         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31243         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31244         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
31245         web.c: Remove initializer for pass_data::has_execute.
31246
31247 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31248
31249         * graphite-htab.h: Use hash_map instead of hash_table.
31250         * graphite-clast-to-gimple.c: Adjust.
31251         * passes.c: Use hash_map instead of hash_table.
31252         * sese.c: Likewise.
31253         * sese.h: Remove now unused code.
31254
31255 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
31256
31257         PR target/61599
31258         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
31259         than zero.
31260
31261 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31262
31263         PR rtl-optimization/61673
31264         * combine.c (simplify_comparison): Test just mode's sign bit
31265         in tmode rather than the sign bit and any bits above it.
31266
31267 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
31268
31269         * graphite-isl-ast-to-gimple.c (generate_isl_context):
31270         Add __isl_give to the declaration.
31271         (generate_isl_schedule): Likewise.
31272         (scop_to_isl_ast): Likewise.
31273
31274 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31275
31276         * config/arm/arm.c (cortexa5_extra_costs): New table.
31277         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31278
31279 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31280
31281         PR tree-optimization/61725
31282         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31283         range, use range_includes_zerop_p instead of integer_zerop on
31284         vr0->min, only use log2 of max if min is not negative.
31285
31286 2014-07-08  Richard Biener  <rguenther@suse.de>
31287
31288         * tree-ssa-dom.h (loop_depth_of_name): Remove.
31289         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31290         restriction on loop depth difference.
31291         (record_equality): Likewise.
31292         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
31293         (loop_depth_of_name): Remove.
31294         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31295         restriction on loop depth difference.
31296         (init_copy_prop): Likewise.
31297
31298 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31299
31300         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31301         parameter.
31302         (walk_aliased_vdefs): Likewise.
31303         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31304         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31305         (detect_type_change_from_memory_writes): Check if entry was reached.
31306
31307 2014-07-08  Richard Biener  <rguenther@suse.de>
31308
31309         PR tree-optimization/61681
31310         * tree-ssa-structalias.c (find_what_var_points_to): Expand
31311         NONLOCAL inside ESCAPED.
31312
31313 2014-07-08  Richard Biener  <rguenther@suse.de>
31314
31315         PR tree-optimization/61680
31316         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31317         Handle properly all read-write dependences with group accesses.
31318
31319 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
31320
31321         PR tree-optimization/61576
31322         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
31323         block containing reduction statement is predecessor of phi basi block.
31324
31325 2014-07-08  Marek Polacek  <polacek@redhat.com>
31326
31327         PR c/60226
31328         * fold-const.c (round_up_loc): Change the parameter type.
31329         Remove assert.
31330         * fold-const.h (round_up_loc): Adjust declaration.
31331         * stor-layout.c (finalize_record_size): Check for too large types.
31332
31333 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
31334
31335         * symtab.c: Include calls.h.
31336         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
31337
31338 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
31339
31340         * config/rs6000/rs6000.c (output_vec_const_move): Handle
31341         little-endian code generation.
31342         * config/rs6000/spe.md (spe_evmergehi): Rename to...
31343         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
31344         (spe_evmergehilo): Rename to...
31345         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
31346         (spe_evmergelo): Rename to...
31347         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
31348         (spe_evmergelohi): Rename to...
31349         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
31350         (spe_evmergehi, spe_evmergehilo): New expanders.
31351         (spe_evmergelo, spe_evmergelohi): Likewise.
31352         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
31353         (*frob_tf_ti): Likewise.
31354         (*frob_<mode>_di_2): Likewise.
31355         (*frob_tf_di_8_2): Likewise.
31356         (*frob_di_<mode>): Likewise.
31357         (*frob_ti_tf): Likewise.
31358         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
31359         (*frob_ti_<mode>_8_2): Likewise.
31360         (*frob_ti_tf_2): Likewise.
31361         (mov_si<mode>_e500_subreg0): Rename to...
31362         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
31363         endianness only.
31364         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
31365         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
31366         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
31367         the big endianness only.
31368         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
31369         (*mov_si<mode>_e500_subreg0_2): Rename to...
31370         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
31371         big big endianness only.
31372         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
31373         (*mov_si<mode>_e500_subreg4): Rename to...
31374         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
31375         endianness only.
31376         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
31377         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
31378         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
31379         the big endianness only.
31380         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
31381         pattern.
31382         (*mov_si<mode>_e500_subreg4_2): Rename to...
31383         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
31384         endianness only.
31385         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
31386         (*mov_sitf_e500_subreg8): Rename to...
31387         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
31388         endianness only.
31389         (*mov_sitf_e500_subreg8_le): New instruction pattern.
31390         (*mov_sitf_e500_subreg8_2): Rename to...
31391         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
31392         endianness only.
31393         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
31394         (*mov_sitf_e500_subreg12): Rename to...
31395         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
31396         endianness only.
31397         (*mov_sitf_e500_subreg12_le): New instruction pattern.
31398         (*mov_sitf_e500_subreg12_2): Rename to...
31399         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
31400         endianness only.
31401         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
31402
31403 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31404
31405         * asan.c (instrument_strlen_call): Do not instrument first byte
31406         in strlen if already instrumented.
31407
31408 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31409
31410         * config/arm/arm.opt (mwords-little-endian): Delete.
31411         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
31412         of TARGET_LITTLE_WORDS.
31413         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
31414         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
31415         warning.
31416         * doc/invoke.texi: Remove references to -mwords-little-endian.
31417
31418 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
31419
31420         * expmed.c (struct init_expmed_rtl): Change all fields but
31421         pow2 and cint from struct rtx_def to rtx.
31422         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
31423         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
31424         at the end again.
31425
31426 2014-07-06  Marek Polacek  <polacek@redhat.com>
31427
31428         PR c/6940
31429         * doc/invoke.texi: Document -Wsizeof-array-argument.
31430
31431 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
31432
31433         * wide-int.h (wide_int_storage): Change declaration from struct
31434         to class.
31435
31436 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
31437
31438         * cgraph.c (cgraph_create_indirect_edge): Update call of
31439         get_polymorphic_call_info.
31440         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
31441         (possible_polymorphic_call_targets): Add parameter call.
31442         (decl_maybe_in_construction_p): New predicate.
31443         (get_polymorphic_call_info): Add parameter call;
31444         use decl_maybe_in_construction_p.
31445         * gimple-fold.c (fold_gimple_assign): Update use of
31446         possible_polymorphic_call_targets.
31447         (gimple_fold_call): Likewise.
31448         * ipa-prop.c: Inlcude calls.h
31449         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
31450         (param_type_may_change_p): New predicate.
31451         (detect_type_change_from_memory_writes): Break out from ...
31452         (detect_type_change): ... this one; use param_type_may_change_p.
31453         (detect_type_change_ssa): Use param_type_may_change_p.
31454         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
31455
31456 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
31457
31458         PR target/49423
31459         * config/arm/arm-protos.h (arm_legitimate_address_p,
31460         arm_is_constant_pool_ref): Add prototypes.
31461         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
31462         (arm_is_constant_pool_ref) New function.
31463         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
31464         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
31465         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
31466         operand. Remove pool_range and neg_pool_range attributes.
31467         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
31468         pool_range and neg_pool_range attributes.
31469         * config/arm/constraints.md (Uh): New constraint.
31470         (Uq): Don't allow constant pool references.
31471
31472 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
31473
31474         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
31475         (move_lo_quad_internal_be_<mode>): Likewise.
31476         (move_lo_quad_<mode>): Convert to define_expand.
31477         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
31478         (aarch64_simd_move_hi_quad_be_<mode>): New.
31479         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
31480         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
31481         (aarch64_combinez_be<mode>): New.
31482         (aarch64_combine<mode>): Convert to define_expand.
31483         (aarch64_combine_internal<mode>): New.
31484         (aarch64_simd_combine<mode>): Remove bogus RTL description.
31485
31486 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31487
31488         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
31489         combination of earlyclobber and read/write modifiers.
31490
31491 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31492
31493         * config/aarch64/aarch64-simd.md
31494         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
31495
31496 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
31497
31498         PR target/61714
31499         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
31500
31501 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
31502
31503         PR middle-end/61654
31504         * cgraphunit.c (expand_thunk): Call free_dominance_info.
31505
31506         PR tree-optimization/61684
31507         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
31508         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
31509
31510 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31511             Kito Cheng  <kito@0xlab.org>
31512             Monk Chiang  <sh.chiang04@gmail.com>
31513
31514         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
31515         (nds32_symbol_load_store_p): Move to ...
31516         (nds32_fp_as_gp_check_available): Move to ...
31517         * config/nds32/nds32-fp-as-gp.c: ... here.
31518         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
31519         extern declaration.
31520
31521 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31522             Kito Cheng  <kito@0xlab.org>
31523             Monk Chiang  <sh.chiang04@gmail.com>
31524
31525         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
31526         (nds32_expand_store_multiple): Move to ...
31527         (nds32_expand_movmemqi): Move to ...
31528         * config/nds32/nds32-memory-manipulation.c: ... here.
31529
31530 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31531             Kito Cheng  <kito@0xlab.org>
31532             Monk Chiang  <sh.chiang04@gmail.com>
31533
31534         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
31535         (nds32_output_casesi_pc_relative): Move to ...
31536         (nds32_output_casesi): Move to ...
31537         (nds32_mem_format): Move to ...
31538         (nds32_output_16bit_store): Move to ...
31539         (nds32_output_16bit_load): Move to ...
31540         (nds32_output_32bit_store): Move to ...
31541         (nds32_output_32bit_load): Move to ...
31542         (nds32_output_32bit_load_s): Move to ...
31543         (nds32_output_stack_push): Move to ...
31544         (nds32_output_stack_pop): Move to ...
31545         * config/nds32/nds32-md-auxiliary.c: ... here.
31546
31547 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31548             Ling-Hua Tseng  <uranus@tinlans.org>
31549
31550         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
31551         the purpose of this file.
31552
31553 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31554             Kito Cheng  <kito@0xlab.org>
31555             Monk Chiang  <sh.chiang04@gmail.com>
31556
31557         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
31558         (nds32_address_cost): Move implementation to ...
31559         * config/nds32/nds32-cost.c: ... here.
31560         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
31561         (nds32_address_cost_impl): Declare.
31562
31563 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31564             Kito Cheng  <kito@0xlab.org>
31565             Monk Chiang  <sh.chiang04@gmail.com>
31566
31567         * config/nds32/nds32.c
31568         (nds32_consecutive_registers_load_store_p): Move to ...
31569         (nds32_valid_multiple_load_store): Move to ...
31570         (nds32_valid_stack_push_pop): Move to ...
31571         (nds32_can_use_bclr_p): Move to ...
31572         (nds32_can_use_bset_p): Move to ...
31573         (nds32_can_use_btgl_p): Move to ...
31574         (nds32_can_use_bitci_p): Move to ...
31575         * config/nds32/nds32-predicates.c: ... here.
31576
31577 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31578             Kito Cheng  <kito@0xlab.org>
31579             Monk Chiang  <sh.chiang04@gmail.com>
31580
31581         * config/nds32/nds32.c
31582         (nds32_expand_builtin_null_ftype_reg): Move to ...
31583         (nds32_expand_builtin_reg_ftype_imm): Move to ...
31584         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
31585         (nds32_init_builtins): Move implementation to ...
31586         (nds32_expand_builtin): Move implementation to ...
31587         * config/nds32/nds32-intrinsic.c: ... here.
31588         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
31589         (nds32_expand_builtin_impl): Declare.
31590
31591 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31592             Kito Cheng  <kito@0xlab.org>
31593             Monk Chiang  <sh.chiang04@gmail.com>
31594
31595         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
31596         (nds32_emit_section_tail_template): Move to ...
31597         (nds32_emit_isr_jmptbl_section): Move to ...
31598         (nds32_emit_isr_vector_section): Move to ...
31599         (nds32_emit_isr_reset_conten): Move to ...
31600         (nds32_check_isr_attrs_conflict): Move to ...
31601         (nds32_construct_isr_vectors_information): Move to ...
31602         (nds32_asm_file_start): Move implementation to ...
31603         (nds32_asm_file_end): Move implementation to ...
31604         * config/nds32/nds32-isr.c: ... here.
31605         * config/nds32/nds32-protos.h
31606         (nds32_check_isr_attrs_conflict): Declare.
31607         (nds32_construct_isr_vectors_information): Declare.
31608         (nds32_asm_file_start_for_isr): Declare.
31609         (nds32_asm_file_end_for_isr): Declare.
31610
31611 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31612             Kito Cheng  <kito@0xlab.org>
31613             Monk Chiang  <sh.chiang04@gmail.com>
31614
31615         * config.gcc (nds32*): Add new modules to extra_objs.
31616         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
31617         (nds32be-*-*): Likewise.
31618         * config/nds32/nds32-cost.c: New file.
31619         * config/nds32/nds32-fp-as-gp.c: New file.
31620         * config/nds32/nds32-intrinsic.c: New file.
31621         * config/nds32/nds32-isr.c: New file.
31622         * config/nds32/nds32-md-auxiliary.c: New file.
31623         * config/nds32/nds32-memory-manipulation.c: New file.
31624         * config/nds32/nds32-pipelines-auxiliary.c: New file.
31625         * config/nds32/nds32-predicates.c: New file.
31626         * config/nds32/t-nds32: New file.
31627
31628 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31629
31630         PR tree-optimization/61682
31631         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
31632         using cases and when one of the operands is equal to 1.
31633
31634 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
31635
31636         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
31637         ashr<mode>3): Correct mode of operands[2].
31638         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
31639         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
31640         Correct mode of operands[2].  Fix split condition.
31641
31642 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
31643
31644         * arm.md (arch): Add armv6_or_vfpv3.
31645         (arch_enabled): Add test for the above.
31646         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
31647         on VFP9.
31648         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
31649
31650 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31651
31652         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
31653         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
31654         HWI 1 and negate the unsigned value.
31655         * expmed.c (expand_sdiv_pow2): For modes wider than word always
31656         use AND instead of shift.
31657         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
31658
31659 2014-07-03  Marek Polacek  <polacek@redhat.com>
31660
31661         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
31662         (-fsanitize=float-divide-by-zero): Move to the table with
31663         -fsanitize=undefined suboptions.
31664         (-fsanitize=float-cast-overflow): Likewise.
31665
31666 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
31667
31668         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
31669         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
31670         endianness.
31671
31672 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31673
31674         * loop-invariant.c (struct invariant): Add a new member: eqno;
31675         (find_identical_invariants): Update eqno;
31676         (create_new_invariant): Init eqno;
31677         (get_inv_cost): Compute comp_cost with eqno;
31678
31679 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
31680
31681         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
31682         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
31683         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
31684         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
31685         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
31686
31687 2014-07-02  Christian Bruel  <christian.bruel@st.com>
31688
31689         PR target/29349
31690         PR target/53513
31691         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
31692         (make_preds_opaque): Delete.
31693         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
31694         (commit_mode_sets): New function.
31695         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
31696         Process all modes at once.
31697         * basic-block.h (pre_edge_lcm_avs): Declare.
31698         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
31699         Call clear_aux_for_edges. Fix comments.
31700         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
31701         (pre_edge_rev_lcm): Idem.
31702         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
31703         parameter.
31704         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
31705         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
31706         Idem.
31707         * config/i386/i386.c (x96_emit_mode_set): Idem.
31708         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
31709         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
31710         (fpscr_toggle) Disallow from delay slot.
31711         * target.def (emit_mode_set): Add prev_mode parameter.
31712         * doc/tm.texi: Regenerate.
31713
31714 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31715
31716         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
31717         variable i.
31718
31719 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31720
31721         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
31722         vtable_pointer_value_to_vtable): Constify.
31723         (contains_polymorphic_type_p): Declare.
31724         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
31725         vtable_pointer_value_to_vtable): Constify.
31726         (contains_polymorphic_type_p): New predicate.
31727         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
31728         polymorphic types.
31729         (ipa_set_ancestor_jf): Likewise.
31730         (detect_type_change): Return false in easy cases.
31731         (compute_complex_assign_jump_func): Require type to contain
31732         polymorphic type.
31733         (compute_known_type_jump_func): Likewise.
31734
31735 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31736
31737         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
31738         Remove.
31739         (type_in_anonymous_namespace_p): Constify argument.
31740         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
31741         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
31742         (main_odr_variant): New function.
31743         (hash_type_name): Make static; update assert; do not ICE on
31744         non-records.
31745         (types_same_for_odr): Bring here from tree.c; simplify and remove
31746         old structural comparing code that doesn't work for templates.
31747         (odr_hasher::equal): Update assert.
31748         (add_type_duplicate): Return true when bases should be computed;
31749         replace incomplete loader by complete; do not output duplicated
31750         warnings; do not ICE on non-records; set odr_violated flag.
31751         (get_odr_type): Be ready to replace incomplete type by complete
31752         one; work on ODR variants instead of main variants; reorder item
31753         in array so bases have still smaller indexes.
31754         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
31755         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
31756
31757 2014-07-01  Cary Coutant  <ccoutant@google.com>
31758
31759         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
31760         lookup.
31761         (resolve_addr_in_expr): When replacing the rtx in a location list
31762         entry, get a new address table entry.
31763         (dwarf2out_finish): Call index_location_lists even if there are no
31764         addr_index_table entries yet.
31765
31766 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31767
31768         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
31769         change for not being obvious.
31770
31771 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31772
31773         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
31774         unused argument.
31775
31776 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31777
31778         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
31779         (vcagt_f64): Likewise.
31780         (vcale_f64): Likewise.
31781         (vcaled_f64): Likewise.
31782         (vcales_f32): Likewise.
31783         (vcalt_f64): Likewise.
31784         (vcaltd_f64): Likewise.
31785         (vcalts_f32): Likewise.
31786
31787 2014-07-01  Marek Polacek  <polacek@redhat.com>
31788
31789         * doc/invoke.texi: Document -Wint-conversion.
31790
31791 2014-07-01  Marek Polacek  <polacek@redhat.com>
31792
31793         PR c/58286
31794         * doc/invoke.texi: Document -Wincompatible-pointer-types.
31795
31796 2014-07-01  Martin Liska  <mliska@suse.cz>
31797
31798         IPA REF alias refactoring
31799         * cgraph.h (iterate_direct_aliases): New function.
31800         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
31801         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
31802         FOR_EACH_ALIAS added.
31803         (cgraph_for_node_and_aliases): Likewise.
31804         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
31805         * ipa-inline.c (reset_edge_caches): Likewise.
31806         (update_caller_keys): Likewise.
31807         * trans-mem.c (ipa_tm_execute): Likewise.
31808         *varpool.c (varpool_analyze_node): Likewise.
31809         (varpool_for_node_and_aliases): Likewise.
31810         * ipa-ref.h (first_alias): New function.
31811         (last_alias): Likewise.
31812         (has_aliases_p): Likewise.
31813         * ipa-ref.c (ipa_ref::remove_reference): Removal function
31814         is sensitive to IPA_REF_ALIASes.
31815         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
31816         are put at the beginning of the list.
31817         (symtab_node::iterate_direct_aliases): New function.
31818
31819 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31820
31821         Revert:
31822         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31823         type is complete.
31824         (write_ts_type_common_tree_pointers): Do not stream fields not set
31825         for incomplete types; do not stream duplicated fields for variants;
31826         sanity check that variant and type match.
31827         (write_ts_type_non_common_tree_pointers): Likewise.
31828         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31829         TYPE_SIZE whether type is complete.
31830         (lto_input_ts_type_common_tree_pointers): Do same changes as in
31831         write_ts_type_common_tree_pointers
31832         (lto_input_ts_type_non_common_tree_pointers): Likewise.
31833
31834 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
31835
31836         * var-tracking.c (add_stores): Return instead of asserting if old
31837         and new values for conditional store are the same.
31838
31839 2014-06-30  Richard Henderson  <rth@redhat.com>
31840
31841         PR rtl-opt/61608
31842         PR target/39284
31843         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
31844         the cfg if there were any changes.
31845         * passes.def: Revert move of peephole2 after reorder_blocks;
31846         move duplicate_computed_gotos before peephole2.
31847
31848 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
31849
31850         * except.c (emit_note_eh_region_end): New helper function.
31851         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
31852         emit EH_REGION_END note.
31853         * jump.c (cleanup_barriers): Do not split a call and its
31854         corresponding CALL_ARG_LOCATION note.
31855
31856 2014-06-30  Jeff Law  <law@redhat.com>
31857
31858         PR tree-optimization/61607
31859         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
31860         deeper into the SSA_NAME_VALUE chain.
31861
31862 2014-06-30  Marek Polacek  <polacek@redhat.com>
31863
31864         * convert.c (convert_to_integer): Don't instrument conversions if the
31865         function has no_sanitize_undefined attribute.
31866         * ubsan.c: Don't run the ubsan pass if the function has
31867         no_sanitize_undefined attribute.
31868
31869 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31870
31871         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
31872         -fsanitize=undefined suboptions.
31873
31874 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
31875
31876         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
31877         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
31878         against bigendian and adjust indices.
31879
31880 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31881
31882         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
31883
31884 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
31885
31886         PR target/61633
31887         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
31888         Add alternative; make early clobber.  Adjust both split patterns
31889         to use operand 0 as the working register.
31890
31891 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31892
31893         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
31894         as ira_object_id_map might be NULL, or 1.
31895
31896 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31897
31898         * loop-invariant.c (get_inv_cost): Handle register class.
31899         (gain_for_invariant): Check the register pressure of the inv
31900         and its overlapped register class, other than all.
31901
31902 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31903
31904         * doc/invoke.texi (Optimize Options): Fix descriptions of
31905         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
31906
31907 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
31908
31909         * doc/extend.texi (Function Attributes): Update 'naked' attribute
31910         documentation.
31911
31912 2014-06-29  Tobias Grosser <tobias@grosser.es>
31913
31914         PR bootstrap/61650
31915         * graphite-isl-ast-to-gimple.c: Add missing guards.
31916
31917 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31918
31919         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
31920         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
31921         * flag-types.h: Add new enum fgraphite_generator.
31922         * graphite-isl-ast-to-gimple.c: New.
31923         * graphite-isl-ast-to-gimple.h: New.
31924         * graphite.c (graphite_transform_loops): Add choice of Graphite
31925         code generator, which depends on flag_graphite_code_gen.
31926
31927 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31928
31929         * graphite-dependences.c (subtract_commutative_associative_deps):
31930         Add NULL checking of the following variables: must_raw_no_source,
31931         may_raw_no_source, must_war_no_source, may_war_no_source,
31932         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
31933         must_war, may_war, must_waw, may_waw.
31934
31935 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31936
31937         * graphite-clast-to-gimple.c: gloog is renamed to
31938         graphite_regenerate_ast_cloog.  gloog_error is renamed to
31939         graphite_regenerate_error.
31940         * graphite-clast-to-gimple.h: The definition of the struct
31941         bb_pbb_def is moved to graphite-htab.h.
31942         Add inclusion of the hash-table.h.
31943         * graphite-htab.h: The declaration of the function gloog is moved
31944         to graphite-clast-to-gimple.h and renamed to
31945         graphite_regenerate_ast_cloog.
31946         * graphite.c (graphite_transform_loops): gloog is renamed
31947         to graphite_regenerate_ast_cloog.
31948
31949 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31950
31951         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31952         type is complete.
31953         (write_ts_type_common_tree_pointers): Do not stream fields not set
31954         for incomplete types; do not stream duplicated fields for variants;
31955         sanity check that variant and type match.
31956         (write_ts_type_non_common_tree_pointers): Likewise.
31957         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31958         TYPE_SIZE whether type is complete.
31959         (lto_input_ts_type_common_tree_pointers): Do same changes as in
31960         write_ts_type_common_tree_pointers
31961         (lto_input_ts_type_non_common_tree_pointers): Likewise.
31962
31963 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31964
31965         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
31966
31967 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31968
31969         * tree-inline.c (remap_type_1): Do not duplicate fields
31970         that are shared in between type and its main variant.
31971
31972 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31973
31974         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
31975         of the type.
31976         (ipa_set_ancestor_jf) Likewise.
31977         (check_stmt_for_type_change): Check that we work on main variant.
31978         (detect_type_change): Look into main variant.
31979         (compute_known_type_jump_func): Check that main variant has BINFO.
31980
31981 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31982
31983         * ipa-devirt.c (set_type_binfo): New function.
31984         (add_type_duplicate): Use it.
31985         (get_odr_type): Sanity check that binfos points to main variants.
31986         (get_class_context): Be sure the context's outer_type is main variant.
31987         (contains_type_p): Walk main variant.
31988         (get_polymorphic_call_info_for_decl): Set outer_type to be
31989         main variant.
31990         (get_polymorphic_call_info): Likewise.
31991         (possible_polymorphic_call_targets): Sanity check that we operate
31992         on main variant.
31993
31994 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31995
31996         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31997
31998 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31999
32000         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
32001         accidental change due to wide-int branch merge.
32002
32003 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32004
32005         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
32006         compressed debug support.
32007         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
32008         * configure: Regenerate.
32009         * config.in: Regenerate.
32010         * common.opt (compressed_debug_sections): New enum.
32011         (gz, gz=): New options.
32012         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
32013         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
32014         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
32015         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
32016         LINK_COMPRESS_DEBUG_SPEC.
32017         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
32018         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
32019         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
32020         (Debugging Options): Document -gz[=type].
32021
32022 2014-06-27  Martin Jambor  <mjambor@suse.cz>
32023
32024         PR ipa/61160
32025         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
32026         args_to_skip, use those from node instead.  Copy args_to_skip and
32027         combined_args_to_skip from node to the new thunk.
32028         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
32029         (cgraph_create_virtual_clone): Moved computation of
32030         combined_args_to_skip...
32031         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
32032
32033 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
32034
32035         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
32036         redundant diagnostic machinary.
32037
32038 2014-06-27  Richard Biener  <rguenther@suse.de>
32039
32040         * tree-ssa-math-opts.c (bswap_replace): Fix
32041         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
32042
32043 2014-06-27  Martin Liska  <mliska@suse.cz>
32044
32045         * gimple.h (gimple_location_safe): New function introduced.
32046         * cgraphunit.c (walk_polymorphic_call_targets): Usage
32047         of gimple_location_safe replaces gimple_location.
32048         (gimple_fold_call): Likewise.
32049         * ipa-devirt.c (ipa_devirt): Likewise.
32050         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
32051         * ipa.c (walk_polymorphic_call_targets): Likewise.
32052         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
32053
32054 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
32055
32056         PR tree-optimization/57233
32057         PR tree-optimization/61299
32058         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
32059         functions.
32060         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
32061         would be lowered to scalar shifts, check if corresponding
32062         shifts and vector BIT_IOR_EXPR are supported and don't lower
32063         or lower just to narrower vector type in that case.
32064         * expmed.c (expand_shift_1): Fix up handling of vector
32065         shifts and rotates.
32066
32067 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
32068
32069         PR target/61586
32070         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
32071
32072 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
32073
32074         * doc/invoke.texi (-fsemantic-interposition): Document.
32075         * common.opt (fsemantic-interposition): New flag.
32076         * varasm.c (decl_replaceable_p): Use it.
32077
32078 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
32079
32080         PR target/61542
32081         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
32082         extraction other than index 3.
32083
32084 2014-06-26  Teresa Johnson  <tejohnson@google.com>
32085
32086         * doc/invoke.texi: Fix typo.
32087         * dumpfile.c: Add support for documented -fdump-* options
32088         optimized/missed/note/optall.
32089
32090 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32091
32092         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
32093         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
32094         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
32095         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
32096         * opts.c (default_options_optimization): Set
32097         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
32098         * doc/invoke.texi (allow-load-data-races)
32099         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
32100         (allow-store-data-races): Document the new default.
32101
32102 2014-06-26  Martin Jambor  <mjambor@suse.cz>
32103
32104         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
32105         renamed to ipa_impossible_devirt_target.  Fix typo.
32106         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
32107         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
32108         ipa_impossible_devirt_target.
32109
32110 2014-06-26  Richard Biener  <rguenther@suse.de>
32111
32112         PR tree-optimization/61607
32113         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
32114         explaining why we restrict copies on loop depth.
32115         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32116         on loop depth.
32117         (record_equivalences_from_phis): Instead add it here.
32118
32119 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
32120
32121         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
32122         (LTO_WRAPPER_OBJS): New variable.
32123         (lto-wrapper$(exeext)): Use it.
32124         * collect2.c: Include "collect-utils.h".
32125         (verbose, debug): Remove variables.
32126         (at_file_supplied): No longer static.
32127         (tool_name): New variable.
32128         (do_wait, fork_execute, maybe_unlink): Don't declare.
32129         (tool_cleanup): No longer static.
32130         (notice): Remove function.
32131         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
32132         fork_execute calls.
32133         (collect_wait, do_wait, collect_execute): Remove functions.
32134         (maybe_unlink): No longer static.
32135         * collect2.h (verbose, debug): Don't declare.
32136         (at_file_supplied): Declare.
32137         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
32138         changed.
32139         (collect_execute): Replace with implementation from collect2, plus a
32140         new arg use_atfile.  All callers changed.
32141         (collect_wait): Replace with implementation from collect2.
32142         (maybe_unlink_file): Remove function.
32143         (fork_execute): Replace with implementation from collect2, plus a
32144         new arg use_atfile.  All callers changed.
32145         (do_wait): Add call to utils_cleanup to the error path.
32146         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
32147         (tool_cleanup): Adjust declarations.
32148         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
32149         * tlink.c: Include "collect-utils.h".
32150         (tlink_execute): New arg use_atfile.  All callers changed.
32151         (tlink_init, tlink_execute): Remove declarations.
32152
32153         * collect-utils.c (save_temps): New variable.
32154         (do_wait): Use it instead of debug.  Use fatal_error.
32155         * collect-utils.h (save_temps): Declare.
32156         * collect2.c (verbose): Rename from vflag.  All uses changed.
32157         (tool_cleanup): New function, copied from collect_atexit.
32158         (collect_atexit, handler): Just call it.
32159         * collect2.h (verbose): Declaration renamed from vflag.
32160         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
32161         debug.
32162
32163         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
32164         (lto-wrapper$(exeext)): Link with collect-utils.o.
32165         * collect-utils.c: New file.
32166         * collect-utils.h: New file.
32167         * lto-wrapper.c: Include "collect-utils.h".
32168         (args_name): Delete variable.
32169         (tool_name): New variable.
32170         (tool_cleanup): New function.
32171         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
32172         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
32173         (fork_execute): Remove functions.
32174
32175 2014-06-26  Nick Clifton  <nickc@redhat.com>
32176
32177         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
32178
32179         * doc/extend.texi (Function Attributes): Fix typo in description
32180         of RX vector attribute.
32181
32182 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
32183
32184         * config.gcc (supported_defaults): Error when passing either
32185         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
32186
32187 2014-06-26  Richard Biener  <rguenther@suse.de>
32188
32189         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32190         propagating volatile pointers.
32191
32192 2014-06-26  Richard Biener  <rguenther@suse.de>
32193
32194         PR tree-optimization/61607
32195         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
32196         loop if we redirected its latch edge.
32197         (thread_block_1): Do not cancel loops prematurely.
32198
32199 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
32200
32201         * toplev.c (backend_init_target): Move init_emit_regs and
32202         init_regs to...
32203         (backend_init) ... here; skip ira_init_once and backend_init_target.
32204         (target_reinit) ... and here; clear
32205         this_target_rtl->lang_dependent_initialized.
32206         (lang_dependent_init_target): Clear
32207         this_target_rtl->lang_dependent_initialized;
32208         break out rtl initialization to ...
32209         (initialize_rtl): ... here; call also backend_init_target
32210         and ira_init_once.
32211         * toplev.h (initialize_rtl): New function.
32212         * function.c: Include toplev.h
32213         (init_function_start): Call initialize_rtl.
32214         * rtl.h (target_rtl): Add target_specific_initialized,
32215         lang_dependent_initialized.
32216
32217 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
32218             Jakub Jelinek  <jakub@redhat.com>
32219
32220         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
32221
32222 2014-06-25  Tom de Vries  <tom@codesourcery.com>
32223
32224         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
32225
32226 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32227
32228         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
32229         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
32230         Issue a strict overflow warning if appropriate.
32231
32232 2014-06-25  Martin Liska  <mliska@suse.cz>
32233
32234         IPA REF refactoring
32235         * Makefile.in: Removed header file (ipa-ref-inline.h).
32236         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
32237         called.
32238         (cgraph_speculative_call_info): Likewise.
32239         (cgraph_for_node_thunks_and_aliases): Likewise.
32240         (cgraph_for_node_and_aliases): Likewise.
32241         (verify_cgraph_node): Likewise.
32242         * cgraph.h: Batch of IPA REF functions become member functions of
32243         symtab_node: add_reference, maybe_add_reference, clone_references,
32244         clone_referring, clone_reference, find_reference,
32245         remove_stmt_references, remove_all_references,
32246         remove_all_referring, dump_references, dump_referring,
32247         has_alias_p, iterate_reference, iterate_referring.
32248         * cgraphbuild.c (record_reference): New IPA REF function used.
32249         (record_type_list): Likewise.
32250         (record_eh_tables): Likewise.
32251         (mark_address): Likewise.
32252         (mark_load): Likewise.
32253         (mark_store): Likewise.
32254         (pass_build_cgraph_edges): Likewise.
32255         (rebuild_cgraph_edge): Likewise.
32256         (cgraph_rebuild_references): Likewise.
32257         (pass_remove_cgraph_callee_edges): Likewise.
32258         * cgraphclones.c (cgraph_clone_node): Likewise.
32259         (cgraph_create_virtual_clone): Likewise.
32260         (cgraph_materialize_clone): Likewise.
32261         (cgraph_materialize_all_clones): Likewise.
32262         * cgraphunit.c (cgraph_reset_node): Likewise.
32263         (cgraph_reset_node): Likewise.
32264         (analyze_function): Likewise.
32265         (assemble_thunks_and_aliases): Likewise.
32266         (expand_function): Likewise.
32267         * ipa-comdats.c (propagate_comdat_group): Likewise.
32268         (enqueue_references): Likewise.
32269         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32270         (create_specialized_node): Likewise.
32271         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32272         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32273         * ipa-inline.c (reset_edge_caches): Likewise.
32274         (update_caller_keys): Likewise.
32275         (execute): Likewise.
32276         * ipa-prop.c (remove_described_reference): Likewise.
32277         (propagate_controlled_uses): Likewise.
32278         (ipa_edge_duplication_hook): Likewise.
32279         (ipa_modify_call_arguments): Likewise.
32280         * ipa-pure-const.c (propagate_pure_const): Likewise.
32281         * ipa-ref-inline.h: Header file removed, functions moved
32282         to symtab_node class.
32283         * ipa-ref.c (remove_reference): New class member function.
32284         (cannot_lead_to_return): New class member function.
32285         (referring_ref_list): Likewise.
32286         (referred_ref_list): Likewise.
32287         Rest of functions moved to symtab_node class.
32288         * ipa-ref.h: New member functions remove_reference,
32289         cannot_lead_to_return, referring_ref_list, referred_ref_list added
32290         to ipa_ref class.
32291         ipa_ref_list class has new member functions: first_reference,
32292         first_referring, clear, nreferences.
32293         * ipa-reference.c (analyze_function): New IPA REF function used.
32294         (write_node_summary_p): Likewise.
32295         (ipa_reference_write_optimization_summary): Likewise.
32296         * ipa-split.c (split_function): Likewise.
32297         * ipa-utils.c (ipa_reverse_postorder): Likewise.
32298         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32299         (function_and_variable_visibility): Likewise.
32300         * ipa.c (has_addr_references_p): Likewise.
32301         (process_references): Argument type changed.
32302         (symtab_remove_unreachable_nodes): New IPA REF function used.
32303         (process_references): Likewise.
32304         (set_writeonly_bit): Likewise.
32305         * lto-cgraph.c: Implementation of new symtab_node member functions
32306         that uses new IPA REF functions.
32307         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32308         function used.
32309         * lto-streamer-out.c (output_symbol_p): Likewise.
32310         * lto-streamer.h (referenced_from_this_partition_p): Argument type
32311         changed.
32312         * symtab.c: Implementation of new IPA REF API.
32313         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
32314         (ipa_tm_create_version): Likewise.
32315         (ipa_tm_execute): Likewise.
32316         * tree-emutls.c (gen_emutls_addr): Likewise.
32317         * tree-inline.c (copy_bb): Likewise.
32318         (delete_unreachable_blocks_update_callgraph): Likewise.
32319         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
32320         (varpool_for_node_and_aliases): Likewise.
32321
32322 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32323
32324         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
32325
32326 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32327
32328         PR bootstrap/61598
32329         * fold-const.c (fold_checksum_tree): Use a hash_table of const
32330         tree_node * instead of tree_node *.
32331         (fold): Adjust.
32332         (print_fold_checksum): Likewise.
32333         (fold_check_failed): Likewise.
32334         (debug_fold_checksum): Likewise.
32335         (fold_build1_stat_loc): Likewise.
32336         (fold_build2_stat_loc): Likewise.
32337         (fold_build3_stat_loc): Likewise.
32338         (fold_build_call_array_loc): Likewise.
32339
32340 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
32341
32342         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
32343         implementation with call to...
32344         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
32345         function.
32346         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
32347         Declare.
32348
32349 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
32350
32351         PR tree-optimization/57742
32352         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
32353         after replacing the statement.
32354
32355 2014-06-25  Nick Clifton  <nickc@redhat.com>
32356
32357         * config/v850/v850.c (GHS_default_section_names): Change to const
32358         char * type.
32359         (GHS_current_section_names): Likewise.
32360         (v850_insert_attributes): Do not build strings, just assign the
32361         names directly.  Change the type of 'chosen_section' to const
32362         char*.
32363         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
32364         directly to the array entry.
32365         * config/v850/v850.h (GHS_default_section_names): Change to const
32366         char * type.
32367         (GHS_current_section_names): Likewise.
32368
32369 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
32370
32371         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
32372         (LANG_HOOKS_DECLS): Add it.
32373         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
32374         has correct type.
32375         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
32376         * langhooks.h (struct lang_hooks_for_decls): Add
32377         omp_clause_linear_ctor hook.
32378         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
32379         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
32380         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
32381         combined simd loop use omp_clause_linear_ctor hook.
32382
32383 2014-06-24  Cong Hou  <congh@google.com>
32384
32385         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
32386         pattern recognition.
32387         (type_conversion_p): PROMOTION is true if it's a type promotion
32388         conversion, and false otherwise.  Return true if the given expression
32389         is a type conversion one.
32390         * tree-vectorizer.h: Adjust the number of patterns.
32391         * tree.def: Add SAD_EXPR.
32392         * optabs.def: Add sad_optab.
32393         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
32394         * expr.c (expand_expr_real_2): Likewise.
32395         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
32396         * gimple.c (get_gimple_rhs_num_ops): Likewise.
32397         * optabs.c (optab_for_tree_code): Likewise.
32398         * tree-cfg.c (estimate_operator_cost): Likewise.
32399         * tree-ssa-operands.c (get_expr_operands): Likewise.
32400         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
32401         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
32402         * doc/generic.texi: Add document for SAD_EXPR.
32403         * doc/md.texi: Add document for ssad and usad.
32404
32405 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32406
32407         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
32408         qualification in cast.
32409
32410 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
32411
32412         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
32413         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
32414         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
32415         (tree_function_decl): ... here.
32416         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
32417         streaming of vindex to ...
32418         (write_ts_function_decl_tree_pointers): ... here.
32419         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
32420         Do not stream DECL_VINDEX.
32421         (lto_input_ts_function_decl_tree_pointers): Stream it here.
32422
32423 2014-06-24  Catherine Moore  <clm@codesourcery.com>
32424             Sandra Loosemore  <sandra@codesourcery.com>
32425
32426         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
32427         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
32428         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
32429
32430 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32431
32432         * doc/invoke.texi (Warning Options): Remove duplicated
32433         -Wmaybe-uninitialized.
32434
32435 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32436
32437         PR tree-optimization/57742
32438         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
32439         (handle_builtin_malloc, handle_builtin_memset): New functions.
32440         (strlen_optimize_stmt): Call them.
32441         * passes.def: Move strlen after loop+dom but before vrp.
32442
32443 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32444
32445         PR target/61570
32446         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
32447         model family 6 CPU with has_longmode never use a CPU without
32448         64-bit support.
32449
32450 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
32451
32452         PR target/61570
32453         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
32454         the last change.
32455
32456 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32457
32458         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
32459         * dominance.c (iterate_fix_dominators): Use hash_map instead of
32460         pointer_map.
32461         * hash-map.h: New file.
32462         * ipa-comdats.c: Use hash_map instead of pointer_map.
32463         * ipa.c: Likewise.
32464         * lto-section-out.c: Adjust.
32465         * lto-streamer.h: Replace pointer_map with hash_map.
32466         * symtab.c (verify_symtab): Likewise.
32467         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
32468         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
32469         * tree-streamer.h: Likewise.
32470         * tree-streamer.c: Adjust.
32471         * pointer-set.h: Remove pointer_map.
32472
32473 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32474
32475         * hash-table.h: Add a template arg to choose between storing values
32476         and storing pointers to values, and then provide partial
32477         specializations for both.
32478         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
32479         should store, not the type values should point to.
32480         * tree-into-ssa.c (var_info_hasher): Likewise.
32481         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
32482         * tree-complex.c: Adjust.
32483         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
32484         table instead of int_tree_map *.
32485         * tree-parloops.c: Adjust.
32486         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
32487         type is being stored.
32488         * tree-vectorizer.c: Adjust.
32489
32490 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32491
32492         * hash-table.h: Remove a layer of indirection from hash_table so that
32493         it contains the hash table's data instead of a pointer to the data.
32494         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
32495         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
32496         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
32497         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
32498         fold-const.c, gcse.c, ggc-common.c,
32499         gimple-ssa-strength-reduction.c, gimplify.c,
32500         graphite-clast-to-gimple.c, graphite-dependences.c,
32501         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
32502         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32503         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
32504         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
32505         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
32506         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
32507         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
32508         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
32509         tree-ssa-live.c, tree-ssa-loop-im.c,
32510         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
32511         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
32512         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32513         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
32514         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
32515         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
32516         vtable-verify.c, vtable-verify.h: Adjust.
32517
32518 2014-06-24  Richard Biener  <rguenther@suse.de>
32519
32520         PR tree-optimization/61572
32521         * tree-ssa-sink.c (statement_sink_location): Do not sink
32522         loads from hard registers.
32523
32524 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32525
32526         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
32527         not mentioned in clauses use private clause if the iterator is
32528         declared in #pragma omp for simd, and when adding lastprivate
32529         instead, add it to the outer #pragma omp for too.  Diagnose
32530         if the variable is private in outer context.  For simd collapse > 1
32531         loops, replace all iterators with temporaries.
32532         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
32533         same even in collapse > 1 loops.
32534
32535         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
32536         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
32537         non-NULL.
32538         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
32539         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
32540         non-NULL.
32541         (gimplify_adjust_omp_clauses): Likewise.
32542         * omp-low.c (lower_rec_simd_input_clauses,
32543         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
32544         safelen the same as safelen(1).
32545         * tree-nested.c (convert_nonlocal_omp_clauses,
32546         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
32547         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
32548         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
32549         Fixup handling of GIMPLE_OMP_TARGET.
32550         (convert_tramp_reference_stmt, convert_gimple_call): Handle
32551         GIMPLE_OMP_TARGET.
32552
32553 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
32554
32555         PR tree-optimization/61554
32556         * tree-ssa-propagate.c: Include "bitmap.h".
32557         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
32558         properly update constructor/destructor.
32559         (substitute_and_fold_dom_walker::before_dom_children):
32560         Remove call to gimple_purge_dead_eh_edges, add bb->index to
32561         need_eh_cleaup instead.
32562         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
32563         need_eh_cleanup.
32564
32565 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32566
32567         * varpool.c (dump_varpool_node): Dump used_by_single_function.
32568         * tree-pass.h (make_pass_ipa_single_use): New pass.
32569         * cgraph.h (used_by_single_function): New flag.
32570         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
32571         Stream it.
32572         * passes.def (pass_ipa_single_use): Scedule.
32573         * ipa.c (BOTTOM): New macro.
32574         (meet): New function
32575         (propagate_single_user): New function.
32576         (ipa_single_use): New function.
32577         (pass_data_ipa_single_use): New pass.
32578         (pass_ipa_single_use): New pass.
32579         (pass_ipa_single_use::gate): New gate.
32580         (make_pass_ipa_single_use): New function.
32581
32582 2014-06-23  Kai Tietz  <ktietz@redhat.com>
32583
32584         PR target/39284
32585         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
32586         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
32587
32588 2014-06-23  Richard Biener  <rguenther@suse.de>
32589
32590         * tree-ssa-loop.c (gate_loop): New function.
32591         (pass_tree_loop::gate): Call it.
32592         (pass_data_tree_no_loop, pass_tree_no_loop,
32593         make_pass_tree_no_loop): New.
32594         * tree-vectorizer.c: Include tree-scalar-evolution.c
32595         (pass_slp_vectorize::execute): Initialize loops and SCEV if
32596         required.
32597         (pass_slp_vectorize::clone): New method.
32598         * timevar.def (TV_TREE_NOLOOP): New.
32599         * tree-pass.h (make_pass_tree_no_loop): Declare.
32600         * passes.def (pass_tree_no_loop): New pass group with
32601         SLP vectorizer.
32602
32603 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
32604
32605         PR target/61570
32606         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
32607         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
32608
32609 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32610
32611         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
32612         "yes" where needed.
32613
32614 2014-06-23  Alan Modra  <amodra@gmail.com>
32615
32616         PR bootstrap/61583
32617         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
32618         to zero on debug statements.
32619
32620 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32621
32622         PR target/60825
32623         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
32624         Ignore third operand if present by marking qualifier_internal.
32625
32626         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
32627
32628         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
32629         vector extension.
32630         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
32631         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
32632         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
32633         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
32634         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
32635         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
32636         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
32637         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
32638         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
32639         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
32640         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
32641         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
32642         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
32643         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
32644         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
32645         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
32646         logic in GCC vector extensions
32647
32648         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
32649         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
32650         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
32651         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
32652         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
32653         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
32654         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
32655         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
32656         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
32657         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
32658
32659         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
32660
32661         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
32662         extensions.
32663
32664         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
32665         (vget_low_s64): Use __GET_LOW macro.
32666         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
32667         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
32668         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
32669         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
32670         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
32671
32672         (vcombine_s64): Use GCC vector extensions; remove cast.
32673         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
32674         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
32675         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
32676         Fix type signature; remove cast.
32677
32678 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32679
32680         PR target/60825
32681         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
32682         V1DFmode.
32683         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
32684         add V1DFmode
32685         (BUILTIN_VD1): New.
32686         (BUILTIN_VD_RE): Remove.
32687         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
32688         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
32689         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
32690         variant but not df.
32691         (vreinterpretv1df*, vreinterpret*v1df): New.
32692         (vreinterpretdf*, vreinterpret*df): Remove.
32693         * config/aarch64/aarch64-simd.md (aarch64_create,
32694         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
32695         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
32696         (VD1): New.
32697         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
32698         (vcreate_f64): Remove cast, use v1df builtin.
32699         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
32700         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
32701         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
32702         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
32703         vmov_n_f64, vst1_f64): Use gcc vector extensions.
32704         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
32705         add range check using __builtin_aarch64_im_lane_boundsi.
32706         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
32707         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
32708         type signature, use gcc vector extensions.
32709         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
32710         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
32711         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
32712         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
32713         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
32714         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
32715         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
32716         vreinterpret_u64_f64): Use v1df builtin not df.
32717
32718 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32719
32720         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
32721         vector registers.
32722
32723 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32724
32725         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
32726         priority directly.
32727
32728 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32729
32730         * loop-invariant.c (pre_check_invariant_p): New function.
32731         (find_invariant_insn): Call pre_check_invariant_p.
32732
32733 2014-06-22  Richard Henderson  <rth@redhat.com>
32734
32735         PR target/61565
32736         * compare-elim.c (struct comparison): Add eh_note.
32737         (find_comparison_dom_walker::before_dom_children): Don't eliminate
32738         a redundant comparison in a different EH region.  Purge EH edges if
32739         necessary.
32740
32741 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32742
32743         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
32744         (var_shift): Use it.
32745         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
32746         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
32747         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
32748         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
32749         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
32750         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
32751         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
32752         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
32753         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
32754         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
32755         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
32756         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
32757         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
32758         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
32759         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
32760         *rotldi3_internal15be): Use the new attribute.  Merge register and
32761         integer alternatives.
32762
32763 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32764
32765         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
32766         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
32767         split, *ashrdi3_internal3 and split): Delete, merge into...
32768         (ashr<mode>3): New expander.
32769         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
32770         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
32771
32772 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32773
32774         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
32775         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
32776         *rotldi3_internal3 and split): Delete, merge into...
32777         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
32778         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
32779         Use "rotlw" extended mnemonic.
32780
32781 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32782
32783         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
32784         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
32785         and split, *ashldi3_internal3 and split): Delete, merge into...
32786         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
32787         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
32788
32789 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32790
32791         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
32792         (lshrsi3, two anonymous define_insns and define_splits,
32793         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
32794         *lshrdi3_internal3 and split): Delete, merge into...
32795         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
32796         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
32797
32798 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32799
32800         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
32801         Remove "O" alternative.
32802
32803 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
32804
32805         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
32806         (mips_move_from_gpr_cost): Likewise.
32807         (mips_register_move_cost): Update accordingly.
32808         (mips_secondary_reload_class): Remove name of in_p.
32809
32810 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
32811
32812         PR target/61503
32813         * config/i386/i386.md (x86_64_shrd, x86_shrd,
32814         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
32815
32816 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
32817
32818         * config/nios2/nios2.c: Include "builtins.h".
32819
32820 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32821
32822         * cgraph.h (tls_model_names): New variable.
32823         * print-tree.c (print_node): Simplify.
32824         * varpool.c (tls_model_names): New variable.
32825         (dump_varpool_node): Output tls model.
32826
32827 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32828
32829         * ipa-visibility.c (function_and_variable_visibility): Disable
32830         temporarily local aliases for some targets.
32831
32832 2014-06-20  Marek Polacek  <polacek@redhat.com>
32833
32834         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
32835         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
32836         into SANITIZE_UNDEFINED.
32837         * doc/invoke.texi: Describe -fsanitize=bounds.
32838         * gimplify.c (gimplify_call_expr): Add gimplification of internal
32839         functions created in the FEs.
32840         * internal-fn.c: Move "internal-fn.h" after "tree.h".
32841         (expand_UBSAN_BOUNDS): New function.
32842         * internal-fn.def (UBSAN_BOUNDS): New internal function.
32843         * internal-fn.h: Don't define internal functions here.
32844         * opts.c (common_handle_option): Add -fsanitize=bounds.
32845         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
32846         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
32847         * tree-core.h: Define internal functions here.
32848         (struct tree_base): Add ifn field.
32849         * tree-pretty-print.c: Include "internal-fn.h".
32850         (dump_generic_node): Handle functions without CALL_EXPR_FN.
32851         * tree.c (get_callee_fndecl): Likewise.
32852         (build_call_expr_internal_loc): New function.
32853         * tree.def (CALL_EXPR): Update description.
32854         * tree.h (CALL_EXPR_IFN): Define.
32855         (build_call_expr_internal_loc): Declare.
32856         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
32857         types.
32858         (ubsan_type_descriptor): Change bool parameter to enum
32859         ubsan_print_style.  Adjust the code.  Add handling of
32860         UBSAN_PRINT_ARRAY.
32861         (ubsan_expand_bounds_ifn): New function.
32862         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
32863         (ubsan_build_overflow_builtin): Likewise.
32864         (instrument_bool_enum_load): Likewise.
32865         (ubsan_instrument_float_cast): Likewise.
32866         * ubsan.h (enum ubsan_print_style): New enum.
32867         (ubsan_expand_bounds_ifn): Declare.
32868         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
32869
32870 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
32871
32872         * config/rs6000/rs6000.md: Append `DONE' to preparation
32873         statements of `bswap' pattern splitters.
32874
32875 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32876
32877         * target.def (call_fusage_contains_non_callee_clobbers): Update
32878         definition.
32879         * doc/tm.texi: Regenerate.
32880
32881 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32882             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32883
32884         PR sanitizer/61547
32885         * asan.c (instrument_strlen_call): Fixed instrumentation of
32886         trailing byte.
32887
32888 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32889
32890         PR ipa/61540
32891         * ipa-prop.c (impossible_devirt_target): New function.
32892         (try_make_edge_direct_virtual_call): Use it, also instead of
32893         asserting.
32894
32895 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32896             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32897
32898         PR sanitizer/61530
32899         * asan.c (build_check_stmt): Add condition.
32900
32901 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32902
32903         PR ipa/61211
32904         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
32905         expanded clones.
32906
32907 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32908
32909         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
32910         Update comments.
32911         (VCONQ): Make comment more helpful.
32912         (VCON): Delete.
32913         * config/aarch64/aarch64-simd.md
32914         (aarch64_sqdmulh_lane<mode>):
32915         Use VCOND for operands 2.  Update lane checking and flipping logic.
32916         (aarch64_sqrdmulh_lane<mode>): Likewise.
32917         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
32918         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
32919         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
32920         attribute of operand 3 to VCOND.
32921         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
32922         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
32923         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
32924         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
32925         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
32926         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
32927         define_insn.
32928         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
32929         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
32930         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
32931         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
32932         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
32933         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
32934         operand to VCOND.  Update lane flipping and bounds checking logic.
32935         (aarch64_sqdmlal2_lane<mode>): Likewise.
32936         (aarch64_sqdmlsl_lane<mode>): Likewise.
32937         (aarch64_sqdmull_lane<mode>): Likewise.
32938         (aarch64_sqdmull2_lane<mode>): Likewise.
32939         (aarch64_sqdmlal_laneq<mode>):
32940         Replace VCON usage with VCONQ.
32941         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
32942         (aarch64_sqdmlal2_laneq<mode>): Emit
32943         aarch64_sqdmlal2_laneq<mode>_internal insn.
32944         Replace VCON with VCONQ.
32945         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
32946         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
32947         (aarch64_sqdmull_laneq<mode>): Emit
32948         aarch64_sqdmull_laneq<mode>_internal insn.
32949         Replace VCON with VCONQ.
32950         (aarch64_sqdmull2_laneq<mode>): Emit
32951         aarch64_sqdmull2_laneq<mode>_internal insn.
32952         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
32953         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
32954         of 3rd argument to int16x4_t.
32955         (vqdmlalh_lane_s16): Likewise.
32956         (vqdmlslh_lane_s16): Likewise.
32957         (vqdmull_high_lane_s16): Likewise.
32958         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
32959         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
32960         (vqdmlsl_lane_s16): Likewise.
32961         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
32962         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
32963         (vqdmlals_lane_s32): Likewise.
32964         (vqdmlsls_lane_s32): Likewise.
32965         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
32966         (vqdmulls_lane_s32): Likewise.
32967         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
32968         (vqdmlsl_lane_s32): Likewise.
32969         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
32970         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
32971         (vqrdmulhh_lane_s16): Likewise.
32972         (vqdmlsl_high_lane_s16): Likewise.
32973         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
32974         (vqdmlsl_high_lane_s32): Likewise.
32975         (vqrdmulhs_lane_s32): Likewise.
32976
32977 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32978
32979         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
32980         get_call_reg_set_usage.
32981
32982 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32983
32984         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
32985         it contains all call_used_regs.
32986
32987 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32988
32989         * final.c (collect_fn_hard_reg_usage): Add and use variable
32990         function_used_regs.
32991
32992 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32993
32994         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
32995         (set_init_priority, get_init_priority, set_fini_priority,
32996         get_fini_priority): New methods.
32997         * tree.c (init_priority_for_decl): Remove.
32998         (init_ttree): Do not initialize init priority.
32999         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
33000         (decl_priority_info): Remove.
33001         (decl_init_priority_insert): Rewrite.
33002         (decl_fini_priority_insert): Rewrite.
33003         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
33004         tree_priority_map_marked_p): Remove.
33005         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
33006         * lto-streamer-out.c (hash_tree): Do not hash priorities.
33007         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
33008         not output priorities.
33009         (pack_ts_function_decl_value_fields): Likewise.
33010         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33011         not input priorities.
33012         (unpack_ts_function_decl_value_fields): Likewise.
33013         * symtab.c (symbol_priority_map): Declare.
33014         (init_priority_hash): Declare.
33015         (symtab_unregister_node): Unregister from priority hash, too.
33016         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
33017         New methods.
33018         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
33019         (symbol_priority_info): New function.
33020         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
33021         New methods.
33022         * tree-core.h (tree_priority_map): Remove.
33023
33024 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
33025
33026         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
33027         0xff to uint64_t before shifting it up.
33028
33029 2014-06-20  Julian Brown  <julian@codesourcery.com>
33030             Chung-Lin Tang  <cltang@codesourcery.com>
33031
33032         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
33033         TARGET_THUMB1_ONLY. Add comments.
33034
33035 2014-06-19  Tom de Vries  <tom@codesourcery.com>
33036
33037         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
33038         return type to void.
33039         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
33040
33041 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
33042
33043         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
33044         as "move", from depends_on.
33045
33046 2014-06-19  Terry Guo  <terry.guo@arm.com>
33047
33048         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
33049         stage.
33050
33051 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
33052
33053         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
33054         Remove cr5.
33055         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
33056
33057 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
33058
33059         PR target/61550
33060         * config/sh/sh.c (prepare_move_operands): Don't process TLS
33061         addresses here if reload in progress or completed.
33062
33063 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33064
33065         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
33066         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
33067         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
33068         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
33069         (mips_register_priority): New function that implements the target
33070         hook TARGET_REGISTER_PRIORITY.
33071         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
33072         (mips_lra_p): Likewise for TARGET_LRA_P.
33073         (TARGET_REGISTER_PRIORITY): Define macro.
33074         (TARGET_SPILL_CLASS): Likewise.
33075         (TARGET_LRA_P): Likewise.
33076         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
33077         classes.
33078         (REG_CLASS_NAMES): Likewise.
33079         (REG_CLASS_CONTENTS): Likewise.
33080         (BASE_REG_CLASS): Use M16_SP_REGS.
33081         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
33082         New set attribute to enable alternatives depending on the register
33083         allocator used.
33084         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
33085         (*lea64): Disable pattern for MIPS16.
33086         * config/mips/mips.opt (mlra): New option.
33087
33088 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
33089
33090         * lra-constraints.c (base_to_reg): New function.
33091         (process_address): Use new function.
33092
33093 2014-06-18  Tom de Vries  <tom@codesourcery.com>
33094
33095         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
33096         * config/aarch64/aarch64.c
33097         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
33098         (aarch64_emit_call_insn): New function.
33099         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
33100         of emit_call_insn.
33101         * config/aarch64/aarch64.md (define_expand "call_internal")
33102         (define_expand "call_value_internal", define_expand "sibcall_internal")
33103         (define_expand "sibcall_value_internal"): New.
33104         (define_expand "call", define_expand "call_value")
33105         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
33106         expand variant and aarch64_emit_call_insn.
33107
33108 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
33109             Tom de Vries  <tom@codesourcery.com>
33110
33111         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
33112         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
33113         Redefine to true.
33114         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
33115         clobbers to CALL_INSN_FUNCTION_USAGE.
33116         (define_expand "sibcall_internal")
33117         (define_expand "sibcall_value_internal"): New.
33118         (define_expand "call", define_expand "call_value"): Add argument to
33119         arm_emit_call_insn.
33120         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
33121         (define_expand "sibcall_value"): Use sibcall_value_internal and
33122         arm_emit_call_insn.
33123
33124 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33125
33126         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
33127
33128 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33129
33130         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
33131         __udivmoddi4.
33132
33133 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33134
33135         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
33136         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
33137         annotations. Fix DWARF information.
33138
33139 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33140
33141         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
33142         __udivmoddi4, and fixups for negative operands.
33143
33144 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33145
33146         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
33147
33148 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33149
33150         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
33151         to __udivmoddi4.
33152
33153 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33154
33155         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
33156         manipulation.
33157
33158 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33159
33160         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
33161         describing register usage on function entry and exit.
33162
33163 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33164
33165         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
33166         (__aeabi_ldivmod): Fix whitespace.
33167
33168 2014-06-18  Andreas Schwab  <schwab@suse.de>
33169
33170         * doc/md.texi (Standard Names): Use @itemx for grouped items.
33171         Remove blank line after @item.
33172
33173 2014-06-18  Richard Henderson  <rth@redhat.com>
33174
33175         PR target/61545
33176         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
33177
33178 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33179
33180         * config/arm/arm.c (neon_vector_mem_operand): Allow register
33181         POST_MODIFY for neon loads and stores.
33182         (arm_print_operand): Output post-index register for neon loads and
33183         stores.
33184
33185 2014-06-18  Richard Biener  <rguenther@suse.de>
33186
33187         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
33188
33189 2014-06-18  Richard Biener  <rguenther@suse.de>
33190
33191         * tree-pass.h (make_pass_dce_loop): Remove.
33192         * passes.def: Replace pass_dce_loop with pass_dce.
33193         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
33194         changed free niter estimates and reset the scev cache.
33195         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
33196         make_pass_dce_loop): Remove.
33197         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
33198         (fini_copy_prop): Return whether something changed.  Always
33199         let substitute_and_fold perform DCE and free niter estimates
33200         and reset the scev cache if so.
33201         (execute_copy_prop): If sth changed schedule cleanup-cfg.
33202         (pass_data_copy_prop): Do not unconditionally schedule
33203         cleanup-cfg or update-ssa.
33204
33205 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
33206
33207         PR tree-optimization/61518
33208         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33209         reduction var is used in reduction stmt or phi-function only.
33210
33211 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33212
33213         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
33214
33215 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33216
33217         PR tree-optimization/61517
33218         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
33219         whose rhs's first tree is the source expression instead of the
33220         expression itself.
33221         (find_bswap_or_nop): Likewise.
33222         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
33223         gimple stmt whose rhs's first tree is the source. In the memory source
33224         case, move the stmt to be replaced close to one of the original load to
33225         avoid the problem of a store between the load and the stmt's original
33226         location.
33227         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
33228         signature.
33229
33230 2014-06-18  Andreas Schwab  <schwab@suse.de>
33231
33232         PR rtl-optimization/54555
33233         * postreload.c (move2add_use_add2_insn): Substitute
33234         STRICT_LOW_PART only if it is cheaper.
33235
33236 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
33237
33238         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
33239         Do not use unspec as call operand.  Use memory_operand instead of
33240         memory_nox32_operand and add "m" operand constraint.  Disable
33241         pattern for TARGET_X32.
33242         (*sibcall_pop_memory): Ditto.
33243         (*sibcall_value_memory): Ditto.
33244         (*sibcall_value_pop_memory): Ditto.
33245         (sibcall peepholes): Merge SImode and DImode patterns using
33246         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
33247         Disable pattern for TARGET_X32.  Check if eliminated register is
33248         really dead after call insn.  Generate call RTX without unspec operand.
33249         (sibcall_value peepholes): Ditto.
33250         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
33251         instead of memory_nox32_operand.  Check if eliminated register is
33252         really dead after call insn. Generate call RTX without unspec operand.
33253         (sibcall_value_pop peepholes): Ditto.
33254         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
33255
33256 2014-06-18  Terry Guo  <terry.guo@arm.com>
33257
33258         PR target/61544
33259         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
33260         reach the head.
33261
33262 2014-06-18  Olivier Hainque  <hainque@adacore.com>
33263
33264         * tree-core.h (tree_block): Add an "end_locus" field, allowing
33265         memorization of the end of block source location.
33266         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33267         * gimplify.c (gimplify_bind_expr): Propagate the block start and
33268         end source location info we have on the block entry/exit code we
33269         generate.
33270
33271 2014-06-18  Richard Biener  <rguenther@suse.de>
33272
33273         * common.opt (fssa-phiopt): New option.
33274         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33275         but not with -Og.
33276         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33277         * doc/invoke.texi (-fssa-phiopt): Document.
33278
33279 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33280
33281         * genattrtab.c (n_bypassed): New variable.
33282         (process_bypasses): Initialise n_bypassed.
33283         Count number of bypassed reservations.
33284         (make_automaton_attrs): Allocate space for bypassed reservations
33285         rather than number of bypasses.
33286
33287 2014-06-18  Richard Biener  <rguenther@suse.de>
33288
33289         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33290         we propagated anything.
33291         (substitute_and_fold_dom_walker::before_dom_children): Something
33292         changed if we propagated into PHI arguments.
33293         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33294         we removed a stmt.
33295
33296 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
33297
33298         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33299         vector case.
33300         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33301         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33302         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33303         Introduces alternative way of loads group permutaions.
33304         (vect_transform_grouped_load): Try alternative way of permutations.
33305
33306 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33307
33308         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33309         changed in ORT_TARGET region, don't jump to do_outer.
33310         (struct gimplify_adjust_omp_clauses_data): New type.
33311         (gimplify_adjust_omp_clauses_1): Adjust for data being
33312         a struct gimplify_adjust_omp_clauses_data pointer instead
33313         of tree *.  Pass pre_p as a new argument to
33314         lang_hooks.decls.omp_finish_clause hook.
33315         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
33316         splay_tree_foreach to pass both list_p and pre_p.
33317         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
33318         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
33319         gimplify_adjust_omp_clauses callers.
33320         * langhooks.c (lhd_omp_finish_clause): New function.
33321         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
33322         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
33323         * langhooks.h (struct lang_hooks_for_decls): Add a new
33324         gimple_seq * argument to omp_finish_clause hook.
33325         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
33326         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
33327         (scan_omp_parallel, lower_omp_for): When adding
33328         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
33329         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
33330         * tree-nested.c (convert_nonlocal_omp_clauses,
33331         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
33332         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
33333
33334 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
33335
33336         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
33337         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
33338
33339 2014-06-17  Xinliang David Li  <davidxl@google.com>
33340
33341         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
33342         * passes.c (pass_init_dump_file): Do not set initialize
33343         flag to false unconditionally.
33344
33345 2014-06-17  Richard Biener  <rguenther@suse.de>
33346
33347         * genopinit.c (main): Use vec<>::qsort method.
33348         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
33349         Likewise.
33350         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
33351
33352 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
33353
33354         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
33355         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
33356         (mips_move_to_gpr_cost): Remove ST_REGS case.
33357         (mips_move_from_gpr_cost): Likewise.
33358         (mips_register_move_cost): Likewise.
33359         (mips_secondary_reload_class): Likewise.
33360
33361 2014-06-17  Richard Biener  <rguenther@suse.de>
33362
33363         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
33364         (pass_all_optimizations): Move 3rd copy-prop pass from after
33365         fre to before ifcombine/phiopt.
33366
33367 2014-06-17  Richard Biener  <rguenther@suse.de>
33368
33369         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
33370         and allow all blocks to be forwarders.
33371
33372 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
33373
33374         PR target/61483
33375         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
33376         variable 'size'; calculate 'size' right in the front; use
33377         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
33378         pcum->aapcs_stack_words.
33379
33380 2014-06-17  Nick Clifton  <nickc@redhat.com>
33381
33382         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
33383         (umulhi3, mulsidi3, umulsidi3): Likewise.
33384
33385 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
33386
33387         PR middle-end/61508
33388         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
33389         check for section name.
33390
33391 2014-06-17  Richard Biener  <rguenther@suse.de>
33392
33393         * tree-ssa-propagate.c: Include domwalk.h.
33394         (substitute_and_fold): Outline main worker into a domwalker ...
33395         (substitute_and_fold_dom_walker::before_dom_children): ... here.
33396         Schedule stmts we can fully propagate for removal.  Remove
33397         poor-mans DCE.
33398         (substitute_and_fold): Apply a dominator walk to perform
33399         substitution.  Process stmts scheduled for removal here.
33400
33401 2014-06-17  Richard Biener  <rguenther@suse.de>
33402
33403         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
33404         of PHI node moving.
33405
33406 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
33407
33408         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
33409         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
33410         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33411         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
33412         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
33413         TARGET_HARD_FLOAT.
33414         (get_fpscr) : Likewise.
33415
33416 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33417
33418         PR rtl-optimization/61325
33419         * lra-constraints.c (valid_address_p): Add forward declaration.
33420         (simplify_operand_subreg): Check address validity before and after
33421         alter_reg of memory subreg.
33422
33423 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
33424
33425         * config/i386/i386.c (decide_alg): Correctly handle
33426         maximum size of stringop algorithm.
33427
33428 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33429
33430         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
33431
33432 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33433
33434         PR rtl-optimization/61522
33435         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
33436
33437 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
33438
33439         Revert:
33440         * symtab.c (symtab_node::reset_section): New method.
33441         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33442         for localization.
33443         * cgraph.h (reset_section): Declare.
33444         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33445         do not consider comdat locals.
33446         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33447         for new symbol.
33448         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33449         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33450         reset sections of symbols dragged out of the comdats.
33451         (function_and_variable_visibility): Reset sections of
33452         localized symbols.
33453
33454 2014-06-16  Richard Biener  <rguenther@suse.de>
33455
33456         PR tree-optimization/61482
33457         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
33458         [-INF(OVF), +INF(OVF)] range.
33459
33460 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
33461
33462         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
33463         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
33464         handling 32-bit multiplication.
33465
33466 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
33467
33468         PR middle-end/61430
33469         * lra-lives.c (process_bb_lives): Skip creating copy during
33470         insn scan when src/dest has constrained to same regno.
33471
33472 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33473
33474         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
33475         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
33476
33477 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33478
33479         * asan.c (check_func): New function.
33480         (maybe_create_ssa_name): Likewise.
33481         (build_check_stmt_with_calls): Likewise.
33482         (use_calls_p): Likewise.
33483         (report_error_func): Change interface.
33484         (build_check_stmt): Allow non-integer lengths; add support
33485         for new parameter.
33486         (asan_instrument): Likewise.
33487         (instrument_mem_region_access): Moved code to build_check_stmt.
33488         (instrument_derefs): Likewise.
33489         (instrument_strlen_call): Likewise.
33490         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
33491         * doc/invoke.texi: Describe new parameter.
33492         * params.def: Define new parameter.
33493         * params.h: Likewise.
33494         * sanitizer.def: Describe new builtins.
33495
33496 2014-06-16  Richard Biener  <rguenther@suse.de>
33497
33498         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33499         Make all defs available at the end.
33500         (eliminate): If we remove a PHI node schedule cfg-cleanup.
33501
33502 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33503
33504         PR plugins/45078
33505         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
33506
33507 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
33508
33509         PR bootstrap/61516
33510         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
33511         initialization.  Replace remaining use of uid.
33512
33513 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33514
33515         * c-family/c-common.c (handle_tls_model_attribute): Use
33516         set_decl_tls_model.
33517         * c-family/c-common.c (handle_tls_model_attribute): Use
33518         set_decl_tls_model.
33519         * cgraph.h (struct varpool_node): Add tls_model.
33520         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
33521         * tree.h (DECL_TLS_MODEL): Update.
33522         (DECL_THREAD_LOCAL_P): Check that variable is static.
33523         (decl_tls_model): Declare.
33524         (set_decl_tls_model): Declare.
33525         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
33526         set symbol prorperties.
33527         (get_emutls_init_templ_addr): Cleanup.
33528         (new_emutls_decl): Update.
33529         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
33530         (lto_input_varpool_node): Likewise.
33531         * lto-streamer-out.c (hash_tree): Likewise.
33532         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33533         not stream DECL_TLS_MODEL.
33534         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
33535         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
33536
33537 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33538
33539         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
33540
33541 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33542
33543         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
33544         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
33545         lists.
33546         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
33547         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
33548         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
33549         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
33550         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
33551         (df_get_artificial_defs, df_get_artificial_uses)
33552         (df_single_def, df_single_use): Update accordingly.
33553         (df_refs_chain_dump): Take the first element in a linked list as
33554         parameter, rather than a pointer to an array of pointers.
33555         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
33556         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
33557         (df_chain_create_bb_process_use): Likewise.
33558         (df_md_bb_local_compute_process_def): Likewise.
33559         * fwprop.c (process_defs, process_uses): Likewise.
33560         (register_active_defs, update_uses): Likewise.
33561         (forward_propagate_asm): Update for new df_ref linking.
33562         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
33563         (df_null_ref_rec, df_null_mw_rec): Likewise.
33564         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
33565         explicitly.
33566         (df_scan_free_bb_info): Remove check for null artificial_defs.
33567         (df_install_ref_incremental): Adjust for new df_ref linking.
33568         Use a single-element insertion rather than a full sort.
33569         (df_ref_chain_delete_du_chain): Take the first element
33570         in a linked list as parameter, rather than a pointer to an array of
33571         pointers.
33572         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
33573         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
33574         (df_insn_info_delete): Remove check for null defs and call to
33575         df_scan_free_mws_vec.
33576         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
33577         null rather than df_null_*_rec.
33578         (df_insn_rescan_debug_internal): Likewise, and update null
33579         checks in the same way.  Remove check for null defs.
33580         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
33581         Move a single element rather doing a full sort.
33582         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
33583         linking.
33584         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
33585         Initialize df_ref and df_mw_hardreg lists to null rather than
33586         df_null_*_rec.
33587         (df_ref_compare): Take df_refs as parameter, transferring the
33588         old interface to...
33589         (df_ref_ptr_compare): ...this new function.
33590         (df_sort_and_compress_refs): Update accordingly.
33591         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
33592         old interface to...
33593         (df_mw_ptr_compare): ...this new function.
33594         (df_sort_and_compress_mws): Update accordingly.
33595         (df_install_refs, df_install_mws): Return a linked list rather than
33596         an array of pointers.
33597         (df_refs_add_to_chains): Assert that old lists are empty rather
33598         than freeing them.
33599         (df_insn_refs_verify): Don't handle null defs speciailly.
33600         * web.c (union_match_dups): Update for new df_ref linking.
33601
33602 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33603
33604         * df.h (df_ref_create, df_ref_remove): Delete.
33605         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
33606         (df_ref_remove): Likewise.
33607
33608 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33609
33610         * df.h (df_single_def, df_single_use): New functions.
33611         * ira.c (find_moveable_pseudos): Use them.
33612
33613 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33614
33615         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
33616         * df-problems.c (df_note_bb_compute): Use it.
33617         * regstat.c (regstat_bb_compute_ri): Likewise.
33618
33619 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33620
33621         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
33622         * cse.c (cse_extended_basic_block): Use them.
33623         * dce.c (mark_artificial_use): Likewise.
33624         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
33625         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33626         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
33627         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
33628         (df_simulate_initialize_backwards): Likewise.
33629         (df_simulate_finalize_backwards): Likewise.
33630         (df_simulate_initialize_forwards): Likewise.
33631         (df_md_simulate_artificial_defs_at_top): Likewise.
33632         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33633         * regrename.c (init_rename_info): Likewise.
33634         * regstat.c (regstat_bb_compute_ri): Likewise.
33635         (regstat_bb_compute_calls_crossed): Likewise.
33636
33637 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33638
33639         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
33640         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
33641         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
33642         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
33643         * combine.c (create_log_links): Likewise.
33644         * compare-elim.c (find_flags_uses_in_insn): Likewise.
33645         (try_eliminate_compare): Likewise.
33646         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
33647         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
33648         (remove_reg_equal_equiv_notes_for_defs): Likewise.
33649         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
33650         (word_dce_process_block, dce_process_block): Likewise.
33651         * ddg.c (def_has_ccmode_p): Likewise.
33652         * df-core.c (df_bb_regno_first_def_find): Likewise.
33653         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
33654         * df-problems.c (df_rd_simulate_one_insn): Likewise.
33655         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33656         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
33657         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
33658         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
33659         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
33660         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
33661         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
33662         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
33663         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33664         * fwprop.c (local_ref_killed_between_p): Likewise.
33665         (all_uses_available_at, free_load_extend): Likewise.
33666         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
33667         * hw-doloop.c (scan_loop): Likewise.
33668         * ifcvt.c (dead_or_predicable): Likewise.
33669         * init-regs.c (initialize_uninitialized_regs): Likewise.
33670         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
33671         (process_bb_node_lives): Likewise.
33672         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
33673         (find_moveable_pseudos): Likewise.
33674         * loop-invariant.c (check_dependencies, record_uses): Likewise.
33675         * recog.c (peep2_find_free_register): Likewise.
33676         * ree.c (get_defs): Likewise.
33677         * regstat.c (regstat_bb_compute_ri): Likewise.
33678         (regstat_bb_compute_calls_crossed): Likewise.
33679         * sched-deps.c (find_inc, find_mem): Likewise.
33680         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
33681         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
33682         * shrink-wrap.c (requires_stack_frame_p): Likewise.
33683         (prepare_shrink_wrap): Likewise.
33684         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
33685         * web.c (union_defs, pass_web::execute): Likewise.
33686         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
33687         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
33688
33689 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
33690
33691         * lra-assign.c (assign_by_spills): Add code to assign vector regs
33692         to inheritance pseudos.
33693         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
33694
33695 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
33696
33697         PR target/61415
33698         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
33699         (BU_MISC_2): Rename to ...
33700         (BU_LDBL128_2): ... this.
33701         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
33702         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
33703         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
33704         RS6000_BTM_LDBL128.
33705         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
33706         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
33707         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
33708         (unpacktf_1): Likewise.
33709         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
33710         (__builtin_longdouble_dw1): Likewise.
33711         * doc/sourcebuild.texi (longdouble128): Document.
33712
33713 2014-06-13  Jeff Law  <law@redhat.com>
33714
33715         PR rtl-optimization/61094
33716         PR rtl-optimization/61446
33717         * ree.c (combine_reaching_defs): Get the mode for the copy from
33718         the extension insn rather than the defining insn.
33719
33720 2014-06-13  Dehao Chen  <dehao@google.com>
33721
33722         * dwarf2out.c (add_linkage_name): Emit more linkage name.
33723
33724 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
33725
33726         * doc/install.texi (--enable-linker-plugin-configure-flags)
33727         (--enable-linker-plugin-flags): Document new flags.
33728
33729 2014-06-13  Martin Jambor  <mjambor@suse.cz>
33730
33731         PR ipa/61186
33732         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
33733         cache_token if returning early.
33734
33735 2014-06-13  Nick Clifton  <nickc@redhat.com>
33736
33737         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
33738         requested alignment is active.
33739         (LABEL_ALIGN): Likewise.
33740         (LOOP_ALIGN): Likewise.
33741
33742 2014-06-13  Richard Biener  <rguenther@suse.de>
33743
33744         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33745         Rewrite to propagate the VN result into all uses where
33746         possible and to remove stmts becoming dead because of that.
33747         (eliminate): Generalize stmt removal handling, remove in
33748         reverse dominator order to support proper debug stmt
33749         generation.  Update stmts before removing stmts.
33750         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
33751
33752 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33753
33754         PR tree-optimization/61375
33755         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
33756         symbolic number cannot be represented in an uint64_t.
33757         (find_bswap_or_nop_1): Likewise.
33758
33759 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33760
33761         * symtab.c (symtab_node::reset_section): New method.
33762         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33763         for localization.
33764         * cgraph.h (reset_section): Declare.
33765         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33766         do not consider comdat locals.
33767         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33768         for new symbol.
33769         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33770         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33771         reset sections of symbols dragged out of the comdats.
33772         (function_and_variable_visibility): Reset sections of
33773         localized symbols.
33774
33775 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33776
33777         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
33778         to use symtab and decl_binds_to_current_def_p
33779         * tree-vectorizer.c (increase_alignment): Increase alignment
33780         of alias target, too.
33781
33782 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
33783
33784         PR middle-end/61486
33785         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
33786         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
33787         if outer combined construct is distribute.
33788         (gimplify_omp_for): For OMP_DISTRIBUTE set
33789         gimplify_omp_ctxp->distribute.
33790         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
33791         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
33792         mapping into decl map.
33793
33794 2014-06-12  Jason Merrill  <jason@redhat.com>
33795
33796         * common.opt (fabi-version): Change default to 0.
33797
33798 2014-06-12  Jason Merrill  <jason@redhat.com>
33799
33800         * toplev.c (process_options): Reject -fabi-version=1.
33801
33802 2014-06-12  Jeff Law  <law@redhat.com>
33803
33804         PR tree-optimization/61009
33805         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
33806         value when we stop processing a block due to problematic PHIs.
33807
33808 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
33809
33810         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
33811         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
33812         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
33813         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
33814         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
33815         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
33816         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
33817         are not in the spec.
33818
33819 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
33820
33821         PR target/59843
33822         * config/aarch64/aarch64-modes.def: Add V1DFmode.
33823         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
33824         Support V1DFmode.
33825
33826 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
33827
33828         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
33829
33830 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
33831
33832         PR target/61443
33833         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
33834         loading from address spaces.
33835
33836 2014-06-12  Martin Liska  <mliska@suse.cz>
33837
33838         PR ipa/61462
33839         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
33840         statement is reachable.
33841
33842 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
33843
33844         * symtab.c (section_hash): New hash.
33845         (symtab_unregister_node): Clear section before freeing.
33846         (hash_section_hash_entry): New haser.
33847         (eq_sections): New function.
33848         (symtab_node::set_section_for_node): New method.
33849         (set_section_1): Update.
33850         (symtab_node::set_section): Take string instead of tree as parameter.
33851         (symtab_resolve_alias): Update.
33852         * cgraph.h (section_hash_entry_d): New structure.
33853         (section_hash_entry): New typedef.
33854         (cgraph_node): Change comdat_group_ to x_comdat_group,
33855         change section_ to x_section and turn into section_hash_entry;
33856         update accestors; put set_section_for_node offline.
33857         * tree.c (decl_section_name): Turn into string.
33858         (set_decl_section_name): Change parameter to be string.
33859         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
33860         * sdbout.c (sdbout_one_type): Update.
33861         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
33862         * varasm.c (IN_NAMED_SECTION, get_named_section,
33863         resolve_unique_section, hot_function_section, get_named_text_section,
33864         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
33865         make_decl_rtl, default_unique_section): Update.
33866         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
33867         (c6x_elf_unique_section): Update.
33868         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
33869         * config/pa/pa.c (pa_function_section): Update.
33870         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
33871         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
33872         * config/arc/arc.c (arc_in_small_data_p): Update.
33873         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
33874         * config/mcore/mcore.c (mcore_unique_section): Update.
33875         * config/mips/mips.c (mips16_build_function_stub): Update.
33876         (mips16_build_call_stub): Update.
33877         (mips_function_rodata_section): Update.
33878         (mips_in_small_data_p): Update.
33879         * config/score/score.c (score_in_small_data_p): Update.
33880         * config/rx/rx.c (rx_in_small_data): Update.
33881         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
33882         (rs6000_xcoff_asm_named_section): Update.
33883         (rs6000_xcoff_unique_section): Update.
33884         * config/frv/frv.c (frv_string_begins_with): Update.
33885         (frv_in_small_data_p): Update.
33886         * config/v850/v850.c (v850_encode_data_area): Update.
33887         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
33888         (bfin_handle_l1_data_attribute): Update.
33889         (bfin_handle_l2_attribute): Update.
33890         * config/mep/mep.c (mep_unique_section): Update.
33891         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
33892         Update.
33893         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
33894         (h8300_handle_tiny_data_attribute): Update.
33895         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
33896         (m32r_in_small_data_p): Update.
33897         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
33898         * config/i386/i386.c (ix86_in_large_data_p): Update.
33899         * config/i386/winnt.c (i386_pe_unique_section): Update.
33900         * config/darwin.c (darwin_function_section): Update.
33901         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
33902         * tree-emutls.c (get_emutls_init_templ_addr): Update.
33903         (new_emutls_decl): Update.
33904         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
33905         input_varpool_node): Update.
33906         (ead_string_cst): Turn to ...
33907         (read_string): ... this one.
33908         * dwarf2out.c (secname_for_decl): Update.
33909         * asan.c (asan_protect_global): Update.
33910
33911 2014-06-11  DJ Delorie  <dj@redhat.com>
33912
33913         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
33914         cache lines.
33915         * config/rx/rx.c (rx_option_override): Likewise.
33916         (rx_align_for_label): Likewise.
33917
33918         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
33919
33920 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
33921
33922         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
33923         prototype.
33924
33925 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33926
33927         * common.md: New file.
33928         * doc/md.texi: Update description of generic, machine-independent
33929         constraints.
33930         * config/s390/constraints.md (e): Delete.
33931         * Makefile.in (md_file): Include common.md.
33932         * config/m32c/t-m32c (md_file): Likewise.
33933         * genpreds.c (general_mem): New array.
33934         (generic_constraint_letters): Remove constraints now defined by
33935         common.md.
33936         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33937         Allow the first character to be '<' or '>' as well.
33938         * genoutput.c (general_mem): New array.
33939         (indep_constraints): Remove constraints now defined by common.md.
33940         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33941         Remove special handling of 'm'.
33942         * ira-costs.c (record_reg_classes): Remove special handling of
33943         constraints now defined by common.md.
33944         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33945         * ira-lives.c (single_reg_class): Likewise.
33946         (ira_implicitly_set_insn_hard_regs): Likewise.
33947         * lra-constraints.c (reg_class_from_constraints): Likewise.
33948         (process_alt_operands, process_address, curr_insn_transform): Likewise.
33949         * postreload.c (reload_cse_simplify_operands): Likewise.
33950         * reload.c (push_secondary_reload, scratch_reload_class)
33951         (find_reloads, alternative_allows_const_pool_ref): Likewise.
33952         * reload1.c (maybe_fix_stack_asms): Likewise.
33953         * targhooks.c (default_secondary_reload): Likewise.
33954         * stmt.c (parse_output_constraint): Likewise.
33955         * recog.c (preprocess_constraints): Likewise.
33956         (constrain_operands, peep2_find_free_register): Likewise.
33957         (asm_operand_ok): Likewise, but add a comment saying why 'o'
33958         must be handled specially.
33959
33960 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33961
33962         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
33963         * genpreds.c (have_const_dbl_constraints): Delete.
33964         (add_constraint): Don't set it.
33965         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
33966         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
33967         constraints using the lookup_constraint logic.
33968         * ira-lives.c (single_reg_class): Likewise.
33969         * ira.c (ira_setup_alts): Likewise.
33970         * lra-constraints.c (process_alt_operands): Likewise.
33971         * recog.c (asm_operand_ok, constrain_operands): Likewise.
33972         * reload.c (find_reloads): Likewise.
33973
33974 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33975
33976         * genpreds.c (const_int_start, const_int_end): New variables.
33977         (choose_enum_order): Output CONST_INT constraints before memory
33978         constraints.
33979         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
33980         Add CT_CONST_INT.
33981         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
33982         * ira.c (ira_setup_alts): Likewise.
33983         * lra-constraints.c (process_alt_operands): Likewise.
33984         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33985         * reload.c (find_reloads): Likewise.
33986
33987 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33988
33989         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
33990         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
33991         * recog.c (preprocess_constraints): Update accordingly.
33992
33993 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33994
33995         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
33996         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
33997         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
33998         * genpreds.c (print_type_tree): New function.
33999         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
34000         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
34001         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
34002         Write out enum constraint_type and get_constraint_type.
34003         * lra-constraints.c (satisfies_memory_constraint_p): Take a
34004         constraint_num rather than a constraint string.
34005         (satisfies_address_constraint_p): Likewise.
34006         (reg_class_from_constraints): Avoid old constraint macros.
34007         (process_alt_operands, process_address_1): Likewise.
34008         (curr_insn_transform): Likewise.
34009         * ira-costs.c (record_reg_classes): Likewise.
34010         (record_operand_costs): Likewise.
34011         * ira-lives.c (single_reg_class): Likewise.
34012         (ira_implicitly_set_insn_hard_regs): Likewise.
34013         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
34014         * postreload.c (reload_cse_simplify_operands): Likewise.
34015         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
34016         (constrain_operands, peep2_find_free_register): Likewise.
34017         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
34018         (find_reloads, alternative_allows_const_pool_ref): Likewise.
34019         * reload1.c (maybe_fix_stack_asms): Likewise.
34020         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
34021         * targhooks.c (default_secondary_reload): Likewise.
34022         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
34023         to EXTRA_CONSTRAINT_STR.
34024         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
34025
34026 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34027
34028         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
34029         (write_constraint_satisfied_p_array): ...this new function.
34030         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
34031         an array.
34032         (write_insn_preds_c): Update accordingly.
34033
34034 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34035
34036         * genpreds.c (write_lookup_constraint): Rename to...
34037         (write_lookup_constraint_1): ...this.
34038         (write_lookup_constraint_array): New function.
34039         (write_tm_preds_h): Define lookup_constraint as an inline function
34040         that uses write_lookup_constraint_array where possible.
34041         (write_insn_preds_c): Update for the changes above.
34042
34043 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
34044
34045         * doc/md.texi (regclass_for_constraint): Rename to...
34046         (reg_class_for_constraint): ...this.
34047         * genpreds.c (num_constraints, enum_order, register_start)
34048         (register_end, satisfied_start, memory_start, memory_end)
34049         (address_start, address_end): New variables.
34050         (add_constraint): Count the number of constraints.
34051         (choose_enum_order): New function.
34052         (write_enum_constraint_num): Iterate over enum_order.
34053         (write_regclass_for_constraint): Rename to...
34054         (write_reg_class_for_constraint_1): ...this and update output
34055         accordingly.
34056         (write_constraint_satisfied_p): Rename to...
34057         (write_constraint_satisfied_p_1): ...this and update output
34058         accordingly.  Do nothing if all extra constraints are register
34059         constraints.
34060         (write_insn_extra_memory_constraint): Delete.
34061         (write_insn_extra_address_constraint): Delete.
34062         (write_range_function): New function.
34063         (write_tm_preds_h): Define constraint_satisfied_p and
34064         reg_class_for_constraint as inline functions that do a range check
34065         before calling the out-of-line function.  Use write_range_function
34066         to implement insn_extra_{register,memory,address}_constraint,
34067         the first of which is new.
34068         (write_insn_preds_c): Update after above changes to write_* functions.
34069         (main): Call choose_enum_order.
34070
34071 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34072
34073         PR tree-optimization/61306
34074         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
34075         expression instead of its size.
34076         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
34077         false to prevent optimization when the result is unpredictable due to
34078         arithmetic right shift of signed type with highest byte is set.
34079         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
34080         (init_symbolic_number): Likewise.
34081         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
34082         when the result is unpredictable due to sign extension.
34083
34084 2014-06-11  Terry Guo  <terry.guo@arm.com>
34085
34086         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
34087         (*thumb1_addsi3): Ditto.
34088         (*thumb_subdi3): Ditto.
34089         (thumb1_subsi3_insn): Ditto.
34090         (*thumb_mulsi3): Ditto.
34091         (*thumb_mulsi3_v6): Ditto.
34092         (*thumb1_andsi3_insn): Ditto.
34093         (thumb1_bicsi3): Ditto.
34094         (*thumb1_iorsi3_insn): Ditto.
34095         (*thumb1_xorsi3_insn): Ditto.
34096         (*thumb1_ashlsi3): Ditto.
34097         (*thumb1_ashrsi3): Ditto.
34098         (*thumb1_lshrsi3): Ditto.
34099         (*thumb1_rotrsi3): Ditto.
34100         (*thumb1_negdi2): Ditto.
34101         (*thumb1_negsi2): Ditto.
34102         (*thumb1_abssi2): Ditto.
34103         (*thumb1_neg_abssi2): Ditto.
34104         (*thumb1_one_cmplsi2): Ditto.
34105         (*thumb1_zero_extendhisi2): Ditto.
34106         (*thumb1_zero_extendqisi2): Ditto.
34107         (*thumb1_zero_extendqisi2_v6): Ditto.
34108         (thumb1_extendhisi2): Ditto.
34109         (thumb1_extendqisi2): Ditto.
34110         (*thumb1_movdi_insn): Ditto.
34111         (*thumb1_movsi_insn): Ditto.
34112         (*thumb1_movhi_insn): Ditto.
34113         (thumb_movhi_clobber): Ditto.
34114         (*thumb1_movqi_insn): Ditto.
34115         (*thumb1_movhf): Ditto.
34116         (*thumb1_movsf_insn): Ditto.
34117         (*thumb_movdf_insn): Ditto.
34118         (movmem12b): Ditto.
34119         (movmem8b): Ditto.
34120         (cbranchqi4): Ditto.
34121         (cbranchsi4_insn): Ditto.
34122         (cbranchsi4_scratch): Ditto.
34123         (*negated_cbranchsi4): Ditto.
34124         (*tbit_cbranch): Ditto.
34125         (*tlobits_cbranch): Ditto.
34126         (*tstsi3_cbranch): Ditto.
34127         (*cbranchne_decr1): Ditto.
34128         (*addsi3_cbranch): Ditto.
34129         (*addsi3_cbranch_scratch): Ditto.
34130         (*thumb_cmpdi_zero): Ditto.
34131         (cstoresi_eq0_thumb1): Ditto.
34132         (cstoresi_ne0_thumb1): Ditto.
34133         (*cstoresi_eq0_thumb1_insn): Ditto.
34134         (*cstoresi_ne0_thumb1_insn): Ditto.
34135         (cstoresi_nltu_thumb1): Ditto.
34136         (cstoresi_ltu_thumb1): Ditto.
34137         (thumb1_addsi3_addgeu): Ditto.
34138         (*thumb_jump): Ditto.
34139         (*call_reg_thumb1_v5): Ditto.
34140         (*call_reg_thumb1): Ditto.
34141         (*call_value_reg_thumb1_v5): Ditto.
34142         (*call_value_reg_thumb1): Ditto.
34143         (*call_insn): Ditto.
34144         (*call_value_insn): Ditto.
34145         (thumb1_casesi_internal_pic): Ditto.
34146         (thumb1_casesi_dispatch): Ditto.
34147         (*thumb1_indirect_jump): Ditto.
34148         (prologue_thumb1_interwork): Ditto.
34149         (*epilogue_insns): Ditto.
34150         (consttable_1): Ditto.
34151         (consttable_2): Ditto.
34152         (tablejump): Ditto.
34153         (*thumb1_tablejump): Ditto.
34154         (thumb_eh_return): Ditto.
34155         (define_peephole2): Two of them are thumb1 only and got moved into
34156         new file thumb1.md.
34157         (define_split): Six of them are thumb1 only and got moved into new
34158         file thumb1.md.
34159         * config/arm/thumb1.md: New file comprised of above thumb1 only
34160         patterns.
34161
34162 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34163
34164         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
34165         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
34166         dependencies.
34167         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
34168         (aarch64_crc_builtin_datum): New struct.
34169         (aarch64_crc_builtin_data): New.
34170         (aarch64_init_crc32_builtins): New function.
34171         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
34172         (aarch64_crc32_expand_builtin): New.
34173         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
34174         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
34175         __ARM_FEATURE_CRC32 when appropriate.
34176         (TARGET_CRC32): Define.
34177         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
34178         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
34179         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
34180         (aarch64_<crc_variant>): New pattern.
34181         * config/aarch64/arm_acle.h: New file.
34182         * config/aarch64/iterators.md (CRC): New int iterator.
34183         (crc_variant, crc_mode): New int attributes.
34184         * doc/aarch64-acle-intrinsics.texi: New file.
34185         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
34186         Include aarch64-acle-intrinsics.texi.
34187
34188 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
34189
34190         * tree-vect-data-refs.c (vect_grouped_store_supported): New
34191         check for stores group of length 3.
34192         (vect_permute_store_chain): New permutations for stores group of
34193         length 3.
34194         * tree-vect-stmts.c (vect_model_store_cost): Change cost
34195         of vec_perm_shuffle for the new permutations.
34196
34197 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34198
34199         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
34200         table rewriting temporarily on targets not supporting ONE_ONLY.
34201
34202 2014-06-11  Richard Biener  <rguenther@suse.de>
34203
34204         PR middle-end/61437
34205         Revert
34206         2014-06-04  Richard Biener  <rguenther@suse.de>
34207
34208         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34209         TREE_PUBLIC and DECL_EXTERNAL decls.
34210
34211 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34212
34213         * varasm.c (set_implicit_section): New function.
34214         (resolve_unique_section): Use it to set implicit section
34215         for aliases, too.
34216         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
34217         (default_function_section): Likewise.
34218         (decl_binds_to_current_def_p): Constify argument.
34219         * varasm.h (decl_binds_to_current_def_p): Update prototype.
34220         * asan.c (asan_protect_global): Use
34221         symtab_get_node (decl)->implicit_section.
34222         * symtab.c (dump_symtab_base): Dump implicit sections.
34223         (verify_symtab_base): Verify sanity of sectoins and comdats.
34224         (symtab_resolve_alias): Alias share the section of its target.
34225         (set_section_1): New function.
34226         (symtab_node::set_section): Move here, recurse to aliases.
34227         (verify_symtab): Check for duplicated symtab lists.
34228         * tree-core.h (implicit_section_name_p): Remove.
34229         * tree-vect-data-refs.c: Include varasm.h.
34230         (vect_can_force_dr_alignment_p): Fix conditional on when
34231         decl bints to current definition; use
34232         symtab_get_node (decl)->implicit_section.
34233         * cgraph.c (cgraph_make_node_local_1): Fix section set.
34234         * cgraph.h (struct symtab_node): Add implicit_section.
34235         (set_section): Rename to ...
34236         (set_section_for_node): ... this one.
34237         (set_section): Declare.
34238         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
34239         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
34240         input_overwrite_node, input_varpool_node): Stream implicit_section.
34241         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
34242         removal; it will fail in LTO.
34243
34244 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34245
34246         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
34247         Change second alternative type to f_mcr.
34248         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
34249         and 12th alternatives' types to f_mcr and f_mrc.
34250         (*movdi_aarch64): Same for 12th and 13th alternatives.
34251         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
34252         (aarch64_movtilow_tilow): Change type to fmov.
34253
34254 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
34255
34256         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
34257         (aarch64_save_or_restore_callee_save_registers): Fix layout.
34258
34259 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34260
34261         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34262         New expander.
34263         (aarch64_sqrdmulh_lane<mode>): Likewise.
34264         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34265         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34266         (aarch64_sqdmulh_laneq<mode>): New expander.
34267         (aarch64_sqrdmulh_laneq<mode>): Likewise.
34268         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34269         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34270         (aarch64_sqdmulh_lane<mode>): New expander.
34271         (aarch64_sqrdmulh_lane<mode>): Likewise.
34272         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34273         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34274         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34275         (aarch64_sqdmlal_laneq<mode>): Likewise.
34276         (aarch64_sqdmlsl_lane<mode>): Likewise.
34277         (aarch64_sqdmlsl_laneq<mode>): Likewise.
34278         (aarch64_sqdmlal2_lane<mode>): Likewise.
34279         (aarch64_sqdmlal2_laneq<mode>): Likewise.
34280         (aarch64_sqdmlsl2_lane<mode>): Likewise.
34281         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34282         (aarch64_sqdmull_lane<mode>): Likewise.
34283         (aarch64_sqdmull_laneq<mode>): Likewise.
34284         (aarch64_sqdmull2_lane<mode>): Likewise.
34285         (aarch64_sqdmull2_laneq<mode>): Likewise.
34286
34287 2014-06-10  Richard Biener  <rguenther@suse.de>
34288
34289         PR tree-optimization/61438
34290         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34291         (eliminate_dom_walker::before_dom_children): Only try to inhibit
34292         insertion of IVs if running PRE.
34293         (eliminate): Adjust.
34294         (pass_pre::execute): Likewise.
34295         (pass_fre::execute): Likewise.
34296
34297 2014-06-10  Richard Biener  <rguenther@suse.de>
34298
34299         PR middle-end/61456
34300         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34301         Do not use the main variant for the type comparison.
34302         (ncr_compar): Likewise.
34303         (nonoverlapping_component_refs_p): Likewise.
34304
34305 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34306
34307         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34308         REG_CFA_RESTORE mode.
34309
34310 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
34311
34312         * config/i386/i386.c (expand_vec_perm_pblendv): New.
34313         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
34314         expand_vec_perm_pblendv.
34315
34316 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34317
34318         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
34319         available.
34320         Simplify description of __crc32d and __crc32cd intrinsics.
34321         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
34322         availability.
34323
34324 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
34325
34326         PR lto/61334
34327         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
34328         * config.in: Regenerate.
34329         * configure: Likewise.
34330
34331 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34332
34333         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
34334         and public vars.
34335         (intersect_static_var_sets): Remove.
34336         (propagate): Do not prune local statics.
34337
34338 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
34339
34340         PR fortran/60928
34341         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
34342         Set lastprivate_firstprivate even if omp_private_outer_ref
34343         langhook returns true.
34344         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
34345         langhook, call unshare_expr on new_var and call
34346         build_outer_var_ref to get the last argument.
34347
34348 2014-06-10  Marek Polacek  <polacek@redhat.com>
34349
34350         PR c/60988
34351         * doc/extend.texi: Add cindex for transparent_union.
34352
34353 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34354
34355         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
34356         init_symbolic_number ().
34357
34358 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
34359
34360         PR middle-end/61141
34361         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
34362         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
34363         (verify_rtl_sharing): Likewise.
34364
34365 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
34366
34367         PR c++/54442
34368         * tree.c (build_qualified_type): Use a canonical type for
34369         TYPE_CANONICAL.
34370
34371 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34372
34373         * config/arm/arm-modes.def: Remove XFmode.
34374
34375 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
34376
34377         PR target/61062
34378         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
34379         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
34380         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
34381         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
34382         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
34383         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
34384         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
34385         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
34386         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
34387
34388 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
34389
34390         * tree-core.h (tree_decl_with_vis): Remove section_name.
34391
34392 2014-06-09  Kito Cheng  <kito@0xlab.org>
34393
34394         * ira.c (ira): Don't call init_caller_save if LRA enabled
34395         since LRA use its own infrastructure to handle that.
34396
34397 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34398
34399         * symtab.c (dump_symtab_base): Update dumping.
34400         (symtab_make_decl_local): Clear only DECL_COMDAT.
34401         * tree-vect-data-refs.c (Check that variable is static before
34402         tampering with sections.
34403         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
34404         (cgraph_create_virtual_clone): Likewise.
34405         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
34406         (decl_section_name, set_decl_section_name): New accessors.
34407         (find_decls_types_r): Do not walk section name
34408         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
34409         (decl_comdat_group, decl_comdat_group_id): Constify.
34410         (decl_section_name, set_decl_section_name): Update.
34411         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
34412         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
34413         (cgraph_make_node_local_1): Clear section and comdat group.
34414         * cgraph.h (set_comdat_group): Sanity check.
34415         (get_section, set_section): New.
34416         * ipa-comdats.c (ipa_comdats): Use get_section.
34417         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
34418         * lto-streamer-out.c: Do not follow section names.
34419         * c-family/c-common.c (handle_section_attribute): Update.
34420         * lto-cgraph.c (lto_output_node): Output section.
34421         (lto_output_varpool_node): Likewise.
34422         (read_comdat_group): Rename to ...
34423         (read_identifier): ... this one.
34424         (read_string_cst): New function.
34425         (input_node, input_varpool_node): Input section names.
34426         * tree-emutls.c (get_emutls_init_templ_addr): Update.
34427         (new_emutls_decl): Update.
34428         (secname_for_decl): Check section names only of static vars.
34429         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
34430         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
34431         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
34432         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
34433         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
34434         * config/mcore/mcore.c (mcore_unique_section): Likewise.
34435         * config/mips/mips.c (mips16_build_function_stub): Likewise.
34436         * config/v850/v850.c (v850_insert_attributes): Likewise.
34437         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
34438         Likewise.
34439         (h8300_handle_tiny_data_attribute): Likewise.
34440         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
34441         (bfin_handle_l2_attribute): Likewise.
34442
34443 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34444
34445         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
34446         remove static initializer.
34447
34448 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34449
34450         * varasm.c (use_blocks_for_decl_p): Check symbol table
34451         instead of alias attribute.
34452         (place_block_symbol): Recurse on aliases.
34453
34454 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34455
34456         * ipa-visibility.c: Include varasm.h
34457         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
34458
34459 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34460
34461         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
34462         outputting aliases.
34463
34464 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
34465
34466         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
34467         from test_insn into GGC space escape via SET_SRC.
34468
34469 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
34470
34471         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
34472         call statement, if any.
34473         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
34474         statements, if any.  Tidy up.
34475
34476 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
34477
34478         PR target/61431
34479         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
34480         iterators, VSX_D that handles 64-bit types, and VSX_LE that
34481         handles swapping the two 64-bit double words on little endian
34482         systems.  Include V1TImode and optionally TImode in VSX_LE so that
34483         these types are properly swapped.  Change all of the insns and
34484         splits that do the 64-bit swaps to use VSX_LE.
34485         (vsx_le_perm_load_<mode>): Likewise.
34486         (vsx_le_perm_store_<mode>): Likewise.
34487         (splitters for little endian memory operations): Likewise.
34488         (vsx_xxpermdi2_le_<mode>): Likewise.
34489         (vsx_lxvd2x2_le_<mode>): Likewise.
34490         (vsx_stxvd2x2_le_<mode>): Likewise.
34491
34492 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
34493
34494         PR target/61423
34495         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
34496         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
34497         and corresponding splitters.  Zero extend general register
34498         or memory input operand to XMM temporary.  Enable for
34499         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
34500         (floatunssi<mode>2): Update expander predicate.
34501
34502 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
34503
34504         PR rtl-optimization/61325
34505         * lra-constraints.c (process_address_1): Check scale equal to one
34506         to prevent transformation: base + scale * index => base + new_reg.
34507
34508 2014-06-06  Richard Biener  <rguenther@suse.de>
34509
34510         PR tree-optimization/59299
34511         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
34512         a def operand.
34513         (nearest_common_dominator_of_uses): Likewise.
34514         (statement_sink_location): Adjust.  Support sinking loads.
34515
34516 2014-06-06  Martin Jambor  <mjambor@suse.cz>
34517
34518         * ipa-prop.c (get_place_in_agg_contents_list): New function.
34519         (build_agg_jump_func_from_list): Likewise.
34520         (determine_known_aggregate_parts): Renamed to
34521         determine_locally_known_aggregate_parts.  Moved some functionality
34522         to the two functions above, removed bound checks.
34523
34524 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
34525
34526         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
34527         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
34528         (aarch64_progress_pointer): Likewise.
34529         (aarch64_copy_one_part_and_move_pointers): Likewise.
34530         (aarch64_expand_movmen): Likewise.
34531         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
34532         * config/aarch64/aarch64.md (movmem<mode>): New.
34533
34534 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
34535
34536         * targhooks.c (default_add_stmt_cost): Call target specific
34537         hook instead of default one.
34538
34539 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34540
34541         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
34542         endianness instead of host endianness.
34543         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
34544         comments.
34545
34546 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34547
34548         PR debug/53927
34549         * function.c (instantiate_decls): Process the saved static chain.
34550         (expand_function_start): If not optimizing, save the static chain
34551         onto the stack.
34552         * tree-nested.c (convert_all_function_calls): Always create the static
34553         chain for nested functions if not optimizing.
34554
34555 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34556
34557         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
34558
34559 2014-06-06  Richard Biener  <rguenther@suse.de>
34560
34561         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
34562         (construct_init_block): Likewise.
34563         (construct_exit_block): Likewise.
34564         (pass_expand::execute): Likewise.
34565         * graphite.c (graphite_transforms): Replace check for current_loops
34566         with a check for > 1 loops.
34567         (pass_graphite_transforms::execute): Adjust.
34568         * ipa-split.c (split_function): Remove check for current_loops.
34569         * omp-low.c (expand_parallel_call): Likewise.
34570         (expand_omp_for_init_counts): Likewise.
34571         (extract_omp_for_update_vars): Likewise.
34572         (expand_omp_for_generic): Likewise.
34573         (expand_omp_sections): Likewise.
34574         (expand_omp_target): Likewise.
34575         * tracer.c (tail_duplicate): Likewise.
34576         (pass_tracer::execute): Likewise.
34577         * trans-mem.c (expand_transaction): Likewise.
34578         * tree-complex.c (expand_complex_div_wide): Likewise.
34579         * tree-eh.c (lower_resx): Likewise.
34580         (cleanup_empty_eh_merge_phis): Likewise.
34581         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
34582         current_loops with a check for > 1 loops.
34583         (pass_predcom::execute): Adjust.
34584         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
34585         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
34586         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
34587         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
34588         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
34589         * tree-switch-conversion.c (process_switch): Likewise.
34590         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
34591         * tree-vrp.c (vrp_visit_phi_node): Likewise.
34592         (execute_vrp): Likewise.
34593         * ubsan.c (ubsan_expand_null_ifn): Likewise.
34594
34595 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34596
34597         * rtl.h (insn_location): Declare.
34598         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
34599         with UNKNOWN_LOCATION.
34600         * emit-rtl.c (insn_location): New function.
34601         * final.c (notice_source_line): Check that the instruction has a
34602         location before retrieving it and use insn_location.
34603         * modulo-sched.c (loop_single_full_bb_p): Likewise.
34604         * print-rtl.c (print_rtx): Likewise.
34605
34606 2014-06-06  Richard Biener  <rguenther@suse.de>
34607
34608         * passes.def: Move 2nd VRP pass before phi-only-cprop.
34609
34610 2014-06-06  Christian Bruel  <christian.bruel@st.com>
34611
34612         PR tree-optimization/43934
34613         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
34614         cost.
34615
34616 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
34617
34618         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
34619         return NO_REGS for extra address and memory constraints.  Handle
34620         operands that match (or are equivalent to something that matches)
34621         extra constant constraints.  Ignore other non-register operands.
34622
34623 2014-06-06  Alan Modra  <amodra@gmail.com>
34624
34625         PR target/61300
34626         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
34627         * doc/tm.texi: Regenerate.
34628         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
34629         Use throughout in place of REG_PARM_STACK_SPACE.
34630         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
34631         "incoming" param.  Pass to rs6000_function_parms_need_stack.
34632         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
34633         prototype_p when incoming.  Use function decl when incoming
34634         to handle K&R style functions.
34635         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
34636         (INCOMING_REG_PARM_STACK_SPACE): Define.
34637
34638 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
34639
34640         PR target/52472
34641         * cfgexpand.c (expand_debug_expr): Use address space of nested
34642         TREE_TYPE for ADDR_EXPR and MEM_REF.
34643
34644 2014-06-05  Jeff Law  <law@redhat.com>
34645
34646         PR tree-optimization/61289
34647         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
34648         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
34649         looking for those which match LHS.  All callers changed.
34650         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
34651         parameters and code which manipulated them.  All callers changed.
34652         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
34653         and DST_MAP parameters.  Simplify invalidation code by just calling
34654         invalidate_equivalences.  All callers changed.
34655         (thread_across_edge): Simplify now that we don't need to maintain
34656         the map of equivalences to invalidate.
34657
34658 2014-06-05  Kai Tietz  <ktietz@redhat.com>
34659             Richard Henderson  <rth@redhat.com>
34660
34661         PR target/46219
34662         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
34663         checking for !TARGET_X32.
34664         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
34665         (sibcall_intern): New define_insn, plus required peepholes.
34666         (sibcall_pop_intern): Likewise.
34667         (sibcall_value_intern): Likewise.
34668         (sibcall_value_pop_intern): Likewise.
34669
34670 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
34671
34672         * tree-inline.c (tree_function_versioning): Check DF info existence
34673         before accessing it.
34674
34675 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34676
34677         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
34678         frame_size.
34679         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
34680         aarch64_frame hard_fp_offset and frame_size.
34681         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
34682         frame_size; remove original_frame_size.
34683         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
34684         (aarch64_initial_elimination_offset): Remove frame_size and
34685         offset.  Use aarch64_frame frame_size.
34686
34687 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34688             Jiong Wang  <jiong.wang@arm.com>
34689             Renlin  <renlin.li@arm.com>
34690
34691         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
34692         initialization of R30 offset.  Update offset.  Iterate core
34693         regisers upto X30.  Remove X29, X30 specific code.
34694
34695 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34696             Jiong Wang  <jiong.wang@arm.com>
34697
34698         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
34699         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
34700         (aarch64_register_saved_on_entry): Adjust test.
34701
34702 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34703
34704         * config/aarch64/aarch64.h (machine_function): Move
34705         saved_varargs_size from here...
34706         (aarch64_frame): ... to here.
34707
34708         * config/aarch64/aarch64.c (aarch64_expand_prologue)
34709         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
34710         (aarch64_initial_elimination_offset)
34711         (aarch64_setup_incoming_varargs): Adjust location of
34712         saved_varargs_size.
34713
34714 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34715
34716         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
34717         layout comment.
34718
34719 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
34720             Prachi Godbole  <Prachi.Godbole@imgtec.com>
34721
34722         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
34723         mips32r5 entry to use PROCESSOR_P5600.
34724         * config/mips/mips-tables.opt: Regenerate.
34725         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
34726         * config/mips/mips.c (mips_fmadd_bypass): New function.
34727         (mips_rtx_cost_data): Add costs for p5600.
34728         (mips_issue_rate): Add support for p5600.
34729         (mips_multipass_dfa_lookahead): Likewise.
34730         * config/mips/mips.h (TUNE_P5600): New define.
34731         (TUNE_MACC_CHAINS): Add TUNE_P5600.
34732         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
34733         * config/mips/mips.md: Include p5600.md.
34734         (processor): Add p5600.
34735         * config/mips/p5600.md: New file.
34736
34737 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
34738
34739         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
34740         * config/i386/predicates.md (palignr_operand): New.
34741         Indicates if permutation is suitable for palignr instruction.
34742
34743 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
34744
34745         PR tree-optimization/61319
34746         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
34747         stmt belongs to loop.
34748
34749 2014-06-05  Richard Biener  <rguenther@suse.de>
34750
34751         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
34752         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
34753         (lookup_tmp_var): Adjust.
34754         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
34755
34756 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34757
34758         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
34759
34760 2014-06-05  Marek Polacek  <polacek@redhat.com>
34761
34762         PR c/49706
34763         * doc/invoke.texi: Document -Wlogical-not-parentheses.
34764
34765 2014-06-04  Tom de Vries  <tom@codesourcery.com>
34766
34767         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
34768         CONST_INT.
34769
34770 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
34771
34772         PR tree-optimization/61385
34773         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
34774
34775 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
34776
34777         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
34778         changed to use fatal_error.
34779         (main): Ensure lto_wrapper_cleanup is run atexit.
34780
34781 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34782
34783         * lra-constraints.c (valid_address_p): Move earlier in file.
34784         (address_eliminator): New structure.
34785         (satisfies_memory_constraint_p): New function.
34786         (satisfies_address_constraint_p): Likewise.
34787         (process_alt_operands, process_address, curr_insn_transform): Use them.
34788
34789 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34790
34791         * lra-int.h (lra_static_insn_data): Make operand_alternative a
34792         const pointer.
34793         (target_lra_int, default_target_lra_int, this_target_lra_int)
34794         (op_alt_data): Delete.
34795         * lra.h (lra_init): Delete.
34796         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
34797         (init_insn_code_data_once): Remove op_alt_data handling.
34798         (finish_insn_code_data_once): Likewise.
34799         (init_op_alt_data): Delete.
34800         (get_static_insn_data): Initialize operand_alternative to null.
34801         (free_insn_recog_data): Cast operand_alternative before freeing it.
34802         (setup_operand_alternative): Take the operand_alternative as
34803         parameter and assume it isn't already cached in the static
34804         insn data.
34805         (lra_set_insn_recog_data): Update accordingly.
34806         (lra_init): Delete.
34807         * ira.c (ira_init): Don't call lra_init.
34808         * target-globals.h (this_target_lra_int): Declare.
34809         (target_globals): Remove lra_int.
34810         (restore_target_globals): Update accordingly.
34811         * target-globals.c: Don't include lra-int.h.
34812         (default_target_globals, save_target_globals): Remove lra_int.
34813
34814 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34815
34816         * recog.h (operand_alternative): Convert reg_class, reject,
34817         matched and matches into bitfields.
34818         (preprocess_constraints): New overload.
34819         (preprocess_insn_constraints): New function.
34820         (preprocess_constraints): Take the insn as parameter.
34821         (recog_op_alt): Change into a pointer.
34822         (target_recog): Add x_op_alt.
34823         * recog.c (asm_op_alt): New variable.
34824         (recog_op_alt): Change into a pointer.
34825         (preprocess_constraints): New overload, replacing the old function
34826         definition with one that doesn't use global state.
34827         (preprocess_insn_constraints): New function.
34828         (preprocess_constraints): Use them.  Take the insn as parameter.
34829         Use asm_op_alt for asms.
34830         (recog_init): Free existing x_op_alt entries.
34831         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
34832         pointer const.
34833         (make_early_clobber_and_input_conflicts): Likewise.
34834         (process_bb_node_lives): Pass the insn to process_constraints.
34835         * reg-stack.c (check_asm_stack_operands): Likewise.
34836         (subst_asm_stack_regs): Likewise.
34837         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34838         * regrename.c (build_def_use): Likewise.
34839         * sched-deps.c (sched_analyze_insn): Likewise.
34840         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
34841         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
34842         (note_invalid_constants): Likewise.
34843         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34844         (ix86_legitimate_combined_insn): Make operand_alternative pointer
34845         const.
34846
34847 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34848
34849         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
34850         * ira-lives.c (check_and_make_def_conflict): Check for disabled
34851         alternatives.
34852         (make_early_clobber_and_input_conflicts): Likewise.
34853         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34854
34855 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34856
34857         * recog.h (alternative_class): New function.
34858         (which_op_alt): Return a const recog_op_alt.
34859         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
34860         (subst_asm_stack_regs): Likewise.
34861         * config/arm/arm.c (note_invalid_constants): Likewise.
34862         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
34863         the operand_alternative; use alternative class instead.
34864         * sel-sched.c (get_reg_class): Likewise.
34865         * regrename.c (build_def_use): Likewise.
34866         (hide_operands, restore_operands, record_out_operands): Update type
34867         accordingly.
34868
34869 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34870
34871         * recog.h (recog_op_alt): Convert to a flat array.
34872         (which_op_alt): New function.
34873         * recog.c (recog_op_alt): Convert to a flat array.
34874         (preprocess_constraints): Update accordingly, grouping all
34875         operands of the same alternative together, rather than the
34876         other way around.
34877         * ira-lives.c (check_and_make_def_conflict): Likewise.
34878         (make_early_clobber_and_input_conflicts): Likewise.
34879         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34880         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
34881         (subst_asm_stack_regs): Likewise.
34882         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34883         * regrename.c (hide_operands, record_out_operands): Likewise.
34884         (build_def_use): Likewise.
34885         * sel-sched.c (get_reg_class): Likewise.
34886         * config/arm/arm.c (note_invalid_constants): Likewise.
34887
34888 2014-06-04  Jason Merrill  <jason@redhat.com>
34889
34890         PR c++/51253
34891         PR c++/61382
34892         * gimplify.c (gimplify_arg): Non-static.
34893         * gimplify.h: Declare it.
34894
34895 2014-06-04  Richard Biener  <rguenther@suse.de>
34896
34897         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34898         TREE_PUBLIC and DECL_EXTERNAL decls.
34899
34900 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
34901
34902         * regcprop.c (copyprop_hardreg_forward_1): Account for
34903         HARD_REGNO_CALL_PART_CLOBBERED.
34904
34905 2014-06-04  Richard Biener  <rguenther@suse.de>
34906
34907         * configure.ac: Check whether the underlying type of int64_t
34908         is long or long long.
34909         * configure: Regenerate.
34910         * config.in: Likewise.
34911         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
34912         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34913
34914 2014-06-04  Richard Biener  <rguenther@suse.de>
34915
34916         PR tree-optimization/60098
34917         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
34918         we hit a kill.
34919         (dse_optimize_stmt): Simplify, now that we found a kill
34920         earlier.
34921
34922 2014-06-04  Richard Biener  <rguenther@suse.de>
34923
34924         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
34925         of accesses with non-invariant address.
34926
34927 2014-06-04  Martin Liska  <mliska@suse.cz>
34928
34929         * cgraph.h (cgraph_make_wrapper): New function introduced.
34930         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
34931         * ipa-inline.h (inline_analyze_function): The function is global.
34932         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
34933
34934 2014-06-04  Martin Liska  <mliska@suse.cz>
34935
34936         * tree.h (private_lookup_attribute_starting): New function.
34937         (lookup_attribute_starting): Likewise.
34938         * tree.c (private_lookup_attribute_starting): Likewise.
34939
34940 2014-06-04  Martin Liska  <mliska@suse.cz>
34941
34942         * cgraph.h (expand_thunk): New argument added.
34943         (address_taken_from_non_vtable_p): New global function.
34944         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
34945         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
34946         * cgraphunit.c (analyze_function): Likewise.
34947         (assemble_thunks_and_aliases): Argument added to call.
34948         (expand_thunk): New argument forces to produce GIMPLE thunk.
34949
34950 2014-06-04  Martin Liska  <mliska@suse.cz>
34951
34952         * coverage.h (coverage_compute_cfg_checksum): Argument added.
34953         * coverage.c (coverage_compute_cfg_checksum): Likewise.
34954         * profile.c (branch_prob): Likewise.
34955
34956 2014-06-04  Martin Jambor  <mjambor@suse.cz>
34957
34958         PR ipa/61340
34959         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
34960         handler for switch on an ipa_ref_use enum.
34961         * ipa-reference.c (analyze_function): Likewise.
34962
34963 2014-06-04  Kai Tietz  <ktietz@redhat.com>
34964
34965         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
34966         from old call-instruction.
34967
34968 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
34969
34970         * config/aarch64/aarch64.c (aarch64_classify_address)
34971         (aarch64_legitimize_reload_address): Support full addressing modes
34972         for vector modes.
34973         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
34974         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
34975
34976 2014-06-03  Andrew Pinski  <apinski@cavium.com>
34977
34978         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
34979         for OP0.
34980
34981 2014-06-03  Andrew Pinski  <apinski@cavium.com>
34982
34983         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
34984         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
34985
34986 2014-06-03  Kai Tietz  <ktietz@redhat.com>
34987
34988         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
34989         for 64-bit ms-abi.
34990
34991 2014-06-03  Dehao Chen  <dehao@google.com>
34992
34993         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
34994         the same loop.
34995
34996 2014-06-03  Marek Polacek  <polacek@redhat.com>
34997
34998         PR c/60439
34999         * doc/invoke.texi: Document -Wswitch-bool.
35000         * function.c (stack_protect_epilogue): Cast controlling expression of
35001         the switch to int.
35002         * gengtype.c (walk_type): Generate switch expression with its
35003         controlling expression cast to int.
35004
35005 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
35006
35007         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
35008         and attiny841.
35009         * config/avr/avr-tables.opt: Regenerate.
35010         * config/avr/t-multilib: Regenerate.
35011         * doc/avr-mmcu.texi: Regenerate.
35012
35013 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
35014             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
35015
35016         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
35017         (ata6617c, ata664251): Add new avr35 devices.
35018         (ata6612c): Add new avr4 device.
35019         (ata6613c, ata6614q): Add new avr5 devices.
35020         * config/avr/avr-tables.opt: Regenerate.
35021         * config/avr/t-multilib: Regenerate.
35022         * doc/avr-mmcu.texi: Regenerate.
35023
35024 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35025
35026         * gcc/config/aarch64/aarch64-builtins.c
35027         (aarch64_types_binop_ssu_qualifiers): New static data.
35028         (TYPES_BINOP_SSU): Define.
35029         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
35030         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
35031         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
35032         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
35033         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
35034         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
35035         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
35036         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
35037         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
35038         suffix to builtin function name, remove cast.
35039         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
35040         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
35041         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
35042
35043 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35044
35045         * gcc/config/aarch64/aarch64-builtins.c
35046         (aarch64_types_binop_uus_qualifiers,
35047         aarch64_types_shift_to_unsigned_qualifiers,
35048         aarch64_types_unsigned_shiftacc_qualifiers): Define.
35049         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
35050         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
35051         sqshlu_n, uqshl_n): Update qualifiers.
35052         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
35053         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
35054         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
35055         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
35056         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
35057         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
35058         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
35059         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
35060         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
35061         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
35062         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
35063         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
35064         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
35065         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
35066         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
35067         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
35068         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
35069         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
35070         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
35071         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
35072         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
35073         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
35074         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
35075         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
35076         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
35077         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
35078         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
35079
35080 2014-06-03  Teresa Johnson  <tejohnson@google.com>
35081
35082         * tree-sra.c (modify_function): Record caller nodes after rebuild.
35083
35084 2014-06-02  Jason Merrill  <jason@redhat.com>
35085
35086         PR c++/61020
35087         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
35088
35089 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35090
35091         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
35092         location == 0.
35093
35094 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
35095
35096         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
35097         New pattern.
35098         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
35099         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
35100         * config/aarch64/iterators.md (REVERSE): New iterator.
35101         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
35102         (rev_op): New int_attribute.
35103         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
35104         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
35105         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
35106         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
35107         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
35108         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
35109         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
35110         Replace temporary __asm__ with __builtin_shuffle.
35111
35112 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35113
35114         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
35115         mips64r5.
35116         * config/mips/mips-tables.opt: Regenerate.
35117         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
35118         to use mips_isa_rev rather than ISA_MIPS32R2.
35119         * config/mips/mips.h (ISA_MIPS32R3): New define.
35120         (ISA_MIPS32R5): New define.
35121         (ISA_MIPS64R3): New define.
35122         (ISA_MIPS64R5): New define.
35123         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
35124         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
35125         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
35126         and mips64r5.
35127         (MIPS_ISA_SYNCI_SPEC): Likewise.
35128         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
35129         (LINK_SPEC): Added mips32r3 and mips32r5.
35130         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
35131         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
35132         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
35133         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
35134         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
35135         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
35136         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
35137
35138 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
35139
35140         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
35141         options.
35142         * config/mips/mips.opt (mxpa): New option.
35143         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
35144         assembler.
35145
35146 2014-06-03  Martin Jambor  <mjambor@suse.cz>
35147
35148         PR ipa/61160
35149         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
35150         thunks.
35151
35152 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35153
35154         PR tree-optimization/61328
35155         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
35156         initialization from find_bswap_or_nop_1.
35157         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
35158         in source_expr2 before using the size value the function sets. Also
35159         make use of init_symbolic_number () in both the old place and
35160         find_bswap_or_nop_load () to avoid reading uninitialized memory when
35161         doing recursion in the GIMPLE_BINARY_RHS case.
35162
35163 2014-06-03  Richard Biener  <rguenther@suse.de>
35164
35165         PR tree-optimization/61383
35166         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
35167         stmts can't trap.
35168
35169 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
35170
35171         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
35172         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
35173         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
35174         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
35175         in this file.
35176         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
35177         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
35178         * system.h: ...here and make it unconditional.
35179         * target.def (conditional_register_usage): Mention
35180         define_register_constraint instead of old-style constraint macros.
35181         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
35182         * doc/tm.texi: Regenerate.
35183         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
35184         protected by !USE_MD_CONSTRAINTS.
35185         * config/frv/frv.md: Remove quote from old version of documentation.
35186         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
35187         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
35188         CONST_DOUBLE_OK_FOR_LETTER.
35189         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
35190
35191 2014-06-02  Andrew Pinski  <apinski@cavium.com>
35192
35193         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
35194         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
35195         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
35196         file whose name depends on -mabi= and -mbig-endian.
35197         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
35198         Handle LP64 better and handle ilp32 too.
35199         (MULTILIB_OPTIONS): Delete.
35200         (MULTILIB_DIRNAMES): Delete.
35201
35202 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
35203
35204         * expr.h: Remove prototypes of functions defined in builtins.c.
35205         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
35206         Remove prototypes of functions defined in builtins.c.
35207         * builtins.h: Update prototype list to include all exported functions.
35208         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
35209         no_c99_libc_has_function): Move to targhooks.c
35210         (build_string_literal, build_call_expr_loc_array,
35211         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
35212         to tree.c.
35213         (expand_builtin_object_size, fold_builtin_object_size): Make static.
35214         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
35215         no_c99_libc_has_function): Relocate from builtins.c.
35216         * tree.c: Include builtins.h.
35217         (build_call_expr_loc_array, build_call_expr_loc_vec,
35218         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
35219         from builtins.c.
35220         * fold-const.h (fold_fma): Move prototype to builtins.h.
35221         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
35222         * asan.c: Include builtins.h.
35223         * cfgexpand.c: Likewise.
35224         * convert.c: Likewise.
35225         * emit-rtl.c: Likewise.
35226         * except.c: Likewise.
35227         * expr.c: Likewise.
35228         * fold-const.c: Likewise.
35229         * gimple-fold.c: Likewise.
35230         * gimple-ssa-strength-reduction.c: Likewise.
35231         * gimplify.c: Likewise.
35232         * ipa-inline.c: Likewise.
35233         * ipa-prop.c: Likewise.
35234         * lto-streamer-out.c: Likewise.
35235         * stmt.c: Likewise.
35236         * tree-inline.c: Likewise.
35237         * tree-object-size.c: Likewise.
35238         * tree-sra.c: Likewise.
35239         * tree-ssa-ccp.c: Likewise.
35240         * tree-ssa-forwprop.c: Likewise.
35241         * tree-ssa-loop-ivcanon.c: Likewise.
35242         * tree-ssa-loop-ivopts.c: Likewise.
35243         * tree-ssa-math-opts.c: Likewise.
35244         * tree-ssa-reassoc.c: Likewise.
35245         * tree-ssa-threadedge.c: Likewise.
35246         * tree-streamer-in.c: Likewise.
35247         * tree-vect-data-refs.c: Likewise.
35248         * tree-vect-patterns.c: Likewise.
35249         * tree-vect-stmts.c: Likewise.
35250         * config/aarch64/aarch64.c: Likewise.
35251         * config/alpha/alpha.c: Likewise.
35252         * config/arc/arc.c: Likewise.
35253         * config/arm/arm.c: Likewise.
35254         * config/avr/avr.c: Likewise.
35255         * config/bfin/bfin.c: Likewise.
35256         * config/c6x/c6x.c: Likewise.
35257         * config/cr16/cr16.c: Likewise.
35258         * config/cris/cris.c: Likewise.
35259         * config/epiphany/epiphany.c: Likewise.
35260         * config/fr30/fr30.c: Likewise.
35261         * config/frv/frv.c: Likewise.
35262         * config/h8300/h8300.c: Likewise.
35263         * config/i386/i386.c: Likewise.
35264         * config/i386/winnt.c: Likewise.
35265         * config/ia64/ia64.c: Likewise.
35266         * config/iq2000/iq2000.c: Likewise.
35267         * config/lm32/lm32.c: Likewise.
35268         * config/m32c/m32c.c: Likewise.
35269         * config/m32r/m32r.c: Likewise.
35270         * config/m68k/m68k.c: Likewise.
35271         * config/mcore/mcore.c: Likewise.
35272         * config/mep/mep.c: Likewise.
35273         * config/microblaze/microblaze.c: Likewise.
35274         * config/mips/mips.c: Likewise.
35275         * config/mmix/mmix.c: Likewise.
35276         * config/mn10300/mn10300.c: Likewise.
35277         * config/moxie/moxie.c: Likewise.
35278         * config/msp430/msp430.c: Likewise.
35279         * config/nds32/nds32.c: Likewise.
35280         * config/pa/pa.c: Likewise.
35281         * config/pdp11/pdp11.c: Likewise.
35282         * config/picochip/picochip.c: Likewise.
35283         * config/rl78/rl78.c: Likewise.
35284         * config/rs6000/rs6000.c: Likewise.
35285         * config/rx/rx.c: Likewise.
35286         * config/s390/s390.c: Likewise.
35287         * config/score/score.c: Likewise.
35288         * config/sh/sh.c: Likewise.
35289         * config/sparc/sparc.c: Likewise.
35290         * config/spu/spu.c: Likewise.
35291         * config/stormy16/stormy16.c: Likewise.
35292         * config/tilegx/tilegx.c: Likewise.
35293         * config/tilepro/tilepro.c: Likewise.
35294         * config/v850/v850.c: Likewise.
35295         * config/vax/vax.c: Likewise.
35296         * config/xtensa/xtensa.c: Likewise.
35297
35298 2014-06-02  Jeff Law  <law@redhat.com>
35299
35300         PR rtl-optimization/61094
35301         * ree.c (combine_reaching_defs): Do not reextend an insn if it
35302         was marked as do_no_reextend.  If a copy is needed to eliminate
35303         an extension, then mark it as do_not_reextend.
35304
35305 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35306
35307         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35308
35309 2014-06-02  Richard Henderson  <rth@redhat.com>
35310
35311         PR target/61336
35312         * config/alpha/alpha.c (print_operand_address): Allow symbolic
35313         addresses inside asms.  Use output_operand_lossage instead of
35314         gcc_unreachable.
35315
35316 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
35317
35318         PR target/61239
35319         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
35320         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
35321
35322 2014-06-02  Tom de Vries  <tom@codesourcery.com>
35323
35324         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
35325         case that x has VOIDmode.
35326
35327 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
35328
35329         * varasm.c (copy_constant): Delete function.
35330         (build_constant_desc): Don't call it.
35331
35332 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35333
35334         PR target/61154
35335         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
35336         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
35337         with immediate_operand.
35338
35339 2014-06-02  Andreas Schwab  <schwab@suse.de>
35340
35341         * config/ia64/ia64.c
35342         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
35343         pending_data_specs first.
35344
35345 2014-06-02  Richard Biener  <rguenther@suse.de>
35346
35347         PR tree-optimization/61378
35348         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
35349         valueized_anything.
35350
35351 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
35352
35353         * config/i386/constraints.md (Bw): Rename from 'w'.
35354         (Bz): Rename from 'z'.
35355         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
35356
35357 2014-06-01  Kai Tietz  <ktietz@redhat.com>
35358
35359         PR target/61377
35360         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
35361         * config/i386/i386.md (sibcall_insn_operand): Use Bs
35362         instead of m constraint.
35363
35364 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
35365
35366         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
35367         a separate alternative where the scratch operand 2 is marked as
35368         early clobber.
35369
35370 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
35371
35372         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
35373         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
35374         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
35375         and __builtins_arm_get_fpscr.
35376         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
35377         __builtins_arm_get_fpscr.
35378         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
35379         __builtins_arm_ldfpscr.
35380         (arm_atomic_assign_expand_fenv): New function.
35381         * config/arm/vfp.md (set_fpscr): New pattern.
35382         (get_fpscr) : Likewise.
35383         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
35384         VUNSPEC_SET_FPSCR.
35385         * doc/extend.texi (AARCH64 Built-in Functions) : Document
35386         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
35387
35388 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
35389
35390         * asan.c (report_error_func): Add SLOW_P argument, use
35391         BUILT_IN_ASAN_*_N if set.
35392         (build_check_stmt): Likewise.
35393         (instrument_derefs): If T has insufficient alignment,
35394         force same handling as for odd sizes.
35395
35396         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
35397         BUILT_IN_ASAN_REPORT_STORE_N): New.
35398         * asan.c (struct asan_mem_ref): Change access_size type to
35399         HOST_WIDE_INT.
35400         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
35401         update_mem_ref_hash_table): Likewise.
35402         (asan_mem_ref_hasher::hash): Hash in a HWI.
35403         (report_error_func): Change size_in_bytes argument to HWI.
35404         Use *_N builtins if size_in_bytes is larger than 16 or not power of
35405         two.
35406         (build_shadow_mem_access): New function.
35407         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
35408         Handle size_in_bytes not power of two or larger than 16.
35409         (instrument_derefs): Don't give up if size_in_bytes is not
35410         power of two or is larger than 16.
35411
35412 2014-05-30  Kai Tietz  <ktietz@redhat.com>
35413
35414         PR target/60104
35415         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
35416         for sibling-tail-calls.
35417         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
35418         to its use.
35419         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
35420         (sibcall_insn_operand): Add check for sibcall_memory_operand.
35421
35422 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
35423
35424         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
35425         * config/avr/avr-tables.opt: Regenerate.
35426         * config/avr/t-multilib: Regenerate.
35427         * doc/avr-mmcu.texi: Regenerate.
35428
35429 2014-05-30  Ian Lance Taylor  <iant@google.com>
35430
35431         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
35432         target("sse").
35433
35434 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35435
35436         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
35437         Redefine as true.
35438
35439 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35440
35441         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35442         * lra.c (initialize_lra_reg_info_element): Add init of
35443         actual_call_used_reg_set field.
35444         (lra): Call lra_create_live_ranges before lra_inheritance for
35445         -fuse-caller-save.
35446         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35447         -fuse-caller-save.
35448         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
35449         instead of call_used_reg_set for -fuse-caller-save.
35450         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35451
35452 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35453
35454         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
35455         to mov_imm.
35456         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
35457
35458 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
35459
35460         * ira.c (ira_get_dup_out_num): Check for output operands at
35461         the start of the loop.  Handle cases where an included alternative
35462         follows an excluded one.
35463
35464 2014-05-29  Mike Stump  <mikestump@comcast.net>
35465
35466         PR debug/61352
35467         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
35468         post ld passes when lto is used.
35469
35470 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
35471
35472         PR rtl-optimization/61325
35473         * lra-constraints.c (process_address): Rename to process_address_1.
35474         (process_address): New function.
35475
35476 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
35477
35478         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
35479         TYPES_BINOPV): New static data.
35480         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
35481         New builtin.
35482         * config/aarch64/aarch64-simd.md (aarch64_ext,
35483         aarch64_im_lane_boundsi): New patterns.
35484         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
35485         patterns for EXT.
35486         (aarch64_evpc_ext): New function.
35487
35488         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
35489
35490         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
35491         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
35492         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
35493         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
35494         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
35495
35496 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35497
35498         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
35499
35500 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
35501             Richard Sandiford  <rdsandiford@googlemail.com>
35502
35503         * arm/iterators.md (shiftable_ops): New code iterator.
35504         (t2_binop0, arith_shift_insn): New code attributes.
35505         * arm/predicates.md (shift_nomul_operator): New predicate.
35506         * arm/arm.md (insn_enabled): Delete.
35507         (enabled): Remove insn_enabled test.
35508         (*arith_shiftsi): Delete.  Replace with ...
35509         (*<arith_shift_insn>_multsi): ... new pattern.
35510         (*<arith_shift_insn>_shiftsi): ... new pattern.
35511         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
35512
35513 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
35514             Tom de Vries  <tom@codesourcery.com>
35515
35516         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
35517         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
35518         clobber.
35519         (mips_split_call): Use POST_CALL_TMP_REG.
35520         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
35521
35522 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35523
35524         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
35525         with #ifdef STACK_REGS.
35526
35527 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
35528
35529         * varasm.c (get_variable_section): Walk aliases.
35530         (place_block_symbol): Walk aliases.
35531
35532 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35533
35534         Revert:
35535         2014-05-28  Tom de Vries  <tom@codesourcery.com>
35536
35537         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35538         * lra.c (initialize_lra_reg_info_element): Add init of
35539         actual_call_used_reg_set field.
35540         (lra): Call lra_create_live_ranges before lra_inheritance for
35541         -fuse-caller-save.
35542         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35543         -fuse-caller-save.
35544         * lra-constraints.c (need_for_call_save_p): Use
35545         actual_call_used_reg_set instead of call_used_reg_set for
35546         -fuse-caller-save.
35547         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35548
35549 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35550
35551         * doc/md.texi: Document that the % constraint character must
35552         be at the beginning of the string.
35553         * genoutput.c (validate_insn_alternatives): Check that '=',
35554         '+' and '%' only appear at the beginning of a constraint.
35555         * ira.c (commutative_constraint_p): Delete.
35556         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
35557         at the start of the string.
35558         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
35559         duplicate '='s.
35560         * config/arm/neon.md (bicdi3_neon): Likewise.
35561         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
35562         (slt_si, sltu_si): Likewise.
35563         * config/vax/vax.md (sbcdi3): Likewise.
35564         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
35565         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
35566         (mul64): Move '%' to beginning of constraint.
35567         * config/arm/arm.md (*xordi3_insn): Likewise.
35568         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
35569         (xorsi3): Likewise.
35570
35571 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35572
35573         * doc/md.texi: Document the restrictions on the "enabled" attribute.
35574
35575 2014-05-28  Jason Merrill  <jason@redhat.com>
35576
35577         PR c++/47202
35578         * cgraph.h (symtab_node::get_comdat_group_id): New.
35579         * cgraphunit.c (analyze_functions): Call it.
35580         * symtab.c (dump_symtab_node): Likewise.
35581         * tree.c (decl_comdat_group_id): New.
35582         * tree.h: Declare it.
35583         * lto-streamer-out.c (write_symbol): Use it.
35584         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
35585
35586 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35587
35588         PR bootstrap/PR61146
35589         * wide-int.cc: Do not include longlong.h when compiling with clang.
35590
35591 2014-05-28  Richard Biener  <rguenther@suse.de>
35592
35593         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
35594         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
35595         (vrp_visit_assignment_or_call): Print less vertical space.
35596         (vrp_visit_stmt): Likewise.
35597         (vrp_visit_phi_node): Likewise.  For a PHI argument with
35598         VR_VARYING range consider recording it as copy.
35599
35600 2014-05-28  Richard Biener  <rguenther@suse.de>
35601
35602         Revert
35603         2014-05-28  Richard Biener  <rguenther@suse.de>
35604
35605         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35606
35607 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35608
35609         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
35610         sufficiently aligned and an offset is used at the same time.
35611         (expand_expr_real_1): Likewise.
35612
35613 2014-05-28  Richard Biener  <rguenther@suse.de>
35614
35615         PR middle-end/61045
35616         * fold-const.c (fold_comparison): When folding
35617         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
35618         the sign of the remaining constant operand stays the same.
35619
35620 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
35621
35622         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
35623         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
35624         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
35625         to the assembler.
35626         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
35627         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
35628         (m32bit-doubles) Likewise.
35629         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
35630         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
35631         option for RL78.
35632
35633 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35634
35635         * configure.ac ($gcc_cv_ld_clearcap): New test.
35636         * configure: Regenerate.
35637         * config.in: Regenerate.
35638         * config/sol2.opt (mclear-hwcap): New option.
35639         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
35640         * config/sol2-clearcap.map: Moved here from
35641         testsuite/gcc.target/i386/clearcap.map.
35642         * config/sol2-clearcapv2.map: Move here from
35643         gcc.target/i386/clearcapv2.map.
35644         * config/t-sol2 (install): Depend on install-clearcap-map.
35645         (install-clearcap-map): New target.
35646         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
35647         -mclear-hwcap.
35648
35649 2014-05-28  Richard Biener  <rguenther@suse.de>
35650
35651         * hwint.h (*_HALF_WIDE_INT*): Move to ...
35652         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
35653         ... here and remove the rest.
35654         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35655
35656 2014-05-28  Richard Biener  <rguenther@suse.de>
35657
35658         PR tree-optimization/61335
35659         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
35660         new range fails, drop to varying.
35661
35662 2014-05-28  Olivier Hainque  <hainque@adacore.com>
35663
35664         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
35665         (CPP_SPEC): Add entry for -mcpu=8548.
35666         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
35667         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
35668
35669 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35670
35671         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35672         * lra.c (initialize_lra_reg_info_element): Add init of
35673         actual_call_used_reg_set field.
35674         (lra): Call lra_create_live_ranges before lra_inheritance for
35675         -fuse-caller-save.
35676         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35677         -fuse-caller-save.
35678         * lra-constraints.c (need_for_call_save_p): Use
35679         actual_call_used_reg_set instead of call_used_reg_set for
35680         -fuse-caller-save.
35681         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35682
35683 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35684             Tom de Vries  <tom@codesourcery.com>
35685
35686         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
35687         to gccoptlist.
35688         (@item -fuse-caller-save): New item.
35689
35690 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35691             Tom de Vries  <tom@codesourcery.com>
35692
35693         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
35694         OPT_fuse_caller_save.
35695
35696 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35697             Tom de Vries  <tom@codesourcery.com>
35698
35699         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
35700         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
35701         get_call_reg_set_usage.
35702         * resource.c (mark_set_resources, mark_target_live_regs): Use
35703         get_call_reg_set_usage.
35704         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
35705         field.
35706         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
35707         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
35708         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35709         * ira-build.c (ira_create_allocno): Init
35710         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35711         (create_cap_allocno, propagate_allocno_info)
35712         (propagate_some_info_from_allocno)
35713         (copy_info_to_removed_store_destinations): Handle
35714         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35715         * ira-costs.c (ira_tune_allocno_costs): Use
35716         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
35717
35718 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35719             Tom de Vries  <tom@codesourcery.com>
35720
35721         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
35722         and function_used_regs_valid fields.
35723         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
35724         find_all_hard_reg_sets.
35725         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
35726         (get_call_reg_set_usage): New function.
35727         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
35728         * regs.h (get_call_reg_set_usage): Declare.
35729
35730 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35731
35732         PR libgcc/61152
35733         * config/dbx.h (License): Add Runtime Library Exception.
35734         * config/newlib-stdint.h (License): Same.
35735         * config/rtems.h (License): Same
35736         * config/initfini-array.h (License): Same
35737         * config/v850/v850.h (License): Same.
35738         * config/v850/v850-opts.h (License): Same
35739         * config/v850/rtems.h (License): Same.
35740
35741 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35742
35743         PR target/61044
35744         * doc/extend.texi (Local Labels): Note that label differences are
35745         not supported for AVR.
35746
35747 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35748             Olivier Hainque  <hainque@adacore.com>
35749
35750         * rtl.h (set_for_reg_notes): Declare.
35751         * emit-rtl.c (set_for_reg_notes): New function.
35752         (set_unique_reg_note): Use it.
35753         * optabs.c (add_equal_note): Likewise
35754
35755 2014-05-27  Andrew Pinski  <apinski@cavium.com>
35756
35757         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
35758         Use <w> for the register in assembly template.
35759         (stack_protect_test): Use the mode of operands[0] for the result.
35760         (stack_protect_test_<mode>): Use <w> for the register
35761         in assembly template.
35762
35763 2014-05-27  DJ Delorie  <dj@redhat.com>
35764
35765         * config/rx/rx.c (add_vector_labels): New.
35766         (rx_output_function_prologue): Call it.
35767         (rx_handle_func_attribute): Don't require empty arguments.
35768         (rx_handle_vector_attribute): New.
35769         (rx_attribute_table): Add "vector" attribute.
35770         * doc/extend.texi (interrupt, vector): Document new/changed
35771         RX-specific attributes.
35772
35773         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
35774
35775 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35776
35777         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
35778         predicate to detect a negative quotient.
35779
35780 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35781
35782         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
35783         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
35784         Add X - Y CMP 0 to X CMP Y transformation.
35785         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
35786
35787 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
35788
35789         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
35790         before printing.
35791
35792 2014-05-27  Steve Ellcey  <sellcey@mips.com>
35793
35794         * config/mips/mips.c: Add include of cgraph.h.
35795
35796 2014-05-27  Richard Biener  <rguenther@suse.de>
35797
35798         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
35799
35800 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35801
35802         PR libgcc/61152
35803         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
35804         * config/arm/arm-cores.def (License): Same.
35805         * config/arm/arm-opts.h (License): Same.
35806         * config/arm/aout.h (License): Same.
35807         * config/arm/bpabi.h (License): Same.
35808         * config/arm/elf.h (License): Same.
35809         * config/arm/linux-elf.h (License): Same.
35810         * config/arm/linux-gas.h (License): Same.
35811         * config/arm/netbsd-elf.h (License): Same.
35812         * config/arm/uclinux-eabi.h (License): Same.
35813         * config/arm/uclinux-elf.h (License): Same.
35814         * config/arm/vxworks.h (License): Same.
35815
35816 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35817
35818         * config/arm/neon.md (neon_bswap<mode>): New pattern.
35819         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
35820         (arm_init_neon_builtins): Handle NEON_BSWAP.
35821         Define required type nodes.
35822         (arm_expand_neon_builtin): Handle NEON_BSWAP.
35823         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
35824         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
35825         * config/arm/iterators.md (VDQHSD): New mode iterator.
35826
35827 2014-05-27  Richard Biener  <rguenther@suse.de>
35828
35829         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
35830         Try using literal operands when comparing value-ranges failed.
35831
35832 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35833
35834         * ira.c (commutative_operand): Adjust for change to recog_data.
35835         [Missing from previous commit.]
35836
35837 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35838
35839         * system.h (TEST_BIT): New macro.
35840         * recog.h (alternative_mask): New type.
35841         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
35842         (recog_data_d): Replace alternative_enabled_p array with
35843         enabled_alternatives.
35844         (target_recog): New structure.
35845         (default_target_recog, this_target_recog): Declare.
35846         (get_enabled_alternatives, recog_init): Likewise.
35847         * recog.c (default_target_recog, this_target_recog): New variables.
35848         (get_enabled_alternatives): New function.
35849         (extract_insn): Use it.
35850         (recog_init): New function.
35851         (preprocess_constraints, constrain_operands): Adjust for change to
35852         recog_data.
35853         * postreload.c (reload_cse_simplify_operands): Likewise.
35854         * reload.c (find_reloads): Likewise.
35855         * ira-costs.c (record_reg_classes): Likewise.
35856         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
35857         all alternatives after a disabled one would be skipped.
35858         (ira_implicitly_set_insn_hard_regs): Likewise.
35859         * ira.c (ira_setup_alts): Adjust for change to recog_data.
35860         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
35861         with enabled_alternatives.
35862         * lra.c (free_insn_recog_data): Update accordingly.
35863         (lra_update_insn_recog_data): Likewise.
35864         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
35865         * lra-constraints.c (process_alt_operands): Likewise.  Handle
35866         only_alternative as part of the enabled mask.
35867         * target-globals.h (this_target_recog): Declare.
35868         (target_globals): Add a recog field.
35869         (restore_target_globals): Restore this_target_recog.
35870         * target-globals.c: Include recog.h.
35871         (default_target_globals): Initialize recog field.
35872         (save_target_globals): Likewise.
35873         * reginfo.c (reinit_regs): Call recog_init.
35874         * toplev.c (backend_init_target): Likewise.
35875
35876 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35877
35878         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
35879         rather than any named insn's code.
35880
35881 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35882
35883         PR libgcc/61152
35884         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
35885         * config/arm/arm-cores.def (License): Same.
35886
35887 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
35888
35889         * tree.h (decl_comdat_group): Declare.
35890         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
35891         * tree.c (decl_comdat_group): Here.
35892
35893 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
35894
35895         PR rtl-optimization/61222
35896         * combine.c (simplify_shift_const_1): When moving a PLUS outside
35897         the shift, truncate the PLUS operand to the result mode.
35898
35899 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
35900
35901         PR target/61271
35902         * config/i386/i386.c (ix86_rtx_costs)
35903         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
35904         Fix condition.
35905
35906 2014-05-26  Martin Jambor  <mjambor@suse.cz>
35907
35908         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
35909         subreg uses.
35910
35911 2014-05-26  Richard Biener  <rguenther@suse.de>
35912
35913         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
35914         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
35915         Provide specializations.
35916         (wi::int_traits <HOST_WIDE_INT>,
35917         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
35918
35919 2014-05-26  Alan Modra  <amodra@gmail.com>
35920
35921         PR target/61098
35922         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
35923         params and return a bool.  Remove dead code.  Update comment.
35924         Assert we have a const_int source.  Remove bogus code from
35925         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
35926         handling of constants > 2G and reg_equal note, from..
35927         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
35928         return value.  Update comment.  If we can, use a new pseudo
35929         for intermediate calculations.
35930         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
35931         prototype.
35932         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
35933         call to rs6000_emit_set_const in splitter.
35934         (movdi_internal64+2, +3): Likewise.
35935
35936 2014-05-26  Richard Biener  <rguenther@suse.de>
35937
35938         * system.h: Define __STDC_FORMAT_MACROS before
35939         including inttypes.h.
35940         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
35941         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
35942         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
35943         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
35944         HOST_WIDEST_INT_C): Remove.
35945         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
35946         if C99 inttypes.h is not available.
35947         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
35948         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
35949         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
35950         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
35951         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
35952         (struct output_info): Likewise.
35953         (print_statistics): Adjust.
35954         (dump_bitmap_statistics): Likewise.
35955         * bt-load.c (migrate_btr_defs): Print with PRId64.
35956         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
35957         (MAX_SAFE_MULTIPLIER): Adjust.
35958         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
35959         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
35960         dump_cgraph_node): Likewise.
35961         * final.c (dump_basic_block_info): Likewise.
35962         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
35963         * gcov.c (format_gcov): Likewise.
35964         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
35965         for calculation.
35966         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
35967         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
35968         (inline_small_functions, dump_overall_stats, dump_inline_stats):
35969         Use PRId64 for dumping.
35970         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
35971         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
35972         (add_allocno_hard_regs): Adjust.
35973         * loop-doloop.c (doloop_modify): Print using PRId64.
35974         * loop-iv.c (inverse): Compute in uint64_t.
35975         (determine_max_iter, iv_number_of_iterations): Likewise.
35976         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
35977         Print using PRId64.
35978         * lto-streamer-out.c (write_symbol): Use uint64_t.
35979         * mcf.c (CAP_INFINITY): Use int64_t maximum.
35980         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
35981         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
35982         * modulo-sched.c (const_iteration_count): Use int64_t.
35983         (sms_schedule): Dump using PRId64.
35984         * predict.c (dump_prediction): Likewise.
35985         * pretty-print.h (pp_widest_integer): Remove.
35986         * profile.c (get_working_sets, is_edge_inconsistent,
35987         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
35988         * tree-pretty-print.c (pp_double_int): Remove case handling
35989         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
35990         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
35991         and adjust users.
35992         (pass_optimize_bswap::execute): Remove restriction on hosts.
35993         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
35994         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
35995         * tree.c (widest_int_cst_value): Remove.
35996         * tree.h (widest_int_cst_value): Likewise.
35997         * value-prof.c (dump_histogram_value): Print using PRId64.
35998         * gengtype.c (main): Also inject int64_t.
35999         * ggc-page.c (struct max_alignment): Use int64_t.
36000         * alloc-pool.c (struct allocation_object_def): Likewise.
36001         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
36002         for computation.
36003         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
36004         * doc/tm.texi: Regenerated.
36005         * gengtype-lex.l (IWORD): Handle [u]int64_t.
36006         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
36007         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
36008         mmix_output_register_setting): Use [u]int64_t in prototypes.
36009         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
36010         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
36011         mmix_output_octa, mmix_output_shifted_value): Adjust.
36012         (mmix_intval): Adjust.  Remove unreachable case.
36013         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
36014
36015 2014-05-26  Richard Biener  <rguenther@suse.de>
36016
36017         * configure.ac: Drop __int64 type check.  Insist that we
36018         found uint64_t and int64_t.
36019         * hwint.h (HOST_BITS_PER___INT64): Remove.
36020         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
36021         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
36022         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
36023         (HOST_WIDEST_FAST_INT): Remove __int64 case.
36024         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
36025         for dst_q_src_df_rms_cdt.
36026         * configure: Regenerate.
36027         * config.in: Likewise.
36028
36029 2014-05-26  Michael Tautschnig  <mt@debian.org>
36030
36031         PR target/61249
36032         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
36033         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
36034
36035 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36036
36037         PR rtl-optimization/61278
36038         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
36039
36040 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
36041
36042         PR rtl-optimization/61220
36043         Part of PR rtl-optimization/61225
36044         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
36045         insn; skip split_edge for a block with only one successor.
36046
36047 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36048
36049         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
36050         for variables.
36051
36052 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36053
36054         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
36055         (update_vtable_references): New function.
36056         (function_and_variable_visibility): Rewrite also vtable initializers.
36057         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
36058
36059 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36060
36061         * ggc.h (ggc_grow): New function.
36062         * ggc-none.c (ggc_grow): New function.
36063         * ggc-page.c (ggc_grow): Likewise.
36064
36065 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36066
36067         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
36068         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
36069         comdat_can_be_unshared_p, cgraph_externally_visible_p,
36070         varpool_externally_visible_p, can_replace_by_local_alias,
36071         update_visibility_by_resolution_info, function_and_variable_visibility,
36072         pass_data_ipa_function_and_variable_visibility,
36073         make_pass_ipa_function_and_variable_visibility,
36074         whole_program_function_and_variable_visibility,
36075         pass_data_ipa_whole_program_visibility,
36076         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
36077         * cgraph.h (cgraph_local_node_p): Declare.
36078         * ipa-visibility.c: New file.
36079         * Makefile.in (OBJS): Add ipa-visiblity.o
36080
36081 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36082
36083         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
36084         that var decl is available.
36085
36086 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36087
36088         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
36089         symtab_node pointer.
36090         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
36091         (find_decls_types_r): Do not walk COMDAT_GROUP.
36092         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
36093         * varasm.c (make_decl_one_only): Use set_comdat_group;
36094         create node if needed.
36095         * ipa-inline-transform.c (save_inline_function_body): Update
36096         way we decl->symtab mapping.
36097         * symtab.c (symtab_hash, hash_node, eq_node
36098         symtab_insert_node_to_hashtable): Remove.
36099         (symtab_register_node): Update.
36100         (symtab_unregister_node): Update.
36101         (symtab_get_node): Reimplement as inline function.
36102         (symtab_add_to_same_comdat_group): Update.
36103         (symtab_dissolve_same_comdat_group_list): Update.
36104         (dump_symtab_base): Update.
36105         (verify_symtab_base): Update.
36106         (symtab_make_decl_local): Update.
36107         (fixup_same_cpp_alias_visibility): Update.
36108         (symtab_nonoverwritable_alias): Update.
36109         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
36110         * ipa.c (update_visibility_by_resolution_info): UPdate.
36111         * bb-reorder.c: Include cgraph.h
36112         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
36113         with comdat groups.
36114         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
36115         * cgraph.c (cgraph_get_create_node): Update.
36116         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
36117         and comdat_group_.
36118         (symtab_get_node): Make inline.
36119         (symtab_insert_node_to_hashtable): Remove.
36120         (symtab_can_be_discarded): Update.
36121         (decl_comdat_group): New function.
36122         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
36123         Update.
36124         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
36125         comdat group name.
36126         (read_comdat_group): New function.
36127         (input_node, input_varpool_node): Use it.
36128         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
36129         comdat groups.
36130         * mips.c (mips_start_unique_function): Likewise.
36131         (ix86_code_end): Likewise.
36132         (rs6000_code_end): Likweise.
36133         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
36134
36135 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36136
36137         * gengtype-state.c (fatal_reading_state): Bring offline.
36138         * optabs.c (widening_optab_handler): Bring offline.
36139         * optabs.h (widening_optab_handler): Likewise.
36140         * final.c (get_attr_length_1): Likewise.
36141
36142 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36143
36144         * sched-int.h (sd_iterator_cond): Manually tail recurse.
36145
36146 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36147
36148         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
36149         (ppc440-compare): Include shift with dot.
36150         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
36151         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
36152         without dot.
36153         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
36154         without dot.
36155         (e6500_sfx2): Include it.
36156         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
36157         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
36158         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
36159         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
36160         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
36161         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
36162         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
36163         *lshiftrt_internal1le, *lshiftrt_internal1be,
36164         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
36165         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
36166         *rotldi3_internal10le, *rotldi3_internal10be,
36167         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
36168         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
36169         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
36170         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
36171         define_insns): Use type "shift" in the appropriate alternatives.
36172
36173 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36174
36175         * config/rs6000/rs6000.md (type): Add "logical".  Delete
36176         "fast_compare".
36177         (dot): Adjust comment.
36178         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
36179         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
36180         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
36181         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
36182         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
36183         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
36184         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
36185         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36186
36187         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36188         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36189         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36190         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36191         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36192         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36193         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36194         * config/rs6000/8540.md (ppc8540_su): Adjust.
36195         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36196         cell-cmp-microcoded): Adjust.
36197         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36198         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36199         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36200         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36201         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36202         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36203         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36204         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36205         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36206         Adjust.
36207         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36208         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
36209         Adjust.  Adjust comment.
36210         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36211         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36212
36213 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36214
36215         * config/rs6000/rs6000.md (type): Add "add".
36216         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
36217         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
36218         define_insns): Use it.
36219         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36220
36221         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36222         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36223         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36224         * config/rs6000/601.md (ppc601-integer): Adjust.
36225         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36226         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36227         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36228         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36229         * config/rs6000/8540.md (ppc8540_su): Adjust.
36230         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36231         cell-cmp-microcoded): Adjust.
36232         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36233         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36234         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36235         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36236         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36237         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36238         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36239         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36240         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36241         Adjust.
36242         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36243         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
36244         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36245         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36246
36247 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36248
36249         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
36250         "delayed_compare", "var_delayed_compare".
36251         (var_shift): New attribute.
36252         (cell_micro): Adjust.
36253         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
36254         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
36255         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
36256         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
36257         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
36258         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
36259         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
36260         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
36261         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36262         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36263         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36264         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36265         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36266         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36267         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36268         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36269         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36270         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36271         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36272         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36273         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36274         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36275         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36276         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36277         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36278
36279         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36280         * config/rs6000/440.md (ppc440-integer): Adjust.
36281         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36282         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36283         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36284         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36285         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36286         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36287         * config/rs6000/8540.md (ppc8540_su): Adjust.
36288         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36289         cell-cmp-microcoded): Adjust.
36290         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36291         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36292         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36293         e500mc64_delayed): Adjust.
36294         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36295         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36296         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36297         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36298         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36299         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36300         power6-delayed-compare, power6-var-delayed-compare): Adjust.
36301         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36302         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36303         Adjust comment.
36304         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36305         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36306
36307 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36308
36309         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
36310         (bits): New mode_attr.
36311         (idiv_ldiv): Delete mode_attr.
36312         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
36313         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36314         rs6000_adjust_priority, is_nonpipeline_insn,
36315         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36316
36317         * config/rs6000/40x.md (ppc403-idiv): Adjust.
36318         * config/rs6000/440.md (ppc440-idiv): Adjust.
36319         * config/rs6000/476.md (ppc476-idiv): Adjust.
36320         * config/rs6000/601.md (ppc601-idiv): Adjust.
36321         * config/rs6000/603.md (ppc603-idiv): Adjust.
36322         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
36323         ppc620-ldiv): Adjust.
36324         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
36325         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
36326         * config/rs6000/8540.md (ppc8540_divide): Adjust.
36327         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
36328         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
36329         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
36330         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
36331         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
36332         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
36333         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
36334         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
36335         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
36336         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
36337         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
36338         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
36339         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
36340         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
36341         * config/rs6000/titan.md (titan_fxu_div): Adjust.
36342
36343 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36344
36345         * config/rs6000/rs6000.md (type): Delete "insert_word",
36346         "insert_dword".  Add "insert".
36347         (size): Update comment.
36348         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36349         insn_must_be_first_in_group): Adjust.
36350         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
36351         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
36352         *insvsi_internal6, insvdi_internal): Adjust.
36353
36354         * config/rs6000/40x.md (ppc403-integer): Adjust.
36355         * config/rs6000/440.md (ppc440-integer): Adjust.
36356         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
36357         * config/rs6000/601.md (ppc601-integer): Adjust.
36358         * config/rs6000/603.md (ppc603-integer): Adjust.
36359         * config/rs6000/6xx.md (ppc604-integer): Adjust.
36360         * config/rs6000/7450.md (ppc7450-integer): Adjust.
36361         * config/rs6000/7xx.md (ppc750-integer): Adjust.
36362         * config/rs6000/8540.md (ppc8540_su): Adjust.
36363         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
36364         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
36365         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36366         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
36367         * config/rs6000/e5500.md (e5500_sfx): Adjust.
36368         * config/rs6000/e6500.md (e6500_sfx): Adjust.
36369         * config/rs6000/mpc.md (mpccore-integer): Adjust.
36370         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
36371         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
36372         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
36373         * config/rs6000/power7.md (power7-integer): Adjust.
36374         * config/rs6000/power8.md (power8-1cyc): Adjust.
36375         * config/rs6000/rs64.md (rs64a-integer): Adjust.
36376         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36377
36378 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36379
36380         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
36381         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
36382         (size): New attribute.
36383         (dot): New attribute.
36384         (cell_micro): Adjust.
36385         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
36386         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
36387         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
36388         umuldi3_highpart): Adjust.
36389         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36390         rs6000_adjust_priority, is_nonpipeline_insn,
36391         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36392
36393         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
36394         ppc405-imul3): Adjust.
36395         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
36396         * config/rs6000/476.md (ppc476-imul): Adjust.
36397         * config/rs6000/601.md (ppc601-imul): Adjust.
36398         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
36399         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
36400         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
36401         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
36402         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
36403         Adjust.
36404         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
36405         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
36406         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
36407         cell-imul): Adjust.
36408         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
36409         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
36410         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
36411         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
36412         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
36413         * config/rs6000/mpc.md (mpccore-imul): Adjust.
36414         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
36415         power4-lmul, power4-imul, power4-imul3): Adjust.
36416         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
36417         power5-lmul, power5-imul, power5-imul3): Adjust.
36418         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
36419         power6-lmul, power6-imul, power6-imul3): Adjust.
36420         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
36421         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
36422
36423         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
36424         rs64a-lmul): Adjust.
36425         * config/rs6000/titan.md (titan_imul): Adjust.
36426
36427 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36428
36429         * config/rs6000/rs6000.md (type): Add new value "halfmul".
36430         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
36431         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
36432         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
36433         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
36434         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
36435         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
36436         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
36437         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
36438         * config/rs6000/titan.md: Delete nonsensical comment.
36439         (titan_imul): Add type imul3.
36440         (titan_mulhw): Remove type imul3; add type halfmul.
36441
36442 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36443
36444         * config/rs6000/rs6000.md (type): Reorder, reformat.
36445
36446 2014-05-23  Martin Jambor  <mjambor@suse.cz>
36447
36448         PR tree-optimization/53787
36449         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
36450         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
36451         analysis_done, update all uses.
36452         * ipa-prop.c: Include domwalk.h
36453         (param_analysis_info): Removed.
36454         (param_aa_status): New type.
36455         (ipa_bb_info): Likewise.
36456         (func_body_info): Likewise.
36457         (ipa_get_bb_info): New function.
36458         (aa_overwalked): Likewise.
36459         (find_dominating_aa_status): Likewise.
36460         (parm_bb_aa_status_for_bb): Likewise.
36461         (parm_preserved_before_stmt_p): Changed to use new param AA info.
36462         (load_from_unmodified_param): Accept func_body_info as a parameter
36463         instead of parms_ainfo.
36464         (parm_ref_data_preserved_p): Changed to use new param AA info.
36465         (parm_ref_data_pass_through_p): Likewise.
36466         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
36467         (compute_complex_assign_jump_func): Changed to use new param AA info.
36468         (compute_complex_ancestor_jump_func): Likewise.
36469         (ipa_compute_jump_functions_for_edge): Likewise.
36470         (ipa_compute_jump_functions): Removed.
36471         (ipa_compute_jump_functions_for_bb): New function.
36472         (ipa_analyze_indirect_call_uses): Likewise, moved variable
36473         declarations down.
36474         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
36475         and info, moved variable declarations down.
36476         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
36477         node and info.
36478         (ipa_analyze_stmt_uses): Likewise.
36479         (ipa_analyze_params_uses): Removed.
36480         (ipa_analyze_params_uses_in_bb): New function.
36481         (ipa_analyze_controlled_uses): Likewise.
36482         (free_ipa_bb_info): Likewise.
36483         (analysis_dom_walker): New class.
36484         (ipa_analyze_node): Handle node-specific forbidden analysis,
36485         initialize and free func_body_info, use dominator walker.
36486         (ipcp_modif_dom_walker): New class.
36487         (ipcp_transform_function): Create and free func_body_info, use
36488         ipcp_modif_dom_walker, moved a lot of functionality there.
36489
36490 2014-05-23  Marek Polacek  <polacek@redhat.com>
36491             Jakub Jelinek  <jakub@redhat.com>
36492
36493         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
36494         * gcc.c (sanitize_spec_function): Likewise.
36495         * convert.c (convert_to_integer): Include "ubsan.h".  Add
36496         floating-point to integer instrumentation.
36497         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
36498         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
36499         SANITIZE_NONDEFAULT.
36500         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
36501         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
36502         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
36503         * ubsan.c: Include "realmpfr.h" and "dfp.h".
36504         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
36505         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
36506         float/double/long double.
36507         (ubsan_instrument_float_cast): New function.
36508         * ubsan.h (ubsan_instrument_float_cast): Declare.
36509
36510 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
36511
36512         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
36513         predicate.
36514         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
36515         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
36516         Adjust for tailcalling through registers.
36517         * config/aarch64/aarch64.h (enum reg_class): New caller save
36518         register class.
36519         (REG_CLASS_NAMES): Likewise.
36520         (REG_CLASS_CONTENTS): Likewise.
36521         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
36522         Allow tailcalling without decls.
36523
36524 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36525
36526         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36527         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
36528
36529         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
36530         gsi, and variables v_* to v*.
36531
36532 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
36533
36534         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
36535
36536 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36537
36538         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
36539         * omp-low.c: Update accordingly.
36540
36541         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
36542         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
36543         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
36544         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
36545         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
36546         GF_OMP_TARGET_KIND_UPDATE.
36547
36548         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36549         Explicitly enumerate the expected region types.
36550
36551 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
36552
36553         PR other/56955
36554         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
36555         documentation; the old documentation didn't clearly state the
36556         constraints on the contents of the pointed-to storage.
36557
36558 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36559
36560         Fix bootstrap error on ia64
36561         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
36562         Return default value.
36563
36564 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36565
36566         PR tree-optimization/54733
36567         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
36568         (CMPNOP): Define.
36569         (find_bswap_or_nop_load): New.
36570         (find_bswap_1): Renamed to ...
36571         (find_bswap_or_nop_1): This. Also add support for memory source.
36572         (find_bswap): Renamed to ...
36573         (find_bswap_or_nop): This. Also add support for memory source and
36574         detection of bitwise operations equivalent to load in target
36575         endianness.
36576         (execute_optimize_bswap): Likewise. Also move its leading comment back
36577         in place and split statement transformation into ...
36578         (bswap_replace): This.
36579
36580 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36581
36582         PR rtl-optimization/61215
36583         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
36584         simplify_gen_subreg until final substitution.
36585
36586 2014-05-23  Alan Modra  <amodra@gmail.com>
36587
36588         PR target/61231
36589         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
36590         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
36591         Use "Y" constraint rather than "m".
36592
36593 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
36594
36595         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
36596         define.
36597         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
36598         New function declaration.
36599         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
36600         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
36601         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
36602         (aarch64_init_builtins) : Initialize builtins
36603         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36604         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36605         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
36606         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
36607         and __builtins_aarch64_set_fpsr.
36608         (aarch64_atomic_assign_expand_fenv): New function.
36609         * config/aarch64/aarch64.md (set_fpcr): New pattern.
36610         (get_fpcr) : Likewise.
36611         (set_fpsr) : Likewise.
36612         (get_fpsr) : Likewise.
36613         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
36614         and UNSPECV_SET_FPSR.
36615         * doc/extend.texi (AARCH64 Built-in Functions) : Document
36616         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36617         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36618
36619 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36620
36621         PR rtl-optimization/60969
36622         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
36623         constraints.  Set up mem cost for NO_REGS case.
36624
36625 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
36626
36627         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
36628
36629 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
36630
36631         * config/darwin.c: Include "lto-section-names.h".
36632         (LTO_SEGMENT_NAME): Don't define.
36633         * config/i386/winnt.c: Include "lto-section-names.h".
36634         * lto-streamer.c: Include "lto-section-names.h".
36635         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
36636         * lto-wrapper.c: Include "lto-section-names.h".
36637         (LTO_SECTION_NAME_PREFIX): Don't define.
36638         * lto-section-names.h: New file.
36639         * cgraphunit.c: Include "lto-section-names.h".
36640
36641 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
36642
36643         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
36644
36645 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
36646
36647         PR target/61208
36648         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
36649
36650 2014-05-22  Nick Clifton  <nickc@redhat.com>
36651
36652         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
36653
36654 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
36655
36656         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
36657         -> (T)A transformation to integer types.
36658
36659 2014-05-22  Teresa Johnson  <tejohnson@google.com>
36660
36661         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
36662         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
36663         (gcov_rewrite): Use gcov_nonruntime_assert.
36664         (gcov_open): Ditto.
36665         (gcov_write_words): Ditto.
36666         (gcov_write_length): Ditto.
36667         (gcov_read_words): Use gcov_nonruntime_assert, and remove
36668         gcc_assert from IN_LIBGCOV code.
36669         (gcov_read_summary): Use gcov_error to flag profile corruption.
36670         (gcov_sync): Use gcov_nonruntime_assert.
36671         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
36672         (gcov_histo_index): Use gcov_nonruntime_assert.
36673         (static void gcov_histogram_merge): Ditto.
36674         (compute_working_sets): Ditto.
36675         * gcov-io.h (gcov_nonruntime_assert): Define.
36676         (gcov_error): Define for !IN_LIBGCOV
36677
36678 2014-05-22  Richard Biener  <rguenther@suse.de>
36679
36680         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
36681         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
36682         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
36683         and deallocation site.
36684         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
36685         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
36686         passing through the incoming points-to set.
36687         (handle_lhs_call): Use flags argument instead of recomputing it.
36688         (find_func_aliases_for_call): Call handle_lhs_call with proper
36689         call return flags.
36690
36691 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
36692
36693         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
36694         all padding bits in REAL_VALUE_TYPE are cleared.
36695
36696 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36697
36698         Cleanup and improve multipass_dfa_lookahead_guard
36699         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
36700         (core2i7_first_cycle_multipass_begin,)
36701         (core2i7_first_cycle_multipass_issue,)
36702         (core2i7_first_cycle_multipass_backtrack): Update signature.
36703         * config/ia64/ia64.c
36704         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
36705         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
36706         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
36707         hook definition.
36708         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
36709         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
36710         values.
36711         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
36712         return values.
36713         * doc/tm.texi: Regenerate.
36714         * doc/tm.texi.in
36715         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
36716         * haifa-sched.c (ready_try): Make signed to allow negative values.
36717         (rebug_ready_list_1): Update.
36718         (choose_ready): Simplify.
36719         (sched_extend_ready_list): Update.
36720
36721 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36722
36723         Remove IA64 speculation tweaking flags
36724         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
36725         speculation tuning flags.
36726         (msched-prefer-non-data-spec-insns,)
36727         (msched-prefer-non-control-spec-insns): Obsolete options.
36728         * haifa-sched.c (choose_ready): Remove handling of
36729         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36730         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
36731         and PREFER_NON_DATA_SPEC.
36732         * sel-sched.c (process_spec_exprs): Remove handling of
36733         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36734
36735 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36736
36737         Improve scheduling debug output
36738         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
36739         (advance_one_cycle): Update.
36740         (schedule_insn, queue_to_ready): Add debug printouts.
36741         (debug_ready_list_1): New static function.
36742         (debug_ready_list): Update.
36743         (max_issue): Add debug printouts.
36744         (dump_insn_stream): New static function.
36745         (schedule_block): Use it.  Also better indent printouts.
36746
36747 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36748
36749         Fix sched_insn debug counter
36750         * haifa-sched.c (schedule_insn): Update.
36751         (struct haifa_saved_data): Add nonscheduled_insns_begin.
36752         (save_backtrack_point, restore_backtrack_point): Update.
36753         (first_nonscheduled_insn): New static function.
36754         (queue_to_ready, choose_ready): Use it.
36755         (schedule_block): Init nonscheduled_insns_begin.
36756         (sched_emit_insn): Update.
36757
36758
36759 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
36760
36761         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
36762         to GENERAL_REGS.
36763         (aarch64_secondary_reload) : LikeWise.
36764         (aarch64_class_max_nregs) : Remove CORE_REGS.
36765         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
36766         (REG_CLASS_NAMES) : Likewise.
36767         (REG_CLASS_CONTENTS) : LikeWise.
36768         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
36769
36770 2014-05-21  Guozhi Wei  <carrot@google.com>
36771
36772         PR target/61202
36773         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
36774         constraint.
36775         (vqdmulhq_n_s16): Likewise.
36776
36777 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
36778
36779         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
36780
36781 2014-05-21  Marek Polacek  <polacek@redhat.com>
36782
36783         PR sanitizer/61272
36784         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
36785
36786 2014-05-21  Martin Jambor  <mjambor@suse.cz>
36787
36788         * doc/invoke.texi (Optimize Options): Document parameters
36789         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
36790         ipa-cp-array-index-hint-bonus.
36791
36792 2014-05-21  Mark Wielaard  <mjw@redhat.com>
36793
36794         PR debug/16063
36795         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
36796         version >= 3 or not strict DWARF.
36797         * langhooks.h (struct lang_hooks_for_types): Add
36798         enum_underlying_base_type.
36799         * langhooks.c (lhd_enum_underlying_base_type): New function.
36800         * gcc/langhooks.h (struct lang_hooks_for_types): Add
36801         enum_underlying_base_type.
36802         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
36803         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
36804         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
36805
36806 2014-05-21  Richard Biener  <rguenther@suse.de>
36807
36808         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
36809
36810 2014-05-21  John Marino  <gnugcc@marino.st>
36811
36812         * config.gcc (*-*-dragonfly*): New target.
36813         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
36814         * configure: Regenerate.
36815         * config/dragonfly-stdint.h: New.
36816         * config/dragonfly.h: New.
36817         * config/dragonfly.opt: New.
36818         * config/i386/dragonfly.h: New.
36819         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
36820
36821 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
36822
36823         * tree.def (VOID_CST): New.
36824         * tree-core.h (TI_VOID): New.
36825         * tree.h (void_node): New.
36826         * tree.c (tree_node_structure_for_code, tree_code_size)
36827         (iterative_hash_expr): Handle VOID_CST.
36828         (build_common_tree_nodes): Initialize void_node.
36829
36830 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
36831
36832         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
36833         functions.
36834         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
36835
36836         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
36837         more places.
36838
36839         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
36840         flag_reorder_blocks_and_partition.
36841         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
36842
36843 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
36844
36845         PR target/54236
36846         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
36847         constraints.
36848         (*addc_r_t): Add new insn_and_split.
36849
36850 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
36851
36852         PR middle-end/61252
36853         * omp-low.c (handle_simd_reference): New function.
36854         (lower_rec_input_clauses): Use it.  Defer adding reference
36855         initialization even for reduction without placeholder if in simd,
36856         handle it properly later on.
36857
36858 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36859
36860         PR tree-optimization/60899
36861         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
36862         assume all static symbols will have definition wile parsing and
36863         check the do have definition later in compilation; check that
36864         variable referring symbol will be output before concluding that
36865         reference is safe; be conservative for referring local statics;
36866         be more precise about when comdat is output in other partition.
36867
36868 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36869
36870         PR bootstrap/60984
36871         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
36872         parameter.
36873         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
36874         (ipa_inline): Loop inline_to_all_callers until no more aliases
36875         are removed.
36876
36877 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36878
36879         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
36880         set writeonly flag only for vars actually written to.
36881
36882 2014-05-20  Dehao Chen  <dehao@google.com>
36883
36884         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
36885         and callee count to get clone count.
36886         * tree-inline.c (expand_call_inline): Use callee count instead of bb
36887         count in copy_body.
36888
36889 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
36890
36891         PR rtl-optimization/61243
36892         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
36893
36894 2014-05-20  Xinliang David Li  <davidxl@google.com>
36895
36896         * cgraphunit.c (walk_polymorphic_call_targets): Add
36897         dbgcnt and fopt-info support.
36898         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
36899         * ipa-devirt.c (ipa_devirt): Ditto.
36900         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
36901         * ipa.c (walk_polymorphic_call_targets): Ditto.
36902         * gimple-fold.c (fold_gimple_assign): Ditto.
36903         (gimple_fold_call): Ditto.
36904         * dbgcnt.def: New counter.
36905
36906 2014-05-20  DJ Delorie  <dj@redhat.com>
36907
36908         * config/msp430/msp430.md (split): Don't allow subregs when
36909         splitting SImode adds.
36910         (andneghi): Fix subtraction logic.
36911         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
36912
36913 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36914
36915         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
36916         symbols.
36917         * except.c (switch_to_exception_section, resolve_unique_section,
36918         get_named_text_section, default_function_rodata_section,
36919         align_variable, get_block_for_decl, default_section_type_flags):
36920         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
36921         * symtab.c (symtab_add_to_same_comdat_group,
36922         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
36923         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
36924         Likewise.
36925         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
36926         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
36927         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
36928         (c6x_function_in_section_p): Likewise.
36929         * config/darwin.c (machopic_select_section): Likewise.
36930         * config/arm/arm.c (arm_function_in_section_p): Likewise.
36931         * config/mips/mips.c (mips_function_rodata_section): Likewise.
36932         * config/mep/mep.c (mep_select_section): LIkewise.
36933         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
36934
36935 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
36936
36937         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
36938         EH region of calls to pure functions that can throw an exception.
36939         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
36940         (copy_reference_ops_from_call): Also copy the EH region of the call if
36941         it can throw an exception.
36942
36943 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36944
36945         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
36946         nested VEC_SELECTs that are inverses of each other.
36947
36948 2014-05-20  Richard Biener  <rguenther@suse.de>
36949
36950         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
36951         (extract_and_process_scc_for_name): not here.
36952         (cond_dom_walker::before_dom_children): Only process
36953         stmts that end the BB in interesting ways.
36954         (run_scc_vn): Mark param uses as visited.
36955
36956 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36957
36958         * config/arm/arm.md (arith_shiftsi): Do not predicate for
36959         arm_restrict_it.
36960
36961 2014-05-20  Nick Clifton  <nickc@redhat.com>
36962
36963         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
36964         (msp430_gimplify_va_arg_expr): New function.
36965         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
36966
36967         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
36968         operand 0 in order to prevent confusion about the number of
36969         registers involved.
36970
36971 2014-05-20  Richard Biener  <rguenther@suse.de>
36972
36973         PR tree-optimization/61221
36974         * tree-ssa-pre.c (el_to_update): Remove.
36975         (eliminate_dom_walker::before_dom_children): Handle released
36976         VDEFs by value-numbering them to the associated VUSE.  Update
36977         stmt immediately for substituted call address.
36978         (eliminate): Remove delayed stmt updating code.
36979         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
36980         possibly late re-numbered vuses.
36981         (vn_reference_lookup_2): Adjust.
36982         (vn_reference_lookup_pieces): Likewise.
36983         (vn_reference_lookup): Likewise.
36984
36985 2014-05-20  Richard Biener  <rguenther@suse.de>
36986
36987         * config.gcc: Remove need_64bit_hwint.
36988         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
36989         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
36990         it to be true.
36991         * config.in: Regenerate.
36992         * configure: Likewise.
36993
36994 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
36995
36996         * doc/extend.texi: Create Label Attributes section,
36997         move all label attributes into it and reference it.
36998
36999 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
37000
37001         * arm.c (thumb1_reorg): When scanning backwards skip anything
37002         that's not a proper insn.
37003
37004 2014-05-19  Richard Biener  <rguenther@suse.de>
37005
37006         PR tree-optimization/61221
37007         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
37008         Do nothing for unreachable blocks.
37009         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
37010         Improve unreachability detection.
37011
37012 2014-05-19  Richard Biener  <rguenther@suse.de>
37013
37014         PR tree-optimization/61209
37015         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
37016
37017 2014-05-19  Nick Clifton  <nickc@redhat.com>
37018
37019         * except.c (init_eh): Fix computation of builtin setjmp buffer
37020         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
37021
37022 2014-05-19  Richard Biener  <rguenther@suse.de>
37023
37024         PR tree-optimization/61184
37025         * tree-vrp.c (is_negative_overflow_infinity): Use
37026         TREE_OVERFLOW_P and do that check first.
37027         (is_positive_overflow_infinity): Likewise.
37028         (is_overflow_infinity): Likewise.
37029         (vrp_operand_equal_p): Properly treat operands with
37030         differing overflow as not equal.
37031
37032 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
37033
37034         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
37035         shift simplification where it was intended.
37036
37037 2014-05-19  Christian Bruel  <christian.bruel@st.com>
37038
37039         PR target/61195
37040         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
37041
37042 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
37043
37044         PR target/61084
37045         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
37046         than wide_int.
37047
37048 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37049
37050         * reg-notes.def (CROSSING_JUMP): Likewise.
37051         * rtl.h (rtx_def): Update comment for jump flag.
37052         (CROSSING_JUMP_P): Define.
37053         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
37054         of a REG_CROSSING_JUMP note.
37055         * cfghooks.c (tidy_fallthru_edges): Likewise.
37056         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
37057         * emit-rtl.c (try_split): Likewise.
37058         * haifa-sched.c (sched_create_recovery_edges): Likewise.
37059         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
37060         * jump.c (redirect_jump_2): Likewise.
37061         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
37062         (relax_delay_slots): Likewise.
37063         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
37064         (bbit_di): Likewise.
37065         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
37066         * config/sh/sh.md (jump_compact): Likewise.
37067         * bb-reorder.c (rotate_loop): Likewise.
37068         (pass_duplicate_computed_gotos::execute): Likewise.
37069         (add_reg_crossing_jump_notes): Rename to...
37070         (update_crossing_jump_flags): ...this.
37071         (pass_partition_blocks::execute): Update accordingly.
37072
37073 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
37074
37075         * tree.h: Remove extraneous template <>.
37076
37077 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37078
37079         * ipa.c (symtab_remove_unreachable_nodes): Remove
37080         symbol from comdat group if its body was eliminated.
37081         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
37082         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
37083         (symtab_unregister_node): ... this one.
37084         (verify_symtab_base): More strict checking of comdats.
37085         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
37086
37087 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37088
37089         * tree-pass.h (make_pass_ipa_comdats): New pass.
37090         * timevar.def (TV_IPA_COMDATS): New timevar.
37091         * passes.def (pass_ipa_comdats): Add.
37092         * Makefile.in (OBJS): Add ipa-comdats.o
37093         * ipa-comdats.c: New file.
37094
37095 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37096
37097         * ipa.c (update_visibility_by_resolution_info): New function.
37098         (function_and_variable_visibility): Use it.
37099
37100 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
37101
37102         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
37103         New functions.
37104         (FOR_EACH_DEFINED_SYMBOL): New macro.
37105         (varpool_first_static_initializer, varpool_next_static_initializer,
37106         varpool_first_defined_variable, varpool_next_defined_variable):
37107         Fix comments.
37108         (symtab_in_same_comdat_p): Correctly deal with inline functions.
37109
37110 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37111
37112         * ggc-page.c (ggc_handle_finalizers): Add comment.
37113
37114 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37115
37116         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
37117         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
37118         (ggc_internal_cleared_alloc): Likewise.
37119         * ggc-page.c (finalizer): New class.
37120         (vec_finalizer): Likewise.
37121         (globals::finalizers): New member.
37122         (globals::vec_finalizers): Likewise.
37123         (ggc_internal_alloc): Record the finalizer if any for the block being
37124         allocated.
37125         (ggc_handle_finalizers): New function.
37126         (ggc_collect): Call ggc_handle_finalizers.
37127         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
37128         finalizer.
37129         (ggc_internal_cleared_alloc): Likewise.
37130         (finalize): New function.
37131         (need_finalization_p): Likewise.
37132         (ggc_alloc): Install the type's destructor as the finalizer if it
37133         might do something.
37134         (ggc_cleared_alloc): Likewise.
37135         (ggc_vec_alloc): Likewise.
37136         (ggc_cleared_vec_alloc): Likewise.
37137
37138 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37139
37140         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
37141
37142 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37143
37144         * alias.c (record_alias_subset): Adjust.
37145         * bitmap.c (bitmap_element_allocate): Likewise.
37146         (bitmap_gc_alloc_stat): Likewise.
37147         * cfg.c (init_flow): Likewise.
37148         (alloc_block): Likewise.
37149         (unchecked_make_edge): Likewise.
37150         * cfgloop.c (alloc_loop): Likewise.
37151         (flow_loops_find): Likewise.
37152         (rescan_loop_exit): Likewise.
37153         * cfgrtl.c (init_rtl_bb_info): Likewise.
37154         * cgraph.c (insert_new_cgraph_node_version): Likewise.
37155         (cgraph_allocate_node): Likewise.
37156         (cgraph_create_edge_1): Likewise.
37157         (cgraph_allocate_init_indirect_info): Likewise.
37158         * cgraphclones.c (cgraph_clone_edge): Likewise.
37159         * cgraphunit.c (add_asm_node): Likewise.
37160         (init_lowered_empty_function): Likewise.
37161         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
37162         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
37163         (alpha_use_linkage): Likewise.
37164         * config/arc/arc.c (arc_init_machine_status): Likewise.
37165         * config/arm/arm.c (arm_init_machine_status): Likewise.
37166         * config/avr/avr.c (avr_init_machine_status): Likewise.
37167         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
37168         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
37169         * config/cris/cris.c (cris_init_machine_status): Likewise.
37170         * config/darwin.c (machopic_indirection_name): Likewise.
37171         (darwin_build_constant_cfstring): Likewise.
37172         (darwin_enter_string_into_cfstring_table): Likewise.
37173         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
37174         * config/frv/frv.c (frv_init_machine_status): Likewise.
37175         * config/i386/i386.c (get_dllimport_decl): Likewise.
37176         (ix86_init_machine_status): Likewise.
37177         (assign_386_stack_local): Likewise.
37178         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
37179         (i386_pe_maybe_record_exported_symbol): Likewise.
37180         (i386_pe_record_stub): Likewise.
37181         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
37182         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
37183         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
37184         (m32c_note_pragma_address): Likewise.
37185         * config/mep/mep.c (mep_init_machine_status): Likewise.
37186         (mep_note_pragma_flag): Likewise.
37187         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
37188         (mips16_local_alias): Likewise.
37189         (mips_init_machine_status): Likewise.
37190         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
37191         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
37192         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
37193         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
37194         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
37195         * config/pa/pa.c (pa_init_machine_status): Likewise.
37196         (pa_get_deferred_plabel): Likewise.
37197         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
37198         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
37199         (rs6000_init_machine_status): Likewise.
37200         (output_toc): Likewise.
37201         * config/s390/s390.c (s390_init_machine_status): Likewise.
37202         * config/score/score.c (score_output_external): Likewise.
37203         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
37204         * config/spu/spu.c (spu_init_machine_status): Likewise.
37205         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
37206         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
37207         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
37208         * coverage.c (coverage_end_function): Likewise.
37209         * dbxout.c (dbxout_init): Likewise.
37210         * doc/gty.texi: Don't mention variable_size attribute.
37211         * dwarf2cfi.c (new_cfi): Adjust.
37212         (new_cfi_row): Likewise.
37213         (copy_cfi_row): Likewise.
37214         (create_cie_data): Likewise.
37215         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
37216         (new_loc_descr): Likewise.
37217         (find_AT_string_in_table): Likewise.
37218         (add_addr_table_entry): Likewise.
37219         (new_die): Likewise.
37220         (add_var_loc_to_decl): Likewise.
37221         (clone_die): Likewise.
37222         (clone_as_declaration): Likewise.
37223         (break_out_comdat_types): Likewise.
37224         (new_loc_list): Likewise.
37225         (add_loc_descr_to_each): Likewise.
37226         (add_location_or_const_value_attribute): Likewise.
37227         (add_linkage_name): Likewise.
37228         (lookup_filename): Likewise.
37229         (dwarf2out_var_location): Likewise.
37230         (new_line_info_table): Likewise.
37231         (dwarf2out_init): Likewise.
37232         (mem_loc_descriptor): Likewise.
37233         (loc_descriptor): Likewise.
37234         (add_const_value_attribute): Likewise.
37235         (tree_add_const_value_attribute): Likewise.
37236         (comp_dir_string): Likewise.
37237         (dwarf2out_vms_debug_main_pointer): Likewise.
37238         (string_cst_pool_decl): Likewise.
37239         * emit-rtl.c (set_mem_attrs): Likewise.
37240         (get_reg_attrs): Likewise.
37241         (start_sequence): Likewise.
37242         (init_emit): Likewise.
37243         (init_emit_regs): Likewise.
37244         * except.c (init_eh_for_function): Likewise.
37245         (gen_eh_region): Likewise.
37246         (gen_eh_region_catch): Likewise.
37247         (gen_eh_landing_pad): Likewise.
37248         (add_call_site): Likewise.
37249         * function.c (add_frame_space): Likewise.
37250         (insert_temp_slot_address): Likewise.
37251         (assign_stack_temp_for_type): Likewise.
37252         (get_hard_reg_initial_val): Likewise.
37253         (allocate_struct_function): Likewise.
37254         (prepare_function_start): Likewise.
37255         (types_used_by_var_decl_insert): Likewise.
37256         * gengtype.c (variable_size_p): Remove function.
37257         (enum alloc_quantity): Remove enum.
37258         (write_typed_alloc_def): Remove function.
37259         (write_typed_struct_alloc_def): Likewise.
37260         (write_typed_typedef_alloc_def): Likewise.
37261         (write_typed_alloc_defns): Likewise.
37262         (main): Adjust.
37263         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37264         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37265         * ggc.h (ggc_alloc): new function.
37266         (ggc_cleared_alloc): Likewise.
37267         (ggc_vec_alloc): Template on type of vector element, and remove
37268         element size argument.
37269         (ggc_cleared_vec_alloc): Likewise.
37270         * gimple.c (gimple_build_omp_for): Adjust.
37271         (gimple_copy): Likewise.
37272         * ipa-cp.c (get_replacement_map): Likewise.
37273         (find_aggregate_values_for_callers_subset): Likewise.
37274         (known_aggs_to_agg_replacement_list): Likewise.
37275         * ipa-devirt.c (get_odr_type): Likewise.
37276         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37277         (read_agg_replacement_chain): Likewise.
37278         * loop-iv.c (get_simple_loop_desc): Likewise.
37279         * lto-cgraph.c (input_node_opt_summary): Likewise.
37280         * lto-section-in.c (lto_new_in_decl_state): Likewise.
37281         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37282         (input_eh_region): Likewise.
37283         (input_eh_lp): Likewise.
37284         (input_cfg): Likewise.
37285         * optabs.c (set_optab_libfunc): Likewise.
37286         (init_tree_optimization_optabs): Likewise.
37287         (set_conv_libfunc): Likewise.
37288         * passes.c (do_per_function_toporder): Likewise.
37289         * rtl.h: Don't use variable_size gty attribute.
37290         * sese.c (if_region_set_false_region): Adjust.
37291         * stringpool.c (gt_pch_save_stringpool): Likewise.
37292         * target-globals.c (save_target_globals): Likewise.
37293         * toplev.c (general_init): Likewise.
37294         * trans-mem.c (record_tm_replacement): Likewise.
37295         (split_bb_make_tm_edge): Likewise.
37296         * tree-cfg.c (move_sese_region_to_fn): Likewise.
37297         * tree-data-ref.h (lambda_vector_new): Likewise.
37298         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37299         * tree-iterator.c (tsi_link_before): Likewise.
37300         (tsi_link_after): Likewise.
37301         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37302         * tree-ssa-loop-niter.c (record_estimate): Likewise.
37303         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37304         * tree-ssa-operands.h: Don't use variable_size gty attribute.
37305         * tree-ssa.c (init_tree_ssa): Adjust.
37306         * tree-ssanames.c (set_range_info): Likewise.
37307         (get_ptr_info): Likewise.
37308         (duplicate_ssa_name_ptr_info): Likewise.
37309         (duplicate_ssa_name_range_info): Likewise.
37310         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
37311         (unpack_ts_fixed_cst_value_fields): Likewise.
37312         * tree.c (build_fixed): Likewise.
37313         (build_real): Likewise.
37314         (build_string): Likewise.
37315         (decl_priority_info): Likewise.
37316         (decl_debug_expr_insert): Likewise.
37317         (decl_value_expr_insert): Likewise.
37318         (decl_debug_args_insert): Likewise.
37319         (type_hash_add): Likewise.
37320         (build_omp_clause): Likewise.
37321         * ubsan.c (decl_for_type_insert): Likewise.
37322         * varasm.c (get_unnamed_section): Likewise.
37323         (get_noswitch_section): Likewise.
37324         (get_section): Likewise.
37325         (get_block_for_section): Likewise.
37326         (create_block_symbol): Likewise.
37327         (build_constant_desc): Likewise.
37328         (create_constant_pool): Likewise.
37329         (force_const_mem): Likewise.
37330         (record_tm_clone_pair): Likewise.
37331         * varpool.c (varpool_create_empty_node): Likewise.
37332
37333 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37334
37335         * dwarf2out.c (tree_add_const_value_attribute): Call
37336         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
37337         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
37338         instead of ggc_internal_<x>alloc_stat.
37339         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
37340         (ggc_realloc): Likewise.
37341         * ggc-none.c (ggc_internal_alloc): Likewise.
37342         (ggc_internal_cleared_alloc): Likewise.
37343         * ggc-page.c: Likewise.
37344         * ggc.h (ggc_internal_alloc_stat): Likewise.
37345         (ggc_internal_alloc): Remove macro.
37346         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
37347         (ggc_internal_cleared_alloc): Remove macro.
37348         (GGC_RESIZEVEC): Adjust.
37349         (ggc_resizevar): Remove macro.
37350         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
37351         (ggc_internal_cleared_vec_alloc_stat): Likewise.
37352         (ggc_internal_vec_cleared_alloc): Remove macro.
37353         (ggc_alloc_atomic_stat): Drop _stat suffix.
37354         (ggc_alloc_atomic): Remove macro.
37355         (ggc_alloc_cleared_atomic): Remove macro.
37356         (ggc_alloc_string_stat): Drop _stat suffix.
37357         (ggc_alloc_string): Remove macro.
37358         (ggc_alloc_rtx_def_stat): Adjust.
37359         (ggc_alloc_tree_node_stat): Likewise.
37360         (ggc_alloc_cleared_tree_node_stat): Likewise.
37361         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
37362         (ggc_alloc_cleared_simd_clone_stat): Likewise.
37363         * gimple.c (gimple_build_omp_for): Likewise.
37364         (gimple_copy): Likewise.
37365         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
37366         * toplev.c (realloc_for_line_map): Adjust.
37367         * tree-data-ref.h (lambda_vector_new): Likewise.
37368         * tree-phinodes.c (allocate_phi_node): Likewise.
37369         * tree.c (grow_tree_vec_stat): Likewise.
37370         * vec.h (va_gc::reserve): Adjust.
37371
37372 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
37373
37374         * config/microblaze/microblaze.c (break_handler): New Declaration.
37375         (microblaze_break_function_p,microblaze_is_break_handler): New.
37376         (compute_frame_size): Use microblaze_break_function_p.
37377         Add the test of break_handler.
37378         (microblaze_function_prologue) : Add the test of variable
37379         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
37380         (microblaze_function_epilogue) : Add the test of break_handler.
37381         (microblaze_globalize_label) : Add the test of break_handler.
37382         Check the name by BREAK_HANDLER_NAME.
37383
37384         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
37385
37386         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
37387         microblaze_is_break_handler test.
37388         (call_internal1,call_value_intern): Use microblaze_break_function_p.
37389         Use SYMBOL_REF_DECL.
37390
37391         * config/microblaze/microblaze-protos.h
37392         (microblaze_break_function_p,microblaze_is_break_handler):
37393         New Declaration.
37394
37395         * doc/extend.texi (MicroBlaze break_handler Functions): Document
37396         new MicroBlaze break_handler functions.
37397
37398 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37399
37400         * doc/extend.texi (Size of an asm): Move node text according
37401         to its @menu entry position.
37402
37403 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
37404
37405         PR tree-optimization/61140
37406         PR tree-optimization/61150
37407         PR tree-optimization/61197
37408         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
37409
37410 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37411
37412         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
37413
37414 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
37415
37416         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
37417         __SIZEOF_INT128__ is defined.
37418
37419 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37420
37421         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
37422         (rs6000_delegitimize_address): Use it.
37423
37424 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37425
37426         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
37427         inplace argument.  Store the new address in the original MEM when true.
37428         * emit-rtl.c (change_address_1): Likewise.
37429         (adjust_address_1, adjust_automodify_address_1, offset_address):
37430         Update accordingly.
37431         * rtl.h (plus_constant): Add an inplace argument.
37432         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
37433         when true.  Avoid generating (plus X (const_int 0)).
37434         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
37435         in-place.  Pass true to plus_constant.
37436         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
37437
37438 2014-05-16  Dehao Chen  <dehao@google.com>
37439
37440         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
37441
37442 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37443
37444         PR target/54089
37445         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
37446         patterns.
37447         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
37448
37449 2014-05-16  Dehao Chen  <dehao@google.com>
37450
37451         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
37452         optimize_function_for_size_p.
37453         * regs.h (REG_FREQ_FROM_BB): Likewise.
37454
37455 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37456
37457         PR target/51244
37458         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
37459         negt_reg_operand cases.
37460         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
37461         predicate.
37462         * config/sh/predicates.md (cbranch_treg_value): Simplify.
37463
37464 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37465
37466         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
37467         target variants.
37468
37469 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
37470
37471         Revert:
37472         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
37473
37474         * tree-cfg.c (dump_function_to_file): Dump the return type of
37475         functions, in a line to itself before the function body, mimicking
37476         the layout of a C function.
37477
37478 2014-05-16  Dehao Chen  <dehao@google.com>
37479
37480         * cfghooks.c (make_forwarder_block): Use direct computation to
37481         get fall-through edge's count and frequency.
37482
37483 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
37484
37485         * config/arc/arc.c (arc_init): Fix typo in error message.
37486         * config/i386/i386.c (ix86_expand_builtin): Likewise.
37487         (split_stack_prologue_scratch_regno): Likewise.
37488         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
37489         word from error message.
37490
37491 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
37492
37493         * ira-costs.c: Fix typo in comment.
37494
37495 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
37496
37497         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
37498
37499 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
37500
37501         * varpool.c (dump_varpool_node): Dump write-only flag.
37502         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
37503         write-only flag.
37504         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
37505         write-only variables.
37506         * ipa.c (process_references): New function.
37507         (set_readonly_bit): New function.
37508         (set_writeonly_bit): New function.
37509         (clear_addressable_bit): New function.
37510         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
37511         fix handling of aliases.
37512         * cgraph.h (struct varpool_node): Add writeonly flag.
37513
37514 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
37515
37516         PR rtl-optimization/60969
37517         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
37518         Calculate costs for this case.
37519
37520 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
37521
37522         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
37523         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
37524
37525 2014-05-16  Richard Biener  <rguenther@suse.de>
37526
37527         PR tree-optimization/61194
37528         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
37529         bool patterns ending in a COND_EXPR.
37530
37531 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37532
37533         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
37534
37535 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37536
37537         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
37538         where we were unable to cost an RTX.
37539
37540 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37541
37542         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
37543         HIGH, LO_SUM.
37544
37545 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37546             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37547
37548         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
37549
37550 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37551             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37552
37553         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
37554         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
37555
37556 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37557             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37558
37559         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
37560         operators.
37561
37562 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37563             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37564
37565         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37566         DIV/MOD.
37567
37568 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37569             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37570
37571         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
37572         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
37573
37574 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37575             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37576
37577         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37578         rotates and shifts.
37579
37580 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37581             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37582
37583         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
37584         ZERO_EXTEND and SIGN_EXTEND better.
37585
37586 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37587             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37588
37589         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
37590         logical operations.
37591
37592 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37593             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37594
37595         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
37596         costs when costing loads and stores to memory.
37597
37598 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37599             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
37600
37601         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
37602         for SET RTX.
37603
37604 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37605
37606         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
37607
37608 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37609             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37610
37611         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
37612         to...
37613         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
37614         well formed.
37615         (aarch64_rtx_mult_cost): New.
37616         (aarch64_rtx_costs): Use it, refactor as appropriate.
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_build_constant): Conditionally
37622         emit instructions, return number of instructions which would
37623         be emitted.
37624         (aarch64_add_constant): Update call to aarch64_build_constant.
37625         (aarch64_output_mi_thunk): Likewise.
37626         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
37627         a CONST_DOUBLE.
37628
37629 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37630
37631         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
37632         (TARGET_RTX_COSTS): Call it.
37633
37634 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37635
37636         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
37637         (cortexa57_vector_cost): Likewise.
37638         (cortexa57_tunings): Use them.
37639
37640 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37641
37642         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
37643         (cpu_addrcost_table): Use it.
37644         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
37645         (aarch64_address_cost): Rewrite using aarch64_classify_address,
37646         move it.
37647
37648 2014-05-16  Richard Biener  <rguenther@suse.de>
37649
37650         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
37651         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
37652         (visit_phi): Ignore edges marked as not executable.
37653         (class cond_dom_walker): New.
37654         (cond_dom_walker::before_dom_children): Value-number
37655         control statements and mark successor edges as not
37656         executable if possible.
37657         (run_scc_vn): First walk all control statements in
37658         dominator order, marking edges as not executable.
37659         * tree-inline.c (copy_edges_for_bb): Be not confused
37660         about random edge flags.
37661
37662 2014-05-16  Richard Biener  <rguenther@suse.de>
37663
37664         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
37665
37666 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
37667
37668         PR target/61193
37669         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
37670         (__TM_simple_begin): Use it.
37671         (__TM_begin): Likewise.
37672
37673 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37674
37675         PR ipa/61085
37676         * ipa-prop.c (update_indirect_edges_after_inlining): Check
37677         type_preserved flag when the indirect edge is polymorphic.
37678
37679 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37680
37681         PR tree-optimization/61090
37682         * tree-sra.c (sra_modify_expr): Pass the current gsi to
37683         build_ref_for_model.
37684
37685 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37686
37687         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
37688         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
37689
37690 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
37691
37692         PR tree-optimization/61158
37693         * fold-const.c (fold_binary_loc): If X is zero-extended and
37694         shiftc >= prec, make sure zerobits is all ones instead of
37695         invoking undefined behavior.
37696
37697 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37698
37699         * regcprop.h: New file.
37700         * regcprop.c (skip_debug_insn_p): New decl.
37701         (replace_oldest_value_reg): Check skip_debug_insn_p.
37702         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
37703         * shrink-wrap.c: Include regcprop.h.
37704         (prepare_shrink_wrap): Call
37705         copyprop_hardreg_forward_bb_without_debug_insn.
37706
37707 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37708
37709         * shrink-wrap.h: Update comment.
37710         * shrink-wrap.c: Update comment.
37711         (next_block_for_reg): Rename to live_edge_for_reg.
37712         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
37713         (move_insn_for_shrink_wrap): Split live_edge.
37714         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
37715
37716 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37717
37718         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
37719         Delete.
37720         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
37721         * config/sparc/sparc.md (fptype_ut699): New attribute.
37722         (in_branch_delay): Return false if -mfix-ut699 is specified and
37723         fptype_ut699 is set to single.
37724         (truncdfsf2): Add fptype_ut699 attribute.
37725         (fix_truncdfsi2): Likewise.
37726         (floatsisf2): Change fptype attribute.
37727         (fix_truncsfsi2): Likewise.
37728         (negtf2_notv9): Delete.
37729         (negtf2_v9): Likewise.
37730         (negtf2_hq): New instruction.
37731         (negtf2): New instruction and splitter.
37732         (negdf2_notv9): Rewrite.
37733         (abstf2_notv9): Delete.
37734         (abstf2_hq_v9): Likewise.
37735         (abstf2_v9): Likewise.
37736         (abstf2_hq): New instruction.
37737         (abstf2): New instruction and splitter.
37738         (absdf2_notv9): Rewrite.
37739
37740 2014-05-14  Cary Coutant  <ccoutant@google.com>
37741
37742         PR debug/61013
37743         * opts.c (common_handle_option): Don't special-case "-g".
37744         (set_debug_level): Default to at least level 2 with "-g".
37745
37746 2014-05-14  DJ Delorie  <dj@redhat.com>
37747
37748         * config/msp430/msp430.c (msp430_builtin): Add
37749         MSP430_BUILTIN_DELAY_CYCLES.
37750         (msp430_init_builtins): Register void __delay_cycles(long long).
37751         (msp430_builtin_decl): Add it.
37752         (cg_magic_constant): New.
37753         (msp430_expand_delay_cycles): New.
37754         (msp430_expand_builtin): Call it.
37755         (msp430_print_operand_raw): Change integer printing from "int" to
37756         HOST_WIDE_INT.
37757         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
37758         (delay_cycles_start): New.
37759         (delay_cycles_end): New.
37760         (delay_cycles_32): New.
37761         (delay_cycles_32x): New.
37762         (delay_cycles_16): New.
37763         (delay_cycles_16x): New.
37764         (delay_cycles_2): New.
37765         (delay_cycles_1): New.
37766         * doc/extend.texi: Document __delay_cycles().
37767
37768 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
37769
37770         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
37771         length attribute computation.
37772
37773 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
37774
37775         PR debug/61188
37776         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
37777
37778 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
37779
37780         PR target/61084
37781         * config/sparc/sparc.md: Fix types of low and high in DI constant
37782         splitter.  Use gen_int_mode in some other splitters.
37783
37784 2014-05-14  Martin Jambor  <mjambor@suse.cz>
37785
37786         PR ipa/60897
37787         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
37788
37789 2014-05-14  James Norris  <jnorris@codesourcery.com>
37790
37791         * omp-low.c (expand_parallel_call): Remove shadow variable.
37792         (expand_omp_taskreg): Likewise.
37793
37794 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
37795
37796         * common/config/i386/i386-common.c
37797         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
37798         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
37799         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
37800         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
37801         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
37802         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
37803         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
37804         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
37805         xsavecintrin.h, xsavesintrin.h.
37806         (x86_64-*-*): Ditto.
37807         * config/i386/clflushoptintrin.h: New.
37808         * config/i386/xsavecintrin.h: Ditto.
37809         * config/i386/xsavesintrin.h: Ditto.
37810         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
37811         (bit_XSAVES): Ditto.
37812         (bit_XSAVES): Ditto.
37813         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
37814         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
37815         -mno-clflushopt.
37816         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
37817         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
37818         OPTION_MASK_ISA_XSAVES.
37819         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
37820         -mxsavec, -mxsaves.
37821         (PTA_CLFLUSHOPT) Define.
37822         (PTA_XSAVEC): Ditto.
37823         (PTA_XSAVES): Ditto.
37824         (ix86_option_override_internal): Handle new options.
37825         (ix86_valid_target_attribute_inner_p): Ditto.
37826         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
37827         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
37828         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
37829         (bdesc_special_args): Add __builtin_ia32_xsaves,
37830         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
37831         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
37832         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
37833         (ix86_expand_builtin): Handle new builtins.
37834         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
37835         (TARGET_CLFLUSHOPT_P): Ditto.
37836         (TARGET_XSAVEC): Ditto.
37837         (TARGET_XSAVEC_P): Ditto.
37838         (TARGET_XSAVES): Ditto.
37839         (TARGET_XSAVES_P): Ditto.
37840         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
37841         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
37842         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
37843         (ANY_XRSTOR): New.
37844         (ANY_XRSTOR64): Ditto.
37845         (xrstor): Ditto.
37846         (xrstor): Change into <xrstor>.
37847         (xrstor_rex64): Change into <xrstor>_rex64.
37848         (xrstor64): Change into <xrstor>64
37849         (clflushopt): New.
37850         * config/i386/i386.opt (mclflushopt): New.
37851         (mxsavec): Ditto.
37852         (mxsaves): Ditto.
37853         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
37854         xsavecintrin.h.
37855         * doc/invoke.texi: Document new options.
37856
37857 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37858
37859         PR rtl-optimization/60866
37860         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
37861         Default it to -1.  Pass it down to init_simplejump_data.
37862         (init_simplejump_data): New parameter old_seqno.  Pass it down
37863         to get_seqno_for_a_jump.
37864         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
37865         initializing new jump seqno as a last resort.  Add comment.
37866         (sel_redirect_edge_and_branch): Save old seqno of the conditional
37867         jump and pass it down to sel_init_new_insn.
37868         (sel_redirect_edge_and_branch_force): Likewise.
37869
37870 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
37871
37872         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
37873         shifted values to avoid build warning.
37874
37875 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37876
37877         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
37878         * cfgrtl.c (rtl_merge_blocks): Fix comment.
37879         (cfg_layout_merge_blocks): Likewise.
37880         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
37881
37882 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37883
37884         PR rtl-optimization/60901
37885         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
37886         bb predecessor belongs to the same scheduling region.  Adjust comment.
37887
37888 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
37889
37890         * doc/sourcebuild.texi: (dfp_hw): Document.
37891         (p8vector_hw): Likewise.
37892         (powerpc_eabi_ok): Likewise.
37893         (powerpc_elfv2): Likewise.
37894         (powerpc_htm_ok): Likewise.
37895         (ppc_recip_hw): Likewise.
37896         (vsx_hw): Likewise.
37897
37898 2014-05-13  Cary Coutant  <ccoutant@google.com>
37899
37900         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
37901
37902 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
37903
37904         * gengtype-parse.c (require3): Eliminate in favor of...
37905         (require4): New.
37906         (require_template_declaration): Update to support optional single *
37907         on a type.
37908
37909         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
37910         (create_user_defined_type): Handle a single level of explicit
37911         pointerness within template arguments.
37912         (struct write_types_data): Add field "kind".
37913         (filter_type_name): Handle "*" character.
37914         (write_user_func_for_structure_ptr): Require a write_types_data
37915         rather than just a prefix string, so that we can look up the kind
37916         of the wtd and use it as an index into wrote_user_func_for_ptr,
37917         ensuring that such functions are written at most once.  Support
37918         subclasses by invoking the marking function of the ultimate base class.
37919         (write_user_func_for_structure_body): Require a write_types_data
37920         rather than just a prefix string, so that we can pass this to
37921         write_user_func_for_structure_ptr.
37922         (write_func_for_structure): Likewise.
37923         (ggc_wtd): Add initializer of new "kind" field.
37924         (pch_wtd): Likewise.
37925
37926         * gengtype.h (enum write_types_kinds): New.
37927         (struct type): Add field wrote_user_func_for_ptr to the "s"
37928         union member.
37929
37930 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37931
37932         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
37933         instead of const_binop.
37934         (fold_binary_loc): Likewise.
37935
37936 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37937
37938         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
37939         calculation to match get_ref_base_and_extent.
37940
37941 2014-05-13  Catherine Moore  <clm@codesourcery.com>
37942             Sandra Loosemore  <sandra@codesourcery.com>
37943
37944         * configure.ac: Fix assembly for explicit JALR relocation check.
37945         * configure: Regenerate.
37946
37947 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37948
37949         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
37950         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
37951         Remove associated type declarations and initialisations.
37952         (arm_expand_neon_builtin): Likewise.
37953         (neon_emit_pair_result_insn): Delete.
37954         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
37955         * config/arm/neon.md (neon_vtrn<mode>): Delete.
37956         (neon_vzip<mode>): Likewise.
37957         (neon_vuzp<mode>): Likewise.
37958
37959 2014-05-13  Richard Biener  <rguenther@suse.de>
37960
37961         PR ipa/60973
37962         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
37963         it needs revisiting whether the call still may be tail-called.
37964
37965 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37966
37967         * rtl.def (SYMBOL_REF): Remove middle "0" field.
37968         * rtl.h (block_symbol): Reduce number of fields to 2.
37969         (rtx_def): Add u2.symbol_ref_flags.
37970         (SYMBOL_REF_FLAGS): Use it.
37971         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
37972         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
37973         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
37974         Lower index of SYMBOL_REF_DATA.
37975         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
37976         Print SYMBOL_REF_FLAGS at the same time.
37977         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
37978
37979 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37980
37981         * rtl.def (VAR_LOCATION): Remove "i" field.
37982         * rtl.h (rtx_def): Add u2.var_location_status.
37983         (PAT_VAR_LOCATION_STATUS): Use it.
37984         (gen_rtx_VAR_LOCATION): Declare.
37985         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
37986         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
37987         * var-tracking.c (emit_note_insn_var_location): Remove casts.
37988
37989 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37990
37991         * rtl.def (scratch): Fix outdated comment and remove "0" field.
37992         * gengtype.c (adjust_field_rtx_def): Update accordingly.
37993
37994 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37995
37996         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
37997         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
37998         * rtl.h (rtx_def): Add insn_uid to u2 field.
37999         (RTX_FLAG_CHECK8): Delete in favor of...
38000         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
38001         (INSN_DELETED_P): Update accordingly.
38002         (INSN_UID): Use u2.insn_uid.
38003         (INSN_CHAIN_CODE_P): Define.
38004         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
38005         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
38006         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
38007         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
38008         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
38009         indices accordingly.
38010         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
38011         Update indices for insn-chain rtxes.
38012         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
38013         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
38014         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
38015         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
38016         * combine.c (try_combine): Likewise.
38017         * ira.c (setup_prohibited_mode_move_regs): Likewise.
38018
38019 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38020
38021         * rtl.def (REG): Remove middle field.
38022         * rtl.h (rtx_def): Add orignal_regno to u2.
38023         (ORIGINAL_REGNO): Use it instead of field 1.
38024         (REG_ATTRS): Lower field index accordingly.
38025         * gengtype.c (adjust_field_rtx_def): Remove handling of
38026         ORIGINAL_REGNO.  Move REG_ATTRS index down.
38027         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
38028         code that prints the REGNO.
38029
38030 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38031
38032         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
38033         GENERATOR_FILE.
38034
38035 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
38036
38037         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
38038
38039 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
38040
38041         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
38042         (alloc_iv): Lower base expressions containing ADDR_EXPR.
38043
38044 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
38045
38046         * config/aarch64/aarch64-protos.h
38047         (aarch64_hard_regno_caller_save_mode): New prototype.
38048         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
38049         New function.
38050         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
38051
38052 2014-05-13  Christian Bruel  <christian.bruel@st.com>
38053
38054         * target.def (mode_switching): New hook vector.
38055         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
38056         (mode_exit, modepriority_to_mode): Likewise.
38057         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
38058         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38059         * target.h: Include tm.h and hard-reg-set.h.
38060         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
38061         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
38062         * doc/tm.texi Regenerate.
38063         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38064         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38065         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
38066         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
38067         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
38068         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38069         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
38070         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
38071         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
38072         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
38073         (ix86_emit_mode_set): Hookify.
38074         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
38075         Delete.
38076         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
38077         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
38078         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
38079         (epiphany_mode_priority_to_mode): Remove declaration.
38080         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
38081         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
38082         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
38083         Likewise.
38084         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
38085         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
38086         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
38087
38088 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
38089
38090         PR target/61060
38091         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
38092         is const0_rtx, return immediately.  Don't test count == 0 when
38093         it is always true.
38094
38095 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
38096
38097         * Makefile.in: add shrink-wrap.o.
38098         * config/i386/i386.c: include "shrink-wrap.h"
38099         * function.c: Likewise.
38100         (requires_stack_frame_p, next_block_for_reg,
38101         move_insn_for_shrink_wrap, prepare_shrink_wrap,
38102         dup_block_and_redirect): Move to shrink-wrap.c
38103         (thread_prologue_and_epilogue_insns): Extract three code segments
38104         as functions in shrink-wrap.c
38105         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
38106         shrink-wrap.h
38107         * shrink-wrap.c: New file.
38108         * shrink-wrap.h: New file.
38109
38110 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38111
38112         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
38113         reference to Solaris.
38114
38115 2014-05-12  Mike Stump  <mikestump@comcast.net>
38116
38117         PR other/31778
38118         * genattrtab.c (filename): Add.
38119         (convert_set_attr_alternative): Improve error message.
38120         (check_defs): Restore read_md_filename for error messages.
38121         (gen_insn): Save filename.
38122
38123 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
38124
38125         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
38126         -fno-local-ivars and -fivar-visibility.
38127         * c-family/c.opt: Make -Wshadow also implicitly enable
38128         -Wshadow-ivar.
38129
38130 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
38131
38132         * doc/tm.texi: Remove reference to deleted macro.
38133         * doc/tm.texi.in: Likewise.
38134
38135 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
38136
38137         PR target/60991
38138         * config/avr/avr.c (avr_out_store_psi): Use correct constant
38139         to restore Y.
38140
38141 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
38142
38143         PR libgcc/61152
38144         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
38145         * config/arm/aout.h (License): Same.
38146         * config/arm/bpabi.h (License): Same.
38147         * config/arm/elf.h (License): Same.
38148         * config/arm/linux-elf.h (License): Same.
38149         * config/arm/linux-gas.h (License): Same.
38150         * config/arm/netbsd-elf.h (License): Same.
38151         * config/arm/uclinux-eabi.h (License): Same.
38152         * config/arm/uclinux-elf.h (License): Same.
38153         * config/arm/vxworks.h (License): Same.
38154
38155 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
38156
38157         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
38158         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
38159         number of operands to 3.
38160         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
38161         * tree-nested.c (convert_nonlocal_omp_clauses,
38162         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
38163         * gimplify.c (gimplify_scan_omp_clauses): Handle
38164         OMP_CLAUSE_LINEAR_STMT.
38165         * omp-low.c (lower_rec_input_clauses): Fix typo.
38166         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
38167         cast between Fortran boolean_type_node and C _Bool if
38168         needed.
38169
38170 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
38171
38172         PR tree-optimization/61136
38173         * wide-int.h (multiple_of_p): Define a version that doesn't return
38174         the quotient.
38175         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
38176         integer_zerop/const_binop pair.
38177         (multiple_of_p): Likewise, converting both operands to widest_int
38178         precision.
38179
38180 2014-05-09  Teresa Johnson  <tejohnson@google.com>
38181
38182         * cgraphunit.c (analyze_functions): Use correct dump file.
38183
38184 2014-05-09  Florian Weimer  <fweimer@redhat.com>
38185
38186         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
38187         expand_used_vars.
38188         (stack_protect_return_slot_p): New function.
38189         (expand_used_vars): Call stack_protect_decl_p and
38190         stack_protect_return_slot_p for -fstack-protector-strong.
38191
38192 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
38193         Andrew Haley <aph@redhat.com>
38194         Richard Sandiford <rdsandiford@googlemail.com>
38195
38196         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
38197         pages.
38198
38199 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
38200
38201         PR middle-end/61111
38202         * fold-const.c (fold_binary_loc): Changed width of mask.
38203
38204 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38205
38206         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
38207         unsigned int initializers for regno_in, regno_out.
38208
38209 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38210
38211         PR target/61055
38212         * config/avr/avr.md (cc): Add new attribute set_vzn.
38213         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
38214         Set cc insn attribute to set_vzn instead of set_zn for alternatives
38215         with INC, DEC or NEG.
38216         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
38217         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
38218         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
38219
38220 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38221
38222         Revert:
38223         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38224
38225         * wide-int.cc (UTItype): Define.
38226         (UDWtype): Define for appropriate W_TYPE_SIZE.
38227
38228 2014-05-09  Richard Biener  <rguenther@suse.de>
38229
38230         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
38231         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
38232         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
38233         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
38234         ssa_propagate): Adjust.
38235
38236 2014-05-08  Jeff Law  <law@redhat.com>
38237
38238         PR tree-optimization/61009
38239         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
38240         tri-state rather than a boolean.  When a block is too big to
38241         thread through, inform caller via negative return value.
38242         (thread_across_edge): If a block was too big for normal threading,
38243         then it's too big for a joiner too, so remove temporary equivalences
38244         and return immediately.
38245
38246 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38247             Matthias Klose  <doko@ubuntu.com>
38248
38249         PR driver/61106
38250         * optc-gen.awk: Fix option handling for -Wunused-parameter.
38251
38252 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38253
38254         PR target/59952
38255         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
38256
38257 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38258
38259         PR target/61092
38260         * config/alpha/alpha.c: Include gimple-iterator.h.
38261         (alpha_gimple_fold_builtin): New function.  Move
38262         ALPHA_BUILTIN_UMULH folding from ...
38263         (alpha_fold_builtin): ... here.
38264         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38265
38266 2014-05-08  Wei Mi  <wmi@google.com>
38267
38268         PR target/58066
38269         * config/i386/i386.c (ix86_compute_frame_layout): Update
38270         preferred_stack_boundary for call, expanded from tls descriptor.
38271         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38272         to depend on SP register.
38273         (*tls_local_dynamic_base_32_gnu): Ditto.
38274         (*tls_local_dynamic_32_once): Ditto.
38275         (tls_global_dynamic_64_<mode>): Set
38276         ix86_tls_descriptor_calls_expanded_in_cfun.
38277         (tls_local_dynamic_base_64_<mode>): Ditto.
38278         (tls_global_dynamic_32): Set
38279         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38280         to depend on SP register.
38281         (tls_local_dynamic_base_32): Ditto.
38282
38283 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38284
38285         * config/arm/arm_neon.h: Update comment.
38286         * config/arm/neon-docgen.ml: Delete.
38287         * config/arm/neon-gen.ml: Delete.
38288         * doc/arm-neon-intrinsics.texi: Update comment.
38289
38290 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38291
38292         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38293         and v4sf versions.
38294         (vand, vorr, veor, vorn, vbic): Remove.
38295         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38296         iterator.
38297         (neon_vsub_unspec): Likewise.
38298         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38299
38300 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38301
38302         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38303         (vadd_s16): Likewise.
38304         (vadd_s32): Likewise.
38305         (vadd_f32): Likewise.
38306         (vadd_u8): Likewise.
38307         (vadd_u16): Likewise.
38308         (vadd_u32): Likewise.
38309         (vadd_s64): Likewise.
38310         (vadd_u64): Likewise.
38311         (vaddq_s8): Likewise.
38312         (vaddq_s16): Likewise.
38313         (vaddq_s32): Likewise.
38314         (vaddq_s64): Likewise.
38315         (vaddq_f32): Likewise.
38316         (vaddq_u8): Likewise.
38317         (vaddq_u16): Likewise.
38318         (vaddq_u32): Likewise.
38319         (vaddq_u64): Likewise.
38320         (vmul_s8): Likewise.
38321         (vmul_s16): Likewise.
38322         (vmul_s32): Likewise.
38323         (vmul_f32): Likewise.
38324         (vmul_u8): Likewise.
38325         (vmul_u16): Likewise.
38326         (vmul_u32): Likewise.
38327         (vmul_p8): Likewise.
38328         (vmulq_s8): Likewise.
38329         (vmulq_s16): Likewise.
38330         (vmulq_s32): Likewise.
38331         (vmulq_f32): Likewise.
38332         (vmulq_u8): Likewise.
38333         (vmulq_u16): Likewise.
38334         (vmulq_u32): Likewise.
38335         (vsub_s8): Likewise.
38336         (vsub_s16): Likewise.
38337         (vsub_s32): Likewise.
38338         (vsub_f32): Likewise.
38339         (vsub_u8): Likewise.
38340         (vsub_u16): Likewise.
38341         (vsub_u32): Likewise.
38342         (vsub_s64): Likewise.
38343         (vsub_u64): Likewise.
38344         (vsubq_s8): Likewise.
38345         (vsubq_s16): Likewise.
38346         (vsubq_s32): Likewise.
38347         (vsubq_s64): Likewise.
38348         (vsubq_f32): Likewise.
38349         (vsubq_u8): Likewise.
38350         (vsubq_u16): Likewise.
38351         (vsubq_u32): Likewise.
38352         (vsubq_u64): Likewise.
38353         (vand_s8): Likewise.
38354         (vand_s16): Likewise.
38355         (vand_s32): Likewise.
38356         (vand_u8): Likewise.
38357         (vand_u16): Likewise.
38358         (vand_u32): Likewise.
38359         (vand_s64): Likewise.
38360         (vand_u64): Likewise.
38361         (vandq_s8): Likewise.
38362         (vandq_s16): Likewise.
38363         (vandq_s32): Likewise.
38364         (vandq_s64): Likewise.
38365         (vandq_u8): Likewise.
38366         (vandq_u16): Likewise.
38367         (vandq_u32): Likewise.
38368         (vandq_u64): Likewise.
38369         (vorr_s8): Likewise.
38370         (vorr_s16): Likewise.
38371         (vorr_s32): Likewise.
38372         (vorr_u8): Likewise.
38373         (vorr_u16): Likewise.
38374         (vorr_u32): Likewise.
38375         (vorr_s64): Likewise.
38376         (vorr_u64): Likewise.
38377         (vorrq_s8): Likewise.
38378         (vorrq_s16): Likewise.
38379         (vorrq_s32): Likewise.
38380         (vorrq_s64): Likewise.
38381         (vorrq_u8): Likewise.
38382         (vorrq_u16): Likewise.
38383         (vorrq_u32): Likewise.
38384         (vorrq_u64): Likewise.
38385         (veor_s8): Likewise.
38386         (veor_s16): Likewise.
38387         (veor_s32): Likewise.
38388         (veor_u8): Likewise.
38389         (veor_u16): Likewise.
38390         (veor_u32): Likewise.
38391         (veor_s64): Likewise.
38392         (veor_u64): Likewise.
38393         (veorq_s8): Likewise.
38394         (veorq_s16): Likewise.
38395         (veorq_s32): Likewise.
38396         (veorq_s64): Likewise.
38397         (veorq_u8): Likewise.
38398         (veorq_u16): Likewise.
38399         (veorq_u32): Likewise.
38400         (veorq_u64): Likewise.
38401         (vbic_s8): Likewise.
38402         (vbic_s16): Likewise.
38403         (vbic_s32): Likewise.
38404         (vbic_u8): Likewise.
38405         (vbic_u16): Likewise.
38406         (vbic_u32): Likewise.
38407         (vbic_s64): Likewise.
38408         (vbic_u64): Likewise.
38409         (vbicq_s8): Likewise.
38410         (vbicq_s16): Likewise.
38411         (vbicq_s32): Likewise.
38412         (vbicq_s64): Likewise.
38413         (vbicq_u8): Likewise.
38414         (vbicq_u16): Likewise.
38415         (vbicq_u32): Likewise.
38416         (vbicq_u64): Likewise.
38417         (vorn_s8): Likewise.
38418         (vorn_s16): Likewise.
38419         (vorn_s32): Likewise.
38420         (vorn_u8): Likewise.
38421         (vorn_u16): Likewise.
38422         (vorn_u32): Likewise.
38423         (vorn_s64): Likewise.
38424         (vorn_u64): Likewise.
38425         (vornq_s8): Likewise.
38426         (vornq_s16): Likewise.
38427         (vornq_s32): Likewise.
38428         (vornq_s64): Likewise.
38429         (vornq_u8): Likewise.
38430         (vornq_u16): Likewise.
38431         (vornq_u32): Likewise.
38432         (vornq_u64): Likewise.
38433
38434 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38435
38436         * wide-int.cc (UTItype): Define.
38437         (UDWtype): Define for appropriate W_TYPE_SIZE.
38438
38439 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
38440
38441         PR tree-optimization/59100
38442         * tree-ssa-phiopt.c: Include tree-inline.h.
38443         (neutral_element_p, absorbing_element_p): New functions.
38444         (value_replacement): Handle conditional binary operations with a
38445         neutral or absorbing element.
38446
38447 2014-05-08  Richard Biener  <rguenther@suse.de>
38448
38449         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
38450         folding the expression.
38451         (valueize_expr): Remove.
38452         (visit_reference_op_load): Do not valueize the result of
38453         vn_get_expr_for.
38454         (simplify_binary_expression): Likewise.
38455         (simplify_unary_expression): Likewise.
38456
38457 2014-05-08  Richard Biener  <rguenther@suse.de>
38458
38459         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
38460         looking at TYPE_ARG_TYPES.
38461
38462 2014-05-08  Richard Biener  <rguenther@suse.de>
38463
38464         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
38465         pointer propagation special-case.
38466
38467 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
38468
38469         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
38470         core part of address expressions.
38471
38472 2014-05-08  Alan Modra  <amodra@gmail.com>
38473
38474         PR target/60737
38475         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
38476         loads and stores when -mno-strict-align at any alignment.
38477         (expand_block_clear): Similarly.  Also correct calculation of
38478         instruction count.
38479
38480 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38481
38482         PR middle-end/39246
38483         * tree-complex.c (expand_complex_move): Keep line info when expanding
38484         complex move.
38485         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
38486         of complex expression. Use new argument to display correct location
38487         for values coming from phi statement.
38488         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
38489         (warn_uninitialized_phi): Pass location of phi argument to
38490         warn_uninit.
38491         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
38492         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
38493
38494 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
38495
38496         * config/rs6000/predicates.md (indexed_address_mem): New.
38497         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
38498         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
38499         fpstore_ux, fpstore_u.
38500         (sign_extend, indexed, update): New.
38501         (cell_micro): Adjust.
38502         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
38503         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
38504         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
38505         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
38506         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
38507         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
38508         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
38509         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
38510         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
38511         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
38512         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
38513         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
38514         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
38515         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
38516         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
38517
38518         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
38519         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
38520         *vsx_extract_<mode>_store): Adjust.
38521         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
38522         is_cracked_insn, insn_must_be_first_in_group,
38523         insn_must_be_last_in_group): Adjust.
38524
38525         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
38526         Adjust.
38527         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
38528         ppc440-fpstore): Adjust.
38529         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
38530         ppc476-fpstore): Adjust.
38531         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
38532         ppc601-fpstore): Adjust.
38533         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
38534         Adjust.
38535         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
38536         Adjust.
38537         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
38538         ppc7450-fpstore): Adjust.
38539         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
38540         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
38541         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
38542         Adjust.
38543         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
38544         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
38545         cell-fpstore, cell-fpstore-update): Adjust.
38546         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
38547         ppce300c3_store, ppce300c3_fpstore): Adjust.
38548         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
38549         e500mc_fpstore): Adjust.
38550         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
38551         e500mc64_store, e500mc64_fpstore): Adjust.
38552         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
38553         e5500_fpstore): Adjust.
38554         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
38555         e6500_fpstore): Adjust.
38556         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
38557         Adjust.
38558         * config/rs6000/power4.md (power4-load, power4-load-ext,
38559         power4-load-ext-update, power4-load-ext-update-indexed,
38560         power4-load-update-indexed, power4-load-update, power4-fpload,
38561         power4-fpload-update, power4-store, power4-store-update,
38562         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
38563         Adjust.
38564         * config/rs6000/power5.md (power5-load, power5-load-ext,
38565         power5-load-ext-update, power5-load-ext-update-indexed,
38566         power5-load-update-indexed, power5-load-update, power5-fpload,
38567         power5-fpload-update, power5-store, power5-store-update,
38568         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
38569         Adjust.
38570         * config/rs6000/power6.md (power6-load, power6-load-ext,
38571         power6-load-update, power6-load-update-indexed,
38572         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
38573         power6-fpload-update, power6-store, power6-store-update,
38574         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
38575         Adjust.
38576         * config/rs6000/power7.md (power7-load, power7-load-ext,
38577         power7-load-update, power7-load-update-indexed,
38578         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
38579         power7-fpload-update, power7-store, power7-store-update,
38580         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
38581         Adjust.
38582         * config/rs6000/power8.md (power8-load, power8-load-update,
38583         power8-load-ext, power8-load-ext-update, power8-fpload,
38584         power8-fpload-update, power8-store, power8-store-update-indexed,
38585         power8-fpstore, power8-fpstore-update): Adjust.
38586         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
38587         Adjust.
38588         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
38589         titan_lsu_store, titan_lsu_fpstore): Adjust.
38590         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
38591
38592 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
38593
38594         PR target/60884
38595         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
38596         unrolled byte insns.  Emit address increments after move insns.
38597
38598 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
38599
38600         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
38601         const_gimple, rather than a gimple.
38602         (gimple_call_builtin_p): Likewise, for the three variants.
38603
38604         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
38605         (gimple_call_builtin_p): Likewise, for the three variants.
38606
38607 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
38608
38609         PR tree-optimization/61095
38610         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
38611
38612 2014-05-07  Richard Biener  <rguenther@suse.de>
38613
38614         PR tree-optimization/61034
38615         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
38616         (maybe_skip_until): Use translate to take into account
38617         lattices when trying to do disambiguations.
38618         (get_continuation_for_phi_1): Likewise.
38619         (get_continuation_for_phi): Adjust for added translate arguments.
38620         (walk_non_aliased_vuses): Likewise.
38621         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
38622         (walk_non_aliased_vuses): Likewise.
38623         (call_may_clobber_ref_p_1): Declare.
38624         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
38625         calls.  Stop early if we are only supposed to disambiguate.
38626         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
38627
38628 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
38629
38630         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
38631         Emit an error when the function has arguments.
38632
38633 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38634
38635         * cfgloop.h (unswitch_loops): Remove.
38636         * doc/passes.texi: Remove references to loop-unswitch.c
38637         * timevar.def (TV_LOOP_UNSWITCH): Remove.
38638
38639 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
38640
38641         * tree-vect-data-refs.c (vect_grouped_load_supported): New
38642         check for loads group of length 3.
38643         (vect_permute_load_chain): New permutations for loads group of
38644         length 3.
38645         * tree-vect-stmts.c (vect_model_load_cost): Change cost
38646         of vec_perm_shuffle for the new permutations.
38647
38648 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
38649
38650         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
38651         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
38652         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
38653         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
38654         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
38655         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
38656         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
38657         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
38658
38659 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38660
38661         * loop-unswitch.c: Delete.
38662
38663 2014-05-07  Richard Biener  <rguenther@suse.de>
38664
38665         * config.gcc: Always set need_64bit_hwint to yes.
38666
38667 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
38668
38669         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
38670         of using optimize_size.
38671
38672 2014-05-06  Mike Stump  <mikestump@comcast.net>
38673
38674         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
38675
38676 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
38677
38678         * config/i386/sse.md (*mov<mode>_internal)
38679         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
38680         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
38681         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
38682         (*<code><mode>3, *andnot<mode>3<mask_name>)
38683         (<mask_codefor><code><mode>3<mask_name>): Only consider
38684         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
38685
38686 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38687
38688         Revert:
38689         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
38690
38691         * lra-constraints.c (valid_address_p): Move earlier in file.
38692         Add a constraint argument to the address_info version.
38693         (satisfies_memory_constraint_p): New function.
38694         (satisfies_address_constraint_p): Likewise.
38695         (process_alt_operands, curr_insn_transform): Use them.
38696         (process_address): Pass the constraint to valid_address_p when
38697         checking address operands.
38698
38699 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
38700
38701         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
38702         to their respective blocks.  Fix inadvertent use of "node".
38703
38704 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38705
38706         * emit-rtl.c (init_derived_machine_modes): New functionm, split
38707         out from...
38708         (init_emit_once): ...here.
38709         * rtl.h (init_derived_machine_modes): Declare.
38710         * toplev.c (do_compile): Call it even if no_backend.
38711
38712 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
38713             Mike Stump  <mikestump@comcast.net>
38714             Richard Sandiford  <rdsandiford@googlemail.com>
38715             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38716
38717         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
38718         (rtx_equal_for_memref_p): Update comment.
38719         (adjust_offset_for_component_ref): Use wide-int interfaces.
38720         * builtins.c (get_object_alignment_2): Likewise.
38721         (c_readstr): Likewise.
38722         (target_char_cast): Add comment.
38723         (determine_block_size): Use wide-int interfaces.
38724         (expand_builtin_signbit): Likewise.
38725         (fold_builtin_int_roundingfn): Likewise.
38726         (fold_builtin_bitop): Likewise.
38727         (fold_builtin_bswap): Likewise.
38728         (fold_builtin_logarithm): Use signop.
38729         (fold_builtin_pow): Likewise.
38730         (fold_builtin_memory_op): Use wide-int interfaces.
38731         (fold_builtin_object_size): Likewise.
38732         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
38733         nb_iterations_estimate.
38734         (record_niter_bound): Use wide-int interfaces.
38735         (get_estimated_loop_iterations_int): Likewise.
38736         (get_estimated_loop_iterations): Likewise.
38737         (get_max_loop_iterations): Likewise.
38738         * cfgloop.h: Include wide-int.h.
38739         (struct nb_iter_bound): Change bound to widest_int.
38740         (struct loop): Change nb_iterations_upper_bound and
38741         nb_iterations_estimate to widest_int.
38742         (record_niter_bound): Switch to use widest_int.
38743         (get_estimated_loop_iterations): Likewise.
38744         (get_max_loop_iterations): Likewise.
38745         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
38746         update for wide-int.
38747         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
38748         * combine.c (try_combine): Likewise.
38749         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
38750         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
38751         interfaces.
38752         (aarch64_float_const_representable_p): Likewise.
38753         * config/arc/arc.c: Include wide-int.h.
38754         (arc_can_use_doloop_p): Use wide-int interfaces.
38755         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
38756         (vfp3_const_double_index): Likewise.
38757         * config/avr/avr.c (avr_out_round): Likewise.
38758         (avr_fold_builtin): Likewise.
38759         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
38760         (bfin_can_use_doloop_p): Likewise.
38761         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
38762         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
38763         * config/i386/i386.c: Include wide-int.h.
38764         (ix86_data_alignment): Use wide-int interfaces.
38765         (ix86_local_alignment): Likewise.
38766         (ix86_emit_swsqrtsf): Update real_from_integer.
38767         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
38768         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
38769         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
38770         (zero_constant): Likewise.
38771         (input_operand): Likewise.
38772         (splat_input_operand): Likewise.
38773         (non_logical_cint_operand): Change const_double to const_wide_int.
38774         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
38775         (easy_altivec_constant): Remove comment.
38776         (paired_expand_vector_init): Use CONSTANT_P.
38777         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
38778         (rs6000_emit_move): Update checks.
38779         (rs6000_aggregate_candidate): Use wide-int interfaces.
38780         (rs6000_expand_ternop_builtin): Likewise.
38781         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
38782         (rs6000_assemble_integer): Likewise.
38783         (rs6000_hash_constant): Likewise.
38784         (output_toc): Likewise.
38785         (rs6000_rtx_costs): Likewise.
38786         (rs6000_emit_swrsqrt); Update call to real_from_integer.
38787         * config/rs6000/rs6000-c.c: Include wide-int.h.
38788         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
38789         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
38790         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
38791         Handle CONST_WIDE_INT.
38792         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
38793         Use tree_fits_uhwi_p.
38794         * config/sparc/sparc.c: Include wide-int.h.
38795         (sparc_fold_builtin): Use wide-int interfaces.
38796         * config/vax/vax.c: Include wide-int.h.
38797         (vax_float_literal): Use real_from_integer.
38798         * coretypes.h (struct hwivec_def): New.
38799         (hwivec): New.
38800         (const_hwivec): New.
38801         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
38802         (equiv_constant): Handle CONST_WIDE_INT.
38803         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
38804         (cselib_hash_rtx): Handle CONST_WIDE_INT.
38805         * dbxout.c (stabstr_U): Use wide-int interfaces.
38806         (dbxout_type): Update to use cst_fits_shwi_p.
38807         * defaults.h (LOG2_BITS_PER_UNIT): Define.
38808         (TARGET_SUPPORTS_WIDE_INT): Add default.
38809         * dfp.c: Include wide-int.h.
38810         (decimal_real_to_integer2): Use wide-int interfaces and rename to
38811         decimal_real_to_integer.
38812         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
38813         decimal_real_to_integer.
38814         * doc/generic.texi (Constant expressions): Update for wide_int.
38815         * doc/rtl.texi (const_double): Likewise.
38816         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
38817         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
38818         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
38819         (REAL_VALUE_FROM_INT): Remove.
38820         (TARGET_SUPPORTS_WIDE_INT): New.
38821         * doc/tm.texi: Regenerate.
38822         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
38823         * double-int.h: Include wide-int.h.
38824         (struct wi::int_traits): New.
38825         * dwarf2out.c (get_full_len): New.
38826         (dw_val_equal_p): Add case dw_val_class_wide_int.
38827         (size_of_loc_descr): Likewise.
38828         (output_loc_operands): Likewise.
38829         (insert_double): Remove.
38830         (insert_wide_int): New.
38831         (add_AT_wide): New.
38832         (print_die): Add case dw_val_class_wide_int.
38833         (attr_checksum): Likewise.
38834         (attr_checksum_ordered): Likewise.
38835         (same_dw_val_p): Likewise.
38836         (size_of_die): Likewise.
38837         (value_format): Likewise.
38838         (output_die): Likewise.
38839         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
38840         Use wide-int.
38841         (clz_loc_descriptor): Use wide-int interfaces.
38842         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
38843         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
38844         (round_up_to_align): Use wide-int interfaces.
38845         (field_byte_offset): Likewise.
38846         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
38847         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
38848         CONST_DOUBLE handling.  Use wide-int interfaces.
38849         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
38850         (gen_enumeration_type_die): Use add_AT_wide.
38851         (hash_loc_operands): Add case dw_val_class_wide_int.
38852         (compare_loc_operands): Likewise.
38853         * dwarf2out.h: Include wide-int.h.
38854         (wide_int_ptr): New.
38855         (enum dw_val_class): Add dw_val_class_wide_int.
38856         (struct dw_val_struct): Add val_wide.
38857         * emit-rtl.c (const_wide_int_htab): New.
38858         (const_wide_int_htab_hash): New.
38859         (const_wide_int_htab_eq): New.
38860         (lookup_const_wide_int): New.
38861         (const_double_htab_hash): Use wide-int interfaces.
38862         (const_double_htab_eq): Likewise.
38863         (rtx_to_double_int): Conditionally compile for wide-int.
38864         (immed_double_int_const): Rename to immed_wide_int_const and
38865         update for wide-int.
38866         (immed_double_const): Conditionally compile for wide-int.
38867         (init_emit_once): Use wide-int interfaces.
38868         * explow.c (plus_constant): Likewise.
38869         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
38870         (lshift_value): Use wide-int interfaces.
38871         (expand_mult): Likewise.
38872         (choose_multiplier): Likewise.
38873         (expand_smod_pow2): Likewise.
38874         (make_tree): Likewise.
38875         * expr.c (convert_modes): Consolidate handling of constants.
38876         Use wide-int interfaces.
38877         (emit_group_load_1): Add note.
38878         (store_expr): Update comment.
38879         (get_inner_reference): Use wide-int interfaces.
38880         (expand_constructor): Update comment.
38881         (expand_expr_real_2): Use wide-int interfaces.
38882         (expand_expr_real_1): Likewise.
38883         (reduce_to_bit_field_precision): Likewise.
38884         (const_vector_from_tree): Likewise.
38885         * final.c: Include wide-int-print.h.
38886         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
38887         * fixed-value.c: Include wide-int.h.
38888         (fixed_from_string): Use wide-int interfaces.
38889         (fixed_to_decimal): Likewise.
38890         (fixed_convert_from_real): Likewise.
38891         (real_convert_from_fixed): Likewise.
38892         * fold-const.h (mem_ref_offset): Return an offset_int.
38893         (div_if_zero_remainder): Remove code parameter.
38894         * fold-const.c (div_if_zero_remainder): Remove code parameter.
38895         Use wide-int interfaces.
38896         (may_negate_without_overflow_p): Use wide-int interfaces.
38897         (negate_expr_p): Likewise.
38898         (fold_negate_expr): Likewise.
38899         (int_const_binop_1): Likewise.
38900         (const_binop): Likewise.
38901         (fold_convert_const_int_from_int): Likewise.
38902         (fold_convert_const_int_from_real): Likewise.
38903         (fold_convert_const_int_from_fixed): Likewise.
38904         (fold_convert_const_fixed_from_int): Likewise.
38905         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
38906         (sign_bit_p): Use wide-int interfaces.
38907         (make_range_step): Likewise.
38908         (build_range_check): Likewise.  Pass an integer of the correct type
38909         instead of using integer_one_node.
38910         (range_predecessor): Pass an integer of the correct type instead
38911         of using integer_one_node.
38912         (range_successor): Likewise.
38913         (merge_ranges): Likewise.
38914         (unextend): Use wide-int interfaces.
38915         (extract_muldiv_1): Likewise.
38916         (fold_div_compare): Likewise.
38917         (fold_single_bit_test): Likewise.
38918         (fold_sign_changed_comparison): Likewise.
38919         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
38920         (fold_plusminus_mult_expr): Use wide-int interfaces.
38921         (native_encode_int): Likewise.
38922         (native_interpret_int): Likewise.
38923         (fold_unary_loc): Likewise.
38924         (pointer_may_wrap_p): Likewise.
38925         (size_low_cst): Likewise.
38926         (mask_with_tz): Likewise.
38927         (fold_binary_loc): Likewise.
38928         (fold_ternary_loc): Likewise.
38929         (multiple_of_p): Likewise.
38930         (tree_call_nonnegative_warnv_p): Update calls to
38931         tree_int_cst_min_precision and real_from_integer.
38932         (fold_negate_const): Use wide-int interfaces.
38933         (fold_abs_const): Likewise.
38934         (fold_relational_const): Use tree_int_cst_lt.
38935         (round_up_loc): Use wide-int interfaces.
38936         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
38937         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
38938         * gengtype.c: Remove include of double-int.h.
38939         (do_typedef): Use wide-int interfaces.
38940         (open_base_files): Add wide-int.h.
38941         (main): Add offset_int and widest_int typedefs.
38942         * gengtype-lex.l: Handle "^".
38943         (CXX_KEYWORD): Add "static".
38944         * gengtype-parse.c (require3): New.
38945         (require_template_declaration): Handle constant template arguments
38946         and nested templates.
38947         * gengtype-state.c: Don't include "double-int.h".
38948         * genpreds.c (write_one_predicate_function): Update comment.
38949         (write_tm_constrs_h): Add check for hval and lval use in
38950         CONST_WIDE_INT.
38951         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
38952         (add_to_sequence): Likewise.
38953         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
38954         and const_double_operand.
38955         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
38956         interfaces.
38957         * gimple-fold.c (get_base_constructor): Likewise.
38958         (fold_array_ctor_reference): Likewise.
38959         (fold_nonarray_ctor_reference): Likewise.
38960         (fold_const_aggregate_ref_1): Likewise.
38961         (gimple_val_nonnegative_real_p): Likewise.
38962         (gimple_fold_indirect_ref): Likewise.
38963         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
38964         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
38965         (struct slsr_cand_d): Change index to be widest_int.
38966         (struct incr_info_d): Change incr to be widest_int.
38967         (alloc_cand_and_find_basis): Use wide-int interfaces.
38968         (slsr_process_phi): Likewise.
38969         (backtrace_base_for_ref): Likewise.  Return a widest_int.
38970         (restructure_reference): Take a widest_int instead of a double_int.
38971         (slsr_process_ref): Use wide-int interfaces.
38972         (create_mul_ssa_cand): Likewise.
38973         (create_mul_imm_cand): Likewise.
38974         (create_add_ssa_cand): Likewise.
38975         (create_add_imm_cand): Take a widest_int instead of a double_int.
38976         (slsr_process_add): Use wide-int interfaces.
38977         (slsr_process_cast): Likewise.
38978         (slsr_process_copy): Likewise.
38979         (dump_candidate): Likewise.
38980         (dump_incr_vec): Likewise.
38981         (replace_ref): Likewise.
38982         (cand_increment): Likewise.  Return a widest_int.
38983         (cand_abs_increment): Likewise.
38984         (replace_mult_candidate): Take a widest_int instead of a double_int.
38985         (replace_unconditional_candidate): Use wide-int interfaces.
38986         (incr_vec_index): Take a widest_int instead of a double_int.
38987         (create_add_on_incoming_edge): Likewise.
38988         (create_phi_basis): Use wide-int interfaces.
38989         (replace_conditional_candidate): Likewise.
38990         (record_increment): Take a widest_int instead of a double_int.
38991         (record_phi_increments): Use wide-int interfaces.
38992         (phi_incr_cost): Take a widest_int instead of a double_int.
38993         (lowest_cost_path): Likewise.
38994         (total_savings): Likewise.
38995         (analyze_increments): Use wide-int interfaces.
38996         (ncd_with_phi): Take a widest_int instead of a double_int.
38997         (ncd_of_cand_and_phis): Likewise.
38998         (nearest_common_dominator_for_cands): Likewise.
38999         (insert_initializers): Use wide-int interfaces.
39000         (all_phi_incrs_profitable): Likewise.
39001         (replace_one_candidate): Likewise.
39002         (replace_profitable_candidates): Likewise.
39003         * godump.c: Include wide-int-print.h.
39004         (go_output_typedef): Use wide-int interfaces.
39005         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
39006         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
39007         (build_loop_iteration_domains): Likewise.
39008         * hooks.h: Include wide-int.h rather than double-int.h.
39009         (hook_bool_dint_dint_uint_bool_true): Delete.
39010         (hook_bool_wint_wint_uint_bool_true): Declare.
39011         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
39012         (hook_bool_wint_wint_uint_bool_true): New.
39013         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
39014         interfaces.
39015         (ubsan_expand_si_overflow_mul_check): Likewise.
39016         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
39017         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
39018         (get_ancestor_addr_info): Likewise.
39019         (ipa_modify_call_arguments): Likewise.
39020         * loop-doloop.c (doloop_modify): Likewise.
39021         (doloop_optimize): Likewise.
39022         * loop-iv.c (iv_number_of_iterations): Likewise.
39023         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
39024         (unroll_loop_constant_iterations): Likewise.
39025         (decide_unroll_runtime_iterations): Likewise.
39026         (unroll_loop_runtime_iterations): Likewise.
39027         (decide_peel_simple): Likewise.
39028         (decide_unroll_stupid): Likewise.
39029         * lto-streamer-in.c (streamer_read_wi): Add.
39030         (input_cfg): Use wide-int interfaces.
39031         (lto_input_tree_1): Likewise.
39032         * lto-streamer-out.c (streamer_write_wi): Add.
39033         (hash_tree): Use wide-int interfaces.
39034         (output_cfg): Likewise.
39035         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
39036         (GTFILES): Add wide-int.h and signop.h.
39037         (TAGS): Look for .cc files too.
39038         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
39039         * optabs.c (expand_subword_shift): Likewise.
39040         (expand_doubleword_shift): Likewise.
39041         (expand_absneg_bit): Likewise.
39042         (expand_copysign_absneg): Likewise.
39043         (expand_copysign_bit): Likewise.
39044         * postreload.c (reload_cse_simplify_set): Likewise.
39045         * predict.c (predict_iv_comparison): Likewise.
39046         * pretty-print.h: Include wide-int-print.h.
39047         (pp_wide_int) New.
39048         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
39049         * print-tree.c: Include wide-int-print.h.
39050         (print_node_brief): Use wide-int interfaces.
39051         (print_node): Likewise.
39052         * read-rtl.c (validate_const_wide_int): New.
39053         (read_rtx_code): Add CONST_WIDE_INT case.
39054         * real.c: Include wide-int.h.
39055         (real_to_integer2): Delete.
39056         (real_to_integer): New function, returning a wide_int.
39057         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39058         (ten_to_ptwo): Update call to real_from_integer.
39059         (real_digit): Likewise.
39060         * real.h: Include signop.h, wide-int.h and insn-modes.h.
39061         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
39062         (REAL_VALUE_TO_INT): Delete.
39063         (real_to_integer): Declare a wide-int form.
39064         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
39065         * recog.c (const_int_operand): Improve comment.
39066         (const_scalar_int_operand): New.
39067         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
39068         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
39069         (split_double): Likewise.
39070         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
39071         (rtx_size): Likewise.
39072         (rtx_alloc_stat_v): New.
39073         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
39074         (cwi_output_hex): New.
39075         (iterative_hash_rtx): Handle CONST_WIDE_INT.
39076         (cwi_check_failed_bounds): New.
39077         * rtl.def (CONST_WIDE_INT): New.
39078         * rtl.h: Include <utility> and wide-int.h.
39079         (struct hwivec_def): New.
39080         (CWI_GET_NUM_ELEM): New.
39081         (CWI_PUT_NUM_ELEM): New.
39082         (struct rtx_def): Add num_elem and hwiv.
39083         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
39084         (CASE_CONST_UNIQUE): Likewise.
39085         (CASE_CONST_ANY): Likewise.
39086         (CONST_SCALAR_INT_P): Likewise.
39087         (CONST_WIDE_INT_P): New.
39088         (CWI_ELT): New.
39089         (HWIVEC_CHECK): New.
39090         (cwi_check_failed_bounds): New.
39091         (CWI_ELT): New.
39092         (HWIVEC_CHECK): New.
39093         (CONST_WIDE_INT_VEC) New.
39094         (CONST_WIDE_INT_NUNITS) New.
39095         (CONST_WIDE_INT_ELT) New.
39096         (rtx_mode_t): New type.
39097         (wi::int_traits <rtx_mode_t>): New.
39098         (wi::shwi): New.
39099         (wi::min_value): New.
39100         (wi::max_value): New.
39101         (rtx_alloc_v) New.
39102         (const_wide_int_alloc): New.
39103         (immed_wide_int_const): New.
39104         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
39105         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
39106         * signop.h: New file.
39107         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
39108         (simplify_const_unary_operation): Use wide-int interfaces.
39109         (simplify_binary_operation_1): Likewise.
39110         (simplify_const_binary_operation): Likewise.
39111         (simplify_const_relational_operation): Likewise.
39112         (simplify_immed_subreg): Likewise.
39113         * stmt.c (expand_case): Likewise.
39114         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
39115         signop rather than a bool.
39116         * stor-layout.c (layout_type): Use wide-int interfaces.
39117         (initialize_sizetypes): Update calls to
39118         set_min_and_max_values_for_integral_type.
39119         (set_min_and_max_values_for_integral_type): Take a signop rather
39120         than a bool.  Use wide-int interfaces.
39121         (fixup_signed_type): Update accordingly.  Remove
39122         HOST_BITS_PER_DOUBLE_INT limit.
39123         (fixup_unsigned_type): Likewise.
39124         * system.h (STATIC_CONSTANT_P): New.
39125         (STATIC_ASSERT): New.
39126         * target.def (can_use_doloop_p): Take widest_ints rather than
39127         double_ints.
39128         * target.h: Include wide-int.h rather than double-int.h.
39129         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
39130         than double_ints.
39131         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
39132         rather than INT_CST_LT_UNSIGNED.
39133         (can_use_doloop_if_innermost): Take widest_ints rather than
39134         double_ints.
39135         * tree-affine.c: Include wide-int-print.h.
39136         (double_int_ext_for_comb): Delete.
39137         (wide_int_ext_for_comb): New.
39138         (aff_combination_zero): Use wide-int interfaces.
39139         (aff_combination_const): Take a widest_int instead of a double_int.
39140         (aff_combination_elt): Use wide-int interfaces.
39141         (aff_combination_scale): Take a widest_int instead of a double_int.
39142         (aff_combination_add_elt): Likewise.
39143         (aff_combination_add_cst): Likewise.
39144         (aff_combination_add): Use wide-int interfaces.
39145         (aff_combination_convert): Likewise.
39146         (tree_to_aff_combination): Likewise.
39147         (add_elt_to_tree): Take a widest_int instead of a double_int.
39148         (aff_combination_to_tree): Use wide-int interfaces.
39149         (aff_combination_remove_elt): Likewise.
39150         (aff_combination_add_product): Take a widest_int instead of
39151         a double_int.
39152         (aff_combination_mult): Use wide-int interfaces.
39153         (aff_combination_expand): Likewise.
39154         (double_int_constant_multiple_p): Delete.
39155         (wide_int_constant_multiple_p): New.
39156         (aff_combination_constant_multiple_p): Take a widest_int pointer
39157         instead of a double_int pointer.
39158         (print_aff): Use wide-int interfaces.
39159         (get_inner_reference_aff): Take a widest_int pointer
39160         instead of a double_int pointer.
39161         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
39162         * tree-affine.h: Include wide-int.h.
39163         (struct aff_comb_elt): Change type of coef to widest_int.
39164         (struct affine_tree_combination): Change type of offset to widest_int.
39165         (double_int_ext_for_comb): Delete.
39166         (wide_int_ext_for_comb): New.
39167         (aff_combination_const): Use widest_int instead of double_int.
39168         (aff_combination_scale): Likewise.
39169         (aff_combination_add_elt): Likewise.
39170         (aff_combination_constant_multiple_p): Likewise.
39171         (get_inner_reference_aff): Likewise.
39172         (aff_comb_cannot_overlap_p): Likewise.
39173         (aff_combination_zero_p): Use wide-int interfaces.
39174         * tree.c: Include tree.h.
39175         (init_ttree): Use make_int_cst.
39176         (tree_code_size): Removed code for INTEGER_CST case.
39177         (tree_size): Add INTEGER_CST case.
39178         (make_node_stat): Update comment.
39179         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
39180         (build_int_cst_type): Use wide-int interfaces.
39181         (double_int_to_tree): Likewise.
39182         (double_int_fits_to_tree_p): Delete.
39183         (force_fit_type_double): Delete.
39184         (force_fit_type): New.
39185         (int_cst_hash_hash): Use wide-int interfaces.
39186         (int_cst_hash_eq): Likewise.
39187         (build_int_cst_wide): Delete.
39188         (wide_int_to_tree): New.
39189         (cache_integer_cst): Use wide-int interfaces.
39190         (build_low_bits_mask): Likewise.
39191         (cst_and_fits_in_hwi): Likewise.
39192         (real_value_from_int_cst): Likewise.
39193         (make_int_cst_stat): New.
39194         (integer_zerop): Use wide_int interfaces.
39195         (integer_onep): Likewise.
39196         (integer_all_onesp): Likewise.
39197         (integer_pow2p): Likewise.
39198         (integer_nonzerop): Likewise.
39199         (tree_log2): Likewise.
39200         (tree_floor_log2): Likewise.
39201         (tree_ctz): Likewise.
39202         (int_size_in_bytes): Likewise.
39203         (mem_ref_offset): Return an offset_int rather than a double_int.
39204         (build_type_attribute_qual_variant): Use wide_int interfaces.
39205         (type_hash_eq): Likewise
39206         (tree_int_cst_equal): Likewise.
39207         (tree_int_cst_lt): Delete.
39208         (tree_int_cst_compare): Likewise.
39209         (tree_fits_shwi_p): Use wide_int interfaces.
39210         (tree_fits_uhwi_p): Likewise.
39211         (tree_int_cst_sign_bit): Likewise.
39212         (tree_int_cst_sgn): Likewise.
39213         (tree_int_cst_min_precision): Take a signop rather than a bool.
39214         (simple_cst_equal): Use wide_int interfaces.
39215         (compare_tree_int): Likewise.
39216         (iterative_hash_expr): Likewise.
39217         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
39218         INT_CST_LT.
39219         (get_type_static_bounds): Use wide_int interfaces.
39220         (tree_int_cst_elt_check_failed): New.
39221         (build_common_tree_nodes): Reordered to set prec before filling in
39222         value.
39223         (int_cst_value): Check cst_and_fits_in_hwi.
39224         (widest_int_cst_value): Use wide_int interfaces.
39225         (upper_bound_in_type): Likewise.
39226         (lower_bound_in_type): Likewise.
39227         (num_ending_zeros): Likewise.
39228         (drop_tree_overflow): Likewise.
39229         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
39230         (gen_conditions_for_pow_cst_base): Likewise.
39231         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
39232         (group_case_labels_stmt): Use wide-int interfaces.
39233         (verify_gimple_assign_binary): Likewise.
39234         (print_loop): Likewise.
39235         * tree-chrec.c (tree_fold_binomial): Likewise.
39236         * tree-core.h (struct tree_base): Add int_length.
39237         (struct tree_int_cst): Change rep of value.
39238         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
39239         (dr_may_alias_p): Likewise.
39240         (max_stmt_executions_tree): Likewise.
39241         * tree.def (INTEGER_CST): Update comment.
39242         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
39243         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
39244         * tree-dump.c: Include wide-int.h and wide-int-print.h.
39245         (dequeue_and_dump): Use wide-int interfaces.
39246         * tree.h: Include wide-int.h.
39247         (NULL_TREE): Moved to earlier loc in file.
39248         (TREE_INT_CST_ELT_CHECK): New.
39249         (tree_int_cst_elt_check_failed): New.
39250         (TYPE_SIGN): New.
39251         (TREE_INT_CST): Delete.
39252         (TREE_INT_CST_LOW): Use wide-int interfaces.
39253         (TREE_INT_CST_HIGH): Delete.
39254         (TREE_INT_CST_NUNITS): New.
39255         (TREE_INT_CST_EXT_NUNITS): Likewise.
39256         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
39257         (TREE_INT_CST_ELT): Likewise.
39258         (INT_CST_LT): Delete.
39259         (tree_int_cst_elt_check): New (two forms).
39260         (type_code_size): Update comment.
39261         (make_int_cst_stat, make_int_cst): New.
39262         (tree_to_double_int): Delete.
39263         (double_int_fits_to_tree_p): Delete.
39264         (force_fit_type_double): Delete.
39265         (build_int_cstu): Replace with out-of-line function.
39266         (build_int_cst_wide): Delete.
39267         (tree_int_cst_lt): Define inline.
39268         (tree_int_cst_le): New.
39269         (tree_int_cst_compare): Define inline.
39270         (tree_int_cst_min_precision): Take a signop rather than a bool.
39271         (wi::int_traits <const_tree>): New.
39272         (wi::int_traits <tree>): New.
39273         (wi::extended_tree): New.
39274         (wi::int_traits <wi::extended_tree>): New.
39275         (wi::to_widest): New.
39276         (wi::to_offset): New.
39277         (wi::fits_to_tree_p): New.
39278         (wi::min_value): New.
39279         (wi::max_value): New.
39280         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39281         (copy_tree_body_r): Likewise.
39282         * tree-object-size.c (compute_object_offset): Likewise.
39283         (addr_object_size): Likewise.
39284         * tree-predcom.c: Include wide-int-print.h.
39285         (struct dref_d): Change type of offset to widest_int.
39286         (dump_dref): Call wide-int printer.
39287         (aff_combination_dr_offset): Use wide-int interfaces.
39288         (determine_offset): Take a widest_int pointer rather than a
39289         double_int pointer.
39290         (split_data_refs_to_components): Use wide-int interfaces.
39291         (suitable_component_p): Likewise.
39292         (order_drefs): Likewise.
39293         (add_ref_to_chain): Likewise.
39294         (valid_initializer_p): Likewise.
39295         (determine_roots_comp): Likewise.
39296         * tree-pretty-print.c: Include wide-int-print.h.
39297         (dump_generic_node): Use wide-int interfaces.
39298         * tree-sra.c (sra_ipa_modify_expr): Likewise.
39299         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39300         (move_fixed_address_to_symbol): Likewise.
39301         (move_hint_to_base): Likewise.
39302         (move_pointer_to_base): Likewise.
39303         (move_variant_to_index): Likewise.
39304         (most_expensive_mult_to_index): Likewise.
39305         (addr_to_parts): Likewise.
39306         (copy_ref_info): Likewise.
39307         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39308         (indirect_refs_may_alias_p): Likewise.
39309         (stmt_kills_ref_p_1): Likewise.
39310         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39311         * tree-ssa-ccp.c: Update comment at top of file.  Include
39312         wide-int-print.h.
39313         (struct prop_value_d): Change type of mask to widest_int.
39314         (extend_mask): New function.
39315         (dump_lattice_value): Use wide-int interfaces.
39316         (get_default_value): Likewise.
39317         (set_constant_value): Likewise.
39318         (set_value_varying): Likewise.
39319         (valid_lattice_transition): Likewise.
39320         (set_lattice_value): Likewise.
39321         (value_to_double_int): Delete.
39322         (value_to_wide_int): New.
39323         (get_value_from_alignment): Use wide-int interfaces.
39324         (get_value_for_expr): Likewise.
39325         (do_dbg_cnt): Likewise.
39326         (ccp_finalize): Likewise.
39327         (ccp_lattice_meet): Likewise.
39328         (bit_value_unop_1): Use widest_ints rather than double_ints.
39329         (bit_value_binop_1): Likewise.
39330         (bit_value_unop): Use wide-int interfaces.
39331         (bit_value_binop): Likewise.
39332         (bit_value_assume_aligned): Likewise.
39333         (evaluate_stmt): Likewise.
39334         (ccp_fold_stmt): Likewise.
39335         (visit_cond_stmt): Likewise.
39336         (ccp_visit_stmt): Likewise.
39337         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
39338         (constant_pointer_difference): Likewise.
39339         (associate_pointerplus): Likewise.
39340         (combine_conversions): Likewise.
39341         * tree-ssa-loop.h: Include wide-int.h.
39342         (struct tree_niter_desc): Change type of max to widest_int.
39343         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
39344         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
39345         (remove_redundant_iv_tests): Likewise.
39346         (canonicalize_loop_induction_variables): Likewise.
39347         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
39348         (constant_multiple_of): Take a widest_int pointer instead of
39349         a double_int pointer.
39350         (get_computation_aff): Use wide-int interfaces.
39351         (ptr_difference_cost): Likewise.
39352         (difference_cost): Likewise.
39353         (get_loop_invariant_expr_id): Likewise.
39354         (get_computation_cost_at): Likewise.
39355         (iv_elimination_compare_lt): Likewise.
39356         (may_eliminate_iv): Likewise.
39357         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
39358         instead of double_int.
39359         (max_loop_iterations): Likewise.
39360         (max_stmt_executions): Likewise.
39361         (estimated_stmt_executions): Likewise.
39362         * tree-ssa-loop-niter.c: Include wide-int-print.h.
39363         (split_to_var_and_offset): Use wide-int interfaces.
39364         (determine_value_range): Likewise.
39365         (bound_difference_of_offsetted_base): Likewise.
39366         (bounds_add): Take a widest_int instead of a double_int.
39367         (number_of_iterations_ne_max): Use wide-int interfaces.
39368         (number_of_iterations_ne): Likewise.
39369         (number_of_iterations_lt_to_ne): Likewise.
39370         (assert_loop_rolls_lt): Likewise.
39371         (number_of_iterations_lt): Likewise.
39372         (number_of_iterations_le): Likewise.
39373         (number_of_iterations_cond): Likewise.
39374         (number_of_iterations_exit): Likewise.
39375         (finite_loop_p): Likewise.
39376         (derive_constant_upper_bound_assign): Likewise.
39377         (derive_constant_upper_bound): Return a widest_int.
39378         (derive_constant_upper_bound_ops): Likewise.
39379         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
39380         (record_estimate): Take a widest_int rather than a double_int.
39381         (record_nonwrapping_iv): Use wide-int interfaces.
39382         (double_int_cmp): Delete.
39383         (wide_int_cmp): New.
39384         (bound_index): Take a widest_int rather than a double_int.
39385         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
39386         (maybe_lower_iteration_bound): Likewise.
39387         (estimate_numbers_of_iterations_loop): Likewise.
39388         (estimated_loop_iterations): Take a widest_int pointer than than
39389         a double_int pointer.
39390         (estimated_loop_iterations_int): Use wide-int interfaces.
39391         (max_loop_iterations): Take a widest_int pointer than than
39392         a double_int pointer.
39393         (max_loop_iterations_int): Use wide-int interfaces.
39394         (max_stmt_executions): Take a widest_int pointer than than
39395         a double_int pointer.
39396         (estimated_stmt_executions): Likewise.
39397         (n_of_executions_at_most): Use wide-int interfaces.
39398         (scev_probably_wraps_p): Likewise.
39399         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
39400         to real_to_integer.
39401         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
39402         interfaces.
39403         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
39404         double_ints.  Adjust for trailing_wide_ints <3> representation.
39405         (set_nonzero_bits): Likewise.
39406         (get_range_info): Return wide_ints rather than double_ints.
39407         Adjust for trailing_wide_ints <3> representation.
39408         (get_nonzero_bits): Likewise.
39409         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
39410         representation.
39411         * tree-ssanames.h (struct range_info_def): Replace min, max and
39412         nonzero_bits with a trailing_wide_ints <3>.
39413         (set_range_info): Use wide_int_refs rather than double_ints.
39414         (set_nonzero_bits): Likewise.
39415         (get_range_info): Return wide_ints rather than double_ints.
39416         (get_nonzero_bits): Likewise.
39417         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
39418         * tree-ssa-pre.c (phi_translate_1): Likewise.
39419         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
39420         (acceptable_pow_call): Likewise.
39421         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
39422         interfaces.
39423         (vn_reference_fold_indirect): Likewise.
39424         (vn_reference_maybe_forwprop_address): Likewise.
39425         (valueize_refs_1): Likewise.
39426         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
39427         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
39428         tree_int_cst_lt and tree_int_cst_le.
39429         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
39430         interfaces.
39431         (streamer_alloc_tree): Likewise.
39432         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
39433         (streamer_write_tree_header): Likewise.
39434         (streamer_write_integer_cst): Likewise.
39435         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
39436         (build_constructors): Likewise.
39437         (array_value_type): Likewise.
39438         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
39439         (vect_check_gather): Likewise.
39440         * tree-vect-generic.c (build_replicated_const): Likewise.
39441         (expand_vector_divmod): Likewise.
39442         * tree-vect-loop.c (vect_transform_loop): Likewise.
39443         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
39444         (vect_do_peeling_for_alignment): Likewise.
39445         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
39446         * tree-vrp.c: Include wide-int.h.
39447         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
39448         (extract_range_from_assert): Use wide-int interfaces.
39449         (vrp_int_const_binop): Likewise.
39450         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
39451         double_int pointers.
39452         (ranges_from_anti_range): Use wide-int interfaces.
39453         (quad_int_cmp): Delete.
39454         (quad_int_pair_sort): Likewise.
39455         (extract_range_from_binary_expr_1): Use wide-int interfaces.
39456         (extract_range_from_unary_expr_1): Likewise.
39457         (adjust_range_with_scev): Likewise.
39458         (masked_increment): Take and return wide_ints rather than double_ints.
39459         (register_edge_assert_for_2): Use wide-int interfaces.
39460         (check_array_ref): Likewise.
39461         (search_for_addr_array): Likewise.
39462         (maybe_set_nonzero_bits): Likewise.
39463         (union_ranges): Pass an integer of the correct type instead of
39464         using integer_one_node.
39465         (intersect_ranges): Likewise.
39466         (simplify_truth_ops_using_ranges): Likewise.
39467         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
39468         (range_fits_type_p): Likewise.
39469         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
39470         a bool.
39471         (simplify_conversion_using_ranges): Use wide-int interfaces.
39472         (simplify_float_conversion_using_ranges): Likewise.
39473         (vrp_finalize): Likewise.
39474         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
39475         (gimple_stringops_transform): Likewise.
39476         * varasm.c (decode_addr_const): Likewise.
39477         (const_hash_1): Likewise.
39478         (const_rtx_hash_1): Likewise
39479         (output_constant): Likewise.
39480         (array_size_for_constructor): Likewise.
39481         (output_constructor_regular_field): Likewise.
39482         (output_constructor_bitfield): Likewise.
39483         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
39484         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
39485         GENERATOR_FILEs.
39486         * gencheck.c: Define BITS_PER_UNIT.
39487         * wide-int.cc: New.
39488         * wide-int.h: New.
39489         * wide-int-print.cc: New.
39490         * wide-int-print.h: New.
39491
39492 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39493
39494         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
39495
39496 2014-05-06  Richard Biener  <rguenther@suse.de>
39497
39498         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
39499         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
39500         (TODO_verify_all): Adjust.
39501         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
39502         TODO_verify_stmts and TODO_verify_rtl_sharing.
39503         * bb-reorder.c: Likewise.
39504         * cfgexpand.c: Likewise.
39505         * cprop.c: Likewise.
39506         * cse.c: Likewise.
39507         * function.c: Likewise.
39508         * fwprop.c: Likewise.
39509         * gcse.c: Likewise.
39510         * gimple-ssa-isolate-paths.c: Likewise.
39511         * gimple-ssa-strength-reduction.c: Likewise.
39512         * ipa-split.c: Likewise.
39513         * loop-init.c: Likewise.
39514         * loop-unroll.c: Likewise.
39515         * lower-subreg.c: Likewise.
39516         * modulo-sched.c: Likewise.
39517         * postreload-gcse.c: Likewise.
39518         * predict.c: Likewise.
39519         * recog.c: Likewise.
39520         * sched-rgn.c: Likewise.
39521         * store-motion.c: Likewise.
39522         * tracer.c: Likewise.
39523         * trans-mem.c: Likewise.
39524         * tree-call-cdce.c: Likewise.
39525         * tree-cfg.c: Likewise.
39526         * tree-cfgcleanup.c: Likewise.
39527         * tree-complex.c: Likewise.
39528         * tree-eh.c: Likewise.
39529         * tree-emutls.c: Likewise.
39530         * tree-if-conv.c: Likewise.
39531         * tree-into-ssa.c: Likewise.
39532         * tree-loop-distribution.c: Likewise.
39533         * tree-object-size.c: Likewise.
39534         * tree-parloops.c: Likewise.
39535         * tree-pass.h: Likewise.
39536         * tree-sra.c: Likewise.
39537         * tree-ssa-ccp.c: Likewise.
39538         * tree-ssa-copy.c: Likewise.
39539         * tree-ssa-copyrename.c: Likewise.
39540         * tree-ssa-dce.c: Likewise.
39541         * tree-ssa-dom.c: Likewise.
39542         * tree-ssa-dse.c: Likewise.
39543         * tree-ssa-forwprop.c: Likewise.
39544         * tree-ssa-ifcombine.c: Likewise.
39545         * tree-ssa-loop-ch.c: Likewise.
39546         * tree-ssa-loop-ivcanon.c: Likewise.
39547         * tree-ssa-loop.c: Likewise.
39548         * tree-ssa-math-opts.c: Likewise.
39549         * tree-ssa-phiopt.c: Likewise.
39550         * tree-ssa-phiprop.c: Likewise.
39551         * tree-ssa-pre.c: Likewise.
39552         * tree-ssa-reassoc.c: Likewise.
39553         * tree-ssa-sink.c: Likewise.
39554         * tree-ssa-strlen.c: Likewise.
39555         * tree-ssa-tail-merge.c: Likewise.
39556         * tree-ssa-uncprop.c: Likewise.
39557         * tree-switch-conversion.c: Likewise.
39558         * tree-tailcall.c: Likewise.
39559         * tree-vect-generic.c: Likewise.
39560         * tree-vectorizer.c: Likewise.
39561         * tree-vrp.c: Likewise.
39562         * tsan.c: Likewise.
39563         * var-tracking.c: Likewise.
39564         * bt-load.c: Likewise.
39565         * cfgcleanup.c: Likewise.
39566         * combine-stack-adj.c: Likewise.
39567         * combine.c: Likewise.
39568         * compare-elim.c: Likewise.
39569         * config/epiphany/resolve-sw-modes.c: Likewise.
39570         * config/i386/i386.c: Likewise.
39571         * config/mips/mips.c: Likewise.
39572         * config/s390/s390.c: Likewise.
39573         * config/sh/sh_treg_combine.cc: Likewise.
39574         * config/sparc/sparc.c: Likewise.
39575         * dce.c: Likewise.
39576         * dse.c: Likewise.
39577         * final.c: Likewise.
39578         * ifcvt.c: Likewise.
39579         * mode-switching.c: Likewise.
39580         * passes.c: Likewise.
39581         * postreload.c: Likewise.
39582         * ree.c: Likewise.
39583         * reg-stack.c: Likewise.
39584         * regcprop.c: Likewise.
39585         * regrename.c: Likewise.
39586         * web.c: Likewise.
39587
39588 2014-05-06  Richard Biener  <rguenther@suse.de>
39589
39590         PR middle-end/61070
39591         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
39592         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
39593
39594 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
39595
39596         PR ipa/60965
39597         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
39598
39599 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
39600             Tom de Vries  <tom@codesourcery.com>
39601
39602         * target.def (call_fusage_contains_non_callee_clobbers): New
39603         DEFHOOKPOD.
39604         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
39605         Hooks to @menu.
39606         (@node Miscellaneous Register Hooks): New node.
39607         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
39608         * doc/tm.texi: Regenerate.
39609
39610 2014-05-05  Marek Polacek  <polacek@redhat.com>
39611
39612         PR driver/61065
39613         * opts.c (common_handle_option): Call error_at instead of warning_at.
39614
39615 2014-05-05  Richard Biener  <rguenther@suse.de>
39616
39617         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
39618         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
39619         under the TODO_verify_il umbrella.
39620
39621 2014-05-05  Richard Biener  <rguenther@suse.de>
39622
39623         * passes.c (execute_function_todo): Move TODO_verify_flow under
39624         the TODO_verify_ul umbrella.
39625
39626 2014-05-05  Richard Biener  <rguenther@suse.de>
39627
39628         PR middle-end/61010
39629         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
39630         X & CST away from a CST that is the mask of a mode.
39631
39632 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39633
39634         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
39635         int argument to enum machine_mode.
39636         (picochip_class_max_nregs): Ditto.
39637         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
39638         (picochip_class_max_nregs): Ditto.
39639
39640 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
39641
39642         * target.def: Add new target hook.
39643         * doc/tm.texi: Regenerate.
39644         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
39645         * targhooks.c (default_keep_leaf_when_profiled): New function.
39646
39647         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
39648         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
39649
39650 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
39651
39652         PR tree-optimization/60363
39653         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
39654         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
39655         (update_destination_phis): New parameter.
39656         (create_edge_and_update_destination_phis): Ditto.
39657         (ssa_fix_duplicate_block_edges): Pass new arguments.
39658         (thread_single_edge): Ditto.
39659
39660 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
39661
39662         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
39663         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
39664         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
39665         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
39666         Use RS6000_BTM_HARD_FLOAT.
39667         (BU_MISC_2): Likewise.
39668         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
39669         RS6000_BTM_HARD_FLOAT.
39670         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
39671         is explicitly used.
39672         (rs6000_invalid_builtin): Add hard floating builtin support.
39673         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
39674         hard float builtins.
39675         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
39676
39677 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39678
39679         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
39680         Add missing function* argument.
39681
39682 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39683
39684         * lra-constraints.c (valid_address_p): Move earlier in file.
39685         Add a constraint argument to the address_info version.
39686         (satisfies_memory_constraint_p): New function.
39687         (satisfies_address_constraint_p): Likewise.
39688         (process_alt_operands, curr_insn_transform): Use them.
39689         (process_address): Pass the constraint to valid_address_p when
39690         checking address operands.
39691
39692 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39693
39694         * config/mips/mips.c (mips_isa_rev): New variable.
39695         (mips_set_architecture): Set it.
39696         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
39697         from mips_isa_rev.
39698         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
39699         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
39700         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
39701         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
39702         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
39703         conditions in terms of mips_isa_rev.
39704         (mips_isa_rev): Declare.
39705
39706 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39707
39708         * config/sh/sh-mem.cc: Use tabs instead of spaces.
39709         (prob_unlikely, prob_likely): Make variables const.
39710
39711 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
39712
39713         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
39714
39715 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39716
39717         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
39718
39719 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39720
39721         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
39722         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
39723         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
39724         functions.
39725         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
39726         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
39727         sh_pass_in_reg_p.
39728         Replace usage of ROUND_REG with sh_round_reg.
39729         Use CEIL instead of ROUND_ADVANCE.
39730
39731 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39732
39733         PR target/61026
39734         * config/sh/sh.c: Include stdlib headers before everything else.
39735
39736 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
39737
39738         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
39739         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
39740         (gimplify_adjust_omp_clauses): Simd region is never
39741         directly nested in combined parallel.  Instead, for linear
39742         with copyin/copyout, if in combined for simd loop, make decl
39743         firstprivate/lastprivate on OMP_FOR.
39744         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
39745         expand_omp_for_static_chunk): When setting endvar, also set
39746         fd->loop.v to the same value.
39747
39748 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
39749
39750         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
39751
39752 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
39753
39754         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
39755         expression.
39756
39757 2014-05-02  Marek Polacek  <polacek@redhat.com>
39758
39759         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
39760
39761 2014-05-02  Kito Cheng  <kito@0xlab.org>
39762
39763         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
39764         to a C expression marco.
39765         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
39766         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
39767         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
39768         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
39769         HONOR_REG_ALLOC_ORDER.
39770         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
39771
39772 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39773
39774         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
39775
39776 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39777
39778         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
39779
39780 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
39781
39782         * tree-if-conv.c (is_cond_scalar_reduction): New function.
39783         (convert_scalar_cond_reduction): Likewise.
39784         (predicate_scalar_phi): Add recognition and transformation
39785         of simple conditioanl reduction to be vectorizable.
39786
39787 2014-05-01  Marek Polacek  <polacek@redhat.com>
39788
39789         PR c/43245
39790         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
39791
39792 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
39793
39794         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
39795         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
39796         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
39797         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
39798         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
39799         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
39800         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
39801         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
39802
39803 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
39804
39805         * config/arc/arc.opt (mlra): Move comment above option name
39806         to avoid mis-parsing as language options.
39807
39808 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39809
39810         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
39811         * config/sol2.h: ... here.
39812         * config/sol2-10.h: Remove.
39813
39814         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
39815         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
39816         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
39817         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
39818         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
39819         * config/sol2.h: ... here.
39820         (SECTION_NAME_FORMAT): Don't redefine.
39821         (STARTFILE_ARCH32_SPEC): Rename to ...
39822         (STARTFILE_ARCH_SPEC): ... this.
39823         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
39824         * config/sparc/sol2.h: ... here.
39825         (SECTION_NAME_FORMAT): Don't undef.
39826         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
39827         (SUBTARGET_EXTRA_SPECS): Remove.
39828         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
39829
39830         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
39831         (MD_STARTFILE_PREFIX): Remove.
39832         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
39833         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
39834         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
39835         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
39836         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
39837         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
39838         * config/i386/sol2.h: ... here.
39839         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
39840         * config/i386/sol2-bi.h: Remove.
39841         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
39842         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
39843
39844         * config/i386/t-sol2-64: Rename to ...
39845         * config/i386/t-sol2: ... this.
39846         * config/sparc/t-sol2-64: Rename to ...
39847         * config/sparc/t-sol2: ... this.
39848
39849         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
39850         sol2_tm_file_head, sol2_tm_file_tail.
39851         Include ${cpu_type}/sol2.h before sol2.h.
39852         Remove sol2-10.h.
39853         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
39854         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
39855         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
39856         Reflect i386/t-sol2-64 renaming.
39857         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
39858         Reflect sparc/t-sol2-64 renaming.
39859
39860 2014-04-30  Richard Biener  <rguenther@suse.de>
39861
39862         * passes.c (execute_function_todo): Move TODO_verify_stmts
39863         and TODO_verify_ssa under the TODO_verify_il umbrella.
39864         * tree-ssa.h (verify_ssa): Adjust prototype.
39865         * tree-ssa.c (verify_ssa): Add parameter to tell whether
39866         we should verify SSA operands.
39867         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
39868         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
39869         whether we should verify whether not throwing stmts have EH info.
39870         * graphite-scop-detection.c (create_sese_edges): Adjust.
39871         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
39872         * tree-eh.c (lower_try_finally_switch): Do not add the
39873         default case label twice.
39874
39875 2014-04-30  Marek Polacek  <polacek@redhat.com>
39876
39877         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
39878         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
39879         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
39880         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
39881
39882 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
39883
39884         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
39885         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
39886         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
39887         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
39888         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
39889         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
39890         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
39891         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
39892
39893 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
39894
39895         * tree-cfg.c (dump_function_to_file): Dump the return type of
39896         functions, in a line to itself before the function body, mimicking
39897         the layout of a C function.
39898
39899 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
39900
39901         PR tree-optimization/60971
39902         * tree-tailcall.c (process_assignment): Reject conversions which
39903         reduce precision.
39904
39905 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
39906
39907         * calls.c (initialize_argument_information): Always treat
39908         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
39909         (expand_call): Likewise.
39910         (emit_library_call_calue_1): Likewise.
39911         * expr.c (PUSH_ARGS_REVERSED): Do not define.
39912         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
39913         code accordingly.
39914
39915 2014-04-29  Nick Clifton  <nickc@redhat.com>
39916
39917         * config/msp430/msp430.md (umulsidi): Fix typo.
39918         (mulhisi3): Enable even inside interrupt handlers.
39919         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
39920         bigger return address pushed in large mode.
39921
39922 2014-04-29  Nick Clifton  <nickc@redhat.com>
39923
39924         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
39925         (arc_init_reg_tables): Use a machine_mode enum to iterate over
39926         available modes.
39927         * config/m32r/m32r.c (init_reg_tables): Likewise.
39928         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
39929         enum to hold the modes.
39930
39931 2014-04-29  Richard Biener  <rguenther@suse.de>
39932
39933         * dominance.c (free_dominance_info): Add overload with
39934         function parameter.
39935         (dom_info_state): Likewise.
39936         (dom_info_available_p): Likewise.
39937         * basic-block.h (free_dominance_info, dom_info_state,
39938         dom_info_available_p): Declare overloads.
39939         * passes.c (execute_function_todo): Verify that verifiers
39940         don't change dominator info state.  Drop dominator info
39941         for IPA pass invocations.
39942         * cgraph.c (release_function_body): Restore asserts that
39943         dominator information is released.
39944
39945 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
39946
39947         * doc/invoke.texi: Fix typo.
39948         * tree-vrp.c: Fix typos.
39949         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
39950
39951 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
39952
39953         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
39954
39955 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
39956
39957         * config/aarch64/aarch64-builtins.c
39958         (aarch64_types_storestruct_lane_qualifiers): New.
39959         (TYPES_STORESTRUCT_LANE): Likewise.
39960         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
39961         (st3_lane): Likewise.
39962         (st4_lane): Likewise.
39963         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
39964         (vec_store_lanesci_lane<mode>): Likewise.
39965         (vec_store_lanesxi_lane<mode>): Likewise.
39966         (aarch64_st2_lane<VQ:mode>): Likewise.
39967         (aarch64_st3_lane<VQ:mode>): Likewise.
39968         (aarch64_st4_lane<VQ:mode>): Likewise.
39969         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
39970         * config/aarch64/arm_neon.h
39971         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
39972         use new macro arguments.
39973         (__ST3_LANE_FUNC): Likewise.
39974         (__ST4_LANE_FUNC): Likewise.
39975         * config/aarch64/iterators.md (V_TWO_ELEM): New.
39976         (V_THREE_ELEM): Likewise.
39977         (V_FOUR_ELEM): Likewise.
39978
39979 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
39980
39981         * doc/gimple.texi: Replace the description of the now-defunct
39982         union gimple_statement_d with a diagram showing the
39983         gimple_statement_base class hierarchy and its relationships to
39984         the GSS_ and GIMPLE_ enums.
39985
39986 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
39987
39988         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
39989         * config/aarch64/aarch64.c
39990         (aarch64_cannot_change_mode_class): Weaken conditions.
39991         (aarch64_modes_tieable_p): New.
39992         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
39993
39994 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
39995
39996         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
39997         (loadsync_<mode>): Change mode.
39998         (load_quadpti, store_quadpti): New.
39999         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
40000         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
40001
40002 2014-04-28  Martin Jambor  <mjambor@suse.cz>
40003
40004         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
40005         same alias type as the original statement.
40006         (subreplacement_assignment_data): New type.
40007         (handle_unscalarized_data_in_subtree): New type of parameter,
40008         generate new memory accesses with same alias type as the original
40009         statement.
40010         (load_assign_lhs_subreplacements): Likewise.
40011         (sra_modify_constructor_assign): Generate new memory accesses with
40012         same alias type as the original statement.
40013
40014 2014-04-28  Richard Biener  <rguenther@suse.de>
40015
40016         * tree-pass.h (TODO_verify_il): Define.
40017         (TODO_verify_all): Complete properly.
40018         * passes.c (execute_function_todo): Move existing loop-closed
40019         SSA verification under TODO_verify_il.
40020         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
40021         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
40022         Fix tree sharing issue.
40023
40024 2014-04-28  Richard Biener  <rguenther@suse.de>
40025
40026         PR middle-end/60092
40027         * builtins.def (DEF_C11_BUILTIN): Add.
40028         (BUILT_IN_ALIGNED_ALLOC): Likewise.
40029         * coretypes.h (enum function_class): Add function_c11_misc.
40030         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
40031         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
40032         (call_may_clobber_ref_p_1): Likewise.
40033         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
40034         (mark_all_reaching_defs_necessary_1): Likewise.
40035         (propagate_necessity): Likewise.
40036         (eliminate_unnecessary_stmts): Likewise.
40037         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
40038
40039 2014-04-28  Richard Biener  <rguenther@suse.de>
40040
40041         * tree-vrp.c (vrp_var_may_overflow): Remove.
40042         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
40043         with overflow immediately bump to one before that value and
40044         let iteration figure out overflow status.
40045
40046 2014-04-28  Richard Biener  <rguenther@suse.de>
40047
40048         * configure.ac: Do valgrind header checks unconditionally.
40049         Add --enable-valgrind-annotations.
40050         * system.h: Guard valgrind header inclusion with
40051         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
40052         * alloc-pool.c (pool_alloc, pool_free): Use
40053         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
40054         to guard possibly dead code.
40055         * config.in: Regenerated.
40056         * configure: Likewise.
40057
40058 2014-04-28  Jeff Law  <law@redhat.com>
40059
40060         PR tree-optimization/60902
40061         * tree-ssa-threadedge.c
40062         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
40063         over real defs when invalidating outputs from statements that do not
40064         produce useful outputs for threading.
40065
40066 2014-04-28  Richard Biener  <rguenther@suse.de>
40067
40068         PR tree-optimization/60979
40069         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
40070         SCOPs that end in a block with a successor with abnormal
40071         predecessors.
40072
40073 2014-04-28  Richard Biener  <rguenther@suse.de>
40074
40075         * tree-pass.h (execute_pass_list): Adjust prototype.
40076         * passes.c (pass_manager::execute_early_local_passes): Adjust.
40077         (do_per_function): Change callback signature, push all actual
40078         work to the callbals.
40079         (do_per_function_toporder): Likewise.
40080         (execute_function_dump): Adjust.
40081         (execute_function_todo): Likewise.
40082         (clear_last_verified): Likewise.
40083         (verify_curr_properties): Likewise.
40084         (update_properties_after_pass): Likewise.
40085         (execute_pass_list_1): Split out from ...
40086         (execute_pass_list): ... here.  Adjust.
40087         (execute_ipa_pass_list): Likewise.
40088         * cgraphunit.c (cgraph_add_new_function): Adjust.
40089         (analyze_function): Likewise.
40090         (expand_function): Likewise.
40091         * cgraph.c (release_function_body): Free dominance info
40092         here instead of asserting it was magically freed elsewhere.
40093
40094 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
40095
40096         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
40097         * configure: Regenerate.
40098         * config/sparc/sparc.opt (muser-mode): New option.
40099         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
40100         for LEON3.
40101         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
40102         * doc/invoke.texi (SPARC options): Document -muser-mode.
40103
40104 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
40105
40106         * cselib.c (find_slot_memmode): Delete.
40107         (cselib_hasher): Change compare_type to a struct.
40108         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
40109         constants.
40110         (preserve_constants_and_equivs): Adjust for new compare_type.
40111         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
40112         (wrap_constant): Delete.
40113         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
40114
40115 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
40116
40117         * doc/install.texi (Building with profile feedback): Remove
40118         outdated sentence.
40119
40120 2014-04-26  Tom de Vries  <tom@codesourcery.com>
40121
40122         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
40123         array accesses.
40124
40125 2014-04-25  Cary Coutant  <ccoutant@google.com>
40126
40127         PR debug/60929
40128         * dwarf2out.c (should_move_die_to_comdat): A type definition
40129         can contain a subprogram definition, but don't move it to a
40130         comdat unit.
40131         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
40132         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
40133         from original DIE.
40134         (clone_tree_hash): Rename to...
40135         (clone_tree_partial): ...this; change callers.  Copy
40136         DW_TAG_subprogram DIEs as declarations.
40137         (copy_decls_walk): Don't copy children of a declaration into a
40138         type unit.
40139
40140 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
40141
40142         PR target/60969
40143         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
40144         alternative 12.
40145
40146 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
40147
40148         * config/arm/predicates.md (call_insn_operand): Add long_call check.
40149         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
40150         reg for long_call.
40151         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
40152         restriction.
40153
40154 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40155
40156         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
40157
40158 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40159
40160         PR tree-optimization/60930
40161         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
40162         creating a multiply candidate by folding two constant
40163         multiplicands when the result overflows.
40164
40165 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
40166
40167         PR tree-optimization/60960
40168         * tree-vect-generic.c (expand_vector_operation): Only call
40169         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
40170
40171 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40172
40173         * expr.c (clobber_reg_mode): New function.
40174         * expr.h (clobber_reg): New function.
40175
40176 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40177
40178         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
40179         clobbers.
40180
40181 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
40182             Tom de Vries  <tom@codesourcery.com>
40183
40184         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
40185         handle.
40186         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
40187         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
40188         new argument to find_all_hard_reg_sets call.
40189
40190 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40191
40192         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
40193         Use HOST_WIDE_INT_C for mask literal.
40194         (aarch_rev16_shleft_mask_imm_p): Likewise.
40195
40196 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
40197
40198         PR target/60941
40199         * config/sparc/sparc.md (ashlsi3_extend): Delete.
40200
40201 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
40202
40203         PR preprocessor/56540
40204         * config/i386/i386-c.c (ix86_target_macros): Define
40205         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
40206
40207 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40208
40209         * configure.ac (tga_func): Remove.
40210         (LIB_TLS_SPEC): Remove.
40211         * configure: Regenerate.
40212         * config.in: Regenerate.
40213         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
40214
40215 2014-04-25  Richard Biener  <rguenther@suse.de>
40216
40217         PR ipa/60912
40218         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
40219         call stmt use/clobber sets during stmt walk instead of
40220         walking the possibly incomplete set of caller edges.
40221
40222 2014-04-25  Richard Biener  <rguenther@suse.de>
40223
40224         PR ipa/60911
40225         * passes.c (apply_ipa_transforms): Inline into only caller ...
40226         (execute_one_pass): ... here.  Properly bring in function
40227         bodies for nodes we want to apply IPA transforms to.
40228
40229 2014-04-24  Cong Hou  <congh@google.com>
40230
40231         PR tree-optimization/60896
40232         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
40233         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
40234         (vect_mark_pattern_stmts): Set the def type of all statements in
40235         PATTERN_DEF_SEQ as vect_internal_def.
40236
40237 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
40238
40239         * doc/extend.texi (PowerPC Built-in Functions): Document new
40240         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
40241         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
40242
40243         * config/rs6000/predicates.md (const_0_to_3_operand): New
40244         predicate to match 0..3 integer constants.
40245
40246         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
40247         to support adding miscellaneous builtin functions.
40248         (BU_DFP_MISC_2): Likewise.
40249         (BU_P7_MISC_1): Likewise.
40250         (BU_P7_MISC_2): Likewise.
40251         (BU_P8V_MISC_3): Likewise.
40252         (BU_MISC_1): Likewise.
40253         (BU_MISC_2): Likewise.
40254         (DIVWE): Add extended divide builtin functions.
40255         (DIVWEO): Likewise.
40256         (DIVWEU): Likewise.
40257         (DIVWEUO): Likewise.
40258         (DIVDE): Likewise.
40259         (DIVDEO): Likewise.
40260         (DIVDEU): Likewise.
40261         (DIVDEUO): Likewise.
40262         (DXEX): Add decimal floating-point builtin functions.
40263         (DXEXQ): Likewise.
40264         (DDEDPD): Likewise.
40265         (DDEDPDQ): Likewise.
40266         (DENBCD): Likewise.
40267         (DENBCDQ): Likewise.
40268         (DIEX): Likewise.
40269         (DIEXQ): Likewise.
40270         (DSCLI): Likewise.
40271         (DSCLIQ): Likewise.
40272         (DSCRI): Likewise.
40273         (DSCRIQ): Likewise.
40274         (CDTBCD): Add new BCD builtin functions.
40275         (CBCDTD): Likewise.
40276         (ADDG6S): Likewise.
40277         (BCDADD): Likewise.
40278         (BCDADD_LT): Likewise.
40279         (BCDADD_EQ): Likewise.
40280         (BCDADD_GT): Likewise.
40281         (BCDADD_OV): Likewise.
40282         (BCDSUB): Likewise.
40283         (BCDSUB_LT): Likewise.
40284         (BCDSUB_EQ): Likewise.
40285         (BCDSUB_GT): Likewise.
40286         (BCDSUB_OV): Likewise.
40287         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40288         (UNPACK_TD): Likewise.
40289         (PACK_TF): Likewise.
40290         (UNPACK_TF): Likewise.
40291         (UNPACK_TF_0): Likewise.
40292         (UNPACK_TF_1): Likewise.
40293         (PACK_V1TI): Likewise.
40294         (UNPACK_V1TI): Likewise.
40295
40296         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40297         support for decimal floating point builtin functions.
40298         (rs6000_expand_ternop_builtin): Add checks for the new builtin
40299         functions that take constant arguments.
40300         (rs6000_invalid_builtin): Add decimal floating point builtin support.
40301         (rs6000_init_builtins): Setup long double, _Decimal64, and
40302         _Decimal128 types for new builtin functions.
40303         (builtin_function_type): Set the unsigned flags appropriately for
40304         the new builtin functions.
40305         (rs6000_opt_masks): Add support for decimal floating point builtin
40306         functions.
40307
40308         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40309         floating point builtin functions.
40310         (RS6000_BTM_COMMON): Likewise.
40311         (RS6000_BTI_long_double): Likewise.
40312         (RS6000_BTI_dfloat64): Likewise.
40313         (RS6000_BTI_dfloat128): Likewise.
40314         (long_double_type_internal_node): Likewise.
40315         (dfloat64_type_internal_node): Likewise.
40316         (dfloat128_type_internal_node): Likewise.
40317
40318         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
40319         2.07 bcd arithmetic instructions.
40320         (UNSPEC_BCDSUB): Likewise.
40321         (UNSPEC_BCD_OVERFLOW): Likewise.
40322         (UNSPEC_BCD_ADD_SUB): Likewise.
40323         (bcd_add_sub): Likewise.
40324         (BCD_TEST): Likewise.
40325         (bcd<bcd_add_sub>): Likewise.
40326         (bcd<bcd_add_sub>_test): Likewise.
40327         (bcd<bcd_add_sub>_test2): Likewise.
40328         (bcd<bcd_add_sub>_<code>): Likewise.
40329         (peephole2 for combined bcd ops): Likewise.
40330
40331         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
40332         decimal floating point builtin functions.
40333         (UNSPEC_DENBCD): Likewise.
40334         (UNSPEC_DXEX): Likewise.
40335         (UNSPEC_DIEX): Likewise.
40336         (UNSPEC_DSCLI): Likewise.
40337         (UNSPEC_DSCRI): Likewise.
40338         (D64_D128): Likewise.
40339         (dfp_suffix): Likewise.
40340         (dfp_ddedpd_<mode>): Likewise.
40341         (dfp_denbcd_<mode>): Likewise.
40342         (dfp_dxex_<mode>): Likewise.
40343         (dfp_diex_<mode>): Likewise.
40344         (dfp_dscli_<mode>): Likewise.
40345         (dfp_dscri_<mode>): Likewise.
40346
40347         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
40348         builtin functions.
40349         (UNSPEC_CDTBCD): Likewise.
40350         (UNSPEC_CBCDTD): Likewise.
40351         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
40352         (UNSPEC_DIVEO): Likewise.
40353         (UNSPEC_DIVEU): Likewise.
40354         (UNSPEC_DIVEUO): Likewise.
40355         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
40356         pack/unpack 128-bit types.
40357         (UNSPEC_PACK_128BIT): Likewise.
40358         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
40359         (udiv<mode>3): Use idiv_ldiv mode attribute.
40360         (div<mode>3): Likewise.
40361         (addg6s): Add new BCD builtin functions.
40362         (cdtbcd): Likewise.
40363         (cbcdtd): Likewise.
40364         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
40365         (div_extend): Likewise.
40366         (div<div_extend>_<mode>"): Likewise.
40367         (FP128_64): Add support for new builtin functions to pack/unpack
40368         128-bit types.
40369         (unpack<mode>): Likewise.
40370         (unpacktf_0): Likewise.
40371         (unpacktf_1): Likewise.
40372         (unpack<mode>_dm): Likewise.
40373         (unpack<mode>_nodm): Likewise.
40374         (pack<mode>): Likewise.
40375         (unpackv1ti): Likewise.
40376         (packv1ti): Likewise.
40377
40378 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
40379
40380         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
40381         is disabled.
40382
40383 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
40384
40385         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
40386         * gimplify.c (omp_is_private): Change last argument's type to int.
40387         Only diagnose lastprivate if the simd argument is 1, only diagnose
40388         linear if the simd argument is 2.
40389         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
40390         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
40391         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
40392         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
40393         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
40394         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40395         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
40396         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40397         * tree-nested.c (convert_nonlocal_omp_clauses,
40398         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
40399
40400 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
40401
40402         PR target/60822
40403         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
40404         operand 1.
40405
40406 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
40407
40408         * flag-types.h (enum ivar_visibility): Add.
40409
40410 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
40411
40412         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
40413         function * argument.
40414
40415 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
40416
40417         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
40418
40419 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40420             Tom de Vries  <tom@codesourcery.com>
40421
40422         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
40423         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
40424         reg-note.
40425         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
40426         * emit-rtl.c (try_split): Same.
40427
40428 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40429             Tom de Vries  <tom@codesourcery.com>
40430
40431         * common.opt (fuse-caller-save): New option.
40432
40433 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
40434
40435         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
40436         elements for big-endian.
40437
40438 2014-04-24  Richard Biener  <rguenther@suse.de>
40439
40440         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
40441         during TER and instead use the sepops interface for expanding
40442         non-GIMPLE_SINGLE_RHS.
40443
40444 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40445
40446         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
40447         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
40448
40449 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40450
40451         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
40452         assembler 64-bit option.
40453         * configure: Regenerate.
40454
40455 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40456
40457         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
40458         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
40459         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
40460         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
40461         (TARGET_CRYPTO): Take TARGET_SIMD into account.
40462
40463 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40464
40465         * config/aarch64/aarch64-builtins.c
40466         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
40467         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
40468         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
40469         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
40470         builtins.
40471         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
40472         (Vrevsuff): New mode attribute.
40473
40474 2014-04-24  Terry Guo  <terry.guo@arm.com>
40475
40476         * config/arm/arm.h (machine_function): Define variable
40477         after_arm_reorg here.
40478         * config/arm/arm.c (after_arm_reorg): Remove the definition.
40479         (arm_split_constant): Update the way to access variable
40480         after_arm_reorg.
40481         (arm_reorg): Ditto.
40482         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
40483
40484 2014-04-23  Tom de Vries  <tom@codesourcery.com>
40485
40486         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
40487
40488 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
40489
40490         * is-a.h: Update comments to reflect the following changes to the
40491         "pointerness" of the API, making the template parameter match the
40492         return type, allowing use of is-a.h with typedefs of pointers.
40493         (is_a_helper::cast): Return a T rather then a pointer to a T, so
40494         that the return type matches the parameter to the is_a_helper.
40495         (as_a): Likewise.
40496         (dyn_cast): Likewise.
40497
40498         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
40499         pointer from the is-a.h API.
40500
40501         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
40502         (is_a_helper <cgraph_node *>::test): ...this, matching change to
40503         is-a.h API.
40504         (is_a_helper <varpool_node>::test): Likewise, convert to...
40505         (is_a_helper <varpool_node *>::test): ...this.
40506
40507         (varpool_first_variable): Update for removal of implicit pointer
40508         from the is-a.h API.
40509         (varpool_next_variable): Likewise.
40510         (varpool_first_static_initializer): Likewise.
40511         (varpool_next_static_initializer): Likewise.
40512         (varpool_first_defined_variable): Likewise.
40513         (varpool_next_defined_variable): Likewise.
40514         (cgraph_first_defined_function): Likewise.
40515         (cgraph_next_defined_function): Likewise.
40516         (cgraph_first_function): Likewise.
40517         (cgraph_next_function): Likewise.
40518         (cgraph_first_function_with_gimple_body): Likewise.
40519         (cgraph_next_function_with_gimple_body): Likewise.
40520         (cgraph_alias_target): Likewise.
40521         (varpool_alias_target): Likewise.
40522         (cgraph_function_or_thunk_node): Likewise.
40523         (varpool_variable_node): Likewise.
40524         (symtab_real_symbol_p): Likewise.
40525         * cgraphunit.c (referred_to_p): Likewise.
40526         (analyze_functions): Likewise.
40527         (handle_alias_pairs): Likewise.
40528         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
40529         * gimple-ssa.h (gimple_vuse_op): Likewise.
40530         (gimple_vdef_op): Likewise.
40531         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
40532         * gimple.c (gimple_build_asm_1): Likewise.
40533         (gimple_build_try): Likewise.
40534         (gimple_build_resx): Likewise.
40535         (gimple_build_eh_dispatch): Likewise.
40536         (gimple_build_omp_for): Likewise.
40537         (gimple_omp_for_set_clauses): Likewise.
40538
40539         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
40540         (is_a_helper <gimple_statement_asm *>::test): ...this.
40541         (is_a_helper <gimple_statement_bind>::test): Convert to...
40542         (is_a_helper <gimple_statement_bind *>::test): ...this.
40543         (is_a_helper <gimple_statement_call>::test): Convert to...
40544         (is_a_helper <gimple_statement_call *>::test): ...this.
40545         (is_a_helper <gimple_statement_catch>::test): Convert to...
40546         (is_a_helper <gimple_statement_catch *>::test): ...this.
40547         (is_a_helper <gimple_statement_resx>::test): Convert to...
40548         (is_a_helper <gimple_statement_resx *>::test): ...this.
40549         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
40550         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
40551         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
40552         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
40553         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
40554         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
40555         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
40556         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
40557         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
40558         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
40559         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
40560         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
40561         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
40562         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
40563         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
40564         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
40565         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
40566         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
40567         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
40568         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
40569         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
40570         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
40571         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
40572         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
40573         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
40574         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
40575         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
40576         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
40577         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
40578         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
40579         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
40580         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
40581         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
40582         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
40583         (is_a_helper <gimple_statement_phi>::test): Convert to...
40584         (is_a_helper <gimple_statement_phi *>::test): ...this.
40585         (is_a_helper <gimple_statement_transaction>::test): Convert to...
40586         (is_a_helper <gimple_statement_transaction *>::test): ...this.
40587         (is_a_helper <gimple_statement_try>::test): Convert to...
40588         (is_a_helper <gimple_statement_try *>::test): ...this.
40589         (is_a_helper <gimple_statement_wce>::test): Convert to...
40590         (is_a_helper <gimple_statement_wce *>::test): ...this.
40591         (is_a_helper <const gimple_statement_asm>::test): Convert to...
40592         (is_a_helper <const gimple_statement_asm *>::test): ...this.
40593         (is_a_helper <const gimple_statement_bind>::test): Convert to...
40594         (is_a_helper <const gimple_statement_bind *>::test): ...this.
40595         (is_a_helper <const gimple_statement_call>::test): Convert to...
40596         (is_a_helper <const gimple_statement_call *>::test): ...this.
40597         (is_a_helper <const gimple_statement_catch>::test): Convert to...
40598         (is_a_helper <const gimple_statement_catch *>::test): ...this.
40599         (is_a_helper <const gimple_statement_resx>::test): Convert to...
40600         (is_a_helper <const gimple_statement_resx *>::test): ...this.
40601         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
40602         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
40603         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
40604         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
40605         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
40606         Convert to...
40607         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
40608         ...this.
40609         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
40610         Convert to...
40611         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
40612         ...this.
40613         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
40614         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
40615         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
40616         to...
40617         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
40618         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
40619         to...
40620         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
40621         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
40622         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
40623         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
40624         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
40625         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
40626         to...
40627         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
40628         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
40629         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
40630         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
40631         to...
40632         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
40633         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
40634         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
40635         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
40636         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
40637         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
40638         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
40639         (is_a_helper <const gimple_statement_phi>::test): Convert to...
40640         (is_a_helper <const gimple_statement_phi *>::test): ...this.
40641         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
40642         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
40643         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
40644         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
40645         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
40646         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
40647         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
40648         to...
40649         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
40650         ...this.
40651         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
40652         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
40653
40654         (gimple_use_ops): Update for removal of implicit pointer from the
40655         is-a.h API.
40656         (gimple_set_use_ops): Likewise.
40657         (gimple_vuse): Likewise.
40658         (gimple_vdef): Likewise.
40659         (gimple_vuse_ptr): Likewise.
40660         (gimple_vdef_ptr): Likewise.
40661         (gimple_set_vuse): Likewise.
40662         (gimple_set_vdef): Likewise.
40663         (gimple_omp_return_set_lhs): Likewise.
40664         (gimple_omp_return_lhs): Likewise.
40665         (gimple_omp_return_lhs_ptr): Likewise.
40666         (gimple_call_fntype): Likewise.
40667         (gimple_call_set_fntype): Likewise.
40668         (gimple_call_set_internal_fn): Likewise.
40669         (gimple_call_use_set): Likewise.
40670         (gimple_call_clobber_set): Likewise.
40671         (gimple_bind_vars): Likewise.
40672         (gimple_bind_set_vars): Likewise.
40673         (gimple_bind_body_ptr): Likewise.
40674         (gimple_bind_set_body): Likewise.
40675         (gimple_bind_add_stmt): Likewise.
40676         (gimple_bind_block): Likewise.
40677         (gimple_bind_set_block): Likewise.
40678         (gimple_asm_ninputs): Likewise.
40679         (gimple_asm_noutputs): Likewise.
40680         (gimple_asm_nclobbers): Likewise.
40681         (gimple_asm_nlabels): Likewise.
40682         (gimple_asm_input_op): Likewise.
40683         (gimple_asm_input_op_ptr): Likewise.
40684         (gimple_asm_output_op): Likewise.
40685         (gimple_asm_output_op_ptr): Likewise.
40686         (gimple_asm_set_output_op): Likewise.
40687         (gimple_asm_clobber_op): Likewise.
40688         (gimple_asm_set_clobber_op): Likewise.
40689         (gimple_asm_label_op): Likewise.
40690         (gimple_asm_set_label_op): Likewise.
40691         (gimple_asm_string): Likewise.
40692         (gimple_catch_types): Likewise.
40693         (gimple_catch_types_ptr): Likewise.
40694         (gimple_catch_handler_ptr): Likewise.
40695         (gimple_catch_set_types): Likewise.
40696         (gimple_catch_set_handler): Likewise.
40697         (gimple_eh_filter_types): Likewise.
40698         (gimple_eh_filter_types_ptr): Likewise.
40699         (gimple_eh_filter_failure_ptr): Likewise.
40700         (gimple_eh_filter_set_types): Likewise.
40701         (gimple_eh_filter_set_failure): Likewise.
40702         (gimple_eh_must_not_throw_fndecl): Likewise.
40703         (gimple_eh_must_not_throw_set_fndecl): Likewise.
40704         (gimple_eh_else_n_body_ptr): Likewise.
40705         (gimple_eh_else_e_body_ptr): Likewise.
40706         (gimple_eh_else_set_n_body): Likewise.
40707         (gimple_eh_else_set_e_body): Likewise.
40708         (gimple_try_eval_ptr): Likewise.
40709         (gimple_try_cleanup_ptr): Likewise.
40710         (gimple_try_set_eval): Likewise.
40711         (gimple_try_set_cleanup): Likewise.
40712         (gimple_wce_cleanup_ptr): Likewise.
40713         (gimple_wce_set_cleanup): Likewise.
40714         (gimple_phi_capacity): Likewise.
40715         (gimple_phi_num_args): Likewise.
40716         (gimple_phi_result): Likewise.
40717         (gimple_phi_result_ptr): Likewise.
40718         (gimple_phi_set_result): Likewise.
40719         (gimple_phi_arg): Likewise.
40720         (gimple_phi_set_arg): Likewise.
40721         (gimple_resx_region): Likewise.
40722         (gimple_resx_set_region): Likewise.
40723         (gimple_eh_dispatch_region): Likewise.
40724         (gimple_eh_dispatch_set_region): Likewise.
40725         (gimple_omp_critical_name): Likewise.
40726         (gimple_omp_critical_name_ptr): Likewise.
40727         (gimple_omp_critical_set_name): Likewise.
40728         (gimple_omp_for_clauses): Likewise.
40729         (gimple_omp_for_clauses_ptr): Likewise.
40730         (gimple_omp_for_set_clauses): Likewise.
40731         (gimple_omp_for_collapse): Likewise.
40732         (gimple_omp_for_index): Likewise.
40733         (gimple_omp_for_index_ptr): Likewise.
40734         (gimple_omp_for_set_index): Likewise.
40735         (gimple_omp_for_initial): Likewise.
40736         (gimple_omp_for_initial_ptr): Likewise.
40737         (gimple_omp_for_set_initial): Likewise.
40738         (gimple_omp_for_final): Likewise.
40739         (gimple_omp_for_final_ptr): Likewise.
40740         (gimple_omp_for_set_final): Likewise.
40741         (gimple_omp_for_incr): Likewise.
40742         (gimple_omp_for_incr_ptr): Likewise.
40743         (gimple_omp_for_set_incr): Likewise.
40744         (gimple_omp_for_pre_body_ptr): Likewise.
40745         (gimple_omp_for_set_pre_body): Likewise.
40746         (gimple_omp_parallel_clauses): Likewise.
40747         (gimple_omp_parallel_clauses_ptr): Likewise.
40748         (gimple_omp_parallel_set_clauses): Likewise.
40749         (gimple_omp_parallel_child_fn): Likewise.
40750         (gimple_omp_parallel_child_fn_ptr): Likewise.
40751         (gimple_omp_parallel_set_child_fn): Likewise.
40752         (gimple_omp_parallel_data_arg): Likewise.
40753         (gimple_omp_parallel_data_arg_ptr): Likewise.
40754         (gimple_omp_parallel_set_data_arg): Likewise.
40755         (gimple_omp_task_clauses): Likewise.
40756         (gimple_omp_task_clauses_ptr): Likewise.
40757         (gimple_omp_task_set_clauses): Likewise.
40758         (gimple_omp_task_child_fn): Likewise.
40759         (gimple_omp_task_child_fn_ptr): Likewise.
40760         (gimple_omp_task_set_child_fn): Likewise.
40761         (gimple_omp_task_data_arg): Likewise.
40762         (gimple_omp_task_data_arg_ptr): Likewise.
40763         (gimple_omp_task_set_data_arg): Likewise.
40764         (gimple_omp_taskreg_clauses): Likewise.
40765         (gimple_omp_taskreg_clauses_ptr): Likewise.
40766         (gimple_omp_taskreg_set_clauses): Likewise.
40767         (gimple_omp_taskreg_child_fn): Likewise.
40768         (gimple_omp_taskreg_child_fn_ptr): Likewise.
40769         (gimple_omp_taskreg_set_child_fn): Likewise.
40770         (gimple_omp_taskreg_data_arg): Likewise.
40771         (gimple_omp_taskreg_data_arg_ptr): Likewise.
40772         (gimple_omp_taskreg_set_data_arg): Likewise.
40773         (gimple_omp_task_copy_fn): Likewise.
40774         (gimple_omp_task_copy_fn_ptr): Likewise.
40775         (gimple_omp_task_set_copy_fn): Likewise.
40776         (gimple_omp_task_arg_size): Likewise.
40777         (gimple_omp_task_arg_size_ptr): Likewise.
40778         (gimple_omp_task_set_arg_size): Likewise.
40779         (gimple_omp_task_arg_align): Likewise.
40780         (gimple_omp_task_arg_align_ptr): Likewise.
40781         (gimple_omp_task_set_arg_align): Likewise.
40782         (gimple_omp_single_clauses): Likewise.
40783         (gimple_omp_single_clauses_ptr): Likewise.
40784         (gimple_omp_single_set_clauses): Likewise.
40785         (gimple_omp_target_clauses): Likewise.
40786         (gimple_omp_target_clauses_ptr): Likewise.
40787         (gimple_omp_target_set_clauses): Likewise.
40788         (gimple_omp_target_child_fn): Likewise.
40789         (gimple_omp_target_child_fn_ptr): Likewise.
40790         (gimple_omp_target_set_child_fn): Likewise.
40791         (gimple_omp_target_data_arg): Likewise.
40792         (gimple_omp_target_data_arg_ptr): Likewise.
40793         (gimple_omp_target_set_data_arg): Likewise.
40794         (gimple_omp_teams_clauses): Likewise.
40795         (gimple_omp_teams_clauses_ptr): Likewise.
40796         (gimple_omp_teams_set_clauses): Likewise.
40797         (gimple_omp_sections_clauses): Likewise.
40798         (gimple_omp_sections_clauses_ptr): Likewise.
40799         (gimple_omp_sections_set_clauses): Likewise.
40800         (gimple_omp_sections_control): Likewise.
40801         (gimple_omp_sections_control_ptr): Likewise.
40802         (gimple_omp_sections_set_control): Likewise.
40803         (gimple_omp_for_set_cond): Likewise.
40804         (gimple_omp_for_cond): Likewise.
40805         (gimple_omp_atomic_store_set_val): Likewise.
40806         (gimple_omp_atomic_store_val): Likewise.
40807         (gimple_omp_atomic_store_val_ptr): Likewise.
40808         (gimple_omp_atomic_load_set_lhs): Likewise.
40809         (gimple_omp_atomic_load_lhs): Likewise.
40810         (gimple_omp_atomic_load_lhs_ptr): Likewise.
40811         (gimple_omp_atomic_load_set_rhs): Likewise.
40812         (gimple_omp_atomic_load_rhs): Likewise.
40813         (gimple_omp_atomic_load_rhs_ptr): Likewise.
40814         (gimple_omp_continue_control_def): Likewise.
40815         (gimple_omp_continue_control_def_ptr): Likewise.
40816         (gimple_omp_continue_set_control_def): Likewise.
40817         (gimple_omp_continue_control_use): Likewise.
40818         (gimple_omp_continue_control_use_ptr): Likewise.
40819         (gimple_omp_continue_set_control_use): Likewise.
40820         (gimple_transaction_body_ptr): Likewise.
40821         (gimple_transaction_label): Likewise.
40822         (gimple_transaction_label_ptr): Likewise.
40823         (gimple_transaction_set_body): Likewise.
40824         (gimple_transaction_set_label): Likewise.
40825
40826         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
40827         * ipa-inline-analysis.c (inline_write_summary): Likewise.
40828         * ipa-ref.c (ipa_record_reference): Likewise.
40829         * ipa-reference.c (analyze_function): Likewise.
40830         (ipa_reference_write_optimization_summary): Likewise.
40831         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
40832         (address_taken_from_non_vtable_p): Likewise.
40833         (comdat_can_be_unshared_p_1): Likewise.
40834         * lto-cgraph.c (lto_output_ref): Likewise.
40835         (add_references): Likewise.
40836         (compute_ltrans_boundary): Likewise.
40837         (output_symtab): Likewise.
40838         (input_ref): Likewise.
40839         (input_cgraph_1): Likewise.
40840         (output_cgraph_opt_summary): Likewise.
40841         * lto-streamer-out.c (lto_output): Likewise.
40842         (output_symbol_p): Likewise.
40843         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
40844         (lsei_start_function_in_partition): Likewise.
40845         (lsei_next_variable_in_partition): Likewise.
40846         (lsei_start_variable_in_partition): Likewise.
40847         * symtab.c (insert_to_assembler_name_hash): Likewise.
40848         (unlink_from_assembler_name_hash): Likewise.
40849         (symtab_unregister_node): Likewise.
40850         (symtab_remove_node): Likewise.
40851         (dump_symtab_node): Likewise.
40852         (verify_symtab_base): Likewise.
40853         (verify_symtab_node): Likewise.
40854         (symtab_make_decl_local): Likewise.
40855         (symtab_alias_ultimate_target): Likewise.
40856         (symtab_resolve_alias): Likewise.
40857         (symtab_get_symbol_partitioning_class): Likewise.
40858         * tree-phinodes.c (allocate_phi_node): Likewise.
40859         (reserve_phi_args_for_new_edge): Likewise.
40860         (remove_phi_args): Likewise.
40861         * varpool.c (varpool_node_for_asm): Likewise.
40862         (varpool_remove_unreferenced_decls): Likewise.
40863
40864 2014-04-23  Jeff Law  <law@redhat.com>
40865
40866         PR tree-optimization/60902
40867         * tree-ssa-threadedge.c
40868         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
40869         invalidate outputs from statements that do not produce useful
40870         outputs for threading.
40871
40872 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
40873
40874         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
40875         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
40876         machine descriptions for Stack Smashing Protector.
40877
40878 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
40879
40880         * aarch64.md (<optab>_rol<mode>3): New pattern.
40881         (<optab>_rolsi3_uxtw): Likewise.
40882         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
40883
40884 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
40885
40886         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
40887         (arm_cortex_a12_tune): Likewise.
40888
40889 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40890
40891         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
40892
40893 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40894
40895         * config/arm/arm.md (arm_rev16si2): New pattern.
40896         (arm_rev16si2_alt): Likewise.
40897         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
40898
40899 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40900
40901         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
40902         (rev16<mode>2_alt): Likewise.
40903         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
40904         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
40905         (aarch_rev16_shleft_mask_imm_p): Likewise.
40906         (aarch_rev16_p_1): Likewise.
40907         (aarch_rev16_p): Likewise.
40908         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
40909         (aarch_rev16_shright_mask_imm_p): Likewise.
40910         (aarch_rev16_shleft_mask_imm_p): Likewise.
40911
40912 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40913
40914         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
40915         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
40916         rev cost.
40917         (cortex_a53_extra_costs): Likewise.
40918         (cortex_a57_extra_costs): Likewise.
40919         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
40920         (cortexa7_extra_costs): Likewise.
40921         (cortexa8_extra_costs): Likewise.
40922         (cortexa12_extra_costs): Likewise.
40923         (cortexa15_extra_costs): Likewise.
40924         (v7m_extra_costs): Likewise.
40925         (arm_new_rtx_costs): Handle BSWAP.
40926
40927 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40928
40929         * config/arm/arm.c (cortexa8_extra_costs): New table.
40930         (arm_cortex_a8_tune): New tuning struct.
40931         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
40932
40933 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40934
40935         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
40936
40937 2014-04-23  Richard Biener  <rguenther@suse.de>
40938
40939         * Makefile.in (OBJS): Remove loop-unswitch.o.
40940         * tree-pass.h (make_pass_rtl_unswitch): Remove.
40941         * passes.def (pass_rtl_unswitch): Likewise.
40942         * loop-init.c (gate_rtl_unswitch): Likewise.
40943         (rtl_unswitch): Likewise.
40944         (pass_data_rtl_unswitch): Likewise.
40945         (pass_rtl_unswitch): Likewise.
40946         (make_pass_rtl_unswitch): Likewise.
40947         * rtl.h (reversed_condition): Likewise.
40948         (compare_and_jump_seq): Likewise.
40949         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
40950         and make static.
40951         * loop-unroll.c (compare_and_jump_seq): Likewise.
40952
40953 2014-04-23  Richard Biener  <rguenther@suse.de>
40954
40955         PR tree-optimization/60903
40956         * tree-ssa-loop-im.c (analyze_memory_references): Remove
40957         commented code block.
40958         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
40959         loop flags to newly created BBs and edges.
40960
40961 2014-04-23  Nick Clifton  <nickc@redhat.com>
40962
40963         * config/msp430/msp430.c (msp430_handle_option): Move function
40964         to msp430-common.c
40965         (msp430_option_override): Simplify mcu and mcpu option handling.
40966         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
40967         support for -mhwmult command line option.
40968         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
40969         -mhwmult command line option.
40970         (msp430_hwmult_enabled): Delete.
40971         (msp43o_output_labelref): Add support for -mhwmult command line option.
40972         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
40973         (umulsidi3): Likewise.
40974         * config/msp430/msp430.opt (mmcu): Add Report attribute.
40975         (mcpu, mlarge, msmall): Likewise.
40976         (mhwmult): New option.
40977         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
40978         prototype.
40979         (msp430_is_f5_mcu): Remove prototype.
40980         (msp430_use_f5_series_hwmult): Add prototype.
40981         * config/msp430/msp430-opts.h: New file.
40982         * common/config/msp430: New directory.
40983         * common/config/msp430/msp430-common.c: New file.
40984         * config.gcc (msp430): Remove target_has_targetm_common.
40985         * doc/invoke.texi: Document -mhwmult command line option.
40986
40987 2014-04-23  Nick Clifton  <nickc@redhat.com>
40988
40989         * config/i386/cygwin.h (ENDFILE_SPEC): Include
40990         default-manifest.o if it can be found in the search path.
40991         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
40992
40993 2014-04-23  Terry Guo  <terry.guo@arm.com>
40994
40995         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
40996
40997 2014-04-23  Richard Biener  <rguenther@suse.de>
40998
40999         PR middle-end/60895
41000         * tree-inline.c (declare_return_variable): Use mark_addressable.
41001
41002 2014-04-23  Richard Biener  <rguenther@suse.de>
41003
41004         PR middle-end/60891
41005         * loop-init.c (loop_optimizer_init): Make sure to apply
41006         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
41007
41008 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41009
41010         PR sanitizer/60275
41011         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
41012         New options.
41013         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
41014         if flag_sanitize_undefined_trap_on_error.
41015         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
41016         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
41017         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
41018         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
41019         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
41020         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
41021         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
41022         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
41023         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
41024         * ubsan.c (ubsan_instrument_unreachable): Return
41025         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
41026         (ubsan_expand_null_ifn): Emit __builtin_trap ()
41027         if flag_sanitize_undefined_trap_on_error and
41028         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
41029         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
41030         instrument_bool_enum_load): Emit __builtin_trap () if
41031         flag_sanitize_undefined_trap_on_error and
41032         __builtin_handle_*_abort () if !flag_sanitize_recover.
41033         * doc/invoke.texi (-fsanitize-recover,
41034         -fsanitize-undefined-trap-on-error): Document.
41035
41036 2014-04-22  Christian Bruel  <christian.bruel@st.com>
41037
41038         * config/sh/sh.md (mov<mode>): Replace movQIHI.
41039         Force immediates to SImode.
41040
41041 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
41042
41043         * config/nios2/nios2.md (UNSPEC_ROUND): New.
41044         (lroundsfsi2): New.
41045         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
41046         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
41047         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
41048         (nios2_fpu_insn): Add entry for round.
41049         (N2FPU_NO_ERRNO_P): Define.
41050         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
41051         flag_errno_math.
41052         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
41053
41054 2014-04-22  Richard Henderson  <rth@redhat.com>
41055
41056         * config/aarch64/aarch64 (addti3, subti3): New expanders.
41057         (add<GPI>3_compare0): Remove leading * from name.
41058         (add<GPI>3_carryin): Likewise.
41059         (sub<GPI>3_compare0): Likewise.
41060         (sub<GPI>3_carryin): Likewise.
41061         (<su_optab>mulditi3): New expander.
41062         (multi3): New expander.
41063         (madd<GPI>): Remove leading * from name.
41064
41065 2014-04-22  Martin Jambor  <mjambor@suse.cz>
41066
41067         * cgraphclones.c (cgraph_function_versioning): Copy
41068         ipa_transforms_to_apply instead of asserting it is empty.
41069
41070 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
41071
41072         PR target/60868
41073         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
41074         on count_exp to get mode.
41075
41076 2014-04-22  Andrew Pinski  <apinski@cavium.com>
41077
41078         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
41079         Handle TLS for ILP32.
41080         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
41081         (tlsie_small_<mode>): this and handle PTR.
41082         (tlsie_small_sidi): New pattern.
41083         (tlsle_small): Change to an expand to handle ILP32.
41084         (tlsle_small_<mode>): New pattern.
41085         (tlsdesc_small): Rename to ...
41086         (tlsdesc_small_<mode>): this and handle PTR.
41087
41088 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41089
41090         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
41091
41092 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41093
41094         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41095         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
41096         (aarch64_types_signed_poly_qualifiers): Likewise.
41097         (aarch64_types_unsigned_signed_qualifiers): Likewise.
41098         (aarch64_types_poly_signed_qualifiers): Likewise.
41099         (TYPES_REINTERP_SS): Type macro added.
41100         (TYPES_REINTERP_SU): Likewise.
41101         (TYPES_REINTERP_SP): Likewise.
41102         (TYPES_REINTERP_US): Likewise.
41103         (TYPES_REINTERP_PS): Likewise.
41104         (aarch64_fold_builtin): New expression folding added.
41105         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
41106         Declarations removed.
41107         (REINTERP_SS): Declarations added.
41108         (REINTERP_US): Likewise.
41109         (REINTERP_PS): Likewise.
41110         (REINTERP_SU): Likewise.
41111         (REINTERP_SP): Likewise.
41112         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
41113         (vreinterpretq_p8_f64): Likewise.
41114         (vreinterpret_p16_f64): Likewise.
41115         (vreinterpretq_p16_f64): Likewise.
41116         (vreinterpret_f32_f64): Likewise.
41117         (vreinterpretq_f32_f64): Likewise.
41118         (vreinterpret_f64_f32): Likewise.
41119         (vreinterpret_f64_p8): Likewise.
41120         (vreinterpret_f64_p16): Likewise.
41121         (vreinterpret_f64_s8): Likewise.
41122         (vreinterpret_f64_s16): Likewise.
41123         (vreinterpret_f64_s32): Likewise.
41124         (vreinterpret_f64_s64): Likewise.
41125         (vreinterpret_f64_u8): Likewise.
41126         (vreinterpret_f64_u16): Likewise.
41127         (vreinterpret_f64_u32): Likewise.
41128         (vreinterpret_f64_u64): Likewise.
41129         (vreinterpretq_f64_f32): Likewise.
41130         (vreinterpretq_f64_p8): Likewise.
41131         (vreinterpretq_f64_p16): Likewise.
41132         (vreinterpretq_f64_s8): Likewise.
41133         (vreinterpretq_f64_s16): Likewise.
41134         (vreinterpretq_f64_s32): Likewise.
41135         (vreinterpretq_f64_s64): Likewise.
41136         (vreinterpretq_f64_u8): Likewise.
41137         (vreinterpretq_f64_u16): Likewise.
41138         (vreinterpretq_f64_u32): Likewise.
41139         (vreinterpretq_f64_u64): Likewise.
41140         (vreinterpret_s64_f64): Likewise.
41141         (vreinterpretq_s64_f64): Likewise.
41142         (vreinterpret_u64_f64): Likewise.
41143         (vreinterpretq_u64_f64): Likewise.
41144         (vreinterpret_s8_f64): Likewise.
41145         (vreinterpretq_s8_f64): Likewise.
41146         (vreinterpret_s16_f64): Likewise.
41147         (vreinterpretq_s16_f64): Likewise.
41148         (vreinterpret_s32_f64): Likewise.
41149         (vreinterpretq_s32_f64): Likewise.
41150         (vreinterpret_u8_f64): Likewise.
41151         (vreinterpretq_u8_f64): Likewise.
41152         (vreinterpret_u16_f64): Likewise.
41153         (vreinterpretq_u16_f64): Likewise.
41154         (vreinterpret_u32_f64): Likewise.
41155         (vreinterpretq_u32_f64): Likewise.
41156
41157 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41158
41159         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41160         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
41161         (vreinterpret_p8_s8): Likewise.
41162         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
41163         (vreinterpret_p8_s16): Likewise.
41164         (vreinterpret_p8_s32): Likewise.
41165         (vreinterpret_p8_s64): Likewise.
41166         (vreinterpret_p8_f32): Likewise.
41167         (vreinterpret_p8_u8): Likewise.
41168         (vreinterpret_p8_u16): Likewise.
41169         (vreinterpret_p8_u32): Likewise.
41170         (vreinterpret_p8_u64): Likewise.
41171         (vreinterpret_p8_p16): Likewise.
41172         (vreinterpretq_p8_s8): Likewise.
41173         (vreinterpretq_p8_s16): Likewise.
41174         (vreinterpretq_p8_s32): Likewise.
41175         (vreinterpretq_p8_s64): Likewise.
41176         (vreinterpretq_p8_f32): Likewise.
41177         (vreinterpretq_p8_u8): Likewise.
41178         (vreinterpretq_p8_u16): Likewise.
41179         (vreinterpretq_p8_u32): Likewise.
41180         (vreinterpretq_p8_u64): Likewise.
41181         (vreinterpretq_p8_p16): Likewise.
41182         (vreinterpret_p16_s8): Likewise.
41183         (vreinterpret_p16_s16): Likewise.
41184         (vreinterpret_p16_s32): Likewise.
41185         (vreinterpret_p16_s64): Likewise.
41186         (vreinterpret_p16_f32): Likewise.
41187         (vreinterpret_p16_u8): Likewise.
41188         (vreinterpret_p16_u16): Likewise.
41189         (vreinterpret_p16_u32): Likewise.
41190         (vreinterpret_p16_u64): Likewise.
41191         (vreinterpret_p16_p8): Likewise.
41192         (vreinterpretq_p16_s8): Likewise.
41193         (vreinterpretq_p16_s16): Likewise.
41194         (vreinterpretq_p16_s32): Likewise.
41195         (vreinterpretq_p16_s64): Likewise.
41196         (vreinterpretq_p16_f32): Likewise.
41197         (vreinterpretq_p16_u8): Likewise.
41198         (vreinterpretq_p16_u16): Likewise.
41199         (vreinterpretq_p16_u32): Likewise.
41200         (vreinterpretq_p16_u64): Likewise.
41201         (vreinterpretq_p16_p8): Likewise.
41202         (vreinterpret_f32_s8): Likewise.
41203         (vreinterpret_f32_s16): Likewise.
41204         (vreinterpret_f32_s32): Likewise.
41205         (vreinterpret_f32_s64): Likewise.
41206         (vreinterpret_f32_u8): Likewise.
41207         (vreinterpret_f32_u16): Likewise.
41208         (vreinterpret_f32_u32): Likewise.
41209         (vreinterpret_f32_u64): Likewise.
41210         (vreinterpret_f32_p8): Likewise.
41211         (vreinterpret_f32_p16): Likewise.
41212         (vreinterpretq_f32_s8): Likewise.
41213         (vreinterpretq_f32_s16): Likewise.
41214         (vreinterpretq_f32_s32): Likewise.
41215         (vreinterpretq_f32_s64): Likewise.
41216         (vreinterpretq_f32_u8): Likewise.
41217         (vreinterpretq_f32_u16): Likewise.
41218         (vreinterpretq_f32_u32): Likewise.
41219         (vreinterpretq_f32_u64): Likewise.
41220         (vreinterpretq_f32_p8): Likewise.
41221         (vreinterpretq_f32_p16): Likewise.
41222         (vreinterpret_s64_s8): Likewise.
41223         (vreinterpret_s64_s16): Likewise.
41224         (vreinterpret_s64_s32): Likewise.
41225         (vreinterpret_s64_f32): Likewise.
41226         (vreinterpret_s64_u8): Likewise.
41227         (vreinterpret_s64_u16): Likewise.
41228         (vreinterpret_s64_u32): Likewise.
41229         (vreinterpret_s64_u64): Likewise.
41230         (vreinterpret_s64_p8): Likewise.
41231         (vreinterpret_s64_p16): Likewise.
41232         (vreinterpretq_s64_s8): Likewise.
41233         (vreinterpretq_s64_s16): Likewise.
41234         (vreinterpretq_s64_s32): Likewise.
41235         (vreinterpretq_s64_f32): Likewise.
41236         (vreinterpretq_s64_u8): Likewise.
41237         (vreinterpretq_s64_u16): Likewise.
41238         (vreinterpretq_s64_u32): Likewise.
41239         (vreinterpretq_s64_u64): Likewise.
41240         (vreinterpretq_s64_p8): Likewise.
41241         (vreinterpretq_s64_p16): Likewise.
41242         (vreinterpret_u64_s8): Likewise.
41243         (vreinterpret_u64_s16): Likewise.
41244         (vreinterpret_u64_s32): Likewise.
41245         (vreinterpret_u64_s64): Likewise.
41246         (vreinterpret_u64_f32): Likewise.
41247         (vreinterpret_u64_u8): Likewise.
41248         (vreinterpret_u64_u16): Likewise.
41249         (vreinterpret_u64_u32): Likewise.
41250         (vreinterpret_u64_p8): Likewise.
41251         (vreinterpret_u64_p16): Likewise.
41252         (vreinterpretq_u64_s8): Likewise.
41253         (vreinterpretq_u64_s16): Likewise.
41254         (vreinterpretq_u64_s32): Likewise.
41255         (vreinterpretq_u64_s64): Likewise.
41256         (vreinterpretq_u64_f32): Likewise.
41257         (vreinterpretq_u64_u8): Likewise.
41258         (vreinterpretq_u64_u16): Likewise.
41259         (vreinterpretq_u64_u32): Likewise.
41260         (vreinterpretq_u64_p8): Likewise.
41261         (vreinterpretq_u64_p16): Likewise.
41262         (vreinterpret_s8_s16): Likewise.
41263         (vreinterpret_s8_s32): Likewise.
41264         (vreinterpret_s8_s64): Likewise.
41265         (vreinterpret_s8_f32): Likewise.
41266         (vreinterpret_s8_u8): Likewise.
41267         (vreinterpret_s8_u16): Likewise.
41268         (vreinterpret_s8_u32): Likewise.
41269         (vreinterpret_s8_u64): Likewise.
41270         (vreinterpret_s8_p8): Likewise.
41271         (vreinterpret_s8_p16): Likewise.
41272         (vreinterpretq_s8_s16): Likewise.
41273         (vreinterpretq_s8_s32): Likewise.
41274         (vreinterpretq_s8_s64): Likewise.
41275         (vreinterpretq_s8_f32): Likewise.
41276         (vreinterpretq_s8_u8): Likewise.
41277         (vreinterpretq_s8_u16): Likewise.
41278         (vreinterpretq_s8_u32): Likewise.
41279         (vreinterpretq_s8_u64): Likewise.
41280         (vreinterpretq_s8_p8): Likewise.
41281         (vreinterpretq_s8_p16): Likewise.
41282         (vreinterpret_s16_s8): Likewise.
41283         (vreinterpret_s16_s32): Likewise.
41284         (vreinterpret_s16_s64): Likewise.
41285         (vreinterpret_s16_f32): Likewise.
41286         (vreinterpret_s16_u8): Likewise.
41287         (vreinterpret_s16_u16): Likewise.
41288         (vreinterpret_s16_u32): Likewise.
41289         (vreinterpret_s16_u64): Likewise.
41290         (vreinterpret_s16_p8): Likewise.
41291         (vreinterpret_s16_p16): Likewise.
41292         (vreinterpretq_s16_s8): Likewise.
41293         (vreinterpretq_s16_s32): Likewise.
41294         (vreinterpretq_s16_s64): Likewise.
41295         (vreinterpretq_s16_f32): Likewise.
41296         (vreinterpretq_s16_u8): Likewise.
41297         (vreinterpretq_s16_u16): Likewise.
41298         (vreinterpretq_s16_u32): Likewise.
41299         (vreinterpretq_s16_u64): Likewise.
41300         (vreinterpretq_s16_p8): Likewise.
41301         (vreinterpretq_s16_p16): Likewise.
41302         (vreinterpret_s32_s8): Likewise.
41303         (vreinterpret_s32_s16): Likewise.
41304         (vreinterpret_s32_s64): Likewise.
41305         (vreinterpret_s32_f32): Likewise.
41306         (vreinterpret_s32_u8): Likewise.
41307         (vreinterpret_s32_u16): Likewise.
41308         (vreinterpret_s32_u32): Likewise.
41309         (vreinterpret_s32_u64): Likewise.
41310         (vreinterpret_s32_p8): Likewise.
41311         (vreinterpret_s32_p16): Likewise.
41312         (vreinterpretq_s32_s8): Likewise.
41313         (vreinterpretq_s32_s16): Likewise.
41314         (vreinterpretq_s32_s64): Likewise.
41315         (vreinterpretq_s32_f32): Likewise.
41316         (vreinterpretq_s32_u8): Likewise.
41317         (vreinterpretq_s32_u16): Likewise.
41318         (vreinterpretq_s32_u32): Likewise.
41319         (vreinterpretq_s32_u64): Likewise.
41320         (vreinterpretq_s32_p8): Likewise.
41321         (vreinterpretq_s32_p16): Likewise.
41322         (vreinterpret_u8_s8): Likewise.
41323         (vreinterpret_u8_s16): Likewise.
41324         (vreinterpret_u8_s32): Likewise.
41325         (vreinterpret_u8_s64): Likewise.
41326         (vreinterpret_u8_f32): Likewise.
41327         (vreinterpret_u8_u16): Likewise.
41328         (vreinterpret_u8_u32): Likewise.
41329         (vreinterpret_u8_u64): Likewise.
41330         (vreinterpret_u8_p8): Likewise.
41331         (vreinterpret_u8_p16): Likewise.
41332         (vreinterpretq_u8_s8): Likewise.
41333         (vreinterpretq_u8_s16): Likewise.
41334         (vreinterpretq_u8_s32): Likewise.
41335         (vreinterpretq_u8_s64): Likewise.
41336         (vreinterpretq_u8_f32): Likewise.
41337         (vreinterpretq_u8_u16): Likewise.
41338         (vreinterpretq_u8_u32): Likewise.
41339         (vreinterpretq_u8_u64): Likewise.
41340         (vreinterpretq_u8_p8): Likewise.
41341         (vreinterpretq_u8_p16): Likewise.
41342         (vreinterpret_u16_s8): Likewise.
41343         (vreinterpret_u16_s16): Likewise.
41344         (vreinterpret_u16_s32): Likewise.
41345         (vreinterpret_u16_s64): Likewise.
41346         (vreinterpret_u16_f32): Likewise.
41347         (vreinterpret_u16_u8): Likewise.
41348         (vreinterpret_u16_u32): Likewise.
41349         (vreinterpret_u16_u64): Likewise.
41350         (vreinterpret_u16_p8): Likewise.
41351         (vreinterpret_u16_p16): Likewise.
41352         (vreinterpretq_u16_s8): Likewise.
41353         (vreinterpretq_u16_s16): Likewise.
41354         (vreinterpretq_u16_s32): Likewise.
41355         (vreinterpretq_u16_s64): Likewise.
41356         (vreinterpretq_u16_f32): Likewise.
41357         (vreinterpretq_u16_u8): Likewise.
41358         (vreinterpretq_u16_u32): Likewise.
41359         (vreinterpretq_u16_u64): Likewise.
41360         (vreinterpretq_u16_p8): Likewise.
41361         (vreinterpretq_u16_p16): Likewise.
41362         (vreinterpret_u32_s8): Likewise.
41363         (vreinterpret_u32_s16): Likewise.
41364         (vreinterpret_u32_s32): Likewise.
41365         (vreinterpret_u32_s64): Likewise.
41366         (vreinterpret_u32_f32): Likewise.
41367         (vreinterpret_u32_u8): Likewise.
41368         (vreinterpret_u32_u16): Likewise.
41369         (vreinterpret_u32_u64): Likewise.
41370         (vreinterpret_u32_p8): Likewise.
41371         (vreinterpret_u32_p16): Likewise.
41372         (vreinterpretq_u32_s8): Likewise.
41373         (vreinterpretq_u32_s16): Likewise.
41374         (vreinterpretq_u32_s32): Likewise.
41375         (vreinterpretq_u32_s64): Likewise.
41376         (vreinterpretq_u32_f32): Likewise.
41377         (vreinterpretq_u32_u8): Likewise.
41378         (vreinterpretq_u32_u16): Likewise.
41379         (vreinterpretq_u32_u64): Likewise.
41380         (vreinterpretq_u32_p8): Likewise.
41381         (vreinterpretq_u32_p16): Likewise.
41382
41383 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41384
41385         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
41386         Pattern extended.
41387         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
41388         (sqabs): Likewise.
41389         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
41390         (vqnegd_s64): Likewise.
41391         (vqabs_s64): Likewise.
41392         (vqabsd_s64): Likewise.
41393
41394 2014-04-22  Richard Henderson  <rth@redhat.com>
41395
41396         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
41397         computation to the top of the loop.
41398
41399 2014-04-22  Renlin  <renlin.li@arm.com>
41400             Jiong Wang  <jiong.wang@arm.com>
41401
41402         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
41403         * config/aarch64/aarch64.c (aarch64_layout_frame)
41404         (aarch64_initial_elimination_offset): Likewise.
41405
41406 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
41407
41408         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
41409         Fix indentation.
41410
41411 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
41412
41413         * machmode.h (bitwise_mode_for_mode): Declare.
41414         * stor-layout.h (bitwise_type_for_mode): Likewise.
41415         * stor-layout.c (bitwise_mode_for_mode): New function.
41416         (bitwise_type_for_mode): Likewise.
41417         * builtins.c (fold_builtin_memory_op): Use it instead of
41418         int_mode_for_mode and build_nonstandard_integer_type.
41419
41420 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41421
41422         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
41423         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
41424         (*-*-solaris2*): Simplify.
41425         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
41426         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
41427         *-*-solaris2.9* handling.
41428
41429         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
41430         as bug.
41431         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
41432         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
41433         handling, simplify.
41434         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
41435         * configure: Regenerate.
41436
41437         * config/i386/sol2-9.h: Remove.
41438
41439         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
41440         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
41441         Remove Solaris 9 references.
41442
41443 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
41444
41445         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
41446         (floatuns<GPI:mode><GPF:mode>2): Remove.
41447         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
41448         and floatuns conversions.
41449         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
41450         and floatuns conversions.
41451         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
41452         (w1,w2): New mode attributes for inequal width conversions.
41453
41454 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
41455
41456         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
41457         the output asm format.
41458
41459 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
41460
41461         * config/aarch64/aarch64-simd.md
41462         (aarch64_cm<optab>di): Always split.
41463         (*aarch64_cm<optab>di): New.
41464         (aarch64_cmtstdi): Always split.
41465         (*aarch64_cmtstdi): New.
41466
41467 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41468
41469         PR tree-optimization/60823
41470         * omp-low.c (ipa_simd_modify_function_body): Go through
41471         all SSA_NAMEs and for those refering to vector arguments
41472         which are going to be replaced adjust SSA_NAME_VAR and,
41473         if it is a default definition, change it into a non-default
41474         definition assigned at the beginning of function from new_decl.
41475         (ipa_simd_modify_stmt_ops): Rewritten.
41476         * tree-dfa.c (set_ssa_default_def): When removing default def,
41477         check for NULL loc instead of NULL *loc.
41478
41479 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41480
41481         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
41482         restrictions on core registers for DImode values in Thumb2.
41483
41484 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41485
41486         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
41487         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
41488
41489 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41490
41491         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
41492         (*iordi_notzesidi_di): Likewise.
41493         (*iordi_notsesidi_di): Likewise.
41494
41495 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41496
41497         * config/arm/arm-protos.h (tune_params): New struct members.
41498         * config/arm/arm.c: Initialise tune_params per processor.
41499         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
41500         for speed, based on new tune_params.
41501
41502 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41503
41504         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
41505         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
41506         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
41507         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
41508         * config/aarch64/arm_neon.h (vrnd_f64): Added.
41509         (vrnda_f64): Likewise.
41510         (vrndi_f64): Likewise.
41511         (vrndm_f64): Likewise.
41512         (vrndn_f64): Likewise.
41513         (vrndp_f64): Likewise.
41514         (vrndx_f64): Likewise.
41515
41516 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
41517
41518         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
41519         GET_MODE_SIZE argument is enum machine_mode.
41520
41521 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41522
41523         PR target/60910
41524         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
41525         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
41526
41527 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
41528
41529         PR middle-end/60281
41530         * asan.c (asan_emit_stack_protection): Force the base to align to
41531         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
41532         appropriate bits if STRICT_ALIGNMENT.
41533         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
41534         when asan is on.
41535         (expand_used_vars): Leave a space in the stack frame for alignment
41536         if STRICT_ALIGNMENT.
41537
41538 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
41539
41540         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
41541         than a gimple.
41542         (gimple_store_p): Likewise.
41543         (gimple_assign_load_p): Likewise.
41544         (gimple_assign_cast_p): Likewise.
41545         (gimple_clobber_p): Likewise.
41546
41547         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
41548         rather than a gimple.
41549         (gimple_assign_cast_p): Likewise.
41550
41551 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
41552
41553         PR target/60735
41554         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
41555         If mode is DDmode and TARGET_E500_DOUBLE allow move.
41556
41557         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
41558         more debug information for E500 if -mdebug=reg.
41559
41560 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
41561
41562         PR target/60909
41563         * config/i386/i386.c (ix86_expand_builtin)
41564         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
41565         register for target RTX.
41566         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
41567
41568 2014-04-18  Cong Hou  <congh@google.com>
41569
41570         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
41571         the widen-mult pattern by handling two operands with different sizes,
41572         and operands whose size is smaller than half of the result type.
41573
41574 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41575
41576         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
41577         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
41578         (do_estimate_edge_time): Compute it.
41579         * ipa-inline.c (want_inline_small_function_p): Bypass
41580         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
41581
41582 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41583
41584         * ipa-inline.c (spec_rem): New static variable.
41585         (dump_overall_stats): New function.
41586         (dump_inline_stats): New function.
41587
41588 2014-04-18  Richard Henderson  <rth@redhat.com>
41589
41590         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
41591         to GET_MODE_SIZE, not a reg_class_t.
41592
41593 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41594
41595         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
41596         (vsx_xxmrglw_<mode>): Likewise.
41597
41598 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
41599
41600         PR target/60876
41601         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
41602         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
41603         (rs6000_init_hard_regno_mode_ok): Likewise.
41604
41605 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
41606
41607         * ipa-inline.c (inline_small_functions): Account only non-cold
41608         functions.
41609         * doc/invoke.texi (inline-unit-growth): Update documentation.
41610
41611 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
41612
41613         * config/rs6000/rs6000.md (addti3, subti3): New.
41614
41615 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
41616
41617         PR target/60863
41618         * config/i386/i386.c (ix86_expand_clear): Remove outdated
41619         comment.  Check optimize_insn_for_size_p instead of
41620         optimize_insn_for_speed_p.
41621
41622 2014-04-17  Martin Jambor  <mjambor@suse.cz>
41623
41624         * gimple-iterator.c (gsi_start_edge): New function.
41625         * gimple-iterator.h (gsi_start_edge): Declare.
41626         * tree-sra.c (single_non_eh_succ): New function.
41627         (disqualify_ops_if_throwing_stmt): Renamed to
41628         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
41629         having one non-EH successor BB.
41630         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
41631         generate loads into replacements.
41632         (sra_modify_assign): Likewise and and also use the simple path for
41633         such statements.
41634         (sra_modify_function_body): Commit statements on edges.
41635
41636 2014-04-17  Richard Biener  <rguenther@suse.de>
41637
41638         PR middle-end/60849
41639         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
41640         comparison results and add clarifying comment.
41641
41642 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41643
41644         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
41645         (blank_mode): Initialize it.
41646         (emit_mode_size_inline, emit_mode_nunits_inline,
41647         emit_mode_inner_inline): New functions.
41648         (emit_insn_modes_h): Call them and surround their output with
41649         #if GCC_VERSION >= 4001 ... #endif.
41650         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
41651         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
41652         mode_* arrays if the argument is __builtin_constant_p.
41653         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
41654         is enum machine_mode.
41655
41656 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41657
41658         * passes.c (opt_pass::execute): Adjust.
41659         (pass_manager::execute_pass_mode_switching): Likewise.
41660         (early_local_passes::execute): Likewise.
41661         (execute_one_pass): Pass cfun to the pass's execute method.
41662         * tree-pass.h (opt_pass::execute): Add function * argument.
41663         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41664         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41665         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41666         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41667         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41668         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
41669         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
41670         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41671         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41672         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
41673         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
41674         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
41675         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
41676         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
41677         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41678         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41679         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41680         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
41681         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
41682         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41683         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41684         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41685         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41686         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41687         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41688         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41689         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41690         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41691         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41692         Adjust.
41693
41694 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41695
41696         * passes.c (opt_pass::gate): Take function * argument.
41697         (gate_all_early_local_passes): Merge into
41698         (early_local_passes::gate): this.
41699         (gate_all_early_optimizations): Merge into
41700         (all_early_optimizations::gate): this.
41701         (gate_all_optimizations): Mege into
41702         (all_optimizations::gate): this.
41703         (gate_all_optimizations_g): Merge into
41704         (all_optimizations_g::gate): this.
41705         (gate_rest_of_compilation): Mege into
41706         (rest_of_compilation::gate): this.
41707         (gate_postreload): Merge into
41708         (postreload::gate): this.
41709         (dump_one_pass): Pass cfun to the pass's gate method.
41710         (execute_ipa_summary_passes): Likewise.
41711         (execute_one_pass): Likewise.
41712         (ipa_write_summaries_2): Likewise.
41713         (ipa_write_optimization_summaries_1): Likewise.
41714         (ipa_read_summaries_1): Likewise.
41715         (ipa_read_optimization_summaries_1): Likewise.
41716         (execute_ipa_stmt_fixups): Likewise.
41717         * tree-pass.h (opt_pass::gate): Add function * argument.
41718         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
41719         combine-stack-adj.c, combine.c, compare-elim.c,
41720         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41721         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
41722         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
41723         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
41724         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41725         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41726         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41727         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
41728         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
41729         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
41730         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41731         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41732         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
41733         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41734         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41735         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41736         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41737         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41738         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41739         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41740         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41741         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41742         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
41743         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
41744         var-tracking.c, vtable-verify.c, web.c: Adjust.
41745
41746 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41747
41748         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
41749         * configure: Regenerate.
41750
41751 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41752
41753         * passes.c (dump_one_pass): don't check pass->has_gate.
41754         (execute_ipa_summary_passes): Likewise.
41755         (execute_one_pass): Likewise.
41756         (ipa_write_summaries_2): Likewise.
41757         (ipa_write_optimization_summaries_1): Likewise.
41758         (ipa_read_optimization_summaries_1): Likewise.
41759         (execute_ipa_stmt_fixups): Likewise.
41760         * tree-pass.h (pass_data::has_gate): Remove.
41761         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41762         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41763         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41764         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41765         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41766         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
41767         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
41768         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
41769         gimple-low.c, gimple-ssa-isolate-paths.c,
41770         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
41771         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
41772         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41773         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
41774         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
41775         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
41776         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
41777         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
41778         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
41779         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41780         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41781         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41782         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41783         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41784         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41785         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41786         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41787         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41788         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41789         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41790         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41791         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41792         Adjust.
41793
41794 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41795
41796         * pass_manager.h (pass_manager::register_dump_files_1): Remove
41797         declaration.
41798         * passes.c (pass_manager::register_dump_files_1): Merge into
41799         (pass_manager::register_dump_files): this, and remove its handling of
41800         properties since the pass always has the properties anyway.
41801         (pass_manager::pass_manager): Adjust.
41802
41803 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41804
41805         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
41806         * passes.c (pass_manager::register_dump_files_1): Remove dead code
41807         dealing with properties.
41808         (pass_manager::register_dump_files): Adjust.
41809
41810 2014-03-20  Mark Wielaard  <mjw@redhat.com>
41811
41812         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
41813         then represent the bound as normal constant value.
41814
41815 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41816
41817         PR target/60847
41818         Forward port from 4.8 branch
41819         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
41820
41821         * config/i386/bmiintrin.h (_blsi_u32): New.
41822         (_blsi_u64): Ditto.
41823         (_blsr_u32): Ditto.
41824         (_blsr_u64): Ditto.
41825         (_blsmsk_u32): Ditto.
41826         (_blsmsk_u64): Ditto.
41827         (_tzcnt_u32): Ditto.
41828         (_tzcnt_u64): Ditto.
41829
41830 2014-04-17  Kito Cheng  <kito@0xlab.org>
41831
41832         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
41833
41834 2014-04-17  Richard Biener  <rguenther@suse.de>
41835
41836         PR middle-end/60849
41837         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
41838         boolean results for comparisons.
41839
41840 2014-04-17  Richard Biener  <rguenther@suse.de>
41841
41842         PR tree-optimization/60836
41843         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
41844         initial PHI args to be gimple values.
41845
41846 2014-04-17  Richard Biener  <rguenther@suse.de>
41847
41848         PR tree-optimization/60841
41849         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
41850         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
41851         of stmts to SLP build.
41852         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
41853         (vect_analyze_slp): Likewise.
41854         (vect_analyze_slp_instance): Likewise.
41855         (vect_build_slp_tree): Limit overall SLP tree growth.
41856         * tree-vectorizer.h (vect_analyze_data_refs,
41857         vect_analyze_slp): Adjust prototypes.
41858
41859 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41860
41861         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
41862         Silvermont.
41863
41864 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41865
41866         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
41867         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
41868         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
41869         for TARGET_SLOW_PSHUFB
41870
41871 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41872
41873         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
41874         * config/i386/i386.c (intel_cost): Ditto.
41875
41876 2014-04-17  Joey Ye  <joey.ye@arm.com>
41877
41878         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
41879
41880 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41881
41882         * opts.c (common_handle_option): Disable -fipa-reference coorectly
41883         with -fuse-profile.
41884
41885 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41886
41887         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
41888         (type_all_derivations_known_p): New predicate.
41889         (type_all_ctors_visible_p): New predicate.
41890         (type_possibly_instantiated_p): New predicate.
41891         (get_odr_type): Compute all_derivations_known.
41892         (dump_odr_type): Dump the flag.
41893         (maybe_record_type): Cleanup.
41894         (record_target_from_binfo): Add bases_to_consider array;
41895         record bases for types w/o instances and skip CXX destructor.
41896         (possible_polymorphic_call_targets_1): Add bases_to_consider
41897         and consider_construction parameters; check if type may have instance.
41898         (get_polymorphic_call_info): Set maybe_in_construction to true
41899         when we know nothing.
41900         (record_targets_from_bases): Skip CXX destructors; they are
41901         never called for types in construction.
41902         (possible_polymorphic_call_targets): Do not record target when
41903         type may not have instance.
41904
41905 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41906
41907         PR ipa/60854
41908         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
41909         external aliases alive, too.
41910
41911 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
41912
41913         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
41914         definition.
41915
41916 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41917
41918         * final.c (compute_alignments): Do not apply loop alignment to a block
41919         falling through to the exit.
41920
41921 2014-04-16  Catherine Moore  <clm@codesourcery.com>
41922
41923         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
41924         Adjust constraints for microMIPS store patterns.
41925
41926 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
41927
41928         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
41929
41930 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41931
41932         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
41933         (append_use): Run at -O0.
41934         (append_vdef): Likewise.
41935         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
41936         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
41937
41938 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
41939
41940         PR tree-optimization/60844
41941         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
41942         (propagate_op_to_single_use, remove_visited_stmt_chain,
41943         linearize_expr, repropagate_negates, reassociate_bb): Use it
41944         instead of gsi_remove.
41945
41946 2014-04-16  Martin Jambor  <mjambor@suse.cz>
41947
41948         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
41949         ipa_transforms_to_apply.
41950         (cgraph_function_versioning): Assert that old_node has empty
41951         ipa_transforms_to_apply.
41952         * trans-mem.c (ipa_tm_create_version): Likewise.
41953         * tree-inline.c (tree_function_versioning): Do not duplicate
41954         ipa_transforms_to_apply.
41955
41956 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41957
41958         PR target/60817
41959         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
41960         x86_64-*-* cases.
41961         Pass necessary as flags on 64-bit Solaris/x86.
41962         Use lowercase relocs for x86_64-*-*.
41963         * configure: Regenerate.
41964
41965 2014-04-15  Jan Hubicka  <jh@suse.cz>
41966
41967         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
41968         (maybe_record_node, likely_target_p): Use it.
41969
41970 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41971
41972         PR target/60839
41973         Revert following patch
41974
41975         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
41976
41977         PR target/60735
41978         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
41979         software floating point or no floating point registers, do not
41980         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
41981         in GPRs that occurs after we tested for GPRs that would never be
41982         true.
41983
41984         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
41985         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
41986         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
41987         specifically allow DDmode, since that does not use the SPE SIMD
41988         instructions.
41989
41990 2014-03-21  Mark Wielaard  <mjw@redhat.com>
41991
41992         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
41993         as unsigned or int depending on type and value used.
41994
41995 2014-04-15  Richard Biener  <rguenther@suse.de>
41996
41997         PR rtl-optimization/56965
41998         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
41999         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
42000         ... here.
42001         * alias.c (true_dependence_1): Do not call
42002         nonoverlapping_component_refs_p.
42003         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
42004         nonoverlapping_component_refs_p.
42005         (indirect_refs_may_alias_p): Likewise.
42006
42007 2014-04-15  Teresa Johnson  <tejohnson@google.com>
42008
42009         * cfg.c (dump_bb_info): Fix flags check.
42010         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
42011
42012 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42013
42014         PR rtl-optimization/60663
42015         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
42016         avoid 0 cost.
42017
42018 2014-04-15  Richard Biener  <rguenther@suse.de>
42019
42020         * lto-streamer.h (LTO_major_version): Bump to 4.
42021
42022 2014-04-15  Richard Biener  <rguenther@suse.de>
42023
42024         * common.opt (lto_partition_model): New enum.
42025         (flto-partition=): Merge separate options with a single with argument,
42026         add -flto-partition=one support.
42027         * flag-types.h (enum lto_partition_model): Declare.
42028         * opts.c (finish_options): Remove duplicate -flto-partition=
42029         option check.
42030         * lto-wrapper.c (run_gcc): Adjust.
42031
42032 2014-04-15  Richard Biener  <rguenther@suse.de>
42033
42034         * alias.c (ncr_compar): New function.
42035         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
42036
42037 2014-04-15  Richard Biener  <rguenther@suse.de>
42038
42039         * alias.c (record_component_aliases): Do not walk BINFOs.
42040
42041 2014-04-15  Richard Biener  <rguenther@suse.de>
42042
42043         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
42044         Add struct function argument and adjust.
42045         (find_func_aliases_for_call): Likewise.
42046         (find_func_aliases): Likewise.
42047         (find_func_clobbers): Likewise.
42048         (intra_create_variable_infos): Likewise.
42049         (compute_points_to_sets): Likewise.
42050         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
42051
42052 2014-04-15  Richard Biener  <rguenther@suse.de>
42053
42054         * tree.c (iterative_hash_expr): Use enum tree_code_class
42055         to store TREE_CODE_CLASS.
42056         (tree_block): Likewise.
42057         (tree_set_block): Likewise.
42058         * tree.h (fold_build_pointer_plus_loc): Use
42059         convert_to_ptrofftype_loc.
42060
42061 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
42062
42063         PR plugins/59335
42064         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
42065         added in 4.9.
42066
42067 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
42068
42069         * cfgloop.h (struct loop): Move force_vectorize down.
42070         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
42071         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
42072         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
42073         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
42074         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
42075         * tree-core.h (enum annot_expr_kind): Add new kind values.
42076         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
42077         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
42078         kinds.
42079         * tree.def (ANNOTATE_EXPR): Tweak comment.
42080
42081 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42082
42083         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
42084         cxa_pure_virtual).
42085
42086 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
42087
42088         * tree.h (TYPE_IDENTIFIER): Declare.
42089         * tree.c (subrange_type_for_debug_p): Use it.
42090         * godump.c (go_format_type): Likewise.
42091         * dwarf2out.c (is_cxx_auto, modified_type_die,
42092         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
42093         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
42094
42095 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42096
42097         PR lto/60820
42098         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
42099
42100 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
42101
42102         * config/i386/i386.c (examine_argument): Return bool.  Return true if
42103         parameter should be passed in memory.
42104         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
42105         (construct_container): Update calls to examine_argument.
42106         (function_arg_advance_64): Ditto.
42107         (return_in_memory_32): Merge with ix86_return_in_memory.
42108         (return_in_memory_64): Ditto.
42109         (return_in_memory_ms_64): Ditto.
42110
42111 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
42112
42113         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
42114         * coverage.c (coverage_compute_profile_id): Handle externally visible
42115         symbols.
42116
42117 2014-04-14  Martin Jambor  <mjambor@suse.cz>
42118
42119         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
42120         DECL_DISREGARD_INLINE_LIMITS functions.
42121
42122 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42123
42124         PR target/60827
42125         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
42126
42127 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
42128
42129         PR target/60827
42130         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
42131         optimize_insn_for_speed_p instead of
42132         optimize_function_for_speed_p.
42133
42134 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
42135
42136         * doc/invoke.texi (free): Document AArch64.
42137
42138 2014-04-14  Richard Biener  <rguenther@suse.de>
42139
42140         PR tree-optimization/60042
42141         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
42142         (insert_into_preds_of_block): Do not prevent PHI insertion
42143         for REFERENCE exprs here ...
42144         (eliminate_dom_walker::before_dom_children): ... but prevent
42145         their use here under similar conditions when applied to the
42146         IL after PRE optimizations.
42147
42148 2014-04-14  Richard Biener  <rguenther@suse.de>
42149
42150         * passes.def: Move early points-to after early SRA.
42151
42152 2014-04-14  Richard Biener  <rguenther@suse.de>
42153
42154         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
42155         check for which sign-changes we allow when forwarding
42156         a converted value into a switch.
42157
42158 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42159
42160         * stor-layout.c (place_field): Finalize non-constant offset for the
42161         field, if any.
42162
42163 2014-04-14  Richard Biener  <rguenther@suse.de>
42164
42165         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
42166         as argument.
42167         (expand_switch_using_bit_tests_p): Likewise.
42168         (process_switch): Compute and pass on speed_p based on the
42169         switch stmt.
42170         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
42171         optimize_bb_for_speed_p.
42172
42173 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42174
42175         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
42176         * function.h (struct function): Rename has_force_vect_loops into
42177         has_force_vectorize_loops.
42178         * lto-streamer-in.c (input_cfg): Adjust for renaming.
42179         (input_struct_function_base): Likewise.
42180         * lto-streamer-out.c (output_cfg): Likewise.
42181         (output_struct_function_base): Likewise.
42182         * omp-low.c (expand_omp_simd): Likewise.
42183         * tree-cfg.c (move_sese_region_to_fn): Likewise.
42184         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
42185         (version_loop_for_if_conversion): Likewise.
42186         (tree_if_conversion): Likewise.
42187         (main_tree_if_conversion): Likewise.
42188         (gate_tree_if_conversion): Likewise.
42189         * tree-inline.c (copy_loops): Likewise.
42190         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
42191         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
42192         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
42193         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
42194         * tree-vectorizer.c (vectorize_loops): Likewise.
42195         * tree-vectorizer.h (unlimited_cost_model): Likewise.
42196
42197 2014-04-14  Richard Biener  <rguenther@suse.de>
42198
42199         PR lto/60720
42200         * lto-streamer-out.c (wrap_refs): New function.
42201         (lto_output): Wrap symbol references in global initializes in
42202         type-preserving MEM_REFs.
42203
42204 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42205
42206         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
42207
42208 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42209
42210         * config/sh/sh.md (setmemqi): New expand pattern.
42211         * config/sh/sh.h (CLEAR_RATIO): Define.
42212         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
42213         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
42214
42215 2014-04-14  Richard Biener  <rguenther@suse.de>
42216
42217         PR middle-end/55022
42218         * fold-const.c (negate_expr_p): Don't negate directional rounding
42219         division.
42220         (fold_negate_expr): Likewise.
42221
42222 2014-04-14  Richard Biener  <rguenther@suse.de>
42223
42224         PR tree-optimization/59817
42225         PR tree-optimization/60453
42226         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
42227         recursion to catch all CHRECs in the scalar evolution and restrict
42228         the predicate for the remains appropriately.
42229
42230 2014-04-12  Catherine Moore  <clm@codesourcery.com>
42231
42232         * config/mips/constraints.md: Add new register constraint "kb".
42233         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
42234         (*movhi_internal): Likewise.
42235         (*movqi_internal): Likewise.
42236         * config/mips/mips.h (M16_STORE_REGS): New register class.
42237         (REG_CLASS_NAMES): Add M16_STORE_REGS.
42238         (REG_CLASS_CONTENTS): Likewise.
42239         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
42240
42241 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42242
42243         PR c/60194
42244         * doc/invoke.texi (-Wformat-signedness): Document it.
42245         (Wformat=2): Mention that this enables -Wformat-signedness.
42246
42247 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42248
42249         * common/config/epiphany/epiphany-common.c
42250         (epiphany_option_optimization_table): Enable section anchors by
42251         default at -O1 or higher.
42252         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
42253         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
42254         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
42255         carries no extra cost.
42256         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
42257         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
42258         * config/epiphany/predicates.md (memclob_operand): New predicate.
42259         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
42260         Use memclob_operand predicate and X constraint for operand 3.
42261
42262 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42263
42264         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42265         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42266         its operands.
42267
42268 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42269
42270         PR rtl-optimization/60651
42271         * mode-switching.c (optimize_mode_switching): Make sure to emit
42272         sets of a lower numbered entity before sets of a higher numbered
42273         entity to a mode of the same or lower priority.
42274         When creating a seginfo for a basic block that starts with a code
42275         label, move the insertion point past the code label.
42276         (new_seginfo): Document and enforce requirement that
42277         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42278         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42279         * doc/tm.texi: Regenerate.
42280
42281 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42282
42283         PR target/60811
42284         * config/arc/arc.c (arc_save_restore): Fix assert typo.
42285
42286 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
42287
42288         * BASE-VER: Set to 4.10.0.
42289
42290 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42291
42292         PR other/59055
42293         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42294         * doc/gcc.texi (Service): Update description in the @menu
42295         * doc/invoke.texi (Option Summary): Remove misplaced and
42296         duplicated @menu.
42297
42298 2014-04-11  Steve Ellcey  <sellcey@mips.com>
42299             Jakub Jelinek  <jakub@redhat.com>
42300
42301         PR middle-end/60556
42302         * expr.c (convert_move): Use emit_store_flag_force instead of
42303         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
42304         argument to it.
42305
42306 2014-04-11  Richard Biener  <rguenther@suse.de>
42307
42308         PR middle-end/60797
42309         * varasm.c (assemble_alias): Avoid endless error reporting
42310         recursion by setting TREE_ASM_WRITTEN.
42311
42312 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42313
42314         * config/s390/s390.md: Add a splitter for NOT rtx.
42315
42316 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
42317
42318         PR rtl-optimization/60663
42319         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
42320
42321 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
42322             Jakub Jelinek  <jakub@redhat.com>
42323
42324         PR lto/60567
42325         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
42326         flag from decl_node to node.
42327
42328 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42329
42330         PR debug/60655
42331         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
42332         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
42333         ameliorating the cases where it can be.
42334
42335 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
42336
42337         Revert
42338         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42339
42340         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42341         (loadsync_<mode>): Change mode.
42342         (load_quadpti, store_quadpti): New.
42343         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42344         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42345         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
42346
42347 2014-04-09  Cong Hou  <congh@google.com>
42348
42349         PR testsuite/60773
42350         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
42351         documentation.
42352
42353 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42354
42355         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
42356         instead of vnor to exploit possible fusion opportunity in the
42357         future.
42358         (altivec_expand_vec_perm_const_le): Likewise.
42359
42360 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42361
42362         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42363         (loadsync_<mode>): Change mode.
42364         (load_quadpti, store_quadpti): New.
42365         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42366         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42367
42368 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
42369
42370         PR target/60763
42371         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
42372         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
42373         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
42374
42375 2014-04-08  Richard Biener  <rguenther@suse.de>
42376
42377         PR middle-end/60706
42378         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
42379         a 64bit widest int print double-int similar to on HWI64 hosts.
42380
42381 2014-04-08  Richard Biener  <rguenther@suse.de>
42382
42383         PR tree-optimization/60785
42384         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
42385         default defs properly.
42386
42387 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
42388
42389         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
42390         (Weffc++): Likewise.
42391
42392 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
42393
42394         * ipa-devirt.c (maybe_record_node): When node is not recorded,
42395         set completep to false rather than true.
42396
42397 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
42398
42399         PR target/60504
42400         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
42401         ARM_TARGET2_DWARF_FORMAT.
42402
42403 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
42404
42405         PR target/60609
42406         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
42407         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
42408         ADDR_DIFF_VEC.
42409
42410 2014-04-07  Richard Biener  <rguenther@suse.de>
42411
42412         PR tree-optimization/60766
42413         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
42414         (may_eliminate_iv): Convert cand_value_at result to desired type.
42415
42416 2014-04-07  Jason Merrill  <jason@redhat.com>
42417
42418         PR c++/60731
42419         * common.opt (-fno-gnu-unique): Add.
42420         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
42421
42422 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42423
42424         * haifa-sched.c: Fix outdated function reference and minor
42425         grammar errors in introductory comment.
42426
42427 2014-04-07  Richard Biener  <rguenther@suse.de>
42428
42429         PR middle-end/60750
42430         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
42431         for noreturn calls.
42432         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
42433
42434 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
42435
42436         PR debug/55794
42437         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
42438         size accounting for thunks.
42439         (pa_asm_output_mi_thunk): Use final_start_function() and
42440         final_end_function() to output function start and end directives.
42441
42442 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
42443
42444         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
42445         device specific ISA/ feature information. Remove short_sp and
42446         errata_skip ds.  Add avr_device_specific_features enum to have device
42447         specific info.
42448         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
42449         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
42450         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
42451         updated device specific info.
42452         * config/avr/avr-mcus.def: Merge device specific details to
42453         dev_attribute field.
42454         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
42455         errata_skip.
42456         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
42457         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
42458         assembler if RMW isa supported by current device.
42459         * config/avr/genmultilib.awk: Update as device info structure changed.
42460         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
42461
42462 2014-04-04  Cong Hou  <congh@google.com>
42463
42464         PR tree-optimization/60656
42465         * tree-vect-stmts.c (supportable_widening_operation):
42466         Fix a bug that elements in a vector with vect_used_by_reduction
42467         property are incorrectly reordered when the operation on it is not
42468         consistant with the one in reduction operation.
42469
42470 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
42471
42472         PR rtl-optimization/60155
42473         * gcse.c (record_set_data): New function.
42474         (single_set_gcse): New function.
42475         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
42476         (hoist_code): Likewise.
42477         (get_pressure_class_and_nregs): Likewise.
42478
42479 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
42480
42481         * explow.c (probe_stack_range): Emit a final optimization blockage.
42482
42483 2014-04-04  Anthony Green  <green@moxielogic.com>
42484
42485         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
42486         typos.
42487
42488 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
42489
42490         PR ipa/59626
42491         * lto-cgraph.c (input_overwrite_node): Check that partitioning
42492         flags are set only during streaming.
42493         * ipa.c (process_references, walk_polymorphic_call_targets,
42494         symtab_remove_unreachable_nodes): Drop bodies of always inline
42495         after early inlining.
42496         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
42497
42498 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
42499         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42500
42501         PR debug/60655
42502         * dwarf2out.c (const_ok_for_output_1): Reject expressions
42503         containing a NOT.
42504
42505 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42506
42507         PR bootstrap/60743
42508         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
42509         duration.
42510         (cortex_a53_fdivd): Likewise.
42511
42512 2014-04-04  Martin Jambor  <mjambor@suse.cz>
42513
42514         PR ipa/60640
42515         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
42516         Adjust all callers.
42517         * cgraph.c (clone_of_p): Also return true if thunks match.
42518         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
42519         cgraph_function_or_thunk_node and an obsolete comment.
42520         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
42521         file.
42522         (build_function_decl_skip_args): Likewise.
42523         (set_new_clone_decl_and_node_flags): New function.
42524         (duplicate_thunk_for_node): Likewise.
42525         (redirect_edge_duplicating_thunks): Likewise.
42526         (cgraph_clone_node): New parameter args_to_skip, pass it to
42527         redirect_edge_duplicating_thunks which is called instead of
42528         cgraph_redirect_edge_callee.
42529         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
42530         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
42531
42532 2014-04-04  Jeff Law  <law@redhat.com>
42533
42534         PR target/60657
42535         * config/arm/predicates.md (const_int_I_operand): New predicate.
42536         (const_int_M_operand): Similarly.
42537         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
42538         const_int_operand.
42539         (insv_t2, extv_reg, extzv_t2): Likewise.
42540         (load_multiple_with_writeback): Similarly for const_int_I_operand.
42541         (pop_multiple_with_writeback_and_return): Likewise.
42542         (vfp_pop_multiple_with_writeback): Likewise
42543
42544 2014-04-04  Richard Biener  <rguenther@suse.de>
42545
42546         PR ipa/60746
42547         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
42548         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
42549         non-GIMPLE_LABELs.
42550         * gimplify.h (gimple_add_tmp_var_fn): Declare.
42551         * gimplify.c (gimple_add_tmp_var_fn): New function.
42552         * gimple-expr.h (create_tmp_reg_fn): Declare.
42553         * gimple-expr.c (create_tmp_reg_fn): New function.
42554         * gimple-low.c (record_vars_into): Don't change cfun.
42555         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
42556         code generation without cfun.
42557
42558 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
42559
42560         PR bootstrap/60719
42561         * Makefile.in (install-driver): Fix shell scripting.
42562
42563 2014-04-03  Cong Hou  <congh@google.com>
42564
42565         PR tree-optimization/60505
42566         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
42567         threshold of number of iterations below which no vectorization
42568         will be done.
42569         * tree-vect-loop.c (new_loop_vec_info):
42570         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
42571         * tree-vect-loop.c (vect_analyze_loop_operations):
42572         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
42573         * tree-vect-loop.c (vect_transform_loop):
42574         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
42575         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
42576         of iterations of the loop and see if we should build the epilogue.
42577
42578 2014-04-03  Richard Biener  <rguenther@suse.de>
42579
42580         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
42581         (streamer_tree_cache_create): Adjust.
42582         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
42583         to allow optional nodes array.
42584         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
42585         (streamer_tree_cache_append): Likewise.
42586         (streamer_tree_cache_create): Create nodes array optionally
42587         as specified by parameter.
42588         * lto-streamer-out.c (create_output_block): Avoid maintaining
42589         the node array in the writer cache.
42590         (DFS_write_tree): Remove assertion.
42591         (produce_asm_for_decls): Free the out decl state hash table early.
42592         * lto-streamer-in.c (lto_data_in_create): Adjust for
42593         streamer_tree_cache_create prototype change.
42594
42595 2014-04-03  Richard Biener  <rguenther@suse.de>
42596
42597         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
42598         set TREE_CHAIN to NULL_TREE.
42599
42600 2014-04-03  Richard Biener  <rguenther@suse.de>
42601
42602         PR tree-optimization/60740
42603         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
42604         over all GIMPLE_COND operands.
42605
42606 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
42607
42608         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
42609         (Weffc++): Remove Scott's numbering, merge lists and reference
42610         Wnon-virtual-dtor.
42611
42612 2014-04-03  Nick Clifton  <nickc@redhat.com>
42613
42614         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
42615         properly.
42616
42617 2014-04-03  Martin Jambor  <mjambor@suse.cz>
42618
42619         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
42620         mention gcc_unreachable before failing.
42621         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
42622         removed symbols.
42623
42624 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
42625
42626         PR ipa/60659
42627         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
42628         inconsistent code and instead mark the context inconsistent.
42629         (possible_polymorphic_call_targets): For inconsistent contexts
42630         return empty complete list.
42631
42632 2014-04-02  Anthony Green  <green@moxielogic.com>
42633
42634         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
42635         (extendqisi2, extendhisi2): Define.
42636         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
42637         (WCHAR_TYPE): Change to unsigned int.
42638
42639 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42640
42641         PR tree-optimization/60733
42642         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
42643         insertion point for PHI candidates to be the end of the feeding
42644         block for the PHI argument.
42645
42646 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
42647
42648         PR rtl-optimization/60650
42649         * lra-constraints.c (process_alt_operands): Decrease reject for
42650         earlyclobber matching.
42651
42652 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42653
42654         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
42655
42656 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42657
42658         * config/spu/spu.c (pad_bb): Do not crash when the last
42659         insn is CODE_FOR_blockage.
42660
42661 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42662
42663         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
42664         lies outside the target mode.
42665
42666 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42667
42668         PR target/60735
42669         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42670         software floating point or no floating point registers, do not
42671         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42672         in GPRs that occurs after we tested for GPRs that would never be
42673         true.
42674
42675         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42676         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42677         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42678         specifically allow DDmode, since that does not use the SPE SIMD
42679         instructions.
42680
42681 2014-04-02  Richard Biener  <rguenther@suse.de>
42682
42683         PR middle-end/60729
42684         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
42685         MODE_INTs.  Properly use negv_optab.
42686         (expand_abs): Likewise.
42687
42688 2014-04-02  Richard Biener  <rguenther@suse.de>
42689
42690         PR bootstrap/60719
42691         * Makefile.in (install-driver): Guard extra installs with special
42692         names properly.
42693
42694 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
42695
42696         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42697         Document vec_vgbbd.
42698
42699 2014-04-01  Richard Henderson  <rth@redhat.com>
42700
42701         PR target/60704
42702         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
42703         alternative enabled before register allocation.
42704
42705 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
42706
42707         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
42708         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
42709         typo.
42710         (nios2_large_got_address): Remove unneeded 'sym' parameter.
42711         (nios2_got_address): Update nios2_large_got_address call site.
42712         (nios2_delegitimize_address): New function.
42713         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
42714         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
42715         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
42716
42717 2014-04-01  Martin Husemann  <martin@duskware.de>
42718
42719         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
42720         for -mabi=32.
42721
42722 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
42723
42724         PR rtl-optimization/60604
42725         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
42726         check from register_operand.
42727         (register_operand): Redefine in terms of general_operand.
42728         (nonmemory_operand): Use register_operand for the non-constant cases.
42729
42730 2014-04-01  Richard Biener  <rguenther@suse.de>
42731
42732         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
42733
42734 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
42735
42736         * doc/invoke.texi (mapp-regs): Clarify.
42737
42738 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
42739
42740         * config/i386/avx512fintrin.h (__v32hi): Define type.
42741         (__v64qi): Likewise.
42742         (_mm512_set1_epi8): Define.
42743         (_mm512_set1_epi16): Define.
42744         (_mm512_set4_epi32): Define.
42745         (_mm512_set4_epi64): Define.
42746         (_mm512_set4_pd): Define.
42747         (_mm512_set4_ps): Define.
42748         (_mm512_setr4_epi64): Define.
42749         (_mm512_setr4_epi32): Define.
42750         (_mm512_setr4_pd): Define.
42751         (_mm512_setr4_ps): Define.
42752         (_mm512_setzero_epi32): Define.
42753
42754 2014-03-31  Martin Jambor  <mjambor@suse.cz>
42755
42756         PR middle-end/60647
42757         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
42758         callsite_arguments_match_p.  Updated all callers.  Also check types of
42759         corresponding formal parameters and actual arguments.
42760         (not_all_callers_have_enough_arguments_p) Renamed to
42761         some_callers_have_mismatched_arguments_p.
42762
42763 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
42764
42765         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
42766
42767 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
42768
42769         PR target/60034
42770         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
42771         section anchor.
42772
42773 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
42774
42775         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
42776         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
42777         Split out
42778         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
42779         Use FMAMODE_NOVF512 mode iterator.
42780         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
42781         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
42782         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
42783         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
42784         Split out
42785         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
42786         Use VF_128_256 mode iterator.
42787         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
42788         Ditto.
42789
42790 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42791
42792         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
42793         static chain if needed.
42794
42795 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42796
42797         PR target/60697
42798         * lra-constraints.c (index_part_to_reg): New.
42799         (process_address): Use it.
42800
42801 2014-03-27  Jeff Law  <law@redhat.com>
42802             Jakub Jelinek  <jakub@redhat.com>
42803
42804         PR target/60648
42805         * expr.c (do_tablejump): Use simplify_gen_binary rather than
42806         gen_rtx_{PLUS,MULT} to build up the address expression.
42807
42808         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
42809         creating non-canonical RTL.
42810
42811 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42812
42813         PR ipa/60243
42814         * ipa-inline.c (want_inline_small_function_p): Short circuit large
42815         functions; reorganize to make cheap checks first.
42816         (inline_small_functions): Do not estimate growth when dumping;
42817         it is expensive.
42818         * ipa-inline.h (inline_summary): Add min_size.
42819         (growth_likely_positive): New function.
42820         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
42821         (set_cond_stmt_execution_predicate): Cleanup.
42822         (estimate_edge_size_and_time): Compute min_size.
42823         (estimate_calls_size_and_time): Likewise.
42824         (estimate_node_size_and_time): Likewise.
42825         (inline_update_overall_summary): Update min_size.
42826         (do_estimate_edge_time): Likewise.
42827         (do_estimate_edge_size): Update.
42828         (do_estimate_edge_hints): Update.
42829         (growth_likely_positive): New function.
42830
42831 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
42832
42833         PR target/60693
42834         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
42835         also if addr has VOIDmode.
42836
42837 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42838
42839         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
42840         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
42841         Declare extern.
42842         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
42843         instructions as well as AdvancedSIMD loads.
42844
42845 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42846
42847         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
42848         Use crypto_aese type.
42849         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
42850         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
42851         crypto_aese, crypto_aesmc.  Move to types.md.
42852         * config/arm/types.md (crypto_aes): Split into crypto_aese,
42853         crypto_aesmc.
42854         * config/arm/iterators.md (crypto_type): Likewise.
42855
42856 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42857
42858         * cgraph.c: Include expr.h and tree-dfa.h.
42859         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
42860         remove LHS.
42861
42862 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42863
42864         PR target/60675
42865         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
42866         regs from checking multi-reg pseudos.
42867
42868 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42869
42870         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
42871
42872 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42873
42874         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
42875         if it would clobber the stack pointer, even temporarily.
42876
42877 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
42878
42879         * mode-switching.c: Make small adjustments to the top comment.
42880
42881 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
42882
42883         * config/rs6000/constraints.md (wD constraint): New constraint to
42884         match the constant integer to get the top DImode/DFmode out of a
42885         vector in a VSX register.
42886
42887         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
42888         match the constant integer to get the top DImode/DFmode out of a
42889         vector in a VSX register.
42890
42891         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
42892         for ISA 2.07.
42893
42894         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
42895         vbpermq builtins.
42896
42897         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
42898         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
42899
42900         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
42901         Optimize vec_extract of 64-bit values, where the value being
42902         extracted is in the top word, where we can use scalar
42903         instructions.  Add direct move and store support.  Combine the big
42904         endian/little endian vector select load support into a single insn.
42905         (vsx_extract_<mode>_internal1): Likewise.
42906         (vsx_extract_<mode>_internal2): Likewise.
42907         (vsx_extract_<mode>_load): Likewise.
42908         (vsx_extract_<mode>_store): Likewise.
42909         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
42910         combined into vsx_extract_<mode>_load.
42911         (vsx_extract_<mode>_one_le): Likewise.
42912
42913         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
42914         define the top 64-bit vector element.
42915
42916         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
42917         constraint.
42918
42919         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42920         Document vec_vbpermq builtin.
42921
42922         PR target/60672
42923         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
42924         enable use of xxsldwi and xxpermdi builtin functions.
42925         (vec_xxpermdi): Likewise.
42926
42927         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42928         Document use of vec_xxsldwi and vec_xxpermdi builtins.
42929
42930 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
42931
42932         PR rtl-optimization/60650
42933         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
42934         first_p.  Use it.
42935         (find_spills_for): New.
42936         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
42937         Spill all pseudos on the second iteration.
42938
42939 2014-03-27  Marek Polacek  <polacek@redhat.com>
42940
42941         PR c/50347
42942         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
42943         types.
42944
42945 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42946
42947         * config/s390/s390.c (s390_can_use_return_insn): Check for
42948         call-saved FPRs on 31 bit.
42949
42950 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
42951
42952         PR middle-end/60682
42953         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
42954         if they need regimplification, just drop them instead of
42955         calling gimple_regimplify_operands on them.
42956
42957 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
42958
42959         PR target/60580
42960         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
42961         (aarch64_frame_pointer_required): Adjust logic.
42962         (aarch64_can_eliminate): Adjust logic.
42963         (aarch64_override_options_after_change): Adjust logic.
42964
42965 2014-03-27  Dehao Chen  <dehao@google.com>
42966
42967         * ipa-inline.c (early_inliner): Update node's inline info.
42968
42969 2014-03-26  Dehao Chen  <dehao@google.com>
42970
42971         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
42972         compiler inserted conditional jumps for NAN float check.
42973
42974 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
42975
42976         * ubsan.h (ubsan_create_data): Change second argument's type
42977         to const location_t *.
42978         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
42979         _("<unknown>").
42980         (ubsan_create_data): Change second argument to const location_t *PLOC.
42981         Create Loc field whenever PLOC is non-NULL.
42982         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
42983         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
42984         callers.
42985
42986         PR other/59545
42987         * real.c (real_to_integer2): Change type of low to UHWI.
42988
42989 2014-03-26  Tobias Burnus  <burnus@net-b.de>
42990
42991         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
42992         (CILK_SELF_SPECS): New define.
42993         (driver_self_specs): Use it.
42994
42995 2014-03-26  Richard Biener  <rguenther@suse.de>
42996
42997         * tree-pretty-print.c (percent_K_format): Implement special
42998         case for LTO and its stripped down BLOCK tree.
42999
43000 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
43001
43002         PR sanitizer/60636
43003         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
43004
43005         * tree-vrp.c (simplify_internal_call_using_ranges): If only
43006         one range is range_int_cst_p, but not both, at least optimize
43007         addition/subtraction of 0 and multiplication by 0 or 1.
43008         * gimple-fold.c (gimple_fold_call): Fold
43009         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
43010         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
43011         INTEGER_CSTs, try to fold at least x * 0 and y - y.
43012
43013 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
43014
43015         PR rtl-optimization/60452
43016         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
43017         <case REG>: Return 1 for invalid offsets from the frame pointer.
43018
43019 2014-03-26  Marek Polacek  <polacek@redhat.com>
43020
43021         PR c/37428
43022         * doc/extend.texi (C Extensions): Mention variable-length arrays in
43023         a structure/union.
43024
43025 2014-03-26  Marek Polacek  <polacek@redhat.com>
43026
43027         PR c/39525
43028         * doc/extend.texi (Designated Inits): Describe what happens to omitted
43029         field members.
43030
43031 2014-03-26  Marek Polacek  <polacek@redhat.com>
43032
43033         PR other/59545
43034         * ira-color.c (update_conflict_hard_regno_costs): Perform the
43035         multiplication in unsigned type.
43036
43037 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43038
43039         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
43040
43041 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
43042
43043         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
43044
43045 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43046
43047         PR ipa/60315
43048         * cif-code.def (UNREACHABLE) New code.
43049         * ipa-inline.c (inline_small_functions): Skip edges to
43050         __builtlin_unreachable.
43051         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
43052         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
43053         predicate to __bulitin_unreachable.
43054         (set_cond_stmt_execution_predicate): Fix issue when
43055         invert_tree_comparison returns ERROR_MARK.
43056         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
43057         propagate to inline clones.
43058         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
43059         to unreachable.
43060         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
43061         * cgraphclones.c (cgraph_clone_node): If call destination is already
43062         ureachable, do not redirect it back.
43063         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
43064         unreachable.
43065
43066 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
43067
43068         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
43069         Do not modify inline clones.
43070
43071 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43072
43073         * config/i386/i386.md (general_sext_operand): New mode attr.
43074         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
43075         don't generate (sign_extend (const_int)).
43076         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
43077         operands[2].  Use We constraint instead of <i> and
43078         <general_sext_operand> predicate instead of <general_operand>.
43079         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
43080         * config/i386/constraints.md (We): New constraint.
43081         * config/i386/predicates.md (x86_64_sext_operand,
43082         sext_operand): New predicates.
43083
43084 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43085
43086         PR ipa/60600
43087         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
43088         inconsistent devirtualizations to __builtin_unreachable.
43089
43090 2014-03-25  Marek Polacek  <polacek@redhat.com>
43091
43092         PR c/35449
43093         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
43094
43095 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
43096
43097         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
43098         order of elements for big-endian.
43099
43100 2014-03-25  Richard Biener  <rguenther@suse.de>
43101
43102         PR middle-end/60635
43103         * gimplify-me.c (gimple_regimplify_operands): Update the
43104         re-gimplifed stmt.
43105
43106 2014-03-25  Martin Jambor  <mjambor@suse.cz>
43107
43108         PR ipa/59176
43109         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
43110         (lto_output_varpool_node): Likewise.
43111         (input_overwrite_node): Likewise.
43112         (input_varpool_node): Likewise.
43113
43114 2014-03-25  Richard Biener  <rguenther@suse.de>
43115
43116         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
43117         (run_gcc): Likewise.
43118
43119 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
43120
43121         * combine.c (simplify_compare_const): Add MODE argument.
43122         Handle mode_width 0 as very large mode_width.
43123         (try_combine, simplify_comparison): Adjust callers.
43124
43125         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
43126         type to avoid signed integer overflow.
43127         * explow.c (plus_constant): Likewise.
43128
43129 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
43130
43131         * doc/generic.texi: Correct typos.
43132
43133 2014-03-24  Tobias Burnus  <burnus@net-b.de>
43134
43135         * doc/invoke.texi (-flto): Expand section about
43136         using static libraries with LTO.
43137
43138 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
43139
43140         PR rtl-optimization/60501
43141         * optabs.def (addptr3_optab): New optab.
43142         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
43143         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
43144         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
43145
43146         * lra.c (emit_add3_insn): Use the addptr pattern if available.
43147
43148         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
43149
43150 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
43151
43152         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
43153         _mm512_set1_pd.
43154
43155         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
43156         (_mm256_undefined_ps): Define.
43157         (_mm256_undefined_pd): Define.
43158         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
43159         (_mm_undefined_pd): Define.
43160         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
43161         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
43162         (_mm512_undefined_ps): Define.
43163         (_mm512_undefined_pd): Define.
43164         Use _mm*_undefined_*.
43165         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
43166
43167 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
43168
43169         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
43170         (lshr_simd): DI mode added.
43171         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
43172         (aarch64_ushr_simddi): Likewise.
43173         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
43174         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
43175         (vshrd_n_u64): Likewise.
43176
43177 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43178
43179         * Makefile.in (s-macro_list): Depend on cc1.
43180
43181 2014-03-23  Teresa Johnson  <tejohnson@google.com>
43182
43183         * ipa-utils.c (ipa_print_order): Use specified dump file.
43184
43185 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
43186
43187         PR rtl-optimization/60601
43188         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
43189
43190         * gcc.c (eval_spec_function): Initialize save_growing_value.
43191
43192 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
43193
43194         PR sanitizer/60613
43195         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
43196         code == MINUS_EXPR, never swap op0 with op1.
43197
43198         * toplev.c (init_local_tick): Avoid signed integer multiplication
43199         overflow.
43200         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
43201         shift by first operand's bitsize.
43202
43203 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
43204
43205         PR target/60610
43206         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
43207         redefine to 1 or 0.
43208         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
43209         TARGET_ISA_64BIT_P(x).
43210
43211 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43212
43213         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
43214         pattern for vector nor instead of subtract from splat(-1).
43215         (altivec_expand_vec_perm_const_le): Likewise.
43216
43217 2014-03-21  Richard Henderson  <rth@twiddle.net>
43218
43219         PR target/60598
43220         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
43221         related insns after epilogue_completed.
43222
43223 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43224
43225         PR ipa/59176
43226         * cgraph.h (symtab_node): New flag body_removed.
43227         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
43228         when removing bodies.
43229         * symtab.c (dump_symtab_base): Dump body_removed flag.
43230         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
43231         had their bodies removed.
43232
43233 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43234
43235         PR ipa/60419
43236         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
43237         in the border.
43238
43239 2014-03-21  Richard Biener  <rguenther@suse.de>
43240
43241         PR tree-optimization/60577
43242         * tree-core.h (struct tree_base): Document nothrow_flag use
43243         in DECL_NONALIASED.
43244         * tree.h (DECL_NONALIASED): New.
43245         (may_be_aliased): Adjust.
43246         * coverage.c (build_var): Set DECL_NONALIASED.
43247
43248 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43249
43250         * expr.c (expand_expr_real_1): Remove outdated comment.
43251
43252 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
43253
43254         PR middle-end/60597
43255         * ira.c (adjust_cleared_regs): Call copy_rtx on
43256         *reg_equiv[REGNO (loc)].src_p before passing it to
43257         simplify_replace_fn_rtx.
43258
43259         PR target/60568
43260         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
43261         into CONST, put pic register as first operand of PLUS.  Use
43262         gen_const_mem for both 32-bit and 64-bit PIC got loads.
43263
43264 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43265
43266         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43267
43268 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43269
43270         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43271         around for store forwarding issue in the FPU on the UT699.
43272         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43273         loads and operations if -mfix-ut699 is specified.
43274         (divtf3_hq): Tweak attribute.
43275         (sqrttf2_hq): Likewise.
43276
43277 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43278
43279         * calls.c (store_one_arg): Remove incorrect const qualification on the
43280         type of the temporary.
43281         * cfgexpand.c (expand_return): Likewise.
43282         * expr.c (expand_constructor): Likewise.
43283         (expand_expr_real_1): Likewise.
43284
43285 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
43286
43287         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43288         of parts.
43289
43290 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
43291
43292         PR target/60039
43293         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43294
43295 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
43296
43297         * config/arm/aarch-common-protos.h
43298         (alu_cost_table): Fix spelling of "extend".
43299         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43300
43301 2014-03-19  Richard Biener  <rguenther@suse.de>
43302
43303         PR middle-end/60553
43304         * tree-core.h (tree_type_common): Re-order pointer members
43305         to reduce recursion depth during GC walks.
43306
43307 2014-03-19  Marek Polacek  <polacek@redhat.com>
43308
43309         PR sanitizer/60569
43310         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
43311         before accessing it.
43312
43313 2014-03-19  Richard Biener  <rguenther@suse.de>
43314
43315         PR lto/59543
43316         * lto-streamer-in.c (input_function): In WPA stage do not drop
43317         debug stmts.
43318
43319 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
43320
43321         PR tree-optimization/60559
43322         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
43323         with build_zero_cst assignment.
43324
43325 2014-03-18  Kai Tietz  <ktietz@redhat.com>
43326
43327         PR rtl-optimization/56356
43328         * sdbout.c (sdbout_parms): Verify that parms'
43329         incoming argument is valid.
43330         (sdbout_reg_parms): Likewise.
43331
43332 2014-03-18  Richard Henderson  <rth@redhat.com>
43333
43334         PR target/60562
43335         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
43336         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
43337         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
43338
43339 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
43340
43341         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
43342         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
43343         Italicize plugin event names in description.  Explain that
43344         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
43345         Remind that no GCC functions should be called after PLUGIN_FINISH.
43346         Explain what pragmas with expansion are.
43347
43348 2014-03-18  Martin Liska  <mliska@suse.cz>
43349
43350         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
43351         gimple call statement is update.
43352         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
43353         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
43354
43355 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43356
43357         PR sanitizer/60557
43358         * ubsan.c (ubsan_instrument_unreachable): Call
43359         initialize_sanitizer_builtins.
43360         (ubsan_pass): Likewise.
43361
43362         PR sanitizer/60535
43363         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
43364         varpool_finalize_decl instead of rest_of_decl_compilation.
43365
43366 2014-03-18  Richard Biener  <rguenther@suse.de>
43367
43368         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
43369         by using bitmap_and_compl instead of bitmap_and_compl_into.
43370         (df_rd_transfer_function): Likewise.
43371
43372 2014-03-18  Richard Biener  <rguenther@suse.de>
43373
43374         * doc/lto.texi (fresolution): Fix typo.
43375
43376 2014-03-18  Richard Biener  <rguenther@suse.de>
43377
43378         * doc/invoke.texi (flto): Update for changes in 4.9.
43379
43380 2014-03-18  Richard Biener  <rguenther@suse.de>
43381
43382         * doc/loop.texi: Remove section on the removed lambda framework.
43383         Update loop docs with recent changes in preserving loop structure.
43384
43385 2014-03-18  Richard Biener  <rguenther@suse.de>
43386
43387         * doc/lto.texi (-fresolution): Document.
43388
43389 2014-03-18  Richard Biener  <rguenther@suse.de>
43390
43391         * doc/contrib.texi: Adjust my name.
43392
43393 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43394
43395         PR ipa/58721
43396         * internal-fn.c: Include diagnostic-core.h.
43397         (expand_BUILTIN_EXPECT): New function.
43398         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
43399         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
43400         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
43401         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
43402         IFN_BUILTIN_EXPECT.
43403         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
43404         Revert 3 argument __builtin_expect code.
43405         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
43406         * gimple-fold.c (gimple_fold_call): Likewise.
43407         * tree.h (fold_builtin_expect): New prototype.
43408         * builtins.c (build_builtin_expect_predicate): Add predictor
43409         argument, if non-NULL, create 3 argument __builtin_expect.
43410         (fold_builtin_expect): No longer static.  Add ARG2 argument,
43411         pass it through to build_builtin_expect_predicate.
43412         (fold_builtin_2): Adjust caller.
43413         (fold_builtin_3): Handle BUILT_IN_EXPECT.
43414         * internal-fn.def (BUILTIN_EXPECT): New.
43415
43416 2014-03-18  Tobias Burnus  <burnus@net-b.de>
43417
43418         PR ipa/58721
43419         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
43420         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
43421         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
43422
43423 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
43424
43425         PR ipa/58721
43426         * predict.c (combine_predictions_for_bb): Fix up formatting.
43427         (expr_expected_value_1, expr_expected_value): Add predictor argument,
43428         fill what it points to if non-NULL.
43429         (tree_predict_by_opcode): Adjust caller, use the predictor.
43430         * predict.def (PRED_COMPARE_AND_SWAP): Add.
43431
43432 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
43433
43434         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43435         proper constant for the store mode.
43436
43437 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
43438
43439         * symtab.c (change_decl_assembler_name): Fix transparent alias
43440         chain construction.
43441
43442 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
43443
43444         * config/aarch64/aarch64.c: Correct the comments about the
43445         aarch64 stack layout.
43446
43447 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
43448
43449         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
43450         check for GF_OMP_FOR_KIND_FOR.
43451
43452 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
43453
43454         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
43455         ymm and zmm register names.
43456
43457 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
43458
43459         PR target/60516
43460         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
43461         note creation for the 2010-08-31 changes.
43462
43463 2014-03-17  Marek Polacek  <polacek@redhat.com>
43464
43465         PR middle-end/60534
43466         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
43467         as -fno-tree-loop-vectorize.
43468         (expand_omp_simd): Likewise.
43469
43470 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
43471
43472         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
43473         (eligible_for_call_delay): New prototype.
43474         * config/sparc/sparc.c (tls_call_delay): Rename into...
43475         (eligible_for_call_delay): ...this.  Return false if the instruction
43476         cannot be put in the delay slot of a branch.
43477         (eligible_for_restore_insn): Simplify.
43478         (eligible_for_return_delay): Return false if the instruction cannot be
43479         put in the delay slot of a branch and simplify.
43480         (eligible_for_sibcall_delay): Return false if the instruction cannot be
43481         put in the delay slot of a branch.
43482         * config/sparc/sparc.md (fix_ut699): New attribute.
43483         (tls_call_delay): Delete.
43484         (in_call_delay): Reimplement.
43485         (eligible_for_sibcall_delay): Rename into...
43486         (in_sibcall_delay): ...this.
43487         (eligible_for_return_delay): Rename into...
43488         (in_return_delay): ...this.
43489         (in_branch_delay): Reimplement.
43490         (in_uncond_branch_delay): Delete.
43491         (in_annul_branch_delay): Delete.
43492
43493 2014-03-14  Richard Henderson  <rth@redhat.com>
43494
43495         PR target/60525
43496         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
43497         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
43498         (*floathi<X87MODEF>2_i387_with_temp): Remove.
43499         (floathi splitters): Remove.
43500         (float<SWI48x>xf2): New pattern.
43501         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
43502         code that tried to handle DImode for 32-bit, but which was excluded
43503         by the pattern's condition.  Drop allocation of stack temporary.
43504         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
43505         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
43506         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
43507         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
43508         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
43509         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
43510         (*float<SWI48><MODEF>2_sse_interunit): Remove.
43511         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
43512         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
43513         (*float<SWI48x><X87MODEF>2_i387): Remove.
43514         (all float _with_temp splitters): Remove.
43515         (*float<SWI48x><MODEF>2_i387): New pattern.
43516         (*float<SWI48><MODEF>2_sse): New pattern.
43517         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
43518         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
43519
43520 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
43521             Marek Polacek  <polacek@redhat.com>
43522
43523         PR middle-end/60484
43524         * common.opt (dump_base_name_prefixed): New Variable.
43525         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
43526         if x_dump_base_name_prefixed is already set, set it at the end.
43527
43528 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
43529
43530         PR rtl-optimization/60508
43531         * lra-constraints.c (get_reload_reg): Add new parameter
43532         in_subreg_p.
43533         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
43534         Pass the new parameter values.
43535
43536 2014-03-14  Richard Biener  <rguenther@suse.de>
43537
43538         * common.opt: Revert unintented changes from r205065.
43539         * opts.c: Likewise.
43540
43541 2014-03-14  Richard Biener  <rguenther@suse.de>
43542
43543         PR middle-end/60518
43544         * cfghooks.c (split_block): Properly adjust all loops the
43545         block was a latch of.
43546
43547 2014-03-14  Martin Jambor  <mjambor@suse.cz>
43548
43549         PR lto/60461
43550         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
43551         and simplify it.
43552
43553 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
43554
43555         PR target/59396
43556         * config/avr/avr.c (avr_set_current_function): Pass function name
43557         through default_strip_name_encoding before sanity checking instead
43558         of skipping the first char of the assembler name.
43559
43560 2014-03-13  Richard Henderson  <rth@redhat.com>
43561
43562         PR debug/60438
43563         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
43564         (ix86_force_to_memory, ix86_free_from_memory): Remove.
43565         * config/i386/i386-protos.h: Likewise.
43566         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
43567         in the expander instead of a splitter.
43568         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
43569         any possibility of requiring a memory.
43570         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
43571         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
43572         (fp branch splitters): Update for ix86_split_fp_branch.
43573         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
43574         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
43575         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
43576         (*fop_<MODEF>_2_i387): Remove f/r alternative.
43577         (*fop_<MODEF>_3_i387): Likewise.
43578         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
43579         (splitters for the fop_* register patterns): Remove.
43580         (fscalexf4_i387): Rename from *fscalexf4_i387.
43581         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
43582
43583 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43584
43585         PR tree-optimization/59779
43586         * tree-dfa.c (get_ref_base_and_extent): Use double_int
43587         type for bitsize and maxsize instead of HOST_WIDE_INT.
43588
43589 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
43590
43591         PR rtl-optimization/57320
43592         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
43593         the CFG after thread_prologue_and_epilogue_insns.
43594
43595 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
43596
43597         PR rtl-optimization/57189
43598         * lra-constraints.c (process_alt_operands): Disfavor spilling
43599         vector pseudos.
43600
43601 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
43602
43603         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
43604
43605 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43606
43607         PR tree-optimization/59025
43608         PR middle-end/60418
43609         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
43610         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
43611
43612 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
43613
43614         PR target/60486
43615         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
43616         calls of avr_out_plus_1.
43617
43618 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
43619
43620         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
43621         BB's single pred and update the father loop's latch info later.
43622
43623 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
43624
43625         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
43626         (VEC_M): Likewise.
43627         (VEC_N): Likewise.
43628         (VEC_R): Likewise.
43629         (VEC_base): Likewise.
43630         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
43631         registers, we need to swap double words in little endian mode.
43632
43633         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
43634         to be a container mode for 128-bit integer operations added in ISA
43635         2.07.  Unlike TImode and PTImode, the preferred register set is
43636         the Altivec/VMX registers for the 128-bit operations.
43637
43638         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
43639         declarations.
43640         (rs6000_split_128bit_ok_p): Likewise.
43641
43642         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
43643         macros for creating ISA 2.07 normal and overloaded builtin
43644         functions with 3 arguments.
43645         (BU_P8V_OVERLOAD_3): Likewise.
43646         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
43647         for use as overloaded functions.
43648         (VPERM_1TI_UNS): Likewise.
43649         (VSEL_1TI): Likewise.
43650         (VSEL_1TI_UNS): Likewise.
43651         (ST_INTERNAL_1ti): Likewise.
43652         (LD_INTERNAL_1ti): Likewise.
43653         (XXSEL_1TI): Likewise.
43654         (XXSEL_1TI_UNS): Likewise.
43655         (VPERM_1TI): Likewise.
43656         (VPERM_1TI_UNS): Likewise.
43657         (XXPERMDI_1TI): Likewise.
43658         (SET_1TI): Likewise.
43659         (LXVD2X_V1TI): Likewise.
43660         (STXVD2X_V1TI): Likewise.
43661         (VEC_INIT_V1TI): Likewise.
43662         (VEC_SET_V1TI): Likewise.
43663         (VEC_EXT_V1TI): Likewise.
43664         (EQV_V1TI): Likewise.
43665         (NAND_V1TI): Likewise.
43666         (ORC_V1TI): Likewise.
43667         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
43668         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
43669         overloaded builtin.
43670         (VADDUQM): Likewise.
43671         (VSUBCUQ): Likewise.
43672         (VADDEUQM): Likewise.
43673         (VADDECUQ): Likewise.
43674         (VSUBEUQM): Likewise.
43675         (VSUBECUQ): Likewise.
43676
43677         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
43678         __int128_t and __uint128_t types.
43679         (__uint128_type): Likewise.
43680         (altivec_categorize_keyword): Add support for vector __int128_t,
43681         vector __uint128_t, vector __int128, and vector unsigned __int128
43682         as a container type for TImode operations that need to be done in
43683         VSX/Altivec registers.
43684         (rs6000_macro_to_expand): Likewise.
43685         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
43686         to support 128-bit integer instructions vaddcuq, vadduqm,
43687         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
43688         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
43689
43690         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
43691         for V1TImode, and set up preferences to use VSX/Altivec registers.
43692         Setup VSX reload handlers.
43693         (rs6000_debug_reg_global): Likewise.
43694         (rs6000_init_hard_regno_mode_ok): Likewise.
43695         (rs6000_preferred_simd_mode): Likewise.
43696         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
43697         (easy_altivec_constant): Likewise.
43698         (output_vec_const_move): Likewise.
43699         (rs6000_expand_vector_set): Convert V1TImode set and extract to
43700         simple move.
43701         (rs6000_expand_vector_extract): Likewise.
43702         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
43703         addressing.
43704         (rs6000_const_vec): Add support for V1TImode.
43705         (rs6000_emit_le_vsx_load): Swap double words when loading or
43706         storing TImode/V1TImode.
43707         (rs6000_emit_le_vsx_store): Likewise.
43708         (rs6000_emit_le_vsx_move): Likewise.
43709         (rs6000_emit_move): Add support for V1TImode.
43710         (altivec_expand_ld_builtin): Likewise.
43711         (altivec_expand_st_builtin): Likewise.
43712         (altivec_expand_vec_init_builtin): Likewise.
43713         (altivec_expand_builtin): Likewise.
43714         (rs6000_init_builtins): Add support for V1TImode type.  Add
43715         support for ISA 2.07 128-bit integer builtins.  Define type names
43716         for the VSX/Altivec vector types.
43717         (altivec_init_builtins): Add support for overloaded vector
43718         functions with V1TImode type.
43719         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
43720         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
43721         external function.
43722         (rs6000_split_128bit_ok_p): Likewise.
43723         (rs6000_handle_altivec_attribute): Create V1TImode from vector
43724         __int128_t and vector __uint128_t.
43725
43726         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
43727         and mode attributes.
43728         (VSX_M): Likewise.
43729         (VSX_M2): Likewise.
43730         (VSm): Likewise.
43731         (VSs): Likewise.
43732         (VSr): Likewise.
43733         (VSv): Likewise.
43734         (VS_scalar): Likewise.
43735         (VS_double): Likewise.
43736         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
43737
43738         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
43739         we support the ISA 2.07 128-bit integer arithmetic instructions.
43740         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
43741         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
43742         and TImode types for use with the builtin functions.
43743         (V1TI_type_node): Likewise.
43744         (unsigned_V1TI_type_node): Likewise.
43745         (intTI_type_internal_node): Likewise.
43746         (uintTI_type_internal_node): Likewise.
43747
43748         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
43749         128-bit builtin functions.
43750         (UNSPEC_VADDEUQM): Likewise.
43751         (UNSPEC_VADDECUQ): Likewise.
43752         (UNSPEC_VSUBCUQ): Likewise.
43753         (UNSPEC_VSUBEUQM): Likewise.
43754         (UNSPEC_VSUBECUQ): Likewise.
43755         (VM): Add V1TImode to vector mode iterators.
43756         (VM2): Likewise.
43757         (VI_unit): Likewise.
43758         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
43759         (altivec_vaddcuq): Likewise.
43760         (altivec_vsubuqm): Likewise.
43761         (altivec_vsubcuq): Likewise.
43762         (altivec_vaddeuqm): Likewise.
43763         (altivec_vaddecuq): Likewise.
43764         (altivec_vsubeuqm): Likewise.
43765         (altivec_vsubecuq): Likewise.
43766
43767         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
43768         mode iterators.
43769         (BOOL_128): Likewise.
43770         (BOOL_REGS_OUTPUT): Likewise.
43771         (BOOL_REGS_OP1): Likewise.
43772         (BOOL_REGS_OP2): Likewise.
43773         (BOOL_REGS_UNARY): Likewise.
43774         (BOOL_REGS_AND_CR0): Likewise.
43775
43776         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
43777         128-bit integer builtin support.
43778         (vec_vadduqm): Likewise.
43779         (vec_vaddecuq): Likewise.
43780         (vec_vaddeuqm): Likewise.
43781         (vec_vsubecuq): Likewise.
43782         (vec_vsubeuqm): Likewise.
43783         (vec_vsubcuq): Likewise.
43784         (vec_vsubuqm): Likewise.
43785
43786         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43787         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
43788         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
43789         128-bit integer add/subtract to ISA 2.07.
43790
43791 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
43792
43793         * config/arc/arc.c (arc_predicate_delay_insns):
43794         Fix third argument passed to conditionalize_nonjump.
43795
43796 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
43797
43798         * config/aarch64/aarch64-builtins.c
43799         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
43800         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
43801         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
43802         instead of __builtin_lfloor.
43803         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
43804
43805 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43806
43807         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
43808         (tree_ssa_ifcombine_bb_1): New function.
43809         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
43810         is an empty forwarder block to then_bb or vice versa and then_bb
43811         and else_bb are effectively swapped.
43812
43813 2014-03-12  Christian Bruel  <christian.bruel@st.com>
43814
43815         PR target/60264
43816         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
43817         REG_CFA_DEF_CFA note.
43818         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
43819         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
43820
43821 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
43822
43823         PR tree-optimization/60454
43824         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
43825
43826 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43827
43828         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
43829         Do not define target_cpu_default2 to generic.
43830         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
43831         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
43832         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
43833
43834 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43835             Marc Glisse  <marc.glisse@inria.fr>
43836
43837         PR tree-optimization/60502
43838         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
43839         instead of build_low_bits_mask.
43840
43841 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43842
43843         PR middle-end/60482
43844         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
43845         if there are multiple uses, but op doesn't live on E edge.
43846         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
43847         clobber stmts before __builtin_unreachable.
43848
43849 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
43850
43851         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
43852         hard_frame_pointer_rtx.
43853         * cse.c (cse_insn): Remove volatile check.
43854         * cselib.c (cselib_process_insn): Likewise.
43855         * dse.c (scan_insn): Likewise.
43856
43857 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43858
43859         * config/arc/arc.c (conditionalize_nonjump): New function,
43860         broken out of ...
43861         (arc_ifcvt): ... this.
43862         (arc_predicate_delay_insns): Use it.
43863
43864 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43865
43866         * config/arc/predicates.md (extend_operand): During/after reload,
43867         allow const_int_operand.
43868         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
43869         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
43870         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
43871         to "i".
43872         (umulsi3_highpart_i): Likewise.
43873
43874 2014-03-11  Richard Biener  <rguenther@suse.de>
43875
43876         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
43877         Add asserts to guard possible wrong-code bugs.
43878
43879 2014-03-11  Richard Biener  <rguenther@suse.de>
43880
43881         PR tree-optimization/60429
43882         PR tree-optimization/60485
43883         * tree-ssa-structalias.c (set_union_with_increment): Properly
43884         take into account all fields that overlap the shifted vars.
43885         (do_sd_constraint): Likewise.
43886         (do_ds_constraint): Likewise.
43887         (get_constraint_for_ptr_offset): Likewise.
43888
43889 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
43890
43891         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
43892         (nios2_compute_frame_layout):
43893         Add calculation of cfun->machine->fp_save_offset.
43894         (nios2_expand_prologue): Correct setting of frame pointer register
43895         in prologue.
43896         (nios2_expand_epilogue): Update recovery of stack pointer from
43897         frame pointer accordingly.
43898         (nios2_initial_elimination_offset): Update calculation of offset
43899         for eliminating to HARD_FRAME_POINTER_REGNUM.
43900
43901 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
43902
43903         PR ipa/60457
43904         * ipa.c (symtab_remove_unreachable_nodes): Don't call
43905         cgraph_get_create_node on VAR_DECLs.
43906
43907 2014-03-10  Richard Biener  <rguenther@suse.de>
43908
43909         PR middle-end/60474
43910         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
43911
43912 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
43913
43914         * config/vms/vms.opt (vms_float_format): New variable.
43915
43916 2014-03-08  Tobias Burnus  <burnus@net-b.de>
43917
43918         * doc/invoke.texi (-fcilkplus): Update implementation status.
43919
43920 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
43921             Richard Biener  <rguenther@suse.de>
43922
43923         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
43924         consistently accross all TUs.
43925         (run_gcc): Enable -fshort-double automatically at link at link-time
43926         and disallow override.
43927
43928 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
43929
43930         PR target/58271
43931         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
43932         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
43933         if they can't be used.
43934
43935 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43936
43937         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
43938         for Solaris 11/x86 ld.
43939         * configure: Regenerate.
43940
43941 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43942
43943         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
43944         (LIB_TLS_SPEC): Save as ld_tls_libs.
43945         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
43946         (HAVE_AS_IX86_TLSLDM): New test.
43947         * configure, config.in: Regenerate.
43948         * config/i386/i386.c (legitimize_tls_address): Fall back to
43949         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
43950         cannot support TLS_MODEL_LOCAL_DYNAMIC.
43951         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
43952         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
43953
43954 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
43955
43956         * common.opt (fira-loop-pressure): Mark as optimization.
43957
43958 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
43959
43960         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
43961         an OpenMP mappable type.
43962
43963 2014-03-06  Matthias Klose  <doko@ubuntu.com>
43964
43965         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
43966         MULTILIB_OSDIRNAMES is not defined.
43967
43968 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
43969             Meador Inge  <meadori@codesourcery.com>
43970
43971         PR target/58595
43972         * config/arm/arm.c (arm_tls_symbol_p): Remove.
43973         (arm_legitimize_address): Call legitimize_tls_address for any
43974         arm_tls_referenced_p expression, handle constant addend.  Call it
43975         before testing for !TARGET_ARM.
43976         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
43977
43978 2014-03-06  Richard Biener  <rguenther@suse.de>
43979
43980         PR middle-end/60445
43981         PR lto/60424
43982         PR lto/60427
43983         Revert
43984         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
43985
43986         * tree-streamer.c (record_common_node): Assert we don't record
43987         nodes with type double.
43988         (preload_common_node): Skip type double, complex double and double
43989         pointer since it is now frontend dependent due to fshort-double option.
43990
43991 2014-03-06  Richard Biener  <rguenther@suse.de>
43992
43993         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
43994         or -fno-lto is specified and the linker has full plugin support.
43995         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
43996         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
43997         * lto-wrapper.c (merge_and_complain): Merge compile-time
43998         optimization levels.
43999         (run_gcc): And pass it through to the link options.
44000
44001 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
44002
44003         PR debug/60381
44004         Revert:
44005         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44006         PR debug/59992
44007         * cselib.c (remove_useless_values): Skip to avoid quadratic
44008         behavior if the condition moved from...
44009         (cselib_process_insn): ... here holds.
44010
44011 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44012
44013         PR plugins/59335
44014         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
44015         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
44016
44017         PR plugins/59335
44018         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
44019         (TM_H): Add x86-tune.def.
44020
44021 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44022
44023         * config/aarch64/aarch64.c (generic_tunings):
44024         Use cortexa57_extra_costs.
44025
44026 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
44027
44028         PR lto/60404
44029         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
44030         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
44031         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
44032         cost for in_lto_p.
44033
44034 2014-03-04  Heiher  <r@hev.cc>
44035
44036         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
44037         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
44038
44039 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
44040
44041         * config/i386/predicates.md (const2356_operand): Change to ...
44042         (const2367_operand): ... this.
44043         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
44044         const2367_operand.
44045         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44046         (*avx512pf_scatterpf<mode>sf): Ditto.
44047         (avx512pf_scatterpf<mode>df): Ditto.
44048         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44049         (*avx512pf_scatterpf<mode>df): Ditto.
44050         * config/i386/i386.c (ix86_expand_builtin): Update
44051         incorrect hint operand error message.
44052
44053 2014-03-04  Richard Biener  <rguenther@suse.de>
44054
44055         * lto-section-in.c (lto_get_section_data): Fix const cast.
44056
44057 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
44058
44059         * tree-streamer.c (record_common_node): Assert we don't record
44060         nodes with type double.
44061         (preload_common_node): Skip type double, complex double and double
44062         pointer since it is now frontend dependent due to fshort-double option.
44063
44064 2014-03-04  Richard Biener  <rguenther@suse.de>
44065
44066         PR lto/60405
44067         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
44068         (lto_input_toplevel_asms): Likewise.
44069         * lto-section-in.c (lto_get_section_data): Instead do it here
44070         for every section.
44071
44072 2014-03-04  Richard Biener  <rguenther@suse.de>
44073
44074         PR tree-optimization/60382
44075         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
44076         dead PHIs a reduction.
44077
44078 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
44079
44080         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
44081         hint value.
44082         (_mm_prefetch): Move out of GCC target("sse") pragma.
44083         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
44084         GCC target("prfchw") pragma.
44085         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
44086         for locality <= 2.
44087         * config/i386/i386.c (ix86_option_override_internal): Enable
44088         -mprfchw with -mprefetchwt1.
44089
44090 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44091
44092         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
44093         Mark as varying.
44094
44095 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
44096
44097         * opts.h (CL_PCH_IGNORE): Define.
44098         * targhooks.c (option_affects_pch_p):
44099         Return false for options that have CL_PCH_IGNORE set.
44100         * opt-functions.awk: Process PchIgnore.
44101         * doc/options.texi: Document PchIgnore.
44102
44103         * config/arc/arc.opt (misize): Add PchIgnore property.
44104
44105 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44106
44107         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
44108         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
44109         constraint on constants to permit them being loaded into
44110         GENERAL_REGS or BASE_REGS.
44111
44112 2014-03-03  Nick Clifton  <nickc@redhat.com>
44113
44114         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
44115         anti-cacnonical alternatives.
44116         (negandhi3_real): New pattern.
44117         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
44118
44119 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
44120
44121         * config/avr/avr-mcus.def: Remove atxmega16x1.
44122         * config/avr/avr-tables.opt: Regenerate.
44123         * config/avr/t-multilib: Regenerate.
44124         * doc/avr-mmcu.texi: Regenerate.
44125
44126 2014-03-03  Tobias Grosser  <tobias@grosser.es>
44127             Mircea Namolaru  <mircea.namolaru@inria.fr>
44128
44129         PR tree-optimization/58028
44130         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
44131         scalar dimensions.
44132
44133 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
44134
44135         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
44136         not handled by recognizers.
44137
44138 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
44139
44140         PR middle-end/60175
44141         * function.c (expand_function_end): Don't emit
44142         clobber_return_register sequence if clobber_after is a BARRIER.
44143         * cfgexpand.c (construct_exit_block): Append instructions before
44144         return_label to prev_bb.
44145
44146 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44147
44148         * config/rs6000/constraints.md: Document reserved use of "wc".
44149
44150 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44151
44152         PR ipa/60150
44153         * ipa.c (function_and_variable_visibility): When dissolving comdat
44154         group, also set all symbols to local.
44155
44156 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44157
44158         PR ipa/60306
44159
44160         Revert:
44161         2013-12-14  Jan Hubicka  <jh@suse.cz>
44162         PR middle-end/58477
44163         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
44164
44165 2014-03-02  Jon Beniston  <jon@beniston.com>
44166
44167         PR bootstrap/48230
44168         PR bootstrap/50927
44169         PR bootstrap/52466
44170         PR target/46898
44171         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
44172         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
44173         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
44174         (simple_return, *simple_return): New patterns
44175         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
44176         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
44177
44178 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
44179
44180         * dwarf2out.c (gen_subprogram_die): Tidy.
44181
44182 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
44183
44184         PR target/60071
44185         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
44186         (*mov_t_msb_neg_negc): ... this new insn.
44187
44188 2014-02-28  Jason Merrill  <jason@redhat.com>
44189
44190         PR c++/58678
44191         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
44192         function.
44193
44194 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
44195
44196         PR c++/60314
44197         * dwarf2out.c (decltype_auto_die): New static.
44198         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
44199         (gen_type_die_with_usage): Handle 'decltype(auto)'.
44200         (is_cxx_auto): Likewise.
44201
44202 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
44203
44204         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
44205         we are not using general regs only.
44206
44207 2014-02-28  Richard Biener  <rguenther@suse.de>
44208
44209         PR target/60280
44210         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
44211         previous fix and only allow to remove trivial pre-headers
44212         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
44213         (remove_forwarder_block): Properly update the latch of a loop.
44214
44215 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44216
44217         PR debug/59992
44218         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
44219         (cselib_preserved_hash_table): New.
44220         (preserve_constants_and_equivs): Move preserved vals to it.
44221         (cselib_find_slot): Look it up first.
44222         (cselib_init): Initialize it.
44223         (cselib_finish): Release it.
44224         (dump_cselib_table): Dump it.
44225
44226 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44227
44228         PR debug/59992
44229         * cselib.c (remove_useless_values): Skip to avoid quadratic
44230         behavior if the condition moved from...
44231         (cselib_process_insn): ... here holds.
44232
44233 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44234
44235         PR debug/57232
44236         * var-tracking.c (vt_initialize): Apply the same condition to
44237         preserve the CFA base value.
44238
44239 2014-02-28  Joey Ye  <joey.ye@arm.com>
44240
44241         PR target/PR60169
44242         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
44243         if reload in progress or completed.
44244
44245 2014-02-28  Tobias Burnus  <burnus@net-b.de>
44246
44247         PR middle-end/60147
44248         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
44249         NAMELIST_DECL.
44250
44251 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
44252
44253         * doc/tm.texi.in (Condition Code Status): Update documention for
44254         relative locations of cc0-setter and cc0-user.
44255
44256 2014-02-27  Jeff Law  <law@redhat.com>
44257
44258         PR rtl-optimization/52714
44259         * combine.c (try_combine): When splitting an unrecognized PARALLEL
44260         into two independent simple sets, if I3 is a jump, ensure the
44261         pattern we place into I3 is a (set (pc) ...).
44262
44263 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
44264             Jeff Law  <law@redhat.com>
44265
44266         PR rtl-optimization/49847
44267         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44268         are in different blocks.
44269         * doc/tm.texi (Condition Code Status): Update documention for
44270         relative locations of cc0-setter and cc0-user.
44271
44272 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
44273
44274         PR target/59222
44275         * lra.c (lra_emit_add): Check SUBREG too.
44276
44277 2014-02-27  Andreas Schwab  <schwab@suse.de>
44278
44279         * config/m68k/m68k.c (m68k_option_override): Disable
44280         -flive-range-shrinkage for classic m68k.
44281         (m68k_override_options_after_change): Likewise.
44282
44283 2014-02-27  Marek Polacek  <polacek@redhat.com>
44284
44285         PR middle-end/59223
44286         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44287         -Wmaybe-uninitialized.
44288
44289 2014-02-27  Alan Modra  <amodra@gmail.com>
44290
44291         PR target/57936
44292         * reload1.c (emit_input_reload_insns): When reload_override_in,
44293         set old to rl->in_reg when rl->in_reg is a subreg.
44294
44295 2014-02-26  Richard Biener  <rguenther@suse.de>
44296
44297         PR bootstrap/60343
44298         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44299
44300 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44301
44302         * common/config/i386/predicates.md (const1256_operand): Remove.
44303         (const2356_operand): New.
44304         (const_1_to_2_operand): Remove.
44305         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44306         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44307         (*avx512pf_gatherpf<mode>sf): Ditto.
44308         (avx512pf_gatherpf<mode>df): Ditto.
44309         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44310         (*avx512pf_gatherpf<mode>df): Ditto.
44311         (avx512pf_scatterpf<mode>sf): Ditto.
44312         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44313         (*avx512pf_scatterpf<mode>sf): Ditto.
44314         (avx512pf_scatterpf<mode>df): Ditto.
44315         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44316         (*avx512pf_scatterpf<mode>df): Ditto.
44317         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
44318
44319 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
44320
44321         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
44322         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
44323         (_mm512_mask_testn_epi64_mask): Move to ...
44324         * config/i386/avx512cdintrin.h: Here.
44325         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
44326         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
44327         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
44328         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
44329         TARGET_AVX512F from TARGET_AVX512CD.
44330
44331 2014-02-26  Richard Biener  <rguenther@suse.de>
44332
44333         PR ipa/60327
44334         * ipa.c (walk_polymorphic_call_targets): Properly guard
44335         call to inline_update_overall_summary.
44336
44337 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
44338
44339         PR target/60280
44340         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
44341         and latches only if requested.  Fix latch if it is removed.
44342         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
44343         LOOPS_HAVE_PREHEADERS.
44344
44345 2014-02-25  Andrew Pinski  <apinski@cavium.com>
44346
44347         * builtins.c (expand_builtin_thread_pointer): Create a new target
44348         when the target is NULL.
44349
44350 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
44351
44352         PR rtl-optimization/60317
44353         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44354         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44355         * lra-assigns.c: Include params.h.
44356         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
44357         other reload pseudos considerations.
44358
44359 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44360
44361         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
44362         to use canonical form for nor<mode>3.
44363
44364 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44365
44366         PR target/55426
44367         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
44368         conversions.
44369
44370 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44371
44372         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
44373         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
44374         (ix86_handle_option): Handle OPT_mprefetchwt1.
44375         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
44376         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
44377         PREFETCHWT1 CPUID.
44378         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44379         OPTION_MASK_ISA_PREFETCHWT1.
44380         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
44381         (PTA_PREFETCHWT1): New.
44382         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
44383         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
44384         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
44385         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
44386         (*prefetch_avx512pf_<mode>_: Change into ...
44387         (*prefetch_prefetchwt1_<mode>: This.
44388         * config/i386/i386.opt (mprefetchwt1): New.
44389         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
44390         (_mm_prefetch): Handle intent to write.
44391         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
44392
44393 2014-02-25  Richard Biener  <rguenther@suse.de>
44394
44395         PR middle-end/60291
44396         * emit-rtl.c (mem_attrs_htab): Remove.
44397         (mem_attrs_htab_hash): Likewise.
44398         (mem_attrs_htab_eq): Likewise.
44399         (set_mem_attrs): Always allocate new mem-attrs when something changed.
44400         (init_emit_once): Do not allocate mem_attrs_htab.
44401
44402 2014-02-25  Richard Biener  <rguenther@suse.de>
44403
44404         PR lto/60319
44405         * lto-opts.c (lto_write_options): Output non-explicit conservative
44406         -fwrapv, -fno-trapv and -fno-strict-overflow.
44407         * lto-wrapper.c (merge_and_complain): Handle merging those options.
44408         (run_gcc): And pass them through.
44409
44410 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44411
44412         * sel-sched.c (calculate_new_fences): New parameter ptime.
44413         Calculate it as a maximum over all fence cycles.
44414         (sel_sched_region_2): Adjust the call to calculate_new_fences.
44415         Print the final schedule timing when sched_verbose.
44416
44417 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44418
44419         PR rtl-optimization/60292
44420         * sel-sched.c (fill_vec_av_set): Do not reset target availability
44421         bit fot the fence instruction.
44422
44423 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
44424
44425         * calls.h: Fix typo in comment.
44426
44427 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
44428
44429         * config/pa/pa.c (pa_output_move_double): Don't valididate when
44430         adjusting offsetable addresses.
44431
44432 2014-02-24  Guozhi Wei  <carrot@google.com>
44433
44434         * sparseset.h (sparseset_pop): Fix the wrong index.
44435
44436 2014-02-24  Walter Lee  <walt@tilera.com>
44437
44438         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
44439         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
44440         triplet.
44441         * common/config/tilegx/tilegx-common.c
44442         (TARGET_DEFAULT_TARGET_FLAGS): Define.
44443         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
44444         (LINK_SPEC): Ditto.
44445         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
44446         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
44447         (tilegx_gimplify_va_arg_expr): Handle big endian.
44448         (tilegx_expand_unaligned_load): Ditto.
44449         (tilegx_expand_unaligned_store): Ditto.
44450         (TARGET_RETURN_IN_MSB): New.
44451         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
44452         (TARGET_ENDIAN_DEFAULT): New.
44453         (TARGET_BIG_ENDIAN): Handle big endian.
44454         (BYTES_BIG_ENDIAN): Ditto.
44455         (WORDS_BIG_ENDIAN): Ditto.
44456         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
44457         (ENDIAN_SPEC): New.
44458         (EXTRA_SPECS): New.
44459         * config/tilegx/tilegx.md (extv): Handle big endian.
44460         (extzv): Ditto.
44461         (insn_st<n>): Ditto.
44462         (insn_st<n>_add<bitsuffix>): Ditto.
44463         (insn_stnt<n>): Ditto.
44464         (insn_stnt<n>_add<bitsuffix>):Ditto.
44465         (vec_interleave_highv8qi): Handle big endian.
44466         (vec_interleave_highv8qi_be): New.
44467         (vec_interleave_highv8qi_le): New.
44468         (insn_v1int_h): Handle big endian.
44469         (vec_interleave_lowv8qi): Handle big endian.
44470         (vec_interleave_lowv8qi_be): New.
44471         (vec_interleave_lowv8qi_le): New.
44472         (insn_v1int_l): Handle big endian.
44473         (vec_interleave_highv4hi): Handle big endian.
44474         (vec_interleave_highv4hi_be): New.
44475         (vec_interleave_highv4hi_le): New.
44476         (insn_v2int_h): Handle big endian.
44477         (vec_interleave_lowv4hi): Handle big endian.
44478         (vec_interleave_lowv4hi_be): New.
44479         (vec_interleave_lowv4hi_le): New.
44480         (insn_v2int_l): Handle big endian.
44481         (vec_interleave_highv2si): Handle big endian.
44482         (vec_interleave_highv2si_be): New.
44483         (vec_interleave_highv2si_le): New.
44484         (insn_v4int_h): Handle big endian.
44485         (vec_interleave_lowv2si): Handle big endian.
44486         (vec_interleave_lowv2si_be): New.
44487         (vec_interleave_lowv2si_le): New.
44488         (insn_v4int_l): Handle big endian.
44489         * config/tilegx/tilegx.opt (mbig-endian): New option.
44490         (mlittle-endian): New option.
44491         * doc/install.texi: Document tilegxbe-linux.
44492         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
44493
44494 2014-02-24  Martin Jambor  <mjambor@suse.cz>
44495
44496         PR ipa/60266
44497         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
44498         there are no parameter descriptors.
44499
44500 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
44501
44502         PR rtl-optimization/60268
44503         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
44504         initialization to ...
44505         (sched_rgn_init): ... here.
44506         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
44507
44508 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44509
44510         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
44511         names.
44512
44513 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
44514
44515         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
44516         definition.
44517
44518 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44519
44520         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
44521         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
44522
44523 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44524
44525         * config/microblaze/predicates.md: Add cmp_op predicate.
44526         * config/microblaze/microblaze.md: Add branch_compare instruction
44527         which uses cmp_op predicate and emits cmp insn before branch.
44528         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
44529         to microblaze_expand_conditional_branch and consolidate logic.
44530         (microblaze_expand_conditional_branch): emit branch_compare
44531         insn instead of handling cmp op separate from branch insn.
44532
44533 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44534
44535         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
44536         to permit subregs.
44537
44538 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44539
44540         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
44541         define_insn with define_expand and new define_insn
44542         *altivec_lve<VI_char>x_internal.
44543         (altivec_stve<VI_char>x): Replace define_insn with define_expand
44544         and new define_insn *altivec_stve<VI_char>x_internal.
44545         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
44546         prototype.
44547         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
44548         lve*x built-ins.
44549         (altivec_expand_stvex_be): New function.
44550
44551 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
44552
44553         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
44554         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
44555         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
44556         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
44557
44558 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
44559
44560         PR target/60298
44561         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
44562         instead of emit_move_insn.
44563
44564 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44565
44566         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
44567         vspltw with vsldoi.
44568         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
44569         gen_altivec_vsumsws.
44570
44571 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44572
44573         * config/rs6000/altivec.md (altivec_lvxl): Rename as
44574         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
44575         (altivec_lvxl_<mode>): New define_expand incorporating
44576         -maltivec=be semantics where needed.
44577         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
44578         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
44579         semantics where needed.
44580         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
44581         (altivec_stvx_<mode>): New define_expand incorporating
44582         -maltivec=be semantics where needed.
44583         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
44584         VM2 iterator instead of V4SI.
44585         (altivec_stvxl_<mode>): New define_expand incorporating
44586         -maltivec=be semantics where needed.
44587         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
44588         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
44589         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
44590         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
44591         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
44592         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
44593         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
44594         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
44595         ALTIVEC_BUILTIN_STVXL.
44596         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
44597         (altivec_expand_stvx_be): Likewise.
44598         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
44599         (altivec_expand_lvx_be): Likewise.
44600         (altivec_expand_stvx_be): Likewise.
44601         (altivec_expand_builtin): Add cases for
44602         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
44603         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
44604         (altivec_init_builtins): Add definitions for
44605         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
44606         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
44607
44608 2014-02-21  Catherine Moore  <clm@codesourcery.com>
44609
44610         * doc/invoke.texi (mvirt, mno-virt): Document.
44611         * config/mips/mips.opt (mvirt): New option.
44612         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
44613
44614 2014-02-21  Richard Biener  <rguenther@suse.de>
44615
44616         PR tree-optimization/60276
44617         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
44618         (STMT_VINFO_MIN_NEG_DIST): New macro.
44619         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
44620         STMT_VINFO_MIN_NEG_DIST.
44621         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
44622         made for negative dependence distances still hold.
44623
44624 2014-02-21  Richard Biener  <rguenther@suse.de>
44625
44626         PR middle-end/60291
44627         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
44628         DECL_INITIAL for globals not in the current function context.
44629
44630 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44631
44632         PR tree-optimization/56490
44633         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
44634         * tree-ssa-uninit.c: Include params.h.
44635         (compute_control_dep_chain): Add num_calls argument, return false
44636         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
44637         num_calls to recursive call.
44638         (find_predicates): Change dep_chain into normal array,
44639         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
44640         variable and adjust compute_control_dep_chain caller.
44641         (find_def_preds): Likewise.
44642
44643 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
44644
44645         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
44646         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
44647
44648 2014-02-21  Nick Clifton  <nickc@redhat.com>
44649
44650         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
44651         (pushhi1): Likewise.
44652         (popqi1): Add mode to pre_dec.
44653         (pophi1): Likewise.
44654
44655 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44656
44657         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
44658         mode for mask of V8SFmode permutation.
44659
44660 2014-02-20  Richard Henderson  <rth@redhat.com>
44661
44662         PR c++/60272
44663         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
44664         a new pseudo for OLDVAL.
44665
44666 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
44667
44668         PR target/57896
44669         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
44670         gen_reg_rtx if d->testing_p.
44671         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
44672         if d->testing_p and we will certainly return true.
44673         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
44674         if d->testing_p.
44675
44676 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
44677
44678         * emit-rtl.c (gen_reg_rtx): Assert that
44679         crtl->emit.regno_pointer_align_length is non-zero.
44680
44681 2014-02-20  Richard Henderson  <rth@redhat.com>
44682
44683         PR c++/60272
44684         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
44685         on failure the store back into EXPECT.
44686
44687 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
44688             Sandra Loosemore  <sandra@codesourcery.com>
44689
44690         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
44691         * config/nios2/nios2.c (nios2_function_profiler): Add
44692         -fPIC (flag_pic == 2) support.
44693         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
44694         (nios2_large_offset_p): New function.
44695         (nios2_unspec_reloc_p): Move up position, update to use
44696         nios2_large_offset_p.
44697         (nios2_unspec_address): Remove function.
44698         (nios2_unspec_offset): New function.
44699         (nios2_large_got_address): New function.
44700         (nios2_got_address): Add large offset support.
44701         (nios2_legitimize_tls_address): Update usage of removed and new
44702         functions.
44703         (nios2_symbol_binds_local_p): New function.
44704         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
44705         (nios2_legitimize_address): Update to use nios2_large_offset_p.
44706         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
44707         (nios2_print_operand): Merge H/L processing, add hiadj/lo
44708         processing for (const (unspec ...)).
44709         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
44710
44711 2014-02-20  Richard Biener  <rguenther@suse.de>
44712
44713         * tree-cfg.c (replace_uses_by): Mark altered BBs before
44714         doing the substitution.
44715         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
44716
44717 2014-02-20  Martin Jambor  <mjambor@suse.cz>
44718
44719         PR ipa/55260
44720         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
44721         info when checking whether lattices are bottom.
44722
44723 2014-02-20  Richard Biener  <rguenther@suse.de>
44724
44725         PR middle-end/60221
44726         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
44727         regions at -O0.
44728
44729 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
44730
44731         PR ipa/58555
44732         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
44733         parameter specifying the scaling.
44734         (inline_call): Update.
44735         (want_inline_recursively): Guard division by zero.
44736         (recursive_inlining): Update.
44737         * ipa-inline.h (clone_inlined_nodes): Update.
44738
44739 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44740
44741         PR target/60204
44742         * config/i386/i386.c (classify_argument): Pass structures of size
44743         64 bytes or less in register.
44744
44745 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44746             Kirill Yukhin  <kirill.yukhin@intel.com>
44747
44748         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
44749         (_mm_rcp28_round_ss): Ditto.
44750         (_mm_rsqrt28_round_sd): Ditto.
44751         (_mm_rsqrt28_round_ss): Ditto.
44752         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
44753         (_mm_rcp14_round_ss): Ditto.
44754         (_mm_rsqrt14_round_sd): Ditto.
44755         (_mm_rsqrt14_round_ss): Ditto.
44756         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
44757         the first input operand, get rid of match_dup.
44758         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
44759         attribute to sse.
44760         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
44761         Ditto.
44762         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
44763         operand as the first input operand, set type attribute.
44764         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
44765         Set type attribute.
44766         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
44767         operand as the first input operand, set type attribute.
44768
44769 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44770
44771         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
44772         bit of zero.
44773
44774 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
44775
44776         PR target/60207
44777         * config/i386/i386.c (construct_container): Remove TFmode check
44778         for X86_64_INTEGER_CLASS.
44779
44780 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
44781
44782         PR target/59794
44783         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
44784         only when -Wpsabi is enabled.
44785
44786 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
44787
44788         PR target/59799
44789         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
44790         passing arrays in registers are the same as for structs, so remove the
44791         special case for them.
44792
44793 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
44794
44795         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
44796         destination type, extract only the valid bits if the source type is not
44797         integral and has a different mode.
44798
44799 2014-02-19  Richard Biener  <rguenther@suse.de>
44800
44801         PR ipa/60243
44802         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
44803         for all calls.
44804
44805 2014-02-19  Richard Biener  <rguenther@suse.de>
44806
44807         PR ipa/60243
44808         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
44809         (ipa_modify_call_arguments): Emit an argument load explicitely and
44810         preserve virtual SSA form there and for the replacement call.
44811         Do not update SSA form nor free dominance info.
44812
44813 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44814
44815         * ipa.c (function_and_variable_visibility): Also clear WEAK
44816         flag when disolving COMDAT_GROUP.
44817
44818 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44819
44820         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
44821         * ipa-prop.c (ipa_set_jf_known_type): Return early when
44822         not devirtualizing.
44823         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
44824         do more sanity checks.
44825         (detect_type_change): Return true when giving up early.
44826         (compute_complex_assign_jump_func): Fix type parameter of
44827         ipa_set_ancestor_jf.
44828         (compute_complex_ancestor_jump_func): Likewise.
44829         (update_jump_functions_after_inlining): Fix updating of
44830         ancestor function.
44831         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
44832
44833 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44834
44835         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
44836         inline clones when edge disappears.
44837
44838 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
44839
44840         PR target/60203
44841         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
44842         Split 64-bit moves into 2 patterns.  Do not allow the use of
44843         direct move for TDmode in little endian, since the decimal value
44844         has little endian bytes within a word, but the 64-bit pieces are
44845         ordered in a big endian fashion, and normal subreg's of TDmode are
44846         not allowed.
44847         (mov<mode>_64bit_dm): Likewise.
44848         (movtd_64bit_nodm): Likewise.
44849
44850 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44851
44852         PR tree-optimization/60174
44853         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
44854         statement of an SSA_NAME that occurs in an abnormal PHI node.
44855
44856 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44857
44858         PR sanitizer/60142
44859         * final.c (SEEN_BB): Remove.
44860         (SEEN_NOTE, SEEN_EMITTED): Renumber.
44861         (final_scan_insn): Don't force_source_line on second
44862         NOTE_INSN_BASIC_BLOCK.
44863
44864 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
44865
44866         PR target/60205
44867         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
44868         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
44869         (type_natural_mode): Warn ABI change when %zmm register is not
44870         available for AVX512F vector value passing.
44871
44872 2014-02-18  Kai Tietz  <ktietz@redhat.com>
44873
44874         PR target/60193
44875         * config/i386/i386.c (ix86_expand_prologue): Use value in
44876         rax register as displacement when restoring %r10 or %rax.
44877         Fix wrong offset when restoring both registers.
44878
44879 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44880
44881         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
44882         assertion with conditional return.
44883
44884 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44885             Uros Bizjak  <ubizjak@gmail.com>
44886
44887         PR driver/60233
44888         * config/i386/driver-i386.c (host_detect_local_cpu): If
44889         YMM state is not saved by the OS, also clear has_f16c.  Move
44890         CPUID 0x80000001 handling before YMM state saving checking.
44891
44892 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
44893
44894         PR rtl-optimization/58960
44895         * haifa-sched.c (alloc_global_sched_pressure_data): New,
44896         factored out from ...
44897         (sched_init): ... here.
44898         (free_global_sched_pressure_data): New, factored out from ...
44899         (sched_finish): ... here.
44900         * sched-int.h (free_global_sched_pressure_data): Declare.
44901         * sched-rgn.c (nr_regions_initial): New static global.
44902         (haifa_find_rgns): Initialize it.
44903         (schedule_region): Disable sched-pressure for the newly
44904         generated regions.
44905
44906 2014-02-17  Richard Biener  <rguenther@suse.de>
44907
44908         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
44909         release SSA defs of pattern stmts.
44910
44911 2014-02-17  Richard Biener  <rguenther@suse.de>
44912
44913         * tree-inline.c (expand_call_inline): Release the virtual
44914         operand defined by the call we are about to inline.
44915
44916 2014-02-17  Richard Biener  <rguenther@suse.de>
44917
44918         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
44919
44920 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
44921             Ilya Tocar  <ilya.tocar@intel.com>
44922
44923         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
44924         arguments order in builtin.
44925         (_mm512_permutexvar_epi64): Ditto.
44926         (_mm512_mask_permutexvar_epi64): Ditto
44927         (_mm512_maskz_permutexvar_epi32): Ditto
44928         (_mm512_permutexvar_epi32): Ditto
44929         (_mm512_mask_permutexvar_epi32): Ditto
44930
44931 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44932
44933         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
44934         (p8_vmrgow): Likewise.
44935
44936 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44937
44938         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
44939         endian targets.
44940
44941 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
44942
44943         PR target/60203
44944         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
44945         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
44946         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
44947         using direct move instructions on ISA 2.07.  Also adjust
44948         instruction length for 64-bit.
44949         (mov<mode>_64bit, TFmode/TDmode): Likewise.
44950         (mov<mode>_32bit, TFmode/TDmode): Likewise.
44951
44952 2014-02-15  Alan Modra  <amodra@gmail.com>
44953
44954         PR target/58675
44955         PR target/57935
44956         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
44957         find_replacement on parts of insn rtl that might be reloaded.
44958
44959 2014-02-15  Richard Biener  <rguenther@suse.de>
44960
44961         PR tree-optimization/60183
44962         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
44963         (tree_ssa_phiprop): Calculate and free post-dominators.
44964
44965 2014-02-14  Jeff Law  <law@redhat.com>
44966
44967         PR rtl-optimization/60131
44968         * ree.c (get_extended_src_reg): New function.
44969         (combine_reaching_defs): Use it rather than assuming location of REG.
44970         (find_and_remove_re): Verify first operand of extension is
44971         a REG before adding the insns to the copy list.
44972
44973 2014-02-14  Roland McGrath  <mcgrathr@google.com>
44974
44975         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
44976         * configure: Regenerated.
44977         * config.in: Regenerated.
44978         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
44979         instead of ASM_SHORT.
44980
44981 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
44982             Richard Earnshaw  <rearnsha@arm.com>
44983
44984         PR rtl-optimization/59535
44985         * lra-constraints.c (process_alt_operands): Encourage alternative
44986         when unassigned pseudo class is superset of the alternative class.
44987         (inherit_reload_reg): Don't inherit when optimizing for code size.
44988         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
44989         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
44990         modes not less than 4 for Thumb1.
44991
44992 2014-02-14  Kyle McMartin  <kyle@redhat.com>
44993
44994         PR pch/60010
44995         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
44996
44997 2014-02-14  Richard Biener  <rguenther@suse.de>
44998
44999         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
45000         (get_frame_arg): Drop the assert with langhook types_compatible_p.
45001         Do not strip INDIRECT_REFs.
45002
45003 2014-02-14  Richard Biener  <rguenther@suse.de>
45004
45005         PR lto/60179
45006         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
45007         DECL_FUNCTION_SPECIFIC_TARGET.
45008         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
45009         * tree-streamer-out.c (pack_ts_target_option): Remove.
45010         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
45011         (write_ts_function_decl_tree_pointers): Do not stream
45012         DECL_FUNCTION_SPECIFIC_TARGET.
45013         * tree-streamer-in.c (unpack_ts_target_option): Remove.
45014         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
45015         (lto_input_ts_function_decl_tree_pointers): Do not stream
45016         DECL_FUNCTION_SPECIFIC_TARGET.
45017
45018 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
45019
45020         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
45021         (get_initial_def_for_induction, vectorizable_induction): Ignore
45022         debug stmts when looking for exit_phi.
45023         (vectorizable_live_operation): Fix up condition.
45024
45025 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45026
45027         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
45028         nreverse() because it changes the content of original tree list.
45029
45030 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45031
45032         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
45033         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
45034
45035 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
45036
45037         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
45038         GNU coding standards.
45039
45040 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45041
45042         PR debug/60152
45043         * dwarf2out.c (gen_subprogram_die): Don't call
45044         add_calling_convention_attribute if subr_die is old_die.
45045
45046 2014-02-13  Sharad Singhai  <singhai@google.com>
45047
45048         * doc/optinfo.texi: Fix order of nodes.
45049
45050 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
45051
45052         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
45053         operands[2], not operands[3].
45054
45055 2014-02-13  Richard Biener  <rguenther@suse.de>
45056
45057         PR bootstrap/59878
45058         * doc/install.texi (ISL): Update recommended version to 0.12.2,
45059         mention the possibility of an in-tree build.
45060         (CLooG): Update recommended version to 0.18.1, mention the
45061         possibility of an in-tree build and clarify that the ISL
45062         bundled with CLooG does not work.
45063
45064 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
45065
45066         PR target/43546
45067         * expr.c (compress_float_constant): If x is a hard register,
45068         extend into a pseudo and then move to x.
45069
45070 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
45071
45072         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
45073         caused by bad second argument to warning_at() with -mhotpatch and
45074         nested functions (e.g. with gfortran).
45075
45076 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
45077
45078         * opts.c (option_name): Remove "enabled by default" rider.
45079
45080 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
45081
45082         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
45083
45084 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
45085             Uros Bizjak  <ubizjak@gmail.com>
45086
45087         PR target/60151
45088         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
45089         * configure: Regenerated.
45090
45091 2014-02-12  Richard Biener  <rguenther@suse.de>
45092
45093         * vec.c (vec_prefix::calculate_allocation): Move as
45094         inline variant to vec.h.
45095         (vec_prefix::calculate_allocation_1): New out-of-line version.
45096         * vec.h (vec_prefix::calculate_allocation_1): Declare.
45097         (vec_prefix::m_has_auto_buf): Rename to ...
45098         (vec_prefix::m_using_auto_storage): ... this.
45099         (vec_prefix::calculate_allocation): Inline the easy cases
45100         and dispatch to calculate_allocation_1 which doesn't need the
45101         prefix address.
45102         (va_heap::reserve): Use gcc_checking_assert.
45103         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
45104         m_using_auto_storage.
45105         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
45106         member and adjust.
45107         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
45108         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
45109         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
45110
45111 2014-02-12  Richard Biener  <rguenther@suse.de>
45112
45113         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
45114         when we found a dependence.
45115
45116 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
45117
45118         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
45119         common code...
45120         (maybe_fold_stmt): ... into this new function.
45121         * omp-low.c (lower_omp): Update comment.
45122
45123         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
45124         last use.
45125
45126         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
45127         dereference.
45128
45129 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
45130
45131         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
45132         identifiers in comments.
45133         (cortexa53_extra_costs): Likewise.
45134         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
45135         (cortexa7_extra_costs): Likewise.
45136         (cortexa12_extra_costs): Likewise.
45137         (cortexa15_extra_costs): Likewise.
45138         (v7m_extra_costs): Likewise.
45139
45140 2014-02-12  Richard Biener  <rguenther@suse.de>
45141
45142         PR middle-end/60092
45143         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
45144         of posix_memalign being successful.
45145         (lower_stmt): Restrict lowering of posix_memalign to when
45146         -ftree-bit-ccp is enabled.
45147
45148 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
45149
45150         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
45151         arg_loc.
45152         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
45153
45154 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
45155
45156         PR rtl-optimization/60116
45157         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
45158         other_insn once the combination has been validated.
45159
45160 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
45161
45162         PR lto/59468
45163         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
45164         and wrapper.
45165         * ipa-devirt.c: Include demangle.h
45166         (odr_violation_reported): New static variable.
45167         (add_type_duplicate): Update odr_violations.
45168         (maybe_record_node): Add completep parameter; update it.
45169         (record_target_from_binfo): Add COMPLETEP parameter;
45170         update it as needed.
45171         (possible_polymorphic_call_targets_1): Likewise.
45172         (struct polymorphic_call_target_d): Add nonconstruction_targets;
45173         rename FINAL to COMPLETE.
45174         (record_targets_from_bases): Sanity check we found the binfo;
45175         fix COMPLETEP updating.
45176         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
45177         parameter, fix computing of COMPLETEP.
45178         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
45179         at LTO time do demangling.
45180         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
45181         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
45182         parameter.
45183         (gimple_get_virt_method_for_binfo): Likewise.
45184         * gimple-fold.h (gimple_get_virt_method_for_binfo,
45185         gimple_get_virt_method_for_vtable): Update prototypes.
45186
45187 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
45188
45189         PR target/49008
45190         * genautomata.c (add_presence_absence): Fix typo with
45191         {final_}presence_list.
45192
45193 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
45194
45195         PR target/60137
45196         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
45197         for VSX/Altivec vectors that land in GPR registers.
45198
45199 2014-02-11  Richard Henderson  <rth@redhat.com>
45200             Jakub Jelinek  <jakub@redhat.com>
45201
45202         PR debug/59776
45203         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
45204         around drhs if type conversion to lacc->type is not useless.
45205
45206 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45207
45208         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
45209         tuning struct.
45210         (cortex-a57.cortex-a53): Likewise.
45211         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
45212
45213 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45214
45215         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
45216         arm_restrict_it.
45217
45218 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
45219
45220         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
45221         add_options_for_arm_vfp3.
45222
45223 2014-02-11  Jeff Law  <law@redhat.com>
45224
45225         PR middle-end/54041
45226         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
45227         object with an undesirable mode.
45228
45229 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45230
45231         PR libgomp/60107
45232         * config/i386/sol2-9.h: New file.
45233         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
45234         *-*-solaris2.9*): Use it.
45235
45236 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45237
45238         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
45239         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
45240
45241 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45242
45243         * config/microblaze/microblaze.c: Extend mcpu version format
45244
45245 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
45246
45247         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
45248
45249 2014-02-10  Richard Henderson  <rth@redhat.com>
45250
45251         PR target/59927
45252         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
45253         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
45254         ms-abi vs -mno-accumulate-outgoing-args.
45255         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
45256         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
45257         respect to ms-abi.
45258
45259 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45260
45261         PR middle-end/60080
45262         * cfgexpand.c (expand_asm_operands): Attach source location to
45263         ASM_INPUT rtx objects.
45264         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45265
45266 2014-02-10  Nick Clifton  <nickc@redhat.com>
45267
45268         * config/mn10300/mn10300.c (popcount): New function.
45269         (mn10300_expand_prologue): Include saved registers in stack usage
45270         count.
45271
45272 2014-02-10  Jeff Law  <law@redhat.com>
45273
45274         PR middle-end/52306
45275         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45276         when changing the SET_DEST of a prior insn to avoid an input reload.
45277
45278 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
45279
45280         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45281         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45282         -mcall-openbsd, or -mcall-linux.
45283         (CC1_ENDIAN_BIG_SPEC): Remove.
45284         (CC1_ENDIAN_LITTLE_SPEC): Remove.
45285         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45286         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45287         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45288         and %cc1_endian_default.
45289         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45290
45291 2014-02-10  Richard Biener  <rguenther@suse.de>
45292
45293         PR tree-optimization/60115
45294         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45295         MEM_REF handling.  Properly verify that the accesses are not
45296         out of the objects bound.
45297
45298 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45299
45300         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45301         coretex to cortex.
45302
45303 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
45304
45305         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45306         proper constants and fix formatting.
45307         (possible_polymorphic_call_targets): Fix formatting.
45308
45309 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
45310             Ilya Tocar  <ilya.tocar@intel.com>
45311
45312         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
45313         (_mm512_loadu_epi32): Renamed into...
45314         (_mm512_loadu_si512): This.
45315         (_mm512_storeu_epi32): Renamed into...
45316         (_mm512_storeu_si512): This.
45317         (_mm512_maskz_ceil_ps): Removed.
45318         (_mm512_maskz_ceil_pd): Ditto.
45319         (_mm512_maskz_floor_ps): Ditto.
45320         (_mm512_maskz_floor_pd): Ditto.
45321         (_mm512_floor_round_ps): Ditto.
45322         (_mm512_floor_round_pd): Ditto.
45323         (_mm512_ceil_round_ps): Ditto.
45324         (_mm512_ceil_round_pd): Ditto.
45325         (_mm512_mask_floor_round_ps): Ditto.
45326         (_mm512_mask_floor_round_pd): Ditto.
45327         (_mm512_mask_ceil_round_ps): Ditto.
45328         (_mm512_mask_ceil_round_pd): Ditto.
45329         (_mm512_maskz_floor_round_ps): Ditto.
45330         (_mm512_maskz_floor_round_pd): Ditto.
45331         (_mm512_maskz_ceil_round_ps): Ditto.
45332         (_mm512_maskz_ceil_round_pd): Ditto.
45333         (_mm512_expand_pd): Ditto.
45334         (_mm512_expand_ps): Ditto.
45335         * config/i386/i386.c (ix86_builtins): Remove
45336         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
45337         (bdesc_args): Ditto.
45338         * config/i386/predicates.md (const1256_operand): New.
45339         (const_1_to_2_operand): Ditto.
45340         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
45341         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45342         (*avx512pf_gatherpf<mode>sf): Ditto.
45343         (avx512pf_gatherpf<mode>df): Ditto.
45344         (*avx512pf_gatherpf<mode>df_mask): Ditto.
45345         (*avx512pf_gatherpf<mode>df): Ditto.
45346         (avx512pf_scatterpf<mode>sf): Ditto.
45347         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45348         (*avx512pf_scatterpf<mode>sf): Ditto.
45349         (avx512pf_scatterpf<mode>df): Ditto.
45350         (*avx512pf_scatterpf<mode>df_mask): Ditto.
45351         (*avx512pf_scatterpf<mode>df): Ditto.
45352         (avx512f_expand<mode>): Removed.
45353         (<shift_insn><mode>3<mask_name>): Change predicate type.
45354
45355 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45356
45357         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
45358         not at the end of datarefs vector use ordered_remove to avoid
45359         reordering datarefs vector.
45360
45361         PR c/59984
45362         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
45363         mark local addressable non-static vars as GOVD_PRIVATE
45364         instead of GOVD_LOCAL.
45365         * omp-low.c (lower_omp_for): Move gimple_bind_vars
45366         and BLOCK_VARS of gimple_bind_block to new_stmt rather
45367         than copying them.
45368
45369         PR middle-end/60092
45370         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
45371         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
45372         assume_aligned or alloc_align attributes.
45373         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
45374         arguments.  Handle also assume_aligned and alloc_align attributes.
45375         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
45376         calls to functions with assume_aligned or alloc_align attributes.
45377         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
45378
45379 2014-02-08  Terry Guo  <terry.guo@arm.com>
45380
45381         * doc/invoke.texi: Document ARM -march=armv7e-m.
45382
45383 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45384
45385         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
45386         flag on __cilkrts_rethrow builtin.
45387
45388         PR ipa/60026
45389         * ipa-cp.c (determine_versionability): Fail at -O0
45390         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
45391         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
45392
45393         Revert:
45394         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45395
45396         PR ipa/60026
45397         * tree-inline.c (copy_forbidden): Fail for
45398         __attribute__((optimize (0))) functions.
45399
45400 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45401
45402         * varpool.c: Include pointer-set.h.
45403         (varpool_remove_unreferenced_decls): Variables in other partitions
45404         will not be output; be however careful to not lose information
45405         about partitioning.
45406
45407 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45408
45409         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
45410         lookup in the vtable constructor.
45411
45412 2014-02-07  Jeff Law  <law@redhat.com>
45413
45414         PR target/40977
45415         * config/m68k/m68k.md (ashldi_extsi): Turn into a
45416         define_insn_and_split.
45417
45418         * ipa-inline.c (inline_small_functions): Fix typos.
45419
45420 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45421
45422         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
45423         (s390_can_use_return_insn): Declare.
45424         * config/s390/s390.h (EPILOGUE_USES): Define.
45425         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
45426         instructions.
45427         (s390_chunkify_start): Handle return JUMP_LABELs.
45428         (s390_early_mach): Emit a main_pool instruction on the entry edge.
45429         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
45430         (s390_can_use_return_insn): New functions.
45431         (s390_fix_long_loop_prediction): Handle conditional returns.
45432         (TARGET_SET_UP_BY_PROLOGUE): Define.
45433         * config/s390/s390.md (ANY_RETURN): New code iterator.
45434         (*creturn, *csimple_return, return, simple_return): New patterns.
45435
45436 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45437
45438         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
45439         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
45440         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
45441         REG_CFA_RESTORE list when deciding not to restore a register.
45442
45443 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45444
45445         * config/s390/s390.c: Include tree-pass.h and context.h.
45446         (s390_early_mach): New function, split out from...
45447         (s390_emit_prologue): ...here.
45448         (pass_data_s390_early_mach): New pass structure.
45449         (pass_s390_early_mach): New class.
45450         (s390_option_override): Create and register early_mach pass.
45451         Move to end of file.
45452
45453 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45454
45455         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
45456         to match for the exit block.
45457
45458 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45459
45460         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
45461         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
45462         Reject misaligned operands.
45463
45464 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45465
45466         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
45467
45468 2014-02-07  Richard Biener  <rguenther@suse.de>
45469
45470         PR middle-end/60092
45471         * gimple-low.c (lower_builtin_posix_memalign): New function.
45472         (lower_stmt): Call it to lower posix_memalign in a way
45473         to make alignment info accessible.
45474
45475 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
45476
45477         PR c++/60082
45478         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
45479         __builtin_setjmp_receiver.
45480
45481 2014-02-07  Richard Biener  <rguenther@suse.de>
45482
45483         PR middle-end/60092
45484         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
45485         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
45486         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
45487         Handle BUILT_IN_POSIX_MEMALIGN.
45488         (find_func_clobbers): Likewise.
45489         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
45490         (call_may_clobber_ref_p_1): Likewise.
45491
45492 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45493
45494         PR ipa/59918
45495         * ipa-devirt.c (record_target_from_binfo): Remove overactive
45496         sanity check.
45497
45498 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45499
45500         PR ipa/59469
45501         * lto-cgraph.c (lto_output_node): Use
45502         symtab_get_symbol_partitioning_class.
45503         (lto_output_varpool_node): likewise.
45504         (symtab_get_symbol_partitioning_class): Move here from
45505         lto/lto-partition.c
45506         * cgraph.h (symbol_partitioning_class): Likewise.
45507         (symtab_get_symbol_partitioning_class): Declare.
45508
45509 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45510
45511         * ggc.h (ggc_internal_cleared_alloc): New macro.
45512         * vec.h (vec_safe_copy): Handle memory stats.
45513         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
45514         * target-globals.c (save_target_globals): Likewise.
45515
45516 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45517
45518         PR target/60077
45519         * expr.c (emit_move_resolve_push): Export; be bit more selective
45520         on when to clear alias set.
45521         * expr.h (emit_move_resolve_push): Declare.
45522         * function.h (struct function): Add tail_call_marked.
45523         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
45524         * config/i386/i386-protos.h (ix86_expand_push): Remove.
45525         * config/i386/i386.md (TImode move expander): De not call
45526         ix86_expand_push.
45527         (FP push expanders): Preserve memory attributes.
45528         * config/i386/sse.md (push<mode>1): Remove.
45529         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
45530         (ix86_expand_push): Remove.
45531         * config/i386/mmx.md (push<mode>1): Remove.
45532
45533 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45534
45535         PR rtl-optimization/60030
45536         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
45537         lopart with paradoxical subreg before shifting it up by hprec.
45538
45539 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45540
45541         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
45542         Remove extra newline at end of file.
45543         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
45544         (arm_issue_rate): Handle cortexa57.
45545         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
45546         (cortex-a57.cortex-a53): Likewise.
45547
45548 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45549
45550         PR target/59575
45551         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
45552         don't record in REG_FRAME_RELATED_EXPR registers not set in that
45553         bitmask.
45554         (arm_expand_prologue): Adjust all callers.
45555         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
45556         info, registers also at the lowest numbered registers side.  Use
45557         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
45558         XEXP.
45559
45560         PR debug/59992
45561         * var-tracking.c (adjust_mems): Before adding a SET to
45562         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
45563
45564 2014-02-06  Alan Modra  <amodra@gmail.com>
45565
45566         PR target/60032
45567         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
45568         change SDmode to DDmode when lra_in_progress.
45569
45570 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45571
45572         PR middle-end/59150
45573         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
45574         free_data_ref on the dr first, and before goto again also set dr
45575         to the next dr.  For simd_lane_access, free old datarefs[i] before
45576         overwriting it.  For get_vectype_for_scalar_type failure, don't
45577         free_data_ref if simd_lane_access.
45578
45579         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
45580
45581         PR target/60062
45582         * tree.h (opts_for_fn): New inline function.
45583         (opt_for_fn): Define.
45584         * config/i386/i386.c (ix86_function_regparm): Use
45585         opt_for_fn (decl, optimize) instead of optimize.
45586
45587 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
45588
45589         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
45590         for SYMBOL_REF in large memory model.
45591
45592 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45593
45594         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
45595         and crypto support.
45596         (cortex-a57): Likewise.
45597         (cortex-a57.cortex-a53): Likewise.
45598
45599 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
45600             Kugan Vivekanandarajah  <kuganv@linaro.org>
45601
45602         * config/arm/arm.c (arm_vector_alignment_reachable): Check
45603         unaligned_access.
45604         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
45605
45606 2014-02-06  Richard Biener  <rguenther@suse.de>
45607
45608         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
45609         set_loop_copy and initialize_original_copy_tables.
45610
45611 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
45612
45613         * config/aarch64/aarch64-simd.md
45614         (aarch64_ashr_simddi): Change QI to SI.
45615
45616 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45617             Jakub Jelinek  <jakub@redhat.com>
45618
45619         PR middle-end/60013
45620         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
45621         of the dataflow.
45622
45623 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45624
45625         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
45626         CODE_FOR_altivec_vpku[hw]um to
45627         CODE_FOR_altivec_vpku[hw]um_direct.
45628         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
45629         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
45630         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
45631         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
45632
45633 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45634
45635         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
45636         generation for -maltivec=be.
45637         (altivec_vsumsws): Simplify redundant test.
45638
45639 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45640
45641         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
45642         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
45643         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
45644         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
45645         gen_altivec_vpkuwum.
45646         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
45647         BYTES_BIG_ENDIAN.
45648         (altivec_vpks<VI_char>ss): Likewise.
45649         (altivec_vpks<VI_char>us): Likewise.
45650         (altivec_vpku<VI_char>us): Likewise.
45651         (altivec_vpku<VI_char>um): Likewise.
45652         (altivec_vpku<VI_char>um_direct): New (copy of
45653         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
45654         internal use).
45655         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
45656         target is little endian and -maltivec=be is not specified.
45657         (*altivec_vupkhs<VU_char>_direct): New (copy of
45658         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
45659         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
45660         target is little endian and -maltivec=be is not specified.
45661         (*altivec_vupkls<VU_char>_direct): New (copy of
45662         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
45663         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
45664         little endian and -maltivec=be is not specified.
45665         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
45666         little endian and -maltivec=be is not specified.
45667
45668 2014-02-05  Richard Henderson  <rth@redhat.com>
45669
45670         PR debug/52727
45671         * combine-stack-adj.c: Revert r206943.
45672         * sched-int.h (struct deps_desc): Add last_args_size.
45673         * sched-deps.c (init_deps): Initialize it.
45674         (sched_analyze_insn): Add OUTPUT dependencies between insns that
45675         contain REG_ARGS_SIZE notes.
45676
45677 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45678
45679         * lto-cgraph.c (asm_nodes_output): Make global.
45680         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
45681         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
45682         (driver_handle_option): Handle OPT_fwpa.
45683
45684 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
45685
45686         PR ipa/59947
45687         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
45688         a comment typo and formatting issue.  If odr_hash hasn't been
45689         created, return vNULL and set *completep to false.
45690
45691         PR middle-end/57499
45692         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
45693         bb with no successors.
45694
45695 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
45696
45697         PR target/59718
45698         * doc/invoke.texi (-march): Clarify documentation for ARM.
45699         (-mtune): Likewise.
45700         (-mcpu): Likewise.
45701
45702 2014-02-05  Richard Biener  <rguenther@suse.de>
45703
45704         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
45705         when not vectorizing because of too many alias checks.
45706         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
45707         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
45708
45709 2014-02-05  Nick Clifton  <nickc@redhat.com>
45710
45711         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
45712         accept extended registers in any mode when compiling for the MN10300.
45713
45714 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
45715
45716         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
45717         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
45718         sanitization attributes.
45719         (can_inline_edge_p): Likewise.
45720         (sanitize_attrs_match_for_inline_p): New function.
45721
45722 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45723
45724         * ipa-prop.c (detect_type_change): Shor circuit testing of
45725         type changes on THIS pointer.
45726
45727 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
45728
45729         PR target/59777
45730         * config/pa/pa.c (legitimize_tls_address): Return original address
45731         if not passed a SYMBOL_REF rtx.
45732         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
45733         addresses.
45734         (pa_emit_move_sequence): Simplify TLS source operands.
45735         (pa_legitimate_constant_p): Reject all TLS constants.
45736         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
45737         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
45738
45739 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45740
45741         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
45742         groups when we know they are controlled by LTO.
45743         * varasm.c (default_binds_local_p_1): If object is in other partition,
45744         it will be resolved locally.
45745
45746 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45747
45748         * config/host-linux.c (linux_gt_pch_use_address): Don't
45749         use SSIZE_MAX because it is not always defined.
45750
45751 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
45752
45753         PR bootstrap/59913
45754         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
45755         threshold for pseudo splitting.
45756         (update_ebb_live_info): Process call argument hard registers and
45757         hard registers from insn definition too.
45758         (max_small_class_regs_num): New constant.
45759         (inherit_in_ebb): Update live hard regs through EBBs.  Update
45760         reloads_num only for small register classes.  Don't split for
45761         outputs of jumps.
45762
45763 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
45764
45765         PR ipa/60058
45766         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
45767         is non-null.
45768
45769 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45770
45771         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
45772         visibility is safe.
45773
45774 2014-02-04  Marek Polacek  <polacek@redhat.com>
45775
45776         * gdbinit.in (pel): Define.
45777
45778 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45779
45780         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
45781         behavior.
45782
45783 2014-02-04  Richard Biener  <rguenther@suse.de>
45784
45785         PR lto/59723
45786         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
45787         in function context local.
45788         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
45789         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
45790         similar to LTO_imported_decl_ref.
45791
45792 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45793
45794         PR tree-optimization/60002
45795         * cgraphclones.c (build_function_decl_skip_args): Clear
45796         DECL_LANG_SPECIFIC.
45797
45798         PR tree-optimization/60023
45799         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
45800         false to gsi_replace.
45801         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
45802         has been in some EH region and vec_stmt could throw, add
45803         vec_stmt into the same EH region.
45804         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
45805         has no lhs, ignore it.
45806         * internal-fn.c (expand_MASK_LOAD): Likewise.
45807
45808         PR ipa/60026
45809         * tree-inline.c (copy_forbidden): Fail for
45810         __attribute__((optimize (0))) functions.
45811
45812         PR other/58712
45813         * omp-low.c (simd_clone_struct_copy): If from->inbranch
45814         is set, copy one less argument.
45815         (expand_simd_clones): Don't subtract clone_info->inbranch
45816         from simd_clone_struct_alloc argument.
45817
45818         PR rtl-optimization/57915
45819         * recog.c (simplify_while_replacing): If all unary/binary/relational
45820         operation arguments are constant, attempt to simplify those.
45821
45822         PR middle-end/59261
45823         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
45824         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
45825
45826 2014-02-04  Richard Biener  <rguenther@suse.de>
45827
45828         PR tree-optimization/60012
45829         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
45830         TBAA disambiguation to all DDRs.
45831
45832 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45833
45834         PR target/59788
45835         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
45836         (LINK_SPEC): Use it for -shared, -shared-libgcc.
45837
45838 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45839
45840         PR ipa/59882
45841         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
45842
45843 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45844
45845         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
45846         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
45847
45848 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45849
45850         PR ipa/59831
45851         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
45852         to figure out targets of polymorphic calls with known decl.
45853         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45854         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
45855         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
45856         (get_polymorphic_call_info): ... here.
45857         (get_polymorphic_call_info_from_invariant): New function.
45858
45859 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45860
45861         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
45862         lookup via vtable pointer; check for type consistency
45863         and turn inconsitent facts into UNREACHABLE.
45864         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45865         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
45866         type inconsistent querries; return UNREACHABLE instead.
45867
45868 2014-02-03  Richard Henderson  <rth@twiddle.net>
45869
45870         PR tree-opt/59924
45871         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
45872         already processed this node.
45873         (normalize_one_pred_1): Pass along mark_set.
45874         (normalize_one_pred): Create and destroy a pointer_set_t.
45875         (normalize_one_pred_chain): Likewise.
45876
45877 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
45878
45879         PR gcov-profile/58602
45880         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
45881
45882 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45883
45884         PR ipa/59831
45885         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
45886         -fno-devirtualize; try to devirtualize by the knowledge of
45887         virtual table pointer given by aggregate propagation.
45888         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45889         (ipa_print_node_jump_functions): Dump also offset that
45890         is relevant for polymorphic calls.
45891         (determine_known_aggregate_parts): Add arg_type parameter; use it
45892         instead of determining the type from pointer type.
45893         (ipa_compute_jump_functions_for_edge): Update call of
45894         determine_known_aggregate_parts.
45895         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
45896         (gimple_get_virt_method_for_binfo): ... here; simplify using
45897         vtable_pointer_value_to_vtable.
45898         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
45899         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
45900         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
45901         (vtable_pointer_value_to_vtable): Break out from ...; handle also
45902         POINTER_PLUS_EXPR.
45903         (vtable_pointer_value_to_binfo): ... here.
45904         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
45905
45906 2014-02-03  Teresa Johnson  <tejohnson@google.com>
45907
45908         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
45909         redef of outer loop index variable.
45910
45911 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
45912
45913         PR c++/53017
45914         PR c++/59211
45915         * doc/extend.texi (Function Attributes): Typo.
45916
45917 2014-02-03  Cong Hou  <congh@google.com>
45918
45919         PR tree-optimization/60000
45920         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
45921         if the vectorized statement is a store.  A store statement can only
45922         appear at the end of pattern statements.
45923
45924 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
45925
45926         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
45927         (ix86_option_override_internal): Default long double to 64-bit for
45928         32-bit Bionic and to 128-bit for 64-bit Bionic.
45929
45930         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
45931         TARGET_LONG_DOUBLE_128 is true.
45932         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
45933
45934         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
45935         (mlong-double-64): Negate -mlong-double-128.
45936         (mlong-double-128): New option.
45937
45938         * config/i386/i386-c.c (ix86_target_macros): Define
45939         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
45940
45941         * doc/invoke.texi: Document -mlong-double-128.
45942
45943 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
45944
45945         PR rtl-optimization/60024
45946         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
45947
45948 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
45949
45950         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
45951
45952 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
45953
45954         PR rtl-optimization/57662
45955         * sel-sched.c (code_motion_path_driver): Do not mark already not
45956         existing blocks in the visiting bitmap.
45957
45958 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
45959
45960         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
45961         on the insn being emitted.
45962
45963 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
45964             Will Deacon  <will.deacon@arm.com>
45965
45966         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
45967
45968 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45969
45970         * config/arm/arm-tables.opt: Regenerate.
45971
45972 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45973
45974         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
45975         for vector types other than V16QImode.
45976         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
45977         define_expand, and call altivec_expand_vec_perm_le when producing
45978         code with little endian element order.
45979         (*altivec_vperm_<mode>_internal): New insn having previous
45980         behavior of altivec_vperm_<mode>.
45981         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
45982         altivec_expand_vec_perm_le when producing code with little endian
45983         element order.
45984         (*altivec_vperm_<mode>_uns_internal): New insn having previous
45985         behavior of altivec_vperm_<mode>_uns.
45986
45987 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45988
45989         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
45990         (altivec_vsumsws): Add handling for -maltivec=be with a little
45991         endian target.
45992         (altivec_vsumsws_direct): New.
45993         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
45994         gen_altivec_vsumsws.
45995
45996 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
45997
45998         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
45999         vtable_pointer_value_to_binfo): New functions.
46000         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
46001         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
46002
46003 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
46004
46005         * config/nios2/nios2.md (load_got_register): Initialize GOT
46006         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
46007         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
46008
46009 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
46010
46011         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
46012         preserverd by passthrough, do not propagate the type.
46013
46014 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46015
46016         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
46017         (mips_atomic_assign_expand_fenv): New function.
46018         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
46019
46020 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46021
46022         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
46023         (__builtin_mips_set_fcsr): Likewise.
46024         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
46025         MIPS_USI_FTYPE_VOID.
46026         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
46027         (mips16_expand_set_fcsr): Likewise.
46028         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
46029         (mips16_set_fcsr_stub): Likewise.
46030         (mips16_get_fcsr_one_only_stub): New class.
46031         (mips16_set_fcsr_one_only_stub): Likewise.
46032         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
46033         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
46034         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
46035         (hard_float): New availability predicate.
46036         (mips_builtins): Add get_fcsr and set_fcsr.
46037         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
46038         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
46039         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
46040         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
46041         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
46042         patterns.
46043
46044 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
46045
46046         * config/mips/mips.c (mips_one_only_stub): New class.
46047         (mips_need_mips16_rdhwr_p): Replace with...
46048         (mips16_rdhwr_stub): ...this new variable.
46049         (mips16_stub_call_address): New function.
46050         (mips16_rdhwr_one_only_stub): New class.
46051         (mips_expand_thread_pointer): Use mips16_stub_call_address.
46052         (mips_output_mips16_rdhwr): Delete.
46053         (mips_finish_stub): New function.
46054         (mips_code_end): Use it to handle rdhwr stubs.
46055
46056 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
46057
46058         PR target/60017
46059         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
46060         when calculating size of integer atomic types.
46061
46062 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
46063
46064         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
46065
46066 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
46067
46068         PR tree-optimization/60003
46069         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
46070         * profile.c (branch_prob): Use gimple_call_builtin_p
46071         to check for BUILT_IN_SETJMP_RECEIVER.
46072         * tree-inline.c (copy_bb): Call notice_special_calls.
46073
46074 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
46075
46076         PR bootstrap/59985
46077         * lra-constraints.c (process_alt_operands): Update reload_sum only
46078         on the first pass.
46079
46080 2014-01-31  Richard Henderson  <rth@redhat.com>
46081
46082         PR middle-end/60004
46083         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
46084         until after else_eh is processed.
46085
46086 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46087
46088         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
46089         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
46090         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
46091         in smmintrin.h, remove them.
46092         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
46093         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
46094         * config/i386/i386.md (ROUND_SAE): Fix value.
46095         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
46096         (const48_operand): New.
46097         * config/i386/subst.md (round), (round_expand): Use
46098         const_4_or_8_to_11_operand.
46099         (round_saeonly), (round_saeonly_expand): Use const48_operand.
46100
46101 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
46102
46103         * config/i386/constraints.md (Yk): Swap meaning with k.
46104         * config/i386/i386.md (movhi_internal): Change Yk to k.
46105         (movqi_internal): Ditto.
46106         (*k<logic><mode>): Ditto.
46107         (*andhi_1): Ditto.
46108         (*andqi_1): Ditto.
46109         (kandn<mode>): Ditto.
46110         (*<code>hi_1): Ditto.
46111         (*<code>qi_1): Ditto.
46112         (kxnor<mode>): Ditto.
46113         (kortestzhi): Ditto.
46114         (kortestchi): Ditto.
46115         (kunpckhi): Ditto.
46116         (*one_cmplhi2_1): Ditto.
46117         (*one_cmplqi2_1): Ditto.
46118         * config/i386/sse.md (): Change k to Yk.
46119         (avx512f_load<mode>_mask): Ditto.
46120         (avx512f_blendm<mode>): Ditto.
46121         (avx512f_store<mode>_mask): Ditto.
46122         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
46123         (avx512f_storedqu<mode>_mask): Ditto.
46124         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
46125         Ditto.
46126         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
46127         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
46128         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
46129         (avx512f_maskcmp<mode>3): Ditto.
46130         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
46131         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
46132         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
46133         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
46134         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
46135         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
46136         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
46137         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
46138         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
46139         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
46140         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
46141         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
46142         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
46143         (vec_extract_lo_<mode>_maskm): Ditto.
46144         (vec_extract_hi_<mode>_maskm): Ditto.
46145         (avx512f_vternlog<mode>_mask): Ditto.
46146         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
46147         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
46148         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
46149         (avx512f_<code>v8div16qi2_mask): Ditto.
46150         (avx512f_<code>v8div16qi2_mask_store): Ditto.
46151         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
46152         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
46153         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
46154         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
46155         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46156         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46157         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46158         (*avx512pf_scatterpf<mode>df_mask): Ditto.
46159         (avx512cd_maskb_vec_dupv8di): Ditto.
46160         (avx512cd_maskw_vec_dupv16si): Ditto.
46161         (avx512f_vpermi2var<mode>3_maskz): Ditto.
46162         (avx512f_vpermi2var<mode>3_mask): Ditto.
46163         (avx512f_vpermi2var<mode>3_mask): Ditto.
46164         (avx512f_vpermt2var<mode>3_maskz): Ditto.
46165         (*avx512f_gathersi<mode>): Ditto.
46166         (*avx512f_gathersi<mode>_2): Ditto.
46167         (*avx512f_gatherdi<mode>): Ditto.
46168         (*avx512f_gatherdi<mode>_2): Ditto.
46169         (*avx512f_scattersi<mode>): Ditto.
46170         (*avx512f_scatterdi<mode>): Ditto.
46171         (avx512f_compress<mode>_mask): Ditto.
46172         (avx512f_compressstore<mode>_mask): Ditto.
46173         (avx512f_expand<mode>_mask): Ditto.
46174         * config/i386/subst.md (mask): Change k to Yk.
46175         (mask_scalar_merge): Ditto.
46176         (sd): Ditto.
46177
46178 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
46179
46180         * doc/extend.texi (Vector Extensions): Document ?: in C++.
46181
46182 2014-01-31  Richard Biener  <rguenther@suse.de>
46183
46184         PR middle-end/59990
46185         * builtins.c (fold_builtin_memory_op): Make sure to not
46186         use a floating-point mode or a boolean or enumeral type for
46187         the copy operation.
46188
46189 2014-01-30  DJ Delorie  <dj@redhat.com>
46190
46191         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
46192         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
46193         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
46194         whenever main() has an epilogue.
46195
46196 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46197
46198         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
46199         unused variable "field".
46200         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
46201         (vsx_mergeh_<mode>): Likewise.
46202         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
46203         (altivec_vmrghh): Likewise.
46204         (altivec_vmrghw): Likewise.
46205         (altivec_vmrglb): Likewise.
46206         (altivec_vmrglh): Likewise.
46207         (altivec_vmrglw): Likewise.
46208         (altivec_vspltb): Add missing uses.
46209         (altivec_vsplth): Likewise.
46210         (altivec_vspltw): Likewise.
46211         (altivec_vspltsf): Likewise.
46212
46213 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46214
46215         PR target/59923
46216         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
46217         frame related instructions.
46218
46219 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
46220
46221         PR rtl-optimization/59959
46222         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
46223         any reload of register whose subreg is invalid.
46224
46225 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46226
46227         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
46228         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
46229         Add missing return type - void.
46230
46231 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46232
46233         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
46234         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
46235         remove element index adjustment for endian (now handled in vsx.md
46236         and altivec.md).
46237         (altivec_expand_vec_perm_const): Use
46238         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
46239         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
46240         (vsx_xxspltw_<mode>): Adjust element index for little endian.
46241         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
46242         define_expand and a new define_insn *altivec_vspltb_internal;
46243         adjust for -maltivec=be on a little endian target.
46244         (altivec_vspltb_direct): New.
46245         (altivec_vsplth): Divide into a define_expand and a new
46246         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
46247         little endian target.
46248         (altivec_vsplth_direct): New.
46249         (altivec_vspltw): Divide into a define_expand and a new
46250         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
46251         little endian target.
46252         (altivec_vspltw_direct): New.
46253         (altivec_vspltsf): Divide into a define_expand and a new
46254         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
46255         a little endian target.
46256
46257 2014-01-30  Richard Biener  <rguenther@suse.de>
46258
46259         PR tree-optimization/59993
46260         * tree-ssa-forwprop.c (associate_pointerplus): Check we
46261         can propagate form the earlier stmt and avoid the transform
46262         when the intermediate result is needed.
46263
46264 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
46265
46266         * README.Portability: Fix typo.
46267
46268 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
46269
46270         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46271         comparison_operator with ordered_comparison_operator.
46272
46273 2014-01-30  Nick Clifton  <nickc@redhat.com>
46274
46275         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46276         Rename to mn10300_store_multiple_regs.
46277         * config/mn10300/mn10300.c: Likewise.
46278         * config/mn10300/mn10300.md (store_movm): Fix typo: call
46279         store_multiple_regs.
46280         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46281         Call mn10300_store_multiple_regs.
46282
46283 2014-01-30  Nick Clifton  <nickc@redhat.com>
46284             DJ Delorie  <dj@redhat.com>
46285
46286         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46287         %fp 2 to keep registers after it properly word-aligned.
46288         (rl78_alloc_physical_registers_umul): Handle the case where both
46289         input operands are the same.
46290
46291 2014-01-30  Richard Biener  <rguenther@suse.de>
46292
46293         PR tree-optimization/59903
46294         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46295         check properly.
46296
46297 2014-01-30  Jason Merrill  <jason@redhat.com>
46298
46299         PR c++/59633
46300         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46301
46302         PR c++/59645
46303         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46304
46305 2014-01-30  Richard Biener  <rguenther@suse.de>
46306
46307         PR tree-optimization/59951
46308         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46309
46310 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
46311
46312         PR target/59784
46313         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
46314         SFmode to DFmode case.
46315
46316 2014-01-29  DJ Delorie  <dj@redhat.com>
46317
46318         * config/msp430/msp430.opt (-minrt): New.
46319         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
46320         if -minrt given.
46321         (ENDFILE_SPEC): Likewise.
46322
46323 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
46324
46325         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
46326         (estimate_function_body_sizes): Use it.
46327
46328 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
46329
46330         PR c++/58561
46331         * dwarf2out.c (is_cxx_auto): New.
46332         (is_base_type): Use it.
46333         (gen_type_die_with_usage): Likewise.
46334
46335 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46336
46337         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
46338         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
46339         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
46340         -maltivec=be with LE targets.
46341         (vsx_mergeh_<mode>): Likewise.
46342         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
46343         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
46344         (altivec_vmrghb): Replace with define_expand and new
46345         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
46346         (altivec_vmrghb_direct): New define_insn.
46347         (altivec_vmrghh): Replace with define_expand and new
46348         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
46349         (altivec_vmrghh_direct): New define_insn.
46350         (altivec_vmrghw): Replace with define_expand and new
46351         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
46352         (altivec_vmrghw_direct): New define_insn.
46353         (*altivec_vmrghsf): Adjust for endianness.
46354         (altivec_vmrglb): Replace with define_expand and new
46355         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
46356         (altivec_vmrglb_direct): New define_insn.
46357         (altivec_vmrglh): Replace with define_expand and new
46358         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
46359         (altivec_vmrglh_direct): New define_insn.
46360         (altivec_vmrglw): Replace with define_expand and new
46361         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
46362         (altivec_vmrglw_direct): New define_insn.
46363         (*altivec_vmrglsf): Adjust for endianness.
46364         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46365         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46366         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46367         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46368         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46369         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46370         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46371         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46372
46373 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46374
46375         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
46376         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
46377         whitespace.
46378
46379 2014-01-29  Richard Biener  <rguenther@suse.de>
46380
46381         PR tree-optimization/58742
46382         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
46383         associate_pointerplus_align.
46384         (associate_pointerplus_diff): New function.
46385         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
46386         and associate_pointerplus_diff.
46387
46388 2014-01-29  Richard Biener  <rguenther@suse.de>
46389
46390         * lto-streamer.h (LTO_major_version): Bump to 3.
46391         (LTO_minor_version): Reset to 0.
46392
46393 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
46394
46395         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
46396         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
46397         (arm_file_start): Generate correct asm header for armv7ve.
46398         * config/arm/bpabi.h: Add multilib support for armv7ve.
46399         * config/arm/driver-arm.c: Change the architectures of cortex-a7
46400         and cortex-a15 to armv7ve.
46401         * config/arm/t-aprofile: Add multilib support for armv7ve.
46402         * doc/invoke.texi: Document -march=armv7ve.
46403
46404 2014-01-29  Richard Biener  <rguenther@suse.de>
46405
46406         PR tree-optimization/58742
46407         * tree-ssa-forwprop.c (associate_plusminus): Return true
46408         if we changed sth, defer EH cleanup to ...
46409         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
46410         (simplify_mult): New function.
46411
46412 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46413
46414         PR middle-end/59917
46415         PR tree-optimization/59920
46416         * tree.c (build_common_builtin_nodes): Remove
46417         __builtin_setjmp_dispatcher initialization.
46418         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
46419         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
46420         instead of gsi_after_labels + manually skipping debug stmts.
46421         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
46422         ignore bbs with IFN_ABNORMAL_DISPATCHER.
46423         * tree-inline.c (copy_edges_for_bb): Remove
46424         can_make_abnormal_goto argument, instead add abnormal_goto_dest
46425         argument.  Ignore computed_goto_p stmts.  Don't call
46426         make_abnormal_goto_edges.  If a call might need abnormal edges
46427         for non-local gotos, see if it already has an edge to
46428         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
46429         with true argument, don't do anything then, otherwise add
46430         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
46431         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
46432         caller.
46433         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
46434         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
46435         (lower_stmt): Don't set data->calls_builtin_setjmp.
46436         (lower_builtin_setjmp): Adjust comment.
46437         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
46438         * tree-cfg.c (found_computed_goto): Remove.
46439         (factor_computed_gotos): Remove.
46440         (make_goto_expr_edges): Return bool, true for computed gotos.
46441         Don't call make_abnormal_goto_edges.
46442         (build_gimple_cfg): Don't set found_computed_goto, don't call
46443         factor_computed_gotos.
46444         (computed_goto_p): No longer static.
46445         (make_blocks): Don't set found_computed_goto.
46446         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
46447         (make_edges): If make_goto_expr_edges returns true, push bb
46448         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
46449         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
46450         vector.  Record mapping between bbs and OpenMP regions if there
46451         are any, adjust make_gimple_omp_edges caller.  Call
46452         handle_abnormal_edges.
46453         (make_abnormal_goto_edges): Remove.
46454         * tree-cfg.h (make_abnormal_goto_edges): Remove.
46455         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
46456         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
46457         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
46458         * internal-fn.def (ABNORMAL_DISPATCHER): New.
46459         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
46460         filling *region also set *region_idx to (*region)->entry->index.
46461
46462         PR other/58712
46463         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
46464         For REGs set ORIGINAL_REGNO.
46465
46466 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
46467
46468         * doc/md.texi: Mention that a target shouldn't implement
46469         vec_widen_(s|u)mul_even/odd pair if it is less efficient
46470         than hi/lo pair.
46471
46472 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46473
46474         PR tree-optimization/59594
46475         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
46476         a copy of the datarefs vector rather than the vector itself.
46477
46478 2014-01-28  Jason Merrill  <jason@redhat.com>
46479
46480         PR c++/53756
46481         * dwarf2out.c (auto_die): New static.
46482         (gen_type_die_with_usage): Handle C++1y 'auto'.
46483         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
46484         on definition.
46485
46486 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
46487
46488         PR target/59672
46489         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
46490         (SPEC_X32): Likewise.
46491         (SPEC_64): Likewise.
46492         * config/i386/i386.c (ix86_option_override_internal): Turn off
46493         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
46494         for TARGET_16BIT.
46495         (x86_file_start): Output .code16gcc for TARGET_16BIT.
46496         * config/i386/i386.h (TARGET_16BIT): New macro.
46497         (TARGET_16BIT_P): Likewise.
46498         * config/i386/i386.opt: Add m16.
46499         * doc/invoke.texi: Document -m16.
46500
46501 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
46502
46503         PR preprocessor/59935
46504         * input.c (location_get_source_line): Bail out on when line number
46505         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
46506
46507 2014-01-28  Richard Biener  <rguenther@suse.de>
46508
46509         PR tree-optimization/58742
46510         * tree-ssa-forwprop.c (associate_plusminus): Handle
46511         pointer subtraction of the form (T)(P + A) - (T)P.
46512
46513 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46514
46515         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
46516         at const_int_cost.
46517
46518 2014-01-28  Richard Biener  <rguenther@suse.de>
46519
46520         Revert
46521         2014-01-28  Richard Biener  <rguenther@suse.de>
46522
46523         PR rtl-optimization/45364
46524         PR rtl-optimization/59890
46525         * var-tracking.c (local_get_addr_clear_given_value): Handle
46526         already cleared slot.
46527         (val_reset): Handle not allocated local_get_addr_cache.
46528         (vt_find_locations): Use post-order on the inverted CFG.
46529
46530 2014-01-28  Richard Biener  <rguenther@suse.de>
46531
46532         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
46533
46534 2014-01-28  Richard Biener  <rguenther@suse.de>
46535
46536         PR rtl-optimization/45364
46537         PR rtl-optimization/59890
46538         * var-tracking.c (local_get_addr_clear_given_value): Handle
46539         already cleared slot.
46540         (val_reset): Handle not allocated local_get_addr_cache.
46541         (vt_find_locations): Use post-order on the inverted CFG.
46542
46543 2014-01-28  Alan Modra  <amodra@gmail.com>
46544
46545         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
46546         * configure.ac <recursive call for build != host>: Define
46547         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
46548         and LD_FOR_BUILD too.
46549         * configure: Regenerate.
46550
46551 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
46552
46553         * config/i386/i386.c (get_builtin_code_for_version): Separate
46554         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
46555         Broadwell from Haswell.
46556
46557 2014-01-27  Steve Ellcey  <sellcey@mips.com>
46558
46559         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
46560         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
46561         * config/mips/mips.c (mips_option_override): Change setting
46562         of TARGET_DSP.
46563         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
46564         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
46565         Change from Mask to Var.
46566
46567 2014-01-27  Jeff Law  <law@redhat.com>
46568
46569         * ipa-inline.c (inline_small_functions): Fix typo.
46570
46571 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
46572
46573         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
46574         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
46575         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
46576         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
46577         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
46578         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
46579         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
46580         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
46581         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
46582         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
46583         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
46584         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
46585         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
46586         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
46587         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
46588         (_mm512_storeu_epi64): Ditto.
46589         (_mm512_cmpge_epi32_mask): Ditto.
46590         (_mm512_cmpge_epu32_mask): Ditto.
46591         (_mm512_cmpge_epi64_mask): Ditto.
46592         (_mm512_cmpge_epu64_mask): Ditto.
46593         (_mm512_cmple_epi32_mask): Ditto.
46594         (_mm512_cmple_epu32_mask): Ditto.
46595         (_mm512_cmple_epi64_mask): Ditto.
46596         (_mm512_cmple_epu64_mask): Ditto.
46597         (_mm512_cmplt_epi32_mask): Ditto.
46598         (_mm512_cmplt_epu32_mask): Ditto.
46599         (_mm512_cmplt_epi64_mask): Ditto.
46600         (_mm512_cmplt_epu64_mask): Ditto.
46601         (_mm512_cmpneq_epi32_mask): Ditto.
46602         (_mm512_cmpneq_epu32_mask): Ditto.
46603         (_mm512_cmpneq_epi64_mask): Ditto.
46604         (_mm512_cmpneq_epu64_mask): Ditto.
46605         (_mm512_expand_pd): Ditto.
46606         (_mm512_expand_ps): Ditto.
46607         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
46608         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
46609         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
46610         * config/i386/i386.c (ix86_builtins): Add
46611         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
46612         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
46613         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
46614         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
46615         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
46616         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
46617         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
46618         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
46619         IX86_BUILTIN_PMOVUSQW512_MEM.
46620         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
46621         __builtin_ia32_pmovsqd512mem_mask,
46622         __builtin_ia32_pmovqd512mem_mask,
46623         __builtin_ia32_pmovusqw512mem_mask,
46624         __builtin_ia32_pmovsqw512mem_mask,
46625         __builtin_ia32_pmovqw512mem_mask,
46626         __builtin_ia32_pmovusdw512mem_mask,
46627         __builtin_ia32_pmovsdw512mem_mask,
46628         __builtin_ia32_pmovdw512mem_mask,
46629         __builtin_ia32_pmovqb512mem_mask,
46630         __builtin_ia32_pmovusqb512mem_mask,
46631         __builtin_ia32_pmovsqb512mem_mask,
46632         __builtin_ia32_pmovusdb512mem_mask,
46633         __builtin_ia32_pmovsdb512mem_mask,
46634         __builtin_ia32_pmovdb512mem_mask.
46635         (bdesc_args): Add __builtin_ia32_expanddf512,
46636         __builtin_ia32_expandsf512.
46637         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
46638         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
46639         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
46640         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
46641         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
46642         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
46643         (avx512f_<code>v8div16qi2_mask_store): This.
46644         (avx512f_expand<mode>): New.
46645
46646 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
46647
46648         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
46649         New.
46650         (_mm512_mask_prefetch_i64gather_pd): Ditto.
46651         (_mm512_prefetch_i32scatter_pd): Ditto.
46652         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
46653         (_mm512_prefetch_i64scatter_pd): Ditto.
46654         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
46655         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
46656         (_mm512_mask_prefetch_i64gather_ps): Ditto.
46657         (_mm512_prefetch_i32scatter_ps): Ditto.
46658         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
46659         (_mm512_prefetch_i64scatter_ps): Ditto.
46660         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
46661         * config/i386/i386-builtin-types.def: Define
46662         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
46663         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
46664         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
46665         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
46666         IX86_BUILTIN_SCATTERPFQPD.
46667         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
46668         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
46669         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
46670         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
46671         __builtin_ia32_scatterpfqps.
46672         (ix86_expand_builtin): Expand new built-ins.
46673         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
46674         fix memory access data type.
46675         (*avx512pf_gatherpf<mode>_mask): Ditto.
46676         (*avx512pf_gatherpf<mode>): Ditto.
46677         (avx512pf_scatterpf<mode>): Ditto.
46678         (*avx512pf_scatterpf<mode>_mask): Ditto.
46679         (*avx512pf_scatterpf<mode>): Ditto.
46680         (GATHER_SCATTER_SF_MEM_MODE): New.
46681         (avx512pf_gatherpf<mode>df): Ditto.
46682         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46683         (*avx512pf_scatterpf<mode>df): Ditto.
46684
46685 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
46686
46687         PR bootstrap/59934
46688         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
46689         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
46690         reached.
46691
46692 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46693
46694         * common/config/arm/arm-common.c
46695         (arm_rewrite_mcpu): Handle multiple names.
46696         * config/arm/arm.h
46697         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46698
46699 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46700
46701         * gimple-builder.h (create_gimple_tmp): Delete.
46702
46703 2014-01-27  Christian Bruel  <christian.bruel@st.com>
46704
46705         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
46706         words comparisons.
46707
46708 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
46709
46710         * config/pa/pa.md (call): Generate indirect long calls to non-local
46711         functions when outputing 32-bit code.
46712         (call_value): Likewise except for special call to buggy powf function.
46713
46714         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
46715         portable runtime and PIC indirect calls.
46716         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
46717         and PIC call sequences.  Use ldo instead of blr to set return register
46718         in PIC call sequence.
46719
46720 2014-01-25  Walter Lee  <walt@tilera.com>
46721
46722         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
46723         avoid clobbering a live register.
46724
46725 2014-01-25  Walter Lee  <walt@tilera.com>
46726
46727         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
46728         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
46729         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
46730         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
46731
46732 2014-01-25  Walter Lee  <walt@tilera.com>
46733
46734         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
46735         arguments on even registers.
46736         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
46737         STACK_BOUNDARY.
46738         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
46739         (BIGGEST_ALIGNMENT): Ditto.
46740         (BIGGEST_FIELD_ALIGNMENT): Ditto.
46741
46742 2014-01-25  Walter Lee  <walt@tilera.com>
46743
46744         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
46745         insns before bundling.
46746         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
46747
46748 2014-01-25  Walter Lee  <walt@tilera.com>
46749
46750         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
46751         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
46752         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
46753
46754 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46755
46756         * config/mips/constraints.md (kl): Delete.
46757         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
46758         define expands, using...
46759         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
46760         instructions for MIPS16.
46761         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
46762         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
46763
46764 2014-01-25  Walter Lee  <walt@tilera.com>
46765
46766         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
46767         (clzdi2): Ditto.
46768         (ffsdi2): Ditto.
46769
46770 2014-01-25  Walter Lee  <walt@tilera.com>
46771
46772         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
46773         (TARGET_EXPAND_TO_RTL_HOOK): Define.
46774
46775 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46776
46777         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
46778         Handle XOR.
46779
46780 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
46781
46782         * print-rtl.c (in_call_function_usage): New var.
46783         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
46784         EXPR_LIST mode as mode and not as reg note name.
46785
46786         PR middle-end/59561
46787         * cfgloopmanip.c (copy_loop_info): If
46788         loop->warned_aggressive_loop_optimizations, make sure
46789         the flag is set in target loop too.
46790
46791 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
46792
46793         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
46794         flag_cilkplus.
46795         * builtins.def: Likewise.
46796         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
46797         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
46798         * ira.c (ira_setup_eliminable_regset): Likewise.
46799         * omp-low.c (gate_expand_omp): Likewise.
46800         (execute_lower_omp): Likewise.
46801         (diagnose_sb_0): Likewise.
46802         (gate_diagnose_omp_blocks): Likewise.
46803         (simd_clone_clauses_extract): Likewise.
46804         (gate): Likewise.
46805
46806 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46807
46808         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
46809         correction for little endian...
46810         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
46811         here.
46812
46813 2014-01-24  Jeff Law  <law@redhat.com>
46814
46815         PR tree-optimization/59919
46816         * tree-vrp.c (find_assert_locations_1): Do not register asserts
46817         for non-returning calls.
46818
46819 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
46820
46821         * common/config/aarch64/aarch64-common.c
46822         (aarch64_rewrite_mcpu): Handle multiple names.
46823         * config/aarch64/aarch64.h
46824         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46825
46826 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
46827
46828         * input.c (add_file_to_cache_tab): Handle the case where fopen
46829         returns NULL.
46830
46831 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
46832
46833         PR target/59929
46834         * config/i386/i386.md (pushsf splitter): Get stack adjustment
46835         from push operand if code of push isn't PRE_DEC.
46836
46837 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
46838
46839         PR target/59909
46840         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
46841         -mquad-memory-atomic.  Update -mquad-memory documentation to say
46842         it is only used for non-atomic loads/stores.
46843
46844         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
46845         -mquad-memory or -mquad-memory-atomic switches.
46846
46847         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
46848         -mquad-memory-atomic to ISA 2.07 support.
46849
46850         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
46851         to separate support of normal quad word memory operations (ldq, stq)
46852         from the atomic quad word memory operations.
46853
46854         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
46855         support to separate non-atomic quad word operations from atomic
46856         quad word operations.  Disable non-atomic quad word operations in
46857         little endian mode so that we don't have to swap words after the
46858         load and before the store.
46859         (quad_load_store_p): Add comment about atomic quad word support.
46860         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
46861         options printed with -mdebug=reg.
46862
46863         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
46864         -mquad-memory-atomic as the test for whether we have quad word
46865         atomic instructions.
46866         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
46867         or -mp8-vector are used, allow byte/half-word atomic operations.
46868
46869         * config/rs6000/sync.md (load_lockedti): Insure that the address
46870         is a proper indexed or indirect address for the lqarx instruction.
46871         On little endian systems, swap the hi/lo registers after the lqarx
46872         instruction.
46873         (load_lockedpti): Use indexed_or_indirect_operand predicate to
46874         insure the address is valid for the lqarx instruction.
46875         (store_conditionalti): Insure that the address is a proper indexed
46876         or indirect address for the stqcrx. instruction.  On little endian
46877         systems, swap the hi/lo registers before doing the stqcrx.
46878         instruction.
46879         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
46880         insure the address is valid for the stqcrx. instruction.
46881
46882         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
46883         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
46884         type of quad memory support is available.
46885
46886 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
46887
46888         PR regression/59915
46889         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
46890         there is a danger of looping.
46891
46892 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
46893
46894         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
46895         force flag_ira_loop_pressure if set via command line.
46896
46897 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46898
46899         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
46900         (ashr_simd): New builtin handling DI mode.
46901         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
46902         (aarch64_sshr_simddi): New match pattern.
46903         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
46904         (vshrd_n_s64): Likewise.
46905         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
46906
46907 2014-01-23  Nick Clifton  <nickc@redhat.com>
46908
46909         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
46910         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
46911         favour of mcu specific scripts.
46912         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
46913         430x multilibs.
46914
46915 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
46916             Alex Velenko  <Alex.Velenko@arm.com>
46917
46918         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
46919         (vaddv_s16): Likewise.
46920         (vaddv_s32): Likewise.
46921         (vaddv_u8): Likewise.
46922         (vaddv_u16): Likewise.
46923         (vaddv_u32): Likewise.
46924         (vaddvq_s8): Likewise.
46925         (vaddvq_s16): Likewise.
46926         (vaddvq_s32): Likewise.
46927         (vaddvq_s64): Likewise.
46928         (vaddvq_u8): Likewise.
46929         (vaddvq_u16): Likewise.
46930         (vaddvq_u32): Likewise.
46931         (vaddvq_u64): Likewise.
46932         (vaddv_f32): Likewise.
46933         (vaddvq_f32): Likewise.
46934         (vaddvq_f64): Likewise.
46935         (vmaxv_f32): Likewise.
46936         (vmaxv_s8): Likewise.
46937         (vmaxv_s16): Likewise.
46938         (vmaxv_s32): Likewise.
46939         (vmaxv_u8): Likewise.
46940         (vmaxv_u16): Likewise.
46941         (vmaxv_u32): Likewise.
46942         (vmaxvq_f32): Likewise.
46943         (vmaxvq_f64): Likewise.
46944         (vmaxvq_s8): Likewise.
46945         (vmaxvq_s16): Likewise.
46946         (vmaxvq_s32): Likewise.
46947         (vmaxvq_u8): Likewise.
46948         (vmaxvq_u16): Likewise.
46949         (vmaxvq_u32): Likewise.
46950         (vmaxnmv_f32): Likewise.
46951         (vmaxnmvq_f32): Likewise.
46952         (vmaxnmvq_f64): Likewise.
46953         (vminv_f32): Likewise.
46954         (vminv_s8): Likewise.
46955         (vminv_s16): Likewise.
46956         (vminv_s32): Likewise.
46957         (vminv_u8): Likewise.
46958         (vminv_u16): Likewise.
46959         (vminv_u32): Likewise.
46960         (vminvq_f32): Likewise.
46961         (vminvq_f64): Likewise.
46962         (vminvq_s8): Likewise.
46963         (vminvq_s16): Likewise.
46964         (vminvq_s32): Likewise.
46965         (vminvq_u8): Likewise.
46966         (vminvq_u16): Likewise.
46967         (vminvq_u32): Likewise.
46968         (vminnmv_f32): Likewise.
46969         (vminnmvq_f32): Likewise.
46970         (vminnmvq_f64): Likewise.
46971
46972 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
46973
46974         * config/aarch64/aarch64-simd.md
46975         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
46976         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
46977         (*aarch64_mul3_elt<mode>): Likewise.
46978         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
46979         (*aarch64_mul3_elt_to_64v2df): Likewise.
46980         (*aarch64_mla_elt<mode>): Likewise.
46981         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
46982         (*aarch64_mls_elt<mode>): Likewise.
46983         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
46984         (*aarch64_fma4_elt<mode>): Likewise.
46985         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
46986         (*aarch64_fma4_elt_to_64v2df): Likewise.
46987         (*aarch64_fnma4_elt<mode>): Likewise.
46988         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
46989         (*aarch64_fnma4_elt_to_64v2df): Likewise.
46990         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
46991         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
46992         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46993         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46994         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
46995         (aarch64_sqdmull_lane<mode>_internal): Likewise.
46996         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
46997
46998 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46999
47000         * config/aarch64/aarch64-simd.md
47001         (aarch64_be_checked_get_lane<mode>): New define_expand.
47002         * config/aarch64/aarch64-simd-builtins.def
47003         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
47004         New builtin definition.
47005         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
47006         Use new safe be builtin.
47007
47008 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
47009
47010         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
47011         New define_insn.
47012         (aarch64_be_st1<mode>): Likewise.
47013         (aarch_ld1<VALL:mode>): Define_expand modified.
47014         (aarch_st1<VALL:mode>): Likewise.
47015         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
47016         (UNSPEC_ST1): Likewise.
47017
47018 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
47019
47020         * config/microblaze/microblaze.md: Add trap insn and attribute
47021
47022 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
47023
47024         PR preprocessor/58580
47025         * input.h (location_get_source_line): Take an additional line_size
47026         parameter.
47027         (void diagnostics_file_cache_fini): Declare new function.
47028         * input.c (struct fcache): New type.
47029         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
47030         New static constants.
47031         (diagnostic_file_cache_init, total_lines_num)
47032         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
47033         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
47034         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
47035         (get_next_line, read_next_line, goto_next_line, read_line_num):
47036         New static function definitions.
47037         (diagnostic_file_cache_fini): New function.
47038         (location_get_source_line): Take an additional output line_len
47039         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
47040         read_line_num.
47041         * diagnostic.c (diagnostic_finish): Call
47042         diagnostic_file_cache_fini.
47043         (adjust_line): Take an additional input parameter for the length
47044         of the line, rather than calculating it with strlen.
47045         (diagnostic_show_locus): Adjust the use of
47046         location_get_source_line and adjust_line with respect to their new
47047         signature.  While displaying a line now, do not stop at the first
47048         null byte.  Rather, display the zero byte as a space and keep
47049         going until we reach the size of the line.
47050         * Makefile.in: Add vec.o to OBJS-libcommon
47051
47052 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47053             Ilya Tocar  <ilya.tocar@intel.com>
47054
47055         * config/i386/avx512fintrin.h (_mm512_kmov): New.
47056         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
47057         (__builtin_ia32_kmov16): Ditto.
47058         * config/i386/i386.md (UNSPEC_KMOV): New.
47059         (kmovw): Ditto.
47060
47061 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
47062
47063         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
47064         (_mm512_storeu_si512): Ditto.
47065
47066 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
47067
47068         PR target/52125
47069         * rtl.h (get_referenced_operands): Declare.
47070         * recog.c (get_referenced_operands): New function.
47071         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
47072         operands have been referenced when recording LO_SUM references.
47073
47074 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
47075
47076         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
47077
47078 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47079
47080         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
47081         Enable for generic and recent AMD targets.
47082
47083 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
47084
47085         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
47086         ARG_SIZE note when adjustment was eliminated.
47087
47088 2014-01-22  Jeff Law  <law@redhat.com>
47089
47090         PR tree-optimization/59597
47091         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
47092         in file.  Accept new argument REGISTERING and use it to modify
47093         dump output appropriately.
47094         (register_jump_thread): Corresponding changes.
47095         (mark_threaded_blocks): Reinstate code to cancel unprofitable
47096         thread paths involving joiner blocks.  Add code to dump cancelled
47097         jump threading paths.
47098
47099 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
47100
47101         PR rtl-optimization/59477
47102         * lra-constraints.c (inherit_in_ebb): Process call for living hard
47103         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
47104
47105 2014-01-22  Tom Tromey  <tromey@redhat.com>
47106
47107         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
47108         PARAMS.
47109         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
47110
47111 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47112
47113         PR rtl-optimization/59896
47114         * lra-constraints.c (process_alt_operands): Check unused note for
47115         matched operands of insn with no output reloads.
47116
47117 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
47118
47119         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
47120         (mips_move_from_gpr_cost): Likewise.
47121
47122 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
47123
47124         PR rtl-optimization/59858
47125         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
47126         ira_class_hard_regs_num.
47127         (process_alt_operands): Increase reject for dying matched operand.
47128
47129 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
47130
47131         PR target/59003
47132         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
47133         smaller than size, perform several stores or loads and stores
47134         at dst + count - size to store or copy all of size bytes, rather
47135         than just last modesize bytes.
47136
47137 2014-01-20  DJ Delorie  <dj@redhat.com>
47138
47139         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
47140         that CLOBBERs are REGs before propogating their values.
47141
47142 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
47143
47144         PR middle-end/59789
47145         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
47146         (cgraph_inline_failed_type): New function.
47147         * cgraph.h (DEFCIFCODE): Add type.
47148         (cgraph_inline_failed_type_t): New enum.
47149         (cgraph_inline_failed_type): New prototype.
47150         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
47151         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
47152         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
47153         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
47154         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
47155         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
47156         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
47157         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
47158         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
47159         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
47160         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
47161         OPTIMIZATION_MISMATCH.
47162         * tree-inline.c (expand_call_inline): Emit errors during
47163         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
47164
47165 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47166
47167         PR target/59685
47168         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
47169         mode attribute in insn output.
47170
47171 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
47172
47173         * output.h (output_constant): Delete.
47174         * varasm.c (output_constant): Make private.
47175
47176 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
47177
47178         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
47179
47180 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47181
47182         PR middle-end/59860
47183         * tree.h (fold_builtin_strcat): New prototype.
47184         * builtins.c (fold_builtin_strcat): No longer static.  Add len
47185         argument, if non-NULL, don't call c_strlen.  Optimize
47186         directly into __builtin_memcpy instead of __builtin_strcpy.
47187         (fold_builtin_2): Adjust fold_builtin_strcat caller.
47188         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
47189
47190 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47191
47192         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47193         for SImode_address_operand operands, having only a REG argument.
47194
47195 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
47196
47197         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
47198         loader name using mbig-endian.
47199         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
47200
47201 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47202
47203         * doc/invoke.texi (-march): Clarify documentation for AArch64.
47204         (-mtune): Likewise.
47205         (-mcpu): Likewise.
47206
47207 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
47208
47209         * config/aarch64/aarch64-protos.h
47210         (aarch64_cannot_change_mode_class_ptr): Declare.
47211         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
47212         aarch64_cannot_change_mode_class_ptr): New.
47213         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
47214         backend hook aarch64_cannot_change_mode_class.
47215
47216 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47217
47218         * common/config/aarch64/aarch64-common.c
47219         (aarch64_handle_option): Don't handle any option order logic here.
47220         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
47221         selected_cpu, warn on architecture version mismatch.
47222         (aarch64_override_options): Fix parsing order for option strings.
47223
47224 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47225             Iain Sandoe  <iain@codesourcery.com>
47226
47227         PR bootstrap/59496
47228         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
47229         warning.  Amend comment to reflect current functionality.
47230
47231 2014-01-20  Richard Biener  <rguenther@suse.de>
47232
47233         PR middle-end/59860
47234         * builtins.c (fold_builtin_strcat): Remove case better handled
47235         by tree-ssa-strlen.c.
47236
47237 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
47238
47239         * config/aarch64/aarch64.opt
47240         (mcpu, march, mtune): Make case-insensitive.
47241
47242 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47243
47244         PR target/59880
47245         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47246         if operands[1] is a REG or ZERO_EXTEND of a REG.
47247
47248 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
47249
47250         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
47251
47252 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
47253
47254         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
47255         long non-pic millicode calls.
47256
47257 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47258
47259         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
47260
47261 2014-01-19  Kito Cheng  <kito@0xlab.org>
47262
47263         * builtins.c (expand_movstr): Check movstr expand done or fail.
47264
47265 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47266             H.J. Lu  <hongjiu.lu@intel.com>
47267
47268         PR target/59379
47269         * config/i386/i386.md (*lea<mode>): Zero-extend return register
47270         to DImode for zero-extended addresses.
47271
47272 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
47273
47274         PR rtl-optimization/57763
47275         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47276         on the new indirect jump_insn and increment LABEL_NUSES (label).
47277
47278 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
47279
47280         PR bootstrap/59580
47281         PR bootstrap/59583
47282         * config.gcc (x86_archs): New variable.
47283         (x86_64_archs): Likewise.
47284         (x86_cpus): Likewise.
47285         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47286         --with-arch/--with-cpu= options.
47287         Support --with-arch=/--with-cpu={nehalem,westmere,
47288         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47289
47290 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47291
47292         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47293         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
47294
47295 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47296
47297         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47298
47299 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
47300
47301         PR target/58944
47302         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47303         clear cpp_get_options (parse_in)->warn_unused_macros for
47304         ix86_target_macros_internal with cpp_define.
47305
47306 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
47307
47308         * jump.c (delete_related_insns): Keep (use (insn))s.
47309         * reorg.c (redundant_insn): Check for barriers too.
47310
47311 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47312
47313         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
47314
47315 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
47316
47317         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
47318         call to $$dyncall when TARGET_LONG_CALLS is true.
47319
47320 2014-01-17  Jeff Law  <law@redhat.com>
47321
47322         * ree.c (combine_set_extension): Temporarily disable test for
47323         changing number of hard registers.
47324
47325 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47326
47327         PR middle-end/58125
47328         * ipa-inline-analysis.c (inline_free_summary):
47329         Do not free summary of aliases.
47330
47331 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47332
47333         PR middle-end/59706
47334         * gimplify.c (gimplify_expr): Use create_tmp_var
47335         instead of create_tmp_var_raw.  If cond doesn't have
47336         integral type, don't add the IFN_ANNOTATE builtin at all.
47337
47338 2014-01-17  Martin Jambor  <mjambor@suse.cz>
47339
47340         PR ipa/59736
47341         * ipa-cp.c (prev_edge_clone): New variable.
47342         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
47343         Also resize prev_edge_clone vector.
47344         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
47345         (ipcp_edge_removal_hook): New function.
47346         (ipcp_driver): Register ipcp_edge_removal_hook.
47347
47348 2014-01-17  Andrew Pinski  <apinski@cavium.com>
47349             Steve Ellcey  <sellcey@mips.com>
47350
47351         PR target/59462
47352         * config/mips/mips.c (mips_print_operand): Check operand mode instead
47353         of operator mode.
47354
47355 2014-01-17  Jeff Law  <law@redhat.com>
47356
47357         PR middle-end/57904
47358         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
47359         so that pass_ccp runs first.
47360
47361 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47362
47363         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
47364         (ix86_adjust_cost): Use !TARGET_XXX.
47365         (do_reorder_for_imul): Likewise.
47366         (swap_top_of_ready_list): Likewise.
47367         (ix86_sched_reorder): Likewise.
47368
47369 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47370
47371         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
47372         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
47373         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
47374         (intel_memset): New.  Duplicate slm_memset.
47375         (intel_cost): New.  Duplicate slm_cost.
47376         (m_INTEL): New macro.
47377         (processor_target_table): Add "intel".
47378         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
47379         with PROCESSOR_INTEL for "intel".
47380         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
47381         PROCESSOR_SILVERMONT.
47382         (ix86_issue_rate): Likewise.
47383         (ix86_adjust_cost): Likewise.
47384         (ia32_multipass_dfa_lookahead): Likewise.
47385         (swap_top_of_ready_list): Likewise.
47386         (ix86_sched_reorder): Likewise.
47387         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
47388         instead of TARGET_OPT_AGU.
47389         * config/i386/i386.h (TARGET_INTEL): New.
47390         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
47391         (processor_type): Add PROCESSOR_INTEL.
47392         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
47393         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
47394
47395 2014-01-17  Marek Polacek  <polacek@redhat.com>
47396
47397         PR c/58346
47398         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
47399         size is zero.
47400
47401 2014-01-17  Richard Biener  <rguenther@suse.de>
47402
47403         PR tree-optimization/46590
47404         * opts.c (default_options_table): Add entries for
47405         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
47406         all enabled at -O1 but not for -Og.
47407         * common.opt (fbranch-count-reg): Remove Init(1).
47408         (fmove-loop-invariants): Likewise.
47409         (ftree-pta): Likewise.
47410
47411 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47412
47413         * config/i386/i386.c (ix86_data_alignment): For compatibility with
47414         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
47415         decls to at least the GCC 4.8 used alignments.
47416
47417         PR fortran/59440
47418         * tree-nested.c (convert_nonlocal_reference_stmt,
47419         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
47420         of GIMPLE_BIND stmts, adjust associated decls.
47421
47422 2014-01-17  Richard Biener  <rguenther@suse.de>
47423
47424         PR tree-optimization/46590
47425         * vec.h (vec<>::bseach): New member function implementing
47426         binary search according to C89 bsearch.
47427         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
47428         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
47429         bitmap pointer again.  Make accesses_in_loop a flat array.
47430         (mem_ref_obstack): New global.
47431         (outermost_indep_loop): Adjust for mem_ref->stored changes.
47432         (mark_ref_stored): Likewise.
47433         (ref_indep_loop_p_2): Likewise.
47434         (set_ref_stored_in_loop): New helper function.
47435         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
47436         (memref_free): Adjust.
47437         (record_mem_ref_loc): Simplify.
47438         (gather_mem_refs_stmt): Adjust.
47439         (sort_locs_in_loop_postorder_cmp): New function.
47440         (analyze_memory_references): Sort accesses_in_loop after
47441         loop postorder number.
47442         (find_ref_loc_in_loop_cmp): New function.
47443         (for_all_locs_in_loop): Find relevant cluster of locs in
47444         accesses_in_loop and iterate without recursion.
47445         (execute_sm): Avoid uninit warning.
47446         (struct ref_always_accessed): Simplify.
47447         (ref_always_accessed::operator ()): Likewise.
47448         (ref_always_accessed_p): Likewise.
47449         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
47450         loop postorder numbers here.
47451         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
47452         numbers.
47453
47454 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47455
47456         PR c++/57945
47457         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
47458         on decls for which assemble_alias has been called.
47459
47460 2014-01-17  Nick Clifton  <nickc@redhat.com>
47461
47462         * config/msp430/msp430.opt: (mcpu): New option.
47463         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
47464         (msp430_option_override): Parse target_cpu.  If the MCU name
47465         matches a generic string, clear target_mcu.
47466         (msp430_attr): Allow numeric interrupt values up to 63.
47467         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
47468         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
47469         option.
47470         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
47471         Add mcpu matches.
47472         * config/msp430/msp430.md (popm): Use %J rather than %I.
47473         (addsi3): Use msp430_nonimmediate_operand for operand 2.
47474         (addhi_cy_i): Use immediate_operand for operand 2.
47475         * doc/invoke.texi: Document -mcpu option.
47476
47477 2014-01-17  Richard Biener  <rguenther@suse.de>
47478
47479         PR rtl-optimization/38518
47480         * df.h (df_analyze_loop): Declare.
47481         * df-core.c: Include cfgloop.h.
47482         (df_analyze_1): Split out main part of df_analyze.
47483         (df_analyze): Adjust.
47484         (loop_inverted_post_order_compute): New function.
47485         (loop_post_order_compute): Likewise.
47486         (df_analyze_loop): New function avoiding whole-function
47487         postorder computes.
47488         * loop-invariant.c (find_defs): Use df_analyze_loop.
47489         (find_invariants): Adjust.
47490         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
47491
47492 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
47493
47494         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
47495         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
47496
47497 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
47498
47499         * ipa-ref.c (ipa_remove_stmt_references): Fix references
47500         traversal when removing references.
47501
47502 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
47503
47504         PR ipa/59775
47505         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
47506
47507 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
47508
47509         PR middle-end/56791
47510         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
47511         pushing a reload for an autoinc when we had previously reloaded an
47512         inner part of the address.
47513
47514 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
47515
47516         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
47517         field.
47518         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
47519         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
47520         when not giving up or versioning for alias only because of
47521         loop->safelen.
47522         (vect_analyze_data_ref_dependences): Set to true.
47523         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
47524         is a GIMPLE_PHI.
47525         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
47526         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
47527         to the condition.
47528
47529         PR middle-end/58344
47530         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
47531
47532         PR target/59839
47533         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
47534         operand 0 predicate for gathers, use a new pseudo as subtarget.
47535
47536 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47537
47538         PR middle-end/59609
47539         * lra-constraints.c (process_alt_operands): Add printing debug info.
47540         Check absence of input/output reloads for matched operands too.
47541
47542 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47543
47544         PR rtl-optimization/59835
47545         * ira.c (ira_init_register_move_cost): Increase cost for
47546         impossible modes.
47547
47548 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
47549
47550         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
47551
47552 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
47553
47554         PR target/59780
47555         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
47556         non-register objects.  Use gen_(high/low)part more consistently.
47557         Fix assertions.
47558
47559 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
47560
47561         PR target/59844
47562         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
47563         endian support, remove tests for WORDS_BIG_ENDIAN.
47564         (p8_mfvsrd_3_<mode>): Likewise.
47565         (reload_gpr_from_vsx<mode>): Likewise.
47566         (reload_gpr_from_vsxsf): Likewise.
47567         (p8_mfvsrd_4_disf): Likewise.
47568
47569 2014-01-16  Richard Biener  <rguenther@suse.de>
47570
47571         PR rtl-optimization/46590
47572         * lcm.c (compute_antinout_edge): Use postorder iteration.
47573         (compute_laterin): Use inverted postorder iteration.
47574
47575 2014-01-16  Nick Clifton  <nickc@redhat.com>
47576
47577         PR middle-end/28865
47578         * varasm.c (output_constant): Return the number of bytes actually
47579         emitted.
47580         (output_constructor_array_range): Update the field size with the
47581         number of bytes emitted by output_constant.
47582         (output_constructor_regular_field): Likewise.  Also do not
47583         complain if the total number of bytes emitted is now greater
47584         than the expected fieldpos.
47585         * output.h (output_constant): Update prototype and descriptive comment.
47586
47587 2014-01-16  Marek Polacek  <polacek@redhat.com>
47588
47589         PR middle-end/59827
47590         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
47591         it is error_mark_node.
47592
47593 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
47594
47595         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
47596         VALID_AVX256_REG_OR_OI_MODE.
47597
47598 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
47599
47600         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
47601         current procedure should be profiled.
47602
47603 2014-01-15  Andrew Pinski  <apinski@cavium.com>
47604
47605         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
47606         of moving from/to the STACK_REG register class.
47607
47608 2014-01-15  Richard Henderson  <rth@redhat.com>
47609
47610         PR debug/54694
47611         * reginfo.c (global_regs_decl): Globalize.
47612         * rtl.h (global_regs_decl): Declare.
47613         * ira.c (do_reload): Diagnose frame_pointer_needed and it
47614         reserved via global_regs.
47615
47616 2014-01-15  Teresa Johnson  <tejohnson@google.com>
47617
47618         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
47619
47620 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
47621
47622         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
47623         and vmulosh rather than call gen_vec_widen_smult_*.
47624         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
47625         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
47626         (vec_widen_smult_even_v16qi): Likewise.
47627         (vec_widen_umult_even_v8hi): Likewise.
47628         (vec_widen_smult_even_v8hi): Likewise.
47629         (vec_widen_umult_odd_v16qi): Likewise.
47630         (vec_widen_smult_odd_v16qi): Likewise.
47631         (vec_widen_umult_odd_v8hi): Likewise.
47632         (vec_widen_smult_odd_v8hi): Likewise.
47633         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
47634         vmuloub rather than call gen_vec_widen_umult_*.
47635         (vec_widen_umult_lo_v16qi): Likewise.
47636         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
47637         vmulosb rather than call gen_vec_widen_smult_*.
47638         (vec_widen_smult_lo_v16qi): Likewise.
47639         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
47640         rather than call gen_vec_widen_umult_*.
47641         (vec_widen_umult_lo_v8hi): Likewise.
47642         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
47643         rather than call gen_vec_widen_smult_*.
47644         (vec_widen_smult_lo_v8hi): Likewise.
47645
47646 2014-01-15  Jeff Law  <law@redhat.com>
47647
47648         PR tree-optimization/59747
47649         * ree.c (find_and_remove_re): Properly handle case where a second
47650         eliminated extension requires widening a copy created for elimination
47651         of a prior extension.
47652         (combine_set_extension): Ensure that the number of hard regs needed
47653         for a destination register does not change when we widen it.
47654
47655 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
47656
47657         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
47658         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
47659         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
47660         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
47661         (avr-*-rtems*): Likewise.
47662         (bfin*-rtems*): Likewise.
47663         (moxie-*-rtems*): Likewise.
47664         (h8300-*-rtems*): Likewise.
47665         (i[34567]86-*-rtems*): Likewise.
47666         (lm32-*-rtems*): Likewise.
47667         (m32r-*-rtems*): Likewise.
47668         (m68k-*-rtems*): Likewise.
47669         (microblaze*-*-rtems*): Likewise.
47670         (mips*-*-rtems*): Likewise.
47671         (powerpc-*-rtems*): Likewise.
47672         (sh-*-rtems*): Likewise.
47673         (sparc-*-rtems*): Likewise.
47674         (sparc64-*-rtems*): Likewise.
47675         (v850-*-rtems*): Likewise.
47676         (m32c-*-rtems*): Likewise.
47677
47678 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
47679
47680         PR rtl-optimization/59511
47681         * ira.c (ira_init_register_move_cost): Use memory costs for some
47682         cases of register move cost calculations.
47683         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
47684         instead of BB frequency.
47685         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
47686         * lra-assigns.c (find_hard_regno_for): Ditto.
47687
47688 2014-01-15  Richard Biener  <rguenther@suse.de>
47689
47690         PR tree-optimization/59822
47691         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
47692         (vectorizable_load): Use it to hoist defs of uses of invariant
47693         loads out of the loop.
47694
47695 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
47696             Kugan Vivekanandarajah  <kuganv@linaro.org>
47697
47698         PR target/59695
47699         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
47700         truncation.
47701
47702 2014-01-15  Richard Biener  <rguenther@suse.de>
47703
47704         PR rtl-optimization/59802
47705         * lcm.c (compute_available): Use inverted postorder to seed
47706         the initial worklist.
47707
47708 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47709
47710         PR target/59803
47711         * config/s390/s390.c (s390_preferred_reload_class): Don't return
47712         ADDR_REGS for invalid symrefs in non-PIC code.
47713
47714 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
47715
47716         PR other/58712
47717         * builtins.c (determine_block_size): Initialize *probable_max_size
47718         even if len_rtx is CONST_INT.
47719
47720 2014-01-14  Andrew Pinski  <apinski@cavium.com>
47721
47722         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
47723         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
47724         (cortexa53_tunings): Likewise.
47725         (aarch64_sched_issue_rate): New function.
47726         (TARGET_SCHED_ISSUE_RATE): Define.
47727
47728 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47729
47730         * ira-costs.c (find_costs_and_classes): Add missed
47731         ira_init_register_move_cost_if_necessary.
47732
47733 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47734
47735         PR target/59787
47736         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
47737
47738 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
47739
47740         PR target/59794
47741         * config/i386/i386.c (type_natural_mode): Add a bool parameter
47742         to indicate if type is used for function return value.  Warn ABI
47743         change if the vector mode isn't available for function return value.
47744         (ix86_function_arg_advance): Pass false to type_natural_mode.
47745         (ix86_function_arg): Likewise.
47746         (ix86_gimplify_va_arg): Likewise.
47747         (function_arg_32): Don't warn ABI change.
47748         (ix86_function_value): Pass true to type_natural_mode.
47749         (ix86_return_in_memory): Likewise.
47750         (ix86_struct_value_rtx): Removed.
47751         (TARGET_STRUCT_VALUE_RTX): Likewise.
47752
47753 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
47754
47755         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
47756         converting a conditional jump into a conditional return.
47757
47758 2014-01-14  Richard Biener  <rguenther@suse.de>
47759
47760         PR tree-optimization/58921
47761         PR tree-optimization/59006
47762         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
47763         hoisting invariant stmts.
47764         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
47765         invariant loads on the preheader edge if possible.
47766
47767 2014-01-14  Joey Ye  <joey.ye@arm.com>
47768
47769         * doc/plugin.texi (Building GCC plugins): Update to C++.
47770
47771 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
47772
47773         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
47774         (_mm_rcp28_round_ss): Ditto.
47775         (_mm_rsqrt28_round_sd): Ditto.
47776         (_mm_rsqrt28_round_ss): Ditto.
47777         (_mm_rcp28_sd): Ditto.
47778         (_mm_rcp28_ss): Ditto.
47779         (_mm_rsqrt28_sd): Ditto.
47780         (_mm_rsqrt28_ss): Ditto.
47781         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
47782         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
47783         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
47784         (IX86_BUILTIN_RCP28SD): Ditto.
47785         (IX86_BUILTIN_RCP28SS): Ditto.
47786         (IX86_BUILTIN_RSQRT28SD): Ditto.
47787         (IX86_BUILTIN_RSQRT28SS): Ditto.
47788         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
47789         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
47790         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
47791         (ix86_expand_special_args_builtin): Expand new FTYPE.
47792         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
47793         (srcp14<mode>): Make insn unary.
47794         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
47795         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
47796         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
47797         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
47798         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
47799         Fix rounding: make it SAE only.
47800         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
47801         Ditto.
47802         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
47803         Ditto.
47804         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
47805         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
47806         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
47807         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
47808         (round_saeonly_mask_scalar_operand4): Ditto.
47809         (round_saeonly_mask_scalar_op3): Ditto.
47810         (round_saeonly_mask_scalar_op4): Ditto.
47811
47812 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47813
47814         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
47815         Implement -maltivec=be for vec_insert and vec_extract.
47816
47817 2014-01-10  DJ Delorie  <dj@redhat.com>
47818
47819         * config/msp430/msp430.md (call_internal): Don't allow memory
47820         references with SP as the base register.
47821         (call_value_internal): Likewise.
47822         * config/msp430/constraints.md (Yc): New.  For memory references
47823         that don't use SP as a base register.
47824
47825         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
47826         "an integer without a # prefix"
47827         * config/msp430/msp430.md (epilogue_helper): Use it.
47828
47829 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47830
47831         PR target/59617
47832         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
47833         AVX512F gather builtins.
47834         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
47835         on gather decls with INTEGER_TYPE masktype.
47836         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
47837         directly into the builtin rather than hoisting it before loop.
47838
47839         PR tree-optimization/59387
47840         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
47841         (scev_const_prop): If folded_casts and type has undefined overflow,
47842         use force_gimple_operand instead of force_gimple_operand_gsi and
47843         for each added stmt if it is assign with
47844         arith_code_with_undefined_signed_overflow, call
47845         rewrite_to_defined_overflow.
47846         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
47847         gimple-fold.h instead.
47848         (arith_code_with_undefined_signed_overflow,
47849         rewrite_to_defined_overflow): Moved to ...
47850         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
47851         rewrite_to_defined_overflow): ... here.  No longer static.
47852         Include gimplify-me.h.
47853         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
47854         rewrite_to_defined_overflow): New prototypes.
47855
47856 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47857
47858         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
47859
47860 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
47861
47862         * builtins.c (get_object_alignment_2): Minor tweak.
47863         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
47864
47865 2014-01-13  Christian Bruel  <christian.bruel@st.com>
47866
47867         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
47868         optimized non constant lengths.
47869
47870 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47871
47872         PR libgomp/59194
47873         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
47874         load as __atomic_load_N if possible.
47875
47876 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47877
47878         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
47879         target parameter.
47880         (rs6000_expand_builtin): Adjust call.
47881
47882 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47883
47884         PR target/58115
47885         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
47886         * config/rs6000/rs6000.c: Include target-globals.h.
47887         (rs6000_set_current_function): Instead of doing target_reinit
47888         unconditionally, use save_target_globals_default_opts and
47889         restore_target_globals.
47890
47891         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
47892         FPSCR.
47893         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
47894         (rs6000_expand_builtin): Handle mffs and mtfsf.
47895         (rs6000_init_builtins): Define mffs and mtfsf.
47896         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
47897         (rs6000_mffs): New pattern.
47898         (rs6000_mtfsf): New pattern.
47899
47900 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
47901
47902         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
47903         Start narrowing with START.  Apply candidate-use pair
47904         and check overall cost in narrowing.
47905         (iv_ca_prune): Pass new argument.
47906
47907 2014-01-10  Jeff Law  <law@redhat.com>
47908
47909         PR middle-end/59743
47910         * ree.c (combine_reaching_defs): Ensure the defining statement
47911         occurs before the extension when optimizing extensions with
47912         different source and destination hard registers.
47913
47914 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
47915
47916         PR ipa/58585
47917         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
47918         vtables into the type inheritance graph.
47919
47920 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47921
47922         PR rtl-optimization/59754
47923         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
47924         modes in the REGNO != REGNO case.
47925
47926 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47927
47928         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
47929
47930 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47931
47932         PR tree-optimization/59745
47933         * tree-predcom.c (tree_predictive_commoning_loop): Call
47934         free_affine_expand_cache if giving up because components is NULL.
47935
47936         * target-globals.c (save_target_globals): Allocate < 4KB structs using
47937         GC in payload of target_globals struct instead of allocating them on
47938         the heap and the larger structs separately using GC.
47939         * target-globals.h (struct target_globals): Make regs, hard_regs,
47940         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
47941         of GTY((skip)) and change type to void *.
47942         (reset_target_globals): Cast loads from those fields to corresponding
47943         types.
47944
47945 2014-01-10  Steve Ellcey  <sellcey@mips.com>
47946
47947         PR plugins/59335
47948         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
47949         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
47950         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
47951
47952 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
47953
47954         PR target/59744
47955         * aarch64-modes.def (CC_Zmode): New flags mode.
47956         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
47957         represents an equality.
47958         (aarch64_get_condition_code): Handle CC_Zmode.
47959         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
47960
47961 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47962
47963         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
47964         extraction in good case.
47965
47966 2014-01-10  Richard Biener  <rguenther@suse.de>
47967
47968         PR tree-optimization/59374
47969         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
47970         checking after SLP discovery.  Mark stmts not participating
47971         in any SLP instance properly.
47972
47973 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47974
47975         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
47976         when handling a SET rtx.
47977
47978 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47979
47980         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
47981         (cortex-a57): Likewise.
47982         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
47983
47984 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47985
47986         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
47987         non-iwmmxt builtins.
47988
47989 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
47990
47991         PR ipa/58252
47992         PR ipa/59226
47993         * ipa-devirt.c record_target_from_binfo): Take as argument
47994         stack of binfos and lookup matching one for virtual inheritance.
47995         (possible_polymorphic_call_targets_1): Update.
47996
47997 2014-01-10  Huacai Chen  <chenhc@lemote.com>
47998
47999         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
48000         kernel strings for Loongson-2E/2F/3A.
48001
48002 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
48003
48004         PR middle-end/59670
48005         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
48006         is_gimple_call before calling gimple_call_internal_p.
48007
48008 2014-01-09  Steve Ellcey  <sellcey@mips.com>
48009
48010         * Makefile.in (TREE_FLOW_H): Remove.
48011         (TREE_SSA_H): Add file names from tree-flow.h.
48012         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
48013         * tree.h: Remove tree-flow.h reference.
48014         * hash-table.h: Remove tree-flow.h reference.
48015         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
48016         reference with tree-ssa-loop.h.
48017
48018 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48019
48020         * doc/invoke.texi: Add -maltivec={be,le} options, and document
48021         default element-order behavior for -maltivec.
48022         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
48023         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
48024         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
48025         when targeting big endian, at least for now.
48026         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
48027
48028 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48029
48030         PR middle-end/47735
48031         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
48032         var satisfies use_register_for_decl, just take into account type
48033         alignment, rather than decl alignment.
48034
48035         PR tree-optimization/59622
48036         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
48037         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
48038         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
48039         Don't devirtualize for inplace at all.  For targets.length () == 1,
48040         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
48041
48042 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48043
48044         * config/i386/i386.md (cpu): Remove the unused btver1.
48045
48046 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
48047
48048         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
48049
48050 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48051
48052         PR target/58115
48053         * tree-core.h (struct target_globals): New forward declaration.
48054         (struct tree_target_option): Add globals field.
48055         * tree.h (TREE_TARGET_GLOBALS): Define.
48056         (prepare_target_option_nodes_for_pch): New prototype.
48057         * target-globals.h (struct target_globals): Define even if
48058         !SWITCHABLE_TARGET.
48059         * tree.c (prepare_target_option_node_for_pch,
48060         prepare_target_option_nodes_for_pch): New functions.
48061         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
48062         * config/i386/i386.c: Include target-globals.h.
48063         (ix86_set_current_function): Instead of doing target_reinit
48064         unconditionally, use save_target_globals_default_opts and
48065         restore_target_globals.
48066
48067 2014-01-09  Richard Biener  <rguenther@suse.de>
48068
48069         PR tree-optimization/59715
48070         * tree-cfg.h (split_critical_edges): Declare.
48071         * tree-cfg.c (split_critical_edges): Export.
48072         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
48073
48074 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
48075
48076         * cfgexpand.c (expand_stack_vars): Optionally disable
48077         asan stack protection.
48078         (expand_used_vars): Likewise.
48079         (partition_stack_vars): Likewise.
48080         * asan.c (asan_emit_stack_protection): Optionally disable
48081         after return stack usage.
48082         (instrument_derefs): Optionally disable memory access instrumentation.
48083         (instrument_builtin_call): Likewise.
48084         (instrument_strlen_call): Likewise.
48085         (asan_protect_global): Optionally disable global variables protection.
48086         * doc/invoke.texi: Added doc for new options.
48087         * params.def: Added new options.
48088         * params.h: Likewise.
48089
48090 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
48091
48092         PR rtl-optimization/59724
48093         * ifcvt.c (cond_exec_process_if_block): Don't call
48094         flow_find_head_matching_sequence with 0 longest_match.
48095         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
48096         non-active insns if !stop_after.
48097         (try_head_merge_bb): Revert 2014-01-07 changes.
48098
48099 2014-01-08  Jeff Law  <law@redhat.com>
48100
48101         * ree.c (get_sub_rtx): New function, extracted from...
48102         (merge_def_and_ext): Here.
48103         (combine_reaching_defs): Use get_sub_rtx.
48104
48105 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
48106
48107         * cgraph.h (varpool_variable_node): Do not choke on null node.
48108
48109 2014-01-08  Catherine Moore  <clm@codesourcery.com>
48110
48111         * config/mips/mips.md (simple_return): Attempt to use JRC
48112         for microMIPS.
48113         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
48114
48115 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48116
48117         PR rtl-optimization/59137
48118         * reorg.c (steal_delay_list_from_target): Call update_block for
48119         elided insns.
48120         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
48121
48122 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
48123
48124         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
48125         two duplicate entries.
48126
48127 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
48128
48129         Revert:
48130         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
48131
48132         * config/mips/mips.c (mips_truncated_op_cost): New function.
48133         (mips_rtx_costs): Adjust test for BADDU.
48134         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
48135
48136         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
48137
48138         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
48139         (*baddu_si): ...this new pattern.
48140
48141 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48142
48143         PR ipa/59722
48144         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
48145
48146 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
48147
48148         PR middle-end/57748
48149         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
48150         inner_reference_p.
48151         (expand_expr, expand_normal): Adjust.
48152         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
48153         inner_reference_p. Use inner_reference_p to expand inner references.
48154         (store_expr): Adjust.
48155         * cfgexpand.c (expand_call_stmt): Adjust.
48156
48157 2014-01-08  Rong Xu  <xur@google.com>
48158
48159         * gcov-io.c (gcov_var): Move from gcov-io.h.
48160         (gcov_position): Ditto.
48161         (gcov_is_error): Ditto.
48162         (gcov_rewrite): Ditto.
48163         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
48164         only part to libgcc/libgcov.h.
48165
48166 2014-01-08  Marek Polacek  <polacek@redhat.com>
48167
48168         PR middle-end/59669
48169         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
48170
48171 2014-01-08  Marek Polacek  <polacek@redhat.com>
48172
48173         PR sanitizer/59667
48174         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
48175
48176 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48177
48178         PR rtl-optimization/59649
48179         * stor-layout.c (get_mode_bounds): For BImode return
48180         0 and STORE_FLAG_VALUE.
48181
48182 2014-01-08  Richard Biener  <rguenther@suse.de>
48183
48184         PR middle-end/59630
48185         * gimple.h (is_gimple_builtin_call): Remove.
48186         (gimple_builtin_call_types_compatible_p): New.
48187         (gimple_call_builtin_p): New overload.
48188         * gimple.c (is_gimple_builtin_call): Remove.
48189         (validate_call): Rename to ...
48190         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
48191         check return types.
48192         (validate_type): New static function.
48193         (gimple_call_builtin_p): New overload and adjust.
48194         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
48195         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
48196         (gimple_fold_stmt_to_constant_1): Likewise.
48197         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
48198
48199 2014-01-08  Richard Biener  <rguenther@suse.de>
48200
48201         PR middle-end/59471
48202         * gimplify.c (gimplify_expr): Gimplify register-register type
48203         VIEW_CONVERT_EXPRs to separate stmts.
48204
48205 2014-01-07  Jeff Law  <law@redhat.com>
48206
48207         PR middle-end/53623
48208         * ree.c (combine_set_extension): Handle case where source
48209         and destination registers in an extension insn are different.
48210         (combine_reaching_defs): Allow source and destination registers
48211         in extension to be different under limited circumstances.
48212         (add_removable_extension): Remove restriction that the
48213         source and destination registers in the extension are the same.
48214         (find_and_remove_re): Emit a copy from the extension's
48215         destination to its source after the defining insn if
48216         the source and destination registers are different.
48217
48218         PR middle-end/59285
48219         * ifcvt.c (merge_if_block): If we are merging a block with more than
48220         one successor with a block with no successors, remove any BARRIER
48221         after the second block.
48222
48223 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
48224
48225         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
48226
48227 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
48228
48229         PR target/59652
48230         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
48231         for 14-bit register offsets when INT14_OK_STRICT is false.
48232
48233 2014-01-07  Roland Stigge  <stigge@antcom.de>
48234             Michael Meissner  <meissner@linux.vnet.ibm.com>
48235
48236         PR 57386/target
48237         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
48238         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
48239
48240 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
48241
48242         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
48243         -mcpu.
48244
48245 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
48246
48247         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
48248         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
48249         rtx is const0_rtx or not.
48250
48251 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
48252
48253         PR target/58115
48254         * target-globals.c (save_target_globals): Remove this_fn_optab
48255         handling.
48256         * toplev.c: Include optabs.h.
48257         (target_reinit): Temporarily restore the global options if another
48258         set of options are in force.
48259
48260 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
48261
48262         PR rtl-optimization/58668
48263         * cfgcleanup.c (flow_find_cross_jump): Don't count
48264         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
48265         to determine what is counted.
48266         (flow_find_head_matching_sequence): Use active_insn_p to determine
48267         what is counted.
48268         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48269         counting change.
48270         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48271         determine what is counted.
48272
48273         PR tree-optimization/59643
48274         * tree-predcom.c (split_data_refs_to_components): If one dr is
48275         read and one write, determine_offset fails and the write isn't
48276         in the bad component, just put the read into the bad component.
48277
48278 2014-01-07  Mike Stump  <mikestump@comcast.net>
48279             Jakub Jelinek  <jakub@redhat.com>
48280
48281         PR pch/59436
48282         * tree-core.h (struct tree_optimization_option): Change optabs
48283         type from unsigned char * to void *.
48284         * optabs.c (init_tree_optimization_optabs): Adjust
48285         TREE_OPTIMIZATION_OPTABS initialization.
48286
48287 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
48288
48289         PR target/59644
48290         * config/i386/i386.h (struct machine_function): Add
48291         no_drap_save_restore field.
48292         * config/i386/i386.c (ix86_save_reg): Use
48293         !cfun->machine->no_drap_save_restore instead of
48294         crtl->stack_realign_needed.
48295         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48296         this function clears frame_pointer_needed.  Set
48297         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48298         and DRAP reg is needed.
48299
48300 2014-01-06  Marek Polacek  <polacek@redhat.com>
48301
48302         PR c/57773
48303         * doc/implement-c.texi: Mention that other integer types are
48304         permitted as bit-field types in strictly conforming mode.
48305
48306 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
48307
48308         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48309         is newly allocated.
48310
48311 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
48312
48313         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
48314
48315 2014-01-06  Martin Jambor  <mjambor@suse.cz>
48316
48317         PR ipa/59008
48318         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
48319         to int.
48320         * ipa-prop.c (ipa_print_node_params): Fix indentation.
48321
48322 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
48323
48324         PR debug/59350
48325         PR debug/59510
48326         * var-tracking.c (add_stores): Preserve the value of the source even if
48327         we don't record the store.
48328
48329 2014-01-06  Terry Guo  <terry.guo@arm.com>
48330
48331         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
48332
48333 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
48334
48335         PR bootstrap/59541
48336         * config/darwin.c (darwin_function_section): Adjust return values to
48337         correspond to optimisation changes made in r206070.
48338
48339 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
48340
48341         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
48342         from prefetch_block tune setting.
48343         (nocona_cost): Correct size of prefetch block to 64.
48344
48345 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
48346
48347         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
48348         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
48349         used to save the static chain register in the computation of the offset
48350         from which the FP registers need to be restored.
48351
48352 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
48353
48354         PR tree-optimization/59519
48355         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
48356         ICE if get_current_def (current_new_name) is already non-NULL, as long
48357         as it is a phi result of some other phi in *new_exit_bb that has
48358         the same argument.
48359
48360         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
48361         or vmovdqu* for misaligned_operand.
48362         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
48363         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
48364         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
48365         aligned_mem for AVX512F masked aligned load and store builtins and for
48366         non-temporal moves.
48367
48368 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
48369
48370         PR tree-optimization/59651
48371         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
48372         Address range for negative step should be added by TYPE_SIZE_UNIT.
48373
48374 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
48375
48376         * config/m68k/m68k.c (handle_move_double): Handle pushes with
48377         overlapping registers also for registers other than the stack pointer.
48378
48379 2014-01-03  Marek Polacek  <polacek@redhat.com>
48380
48381         PR other/59661
48382         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
48383         __builtin_FILE.
48384
48385 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
48386
48387         PR target/59625
48388         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
48389         asm goto as jump.
48390
48391         * config/i386/i386.md (MODE_SIZE): New mode attribute.
48392         (push splitter): Use <P:MODE_SIZE> instead of
48393         GET_MODE_SIZE (<P:MODE>mode).
48394         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
48395         (mov -1, reg peephole2): Likewise.
48396         * config/i386/sse.md (*mov<mode>_internal,
48397         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
48398         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
48399         *<code><mode>3, *andnot<mode>3<mask_name>,
48400         <mask_codefor><code><mode>3<mask_name>): Likewise.
48401         * config/i386/subst.md (mask_mode512bit_condition,
48402         sd_mask_mode512bit_condition): Likewise.
48403
48404 2014-01-02  Xinliang David Li  <davidxl@google.com>
48405
48406         PR tree-optimization/59303
48407         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
48408         (dump_predicates): Better output format.
48409         (pred_equal_p): New function.
48410         (is_neq_relop_p): Ditto.
48411         (is_neq_zero_form_p): Ditto.
48412         (pred_expr_equal_p): Ditto.
48413         (pred_neg_p): Ditto.
48414         (simplify_pred): Ditto.
48415         (simplify_preds_2): Ditto.
48416         (simplify_preds_3): Ditto.
48417         (simplify_preds_4): Ditto.
48418         (simplify_preds): Ditto.
48419         (push_pred): Ditto.
48420         (push_to_worklist): Ditto.
48421         (get_pred_info_from_cmp): Ditto.
48422         (is_degenerated_phi): Ditto.
48423         (normalize_one_pred_1): Ditto.
48424         (normalize_one_pred): Ditto.
48425         (normalize_one_pred_chain): Ditto.
48426         (normalize_preds): Ditto.
48427         (normalize_cond_1): Remove function.
48428         (normalize_cond): Ditto.
48429         (is_gcond_subset_of): Ditto.
48430         (is_subset_of_any): Ditto.
48431         (is_or_set_subset_of): Ditto.
48432         (is_and_set_subset_of): Ditto.
48433         (is_norm_cond_subset_of): Ditto.
48434         (pred_chain_length_cmp): Ditto.
48435         (convert_control_dep_chain_into_preds): Type change.
48436         (find_predicates): Ditto.
48437         (find_def_preds): Ditto.
48438         (destroy_predicates_vecs): Ditto.
48439         (find_matching_predicates_in_rest_chains): Ditto.
48440         (use_pred_not_overlap_with_undef_path_pred): Ditto.
48441         (is_pred_expr_subset): Ditto.
48442         (is_pred_chain_subset_of): Ditto.
48443         (is_included_in): Ditto.
48444         (is_superset_of): Ditto.
48445
48446 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48447
48448         Update copyright years.
48449
48450 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48451
48452         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
48453         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
48454         config/arc/arc.md, config/arc/arc.opt,
48455         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
48456         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
48457         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
48458         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
48459         config/linux-protos.h, config/linux.c, config/winnt-c.c,
48460         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
48461         vtable-verify.c, vtable-verify.h: Use the standard form for the
48462         copyright notice.
48463
48464 2014-01-02  Tobias Burnus  <burnus@net-b.de>
48465
48466         * gcc.c (process_command): Update copyright notice dates.
48467         * gcov-dump.c: Ditto.
48468         * gcov.c: Ditto.
48469         * doc/cpp.texi: Bump @copying's copyright year.
48470         * doc/cppinternals.texi: Ditto.
48471         * doc/gcc.texi: Ditto.
48472         * doc/gccint.texi: Ditto.
48473         * doc/gcov.texi: Ditto.
48474         * doc/install.texi: Ditto.
48475         * doc/invoke.texi: Ditto.
48476
48477 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
48478
48479         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
48480
48481 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
48482
48483         * config/i386/sse.md (*mov<mode>_internal): Guard
48484         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
48485
48486         PR rtl-optimization/59647
48487         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
48488         new_rtx into UNSIGNED_FLOAT rtxes.
48489 \f
48490 Copyright (C) 2014 Free Software Foundation, Inc.
48491
48492 Copying and distribution of this file, with or without modification,
48493 are permitted in any medium without royalty provided the copyright
48494 notice and this notice are preserved.