bf3fb8540322f754297b2659d7999d5d3408a788
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2014-12-11  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * doc/md.texi (Insn Lengths): Fix description of (pc).
4
5 2014-12-11  Jan Hubicka  <hubicka@ucw.cz>
6
7         PR ipa/61324
8         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
9         * ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
10         * cgraphunit.c (symbol_table::process_new_functions): Add
11         IPA_SSA_AFTER_INLINING.
12         (ipa_passes): Update call of remove_unreachable_nodes.
13         (symbol_table::compile): Remove call of remove_unreachable_nodes.
14         * ipa-inline.c (inline_small_functions): Do not ICE with
15         -flto-partition=none
16         (ipa_inline): Update symtab->state; fix formatting
17         update call of remove_unreachable_nodes.
18         * passes.c (execute_todo): Update call of remove_unreachable_nodes.
19         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
20         * cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
21         (remove_unreachable_nodes): Update.
22         * ipa.c (process_references): Keep external references only
23         when optimizing.
24         (walk_polymorphic_call_targets): Keep possible polymorphic call
25         target only when devirtualizing.
26         (symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
27         parameter.
28         (ipa_single_use): Update comment.
29         * ipa-pure-const.c (cdtor_p): New function.
30         (propagate_pure_const): Track if some cdtor was turned pure/const.
31         (execute): Return TODO_remove_functions if needed.
32         * ipa-comdats.c (ipa_comdats): Update comment.
33
34 2014-12-11  Aldy Hernandez  <aldyh@redhat.com>
35
36         * dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
37         parameter.
38         (gen_inlined_subroutine_die): Same.
39         (gen_block_die): Same.
40         (decls_for_scope): Same.
41
42 2014-12-11  Renlin Li  <renlin.li@arm.com>
43
44         * config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
45         AARCH64_FL_FOR_ARCH8.
46         * config/aarch64/aarch64.c (all_cores): Use FLAGS from
47         aarch64-cores.def file only.
48
49 2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
50
51         PR fortran/44054
52         * diagnostic.c (diagnostic_action_after_output): Make it extern.
53         Take diagnostic_t argument instead of diagnostic_info. Count also
54         DK_WERROR towards max_errors.
55         (diagnostic_report_diagnostic): Update call according to the above.
56         (error_recursion): Likewise.
57         * diagnostic.h (diagnostic_action_after_output): Declare.
58         * pretty-print.c (pp_formatted_text_data): Delete.
59         (pp_append_r): Call output_buffer_append_r.
60         (pp_formatted_text): Call output_buffer_formatted_text.
61         (pp_last_position_in_text): Call output_buffer_last_position_in_text.
62         * pretty-print.h (output_buffer_formatted_text): New.
63         (output_buffer_append_r): New.
64         (output_buffer_last_position_in_text): New.
65
66 2014-12-11  Kyrylo Tkachov  kyrylo.tkachov@arm.com
67
68         * config/aarch64/aarch64.c (aarch64_parse_extension): Update error
69         message to say +no only when removing extension.
70
71 2014-12-11  Andrew MacLeod  <amacleod@redhat.com>
72
73         * config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
74         for generator file.  Add comment indicating it is a generated file.
75         * config/tilepro/mul-tables.c: Update generated file.
76         * config/tilegx/mul-tables.c: Likewise.
77
78 2014-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
79
80         * combine.c (try_combine): Do not allow combining a PARALLEL I2
81         with a register move I3 if that I2 is an asm.
82
83 2014-12-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
84
85         * config/arm/arm_neon.h (vrndqn_f32): Rename to...
86         (vrndnq_f32): ... this.
87         (vrndqa_f32): Rename to...
88         (vrndaq_f32): ... this.
89         (vrndqp_f32): Rename to...
90         (vrndpq_f32): ... this.
91         (vrndqm_f32): Rename to...
92         (vrndmq_f32): ... this.
93         (vrndx_f32): New intrinsic.
94         (vrndxq_f32): Likewise.
95
96 2014-12-11  Marek Polacek  <polacek@redhat.com>
97
98         * fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
99         (extract_muldiv_1): Likewise.
100         (maybe_canonicalize_comparison_1): Likewise.
101         (fold_comparison): Likewise.
102         (tree_binary_nonnegative_warnv_p): Likewise.
103         (tree_binary_nonzero_warnv_p): Likewise.
104         * gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
105         * tree-scalar-evolution.c (simple_iv): Likewise.
106         (scev_const_prop): Likewise.
107         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
108         * tree-vect-generic.c (expand_vector_operation): Likewise.
109         * tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
110         (ANY_INTEGRAL_TYPE_P): Define.
111         (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
112         Add ANY_INTEGRAL_TYPE_CHECK.
113         (any_integral_type_check): New function.
114
115 2014-12-11  Tobias Burnus  <burnus@net-b.de>
116             Manuel López-Ibáñez  <manu@gcc.gnu.org>
117
118         * error.c (gfc_get_terminal_width): Renamed from
119         get_terminal_width and use same-named common function.
120         (gfc_error_init_1): Update call.
121
122 2014-12-10  Aldy Hernandez  <aldyh@redhat.com>
123
124         * gdbhooks.py (class DWDieRefPrinter): New class.
125         (build_pretty_printer): Register dw_die_ref's.
126
127 2014-12-10  Ilya Tocar  <ilya.tocar@intel.com>
128
129         * config.gcc: Support "knl".
130         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
131         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
132         PROCESSOR_KNL.
133         * config/i386/i386.c (m_KNL): Define.
134         (processor_target_table): Add "knl".
135         (PTA_KNL): Define.
136         (ix86_issue_rate): Add PROCESSOR_KNL.
137         (ix86_adjust_cost): Ditto.
138         (ia32_multipass_dfa_lookahead): Ditto.
139         (get_builtin_code_for_version): Handle "knl".
140         (fold_builtin_cpu): Ditto.
141         * config/i386/i386.h (TARGET_KNL): Define.
142         (processor_type): Add PROCESSOR_KNL.
143         * config/i386/i386.md (attr "cpu"): Add knl.
144         * config/i386/x86-tune.def: Add m_KNL.
145
146 2014-12-10  Jan Hubicka  <hubicka@ucw.cz>
147
148         * doc/invoke.texi: (-devirtualize-at-ltrans): Document.
149         * lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
150         when it is not streamed to the given ltrans.
151         (compute_ltrans_boundary): Make code adding all polymorphic
152         call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
153         * common.opt (fdevirtualize-at-ltrans): New flag.
154
155 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
156
157         * varpool.c (varpool_node::get_create): Force output of vars with
158         "omp declare target" attribute.
159
160 2014-12-10  Marc Glisse  <marc.glisse@inria.fr>
161
162         * real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
163         * real.c: Include rtl.h and options.h.
164         (HONOR_NANS): Define three overloads.
165         * builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
166         Simplify argument of HONOR_NANS.
167         * fold-const.c (combine_comparisons, fold_truth_not_expr,
168         fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
169         fold_comparison, fold_binary_loc): Likewise.
170         * ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
171         * ipa-inline-analysis.c (add_clause,
172         set_cond_stmt_execution_predicate): Likewise.
173         * match.pd: Likewise.
174         * rtlanal.c (may_trap_p_1): Likewise.
175         * simplify-rtx.c (simplify_const_relational_operation): Likewise.
176         * tree-if-conv.c (parse_predicate): Likewise.
177         * tree-ssa-ccp.c (valid_lattice_transition): Likewise.
178         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
179         * tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
180         * tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
181         * tree-ssa-tail-merge.c (gimple_equal_p): Likewise.
182
183 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
184
185         PR tree-optimization/62021
186         * omp-low.c (simd_clone_adjust_return_type): Use
187         vector of pointer_sized_int_node types instead vector of pointer
188         types.
189         (simd_clone_adjust_argument_types): Likewise.
190
191 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
192             Evgeny Stupachenko  <evstupac@gmail.com>
193
194         PR target/64252
195         * config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
196         set dcopy.target to a new pseudo.
197
198 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
199
200         * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
201
202 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
203
204         * config/rs6000/40x.md (ppc403-compare): Remove "compare".
205         config/rs6000/440.md (ppc440-compare): Remove "compare".
206         config/rs6000/476.md (ppc476-compare): Remove "compare".
207         config/rs6000/601.md (ppc601-compare): Remove "compare".
208         config/rs6000/603.md (ppc603-compare): Remove "compare".
209         config/rs6000/6xx.md (ppc604-compare): Remove "compare".
210         config/rs6000/7450.md (ppc7450-compare): Remove "compare".
211         config/rs6000/7xx.md (ppc750-compare): Remove "compare".
212         config/rs6000/8540.md (ppc8540_su): Remove "compare".
213         config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
214         "compare".
215         config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
216         config/rs6000/e500mc.md (e500mc_su): Remove "compare".
217         config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
218         config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
219         config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
220         config/rs6000/mpc.md (mpccore-compare): Remove "compare".
221         config/rs6000/power4.md (power4-compare): Remove "compare".
222         config/rs6000/power5.md (power5-compare): Remove "compare".
223         config/rs6000/power6.md (power6-compare): Remove "compare".
224         config/rs6000/power7.md (power7-compare): Remove "compare".
225         config/rs6000/power8.md (power8-compare): Remove "compare".  Update
226         comment.
227         config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
228         (three times).
229         (is_cracked_insn): Remove TYPE_COMPARE case.
230         (insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
231         config/rs6000/rs6000.md (type): Remove "compare".
232         (cell_micro): Remove "compare".
233         config/rs6000/rs64.md (rs64a-compare): Remove "compare".
234
235 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
236
237         * config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
238         Change type from "compare" to "two".
239
240 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
241
242         PR target/64180
243         * config/rs6000/predicates.md (unsigned_comparison_operator): New.
244         (signed_comparison_operator): New.
245         * config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
246         * config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
247         (rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
248         * config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
249         add to addc,adde directly, if !TARGET_POWERPC64.
250         (sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
251         if !TARGET_POWERPC64.
252         (neg<mode>2): Delete expander.
253         (*neg<mode>2): Rename to "neg<mode>2".
254         (addti3, subti3): Delete.
255         (addti3, subti3): New expanders.
256         (*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
257         (cstore<mode>4_unsigned): New expander.
258         (cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
259         (cstore<mode>4 for FP): Remove superfluous quotes.
260         (*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
261         *compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
262         *neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
263         compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
264         splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
265         *leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
266         *and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
267         *plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
268         *geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
269         *and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
270         *plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
271         *neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
272         Delete.
273         (eq<mode>3, ne<mode>3): New.
274         (*neg_eq_<mode>, *neg_ne_<mode>): New.
275         (*plus_eq_<mode>, *plus_ne_<mode>): New.
276         (*minus_eq_<mode>, *minus_ne_<mode>): New.
277
278 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
279
280         PR target/64180
281         * config/rs6000/predicates.md (adde_operand): New.
282         * config/rs6000/rs6000.md (add<mode>3_carry): New.
283         (*add<mode>3_imm_carry_pos): New.
284         (*add<mode>3_imm_carry_0): New.
285         (*add<mode>3_imm_carry_m1): New.
286         (*add<mode>3_imm_carry_neg): New.
287         (add<mode>3_carry_in): New.
288         (*add<mode>3_carry_in_internal): New.
289         (add<mode>3_carry_in_0): New.
290         (add<mode>3_carry_in_m1): New.
291         (subf<mode>3_carry): New.
292         (*subf<mode>3_imm_carry_0): New.
293         (*subf<mode>3_imm_carry_m1): New.
294         (subf<mode>3_carry_in): New.
295         (*subf<mode>3_carry_in_internal): New.
296         (subf<mode>3_carry_in_0): New.
297         (subf<mode>3_carry_in_m1): New.
298         (subf<mode>3_carry_in_xx): New.
299
300 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
301
302         PR target/64180
303         * config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
304         "*add<mode>3".
305         (*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
306         Delete.
307         (*add<mode>3_dot, *add<mode>3_dot2): New.
308         (*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.
309
310 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
311
312         PR target/64180
313         * config/rs6000/rs6000.md (*add<mode>3_internal1): Remove addic
314         alternative.
315
316 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
317
318         PR target/64180
319         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
320         *ctr<mode>_internal5, *ctr<mode>_internal6): Change "r" alternatives
321         to "b".  Increase length.
322         (splitters for these): Split to cmp+addi instead of addic.
323
324 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
325
326         PR target/64180
327         * config/rs6000/darwin.md (macho_low_si): Remove "r" alternative.
328         (macho_low_di): Ditto.
329         * config/rs6000/rs6000.md (*largetoc_low): Ditto.
330         (tocref<mode>): Ditto.
331         (elf_low): Ditto.
332         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0_elf_low_be): Ditto.
333         (mov_si<mode>_e500_subreg0_elf_low_le): Ditto.
334         (mov_si<mode>_e500_subreg4_elf_low_be): Ditto.  Reformat condition.
335         (mov_si<mode>_e500_subreg4_elf_low_le): Ditto.
336
337 2014-12-10  Segher Boessenkool  <segher@kernel.crashing.org>
338
339         PR target/64180
340         * config/rs6000/rs6000.c (TARGET_MD_ASM_CLOBBERS): Define.
341         (rs6000_md_asm_clobbers): New function.
342
343 2014-12-10  Felix Yang  <felix.yang@huawei.com>
344
345         * config/aarch64/aarch64-protos.h (aarch64_function_profiler): Remove
346         declaration of removed function.
347
348 2014-12-10  Richard Biener  <rguenther@suse.de>
349
350          * tree-ssa-loop-im.c
351          (move_computations_dom_walker::before_dom_children): Clear
352          SSA_NAME_RANGE_INFO on moved stmts.
353
354 2014-12-10  Martin Liska  <mliska@suse.cz>
355
356         * sreal.c (sreal::shift_right): New implementation
357         for int64_t as m_sig.
358         (sreal::normalize): Likewise.
359         (sreal::to_int): Likewise.
360         (sreal::operator+): Likewise.
361         (sreal::operator-): Likewise.
362         (sreal::operator*): Likewise.
363         (sreal::operator/): Likewise.
364         (sreal::signedless_minus): Removed.
365         (sreal::signedless_plus): Removed.
366         (sreal::debug): const keyword is added.
367         * sreal.h (sreal::operator<): New implementation
368         for int64_t as m_sig.
369         * ipa-inline.c (recursive_inlining): LONG_MIN is replaced
370         with sreal::min ().
371
372 2014-12-10  Martin Liska  <mliska@suse.cz>
373
374         * gimple-iterator.h (gsi_start_bb_nondebug): New function.
375         * ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
376         replaces loop based on precomputed number of non-debug statements.
377
378 2014-12-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
379
380         * config/linux.c (linux_has_ifunc_p): Remove.
381         * config/linux.h (TARGET_HAS_IFUNC_P): Use default version.
382
383 2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>
384
385         * contrib/check_GNU_style.sh (col): Got rid of cut operation
386         from the pipe chain and instead added cut inside awk command.
387
388 2014-12-10  Richard Biener  <rguenther@suse.de>
389
390         PR tree-optimization/64191
391         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
392         mark clobbers as necessary.
393         (eliminate_unnecessary_stmts): Keep clobbers live if we can.
394
395 2014-12-10  Jakub Jelinek  <jakub@redhat.com>
396
397         PR target/63594
398         * config/i386/sse.md (vec_dupv4sf): Move after
399         <mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
400         (*vec_dupv4si, *vec_dupv2di): Likewise.
401         (<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
402         (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
403         pattern.
404         (*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
405         TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
406         is set too).
407         * config/i386/i386.c (enum ix86_builtins): Remove
408         IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
409         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
410         IX86_BUILTIN_PBROADCASTQ512_MEM.
411         (bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
412         __builtin_ia32_pbroadcastq256_gpr_mask and
413         __builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
414         regardless of OPTION_MASK_ISA_64BIT.
415         * config/i386/avx512fintrin.h (_mm512_set1_epi64,
416         _mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
417         builtins regardless of whether TARGET_64BIT is defined or not.
418         * config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
419         _mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
420         Likewise.
421
422         * config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
423         Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
424
425 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
426
427         PR target/53513
428         * doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.
429
430 2014-12-10  Marek Polacek  <polacek@redhat.com>
431
432         PR tree-optimization/61686
433         * tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
434         p->high.
435
436 2014-12-10  Kito Cheng  <kito@0xlab.org>
437
438         * doc/libgcc.texi: Update text to match implementation in
439         libgcc/libgcc2.c
440
441 2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>
442
443         * plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
444         gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
445         doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
446         param_is.
447
448 2014-12-10  Oleg Endo  <olegendo@gcc.gnu.org>
449
450         PR target/53513
451         * doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
452         Document it.
453
454 2014-12-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
455
456         PR middle-end/64225
457         * tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
458         for BUILT_IN_POW when flag_errno_math is present.
459
460 2014-12-09  Ilya Verbin  <ilya.verbin@intel.com>
461
462         * lto-wrapper.c (compile_offload_image): Start processing in_argv
463         from 0 instead of 1.
464         (run_gcc): Put offload objects into offload_argv, put LTO objects and
465         possible preceding arguments into lto_argv.
466         Pass offload_argv to compile_images_for_offload_targets instead of argv.
467         Use lto_argv for LTO recompilation instead of argv.
468
469 2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
470
471         * doc/install.texi: Describe --with-aix-soname option.
472
473 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
474
475         * config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.
476
477 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
478
479         PR target/63870
480         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
481         Delete.
482         * config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
483         Delete.
484         * config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
485         vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
486         (__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
487         __aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
488         __aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
489         __aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
490         __aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
491         __aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
492         __aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
493         __aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
494         __aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
495         __aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
496         __aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
497         __aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
498         (__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
499         'q2' argument.
500         (__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
501         __aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
502         __aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
503         __aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
504         __aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
505         __aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
506         __aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
507         __aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
508         __aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
509         __aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
510         __aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
511         __aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
512         to __aarch64_vdup_lane_any.
513         (vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
514         vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
515         vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
516         vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
517         vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
518         vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
519         vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
520         vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
521         vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
522         vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
523         vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
524         vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
525         vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
526         vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
527         vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
528         vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
529         vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
530         vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
531         vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
532         vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
533         vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
534         vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
535         vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
536         vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
537         vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
538         vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
539         vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
540         vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
541         vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
542         vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
543         __aarch64_vget_lane_any.
544
545 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
546
547         PR target/63870
548         * gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
549         message for SIMD_ARG_CONSTANT.
550
551 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
552
553         PR target/63870
554         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
555         TYPES_BINOPV): Delete.
556         (enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
557         AARCH64_SIMD_PATTERN_START.
558         (aarch64_init_simd_builtins): Register
559         __builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
560         (aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
561         AARCH64_SIMD_PATTERN_START.
562
563         * config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
564         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.
565
566         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
567         (__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
568         __aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
569         vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
570         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
571         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
572         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
573         vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.
574
575 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
576
577         PR target/63950
578         * config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
579         New.
580         (aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
581         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
582         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
583         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
584         number of lanes.
585         (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
586         vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
587         vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
588         __aarch64_vset_lane_any rather than vset_lane_xxx.
589
590 2014-12-09  Alan Lawrence  <alan.lawrence@arm.com>
591
592         * config/aarch64/aarch64.md (absdi2): Remove scratch operand by
593         earlyclobbering result operand.
594
595         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
596         Remove final qualifier_internal.
597         (aarch64_fold_builtin): Stop folding abs builtins, except on floats.
598
599 2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>
600
601         * gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
602         tuning parameters.
603         * gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
604         Define.
605         (aarch64_reassociation_width): New function.
606         (generic_tunings): Add reassociation tuning parameters.
607         (cortexa53_tunings): Likewise.
608         (cortexa57_tunings): Likewise.
609         (thunderx_tunings): Likewise.
610
611 2014-12-09  Andrew Pinski  apinski@cavium.com
612             Kyrylo Tkachov  kyrylo.tkachov@arm.com
613
614         * config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
615         (thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
616         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.
617
618 2014-12-09  David Malcolm  <dmalcolm@redhat.com>
619
620         PR jit/64166
621         * dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
622         New function.
623         (gcc::dump_manager::get_dump_file_name): Split out bulk of
624         implementation into a new overloaded variant taking a
625         dump_file_info *.
626         * dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
627         New function.
628         (gcc::dump_manager::get_dump_file_name): New overloaded variant of
629         this function, taking a dump_file_info *.
630
631 2014-12-09  Uros Bizjak  <ubizjak@gmail.com>
632
633         PR bootstrap/64213
634         Revert:
635         2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
636
637         PR rtl-optimization/64037
638         * combine.c (setup_incoming_promotions): Pass the argument
639         before any promotions happen to promote_function_mode.
640
641 2014-12-09  Richard Biener  <rguenther@suse.de>
642
643         PR tree-optimization/64193
644         * tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
645         and valueize the VUSE before looking up the def stmt.
646         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
647         * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
648         to walk_non_aliased_vuses.
649         (vn_reference_lookup): Likewise.
650         * tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
651         callback to walk_non_aliased_vuses.
652
653 2014-12-09  Richard Biener  <rguenther@suse.de>
654
655         PR middle-end/64199
656         * fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.
657
658 2014-12-09  Richard Biener  <rguenther@suse.de>
659
660         PR tree-optimization/64191
661         * tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
662         not relevant (nor are their uses).
663
664 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
665
666         * lto/lto-partition.c (privatize_symbol_name): Correctly
667         privatize instrumentation clones.
668
669 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
670
671         * lto-cgraph.c (input_cgraph_1): Don't break existing
672         instrumentation clone references.
673         * lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
674         instrumented_version references appropriately.
675
676 2014-12-09  Ilya Enkovich  <ilya.enkovich@intel.com>
677
678         PR bootstrap/63995
679         * tree-chkp.c (chkp_make_static_bounds): Share bounds var
680         between nodes sharing assembler name.
681
682 2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
683
684         PR target/64204
685         * config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
686         constant moves if -mupper-regs-df.
687
688         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
689         0.0L to TFmode.
690         (movtd_64bit_nodm): Likewise.
691         (mov<mode>_32bit, FMOVE128 case): Likewise.
692
693 2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>
694
695         * simplify-rtx.c (simplify_relational_operation_1): Handle
696         simplification identities for BICS patterns.
697
698 2014-12-08  Trevor Saunders  <tsaunders@mozilla.com>
699
700         * config/nvptx/nvptx.c: Convert htabs to hash_table.
701
702 2014-12-08  David Edelsohn  <dje.gcc@gmail.com>
703
704         PR target/64226
705         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
706         [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
707         TARGET_TOC. Always use rs6000_emit_move.
708
709 2014-12-08  Mark Wielaard  <mjw@redhat.com>
710
711         PR debug/60782
712         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.
713
714 2014-11-15  David Wohlferd <dw@LimeGreenSocks.com>
715
716         PR target/61692
717         * cfgexpand.c (expand_asm_operands): Count all inline asm params.
718
719 2014-12-08  David Malcolm  <dmalcolm@redhat.com>
720
721         PR jit/63854
722         * cgraph.h (xstrdup_for_dump): New function.
723         * cgraph.c (cgraph_node::get_create): Replace use of xstrdup
724         within fprintf with xstrdup_for_dump.
725         (cgraph_edge::make_speculative): Likewise.
726         (cgraph_edge::resolve_speculation): Likewise.
727         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
728         (cgraph_node::dump): Likewise.
729         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
730         * ipa-cp.c (perhaps_add_new_callers): Likewise.
731         * ipa-inline.c (report_inline_failed_reason): Likewise.
732         (want_early_inline_function_p): Likewise.
733         (edge_badness): Likewise.
734         (update_edge_key): Likewise.
735         (flatten_function): Likewise.
736         (inline_always_inline_functions): Likewise.
737         * ipa-profile.c (ipa_profile): Likewise.
738         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
739         (ipa_make_edge_direct_to_target): Likewise.
740         (remove_described_reference): Likewise.
741         (propagate_controlled_uses): Likewise.
742         * ipa-utils.c (ipa_merge_profiles): Likewise.
743
744 2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
745
746         PR ipa/64049
747         * ipa-polymorphic-call.c
748         (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.
749
750 2014-12-08  Alex Velenko  <Alex.Velenko@arm.com>
751
752         * config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
753         New define_insn.
754         * (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
755         Likewise.
756
757 2014-12-08  Felix Yang  <felix.yang@huawei.com>
758             Haijian Zhang  <z.zhanghaijian@huawei.com>
759             Jiji Jiang  <jiangjiji@huawei.com>
760             Pengfei Sui  <suipengfei@huawei.com>
761
762         * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
763         builtin functions.
764         (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
765         vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
766         (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
767         vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
768         vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
769         vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
770         vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
771         vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
772         vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
773         vrsubhn_high_u64): Likewise.
774         * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
775         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
776         * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
777         * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
778         subhn2, rsubhn2, urecpe): New builtins.
779
780 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
781
782         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
783         * config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.
784
785 2014-12-08  Ilya Tocar  <ilya.tocar@intel.com>
786
787         * config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
788         (expand_vec_perm_vpermi2_vpshub2): New.
789         (ix86_expand_vec_perm_const_1): Use it.
790         (ix86_vectorize_vec_perm_const_ok): Handle v64qi.
791         * config/i386/sse.md (VEC_PERM_CONST): Add v64qi.
792
793 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
794
795         * tree-chkp.c (chkp_build_returned_bound): Don't predict
796         return bounds for strchr calls.
797
798 2014-12-08  Ilya Enkovich  <ilya.enkovich@intel.com>
799
800         * tree-chkp.c (chkp_call_returns_bounds_p): New.
801         (chkp_build_returned_bound): Use zero bounds as
802         returned by calls not returning bounds.
803
804 2014-12-08  Richard Biener  <rguenther@suse.de>
805
806         * builtins.c (fold_builtin_0): Remove unused ignore parameter.
807         (fold_builtin_1): Likewise.
808         (fold_builtin_3): Likewise.
809         (fold_builtin_varargs): Likewise.
810         (fold_builtin_2): Likewise.  Do not fold stpcpy here.
811         (fold_builtin_n): Adjust.
812         (fold_builtin_stpcpy): Move to gimple-fold.c.
813         (gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
814         (gimple_fold_builtin): Fold stpcpy here.
815
816 2014-12-07  Trevor Saunders  <tsaunders@mozilla.com>
817
818         * symtab.c (symtab_node::verify): Check for section attribute before
819         asserting something isn't in a section and a comdat group.
820
821 2014-12-07  Oleg Endo  <olegendo@gcc.gnu.org>
822
823         PR target/50751
824         * config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.
825
826 2014-12-07  Eric Botcazou  <ebotcazou@adacore.com>
827
828         * compare-elim.c: Fix head comment.
829         (conforming_compare): Remove redundant test.
830         (can_eliminate_compare): New function extracted from...
831         (before_dom_children): ...here.  Use it, replace direct uses of
832         flag_non_call_exceptions and tidy up.
833         (maybe_select_cc_mode): Tidy up.
834
835 2014-12-07  Felix Yang  <felix.yang@huawei.com>
836             Shanyao Chen  <chenshanyao@huawei.com>
837
838         * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
839         patterns.
840         * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
841         builtins.
842         * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
843         vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
844         vcntq_u8): Rewrite using builtin functions.
845
846 2014-12-07  Jan Hubicka  <hubicka@ucw.cz>
847
848         * symtab.c (symtab_node::equal_address_to): New function.
849         * cgraph.h (symtab_node::equal_address_to): Declare.
850         * fold-const.c (fold_comparison, fold_binary_loc): Use it.
851         * c-family/c-common.c: Refuse weaks for symbols that can not change
852         visibility.
853
854 2014-12-07  Jonathan Wakely  <jwakely@redhat.com>
855
856         * doc/invoke.texi (Warning Options): Fix spelling and grammar.
857
858 2014-12-06  James Greenhalgh  <james.greenhalgh@arm.com>
859             Sebastian Pop  <s.pop@samsung.com>
860             Brian Rzycki  <b.rzycki@samsung.com>
861
862         PR tree-optimization/54742
863         * params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
864         max-fsm-thread-paths): New.
865
866         * doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
867         max-fsm-thread-paths): Documented.
868
869         * tree-cfg.c (split_edge_bb_loc): Export.
870         * tree-cfg.h (split_edge_bb_loc): Declared extern.
871
872         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
873         original value of cond when simplification fails.
874         (fsm_find_thread_path): New.
875         (fsm_find_control_statement_thread_paths): New.
876         (thread_through_normal_block): Call find_control_statement_thread_paths.
877
878         * tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
879         EDGE_FSM_THREAD.
880         (verify_seme): New.
881         (duplicate_seme_region): New.
882         (thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
883         calling duplicate_seme_region.
884
885         * tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.
886
887 2014-12-06  H.J. Lu  <hongjiu.lu@intel.com>
888
889         PR target/64200
890         * config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
891         for TARGET_INLINE_STRINGOPS_DYNAMICALLY.
892
893 2014-12-05  Jakub Jelinek  <jakub@redhat.com>
894
895         PR sanitizer/64170
896         * sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
897         non-NULL, call maybe_get_dominating_check on it even if g is
898         non-NULL.
899
900 2014-12-05  Jeff Law  <law@redhat.com>
901
902         * doc/md.texi: Note problems using function calls to determine
903         insn lengths and point readers to a potential workaround.
904
905 2014-12-05  Andreas Schwab  <schwab@linux-m68k.org>
906
907         * combine.c (is_parallel_of_n_reg_sets)
908         (can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.
909
910 2014-12-05  Andrew Pinski  <apinski@cavium.com>
911
912         * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
913         than CF10 so 2 is appended on the code.
914         * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
915         (bswap<mode>2): This so it matches for the optabs.
916
917 2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
918
919         * regrename.c (find_best_rename_reg): Rename to ...
920         (find_rename_reg): This. Also add a parameter to skip tick check.
921         * regrename.h: Likewise.
922         * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.
923
924 2014-12-05  Martin Jambor  <mjambor@suse.cz>
925
926         PR ipa/64192
927         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
928         from bits to bytes after checking they are byte-aligned.
929
930 2014-12-05  Renlin Li  <renlin.li@arm.com>
931
932         * config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
933         * config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
934         * config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
935         IDENT to SCHED.
936
937 2014-12-05  Bin Cheng  <bin.cheng@arm.com>
938
939         * config/aarch64/aarch64.md (load_pair<mode>): Split to
940         load_pairsi, load_pairdi, load_pairsf and load_pairdf.
941         (load_pairsi, load_pairdi, load_pairsf, load_pairdf): Split
942         from load_pair<mode>.  New alternative to support int/fp
943         registers in fp/int mode patterns.
944         (store_pair<mode>:): Split to store_pairsi, store_pairdi,
945         store_pairsf and store_pairdi.
946         (store_pairsi, store_pairdi, store_pairsf, store_pairdf): Split
947         from store_pair<mode>.  New alternative to support int/fp
948         registers in fp/int mode patterns.
949         (*load_pair_extendsidi2_aarch64): New pattern.
950         (*load_pair_zero_extendsidi2_aarch64): New pattern.
951         (aarch64-ldpstp.md): Include.
952         * config/aarch64/aarch64-ldpstp.md: New file.
953         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
954         New.
955         (extract_base_offset_in_addr): New.
956         (aarch64_operands_ok_for_ldpstp): New.
957         (aarch64_operands_adjust_ok_for_ldpstp): New.
958         * config/aarch64/aarch64.c (enum sched_fusion_type): New enum.
959         (TARGET_SCHED_FUSION_PRIORITY): New hook.
960         (fusion_load_store): New functon.
961         (extract_base_offset_in_addr): New function.
962         (aarch64_gen_adjusted_ldpstp): New function.
963         (aarch64_sched_fusion_priority): New function.
964         (aarch64_operands_ok_for_ldpstp): New function.
965         (aarch64_operands_adjust_ok_for_ldpstp): New function.
966
967 2014-12-05  Olivier Hainque  <hainque@adacore.com>
968
969         * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
970         * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
971         DWARF_REG_TO_UNWIND_COLUMN.
972
973 2014-12-05  Olivier Hainque  <hainque@adacore.com>
974
975         * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
976         one particular reg for expand_builtin_init_dwarf_reg_sizes.
977         (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
978         account for dwarf register spans.
979
980 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
981
982         PR target/64003
983         * config/i386/i386.md (*jcc_1_bnd): New.
984         (*jcc_2_bnd): New.
985         (jump_bnd): New.
986         (*jcc_1): Remove bnd prefix.
987         (*jcc_2): Likewise.
988         (jump): Likewise.
989
990 2014-12-05  Renlin Li  <renlin.li@arm.com>
991
992         * config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
993         selected_tune.
994         (aarch64_override_options): Use selected_cpu's tuning.
995
996 2014-12-05  David Edelsohn  <dje.gcc@gmail.com>
997
998         * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
999         alignment to section name. Increase default alignment to word.
1000
1001 2014-12-05  Martin Jambor  <mjambor@suse.cz>
1002
1003         * cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
1004         (cgraph_edge): New method redirect_callee_duplicating_thunks.
1005         * cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
1006         created thunks.
1007         (redirect_edge_duplicating_thunks): Turned into edge method
1008         redirect_callee_duplicating_thunks.
1009         (cgraph_node::expand_all_artificial_thunks): New method.
1010         (create_clone): Call expand_all_artificial_thunks.
1011         * ipa-cp.c (perhaps_add_new_callers): Call
1012         redirect_callee_duplicating_thunks instead of redirect_callee.
1013         Also call expand_all_artificial_thunks.
1014
1015 2014-12-05  Ilya Enkovich  <ilya.enkovich@intel.com>
1016
1017         PR target/64056
1018         * doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.
1019
1020 2014-12-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1021
1022         * diagnostic.h (diagnostic_expand_location): New inline function.
1023         * diagnostic.c (diagnostic_build_prefix): Use it.
1024         (diagnostic_show_locus): Likewise.
1025
1026 2014-12-04  H.J. Lu  <hongjiu.lu@intel.com>
1027
1028         PR bootstrap/64189
1029         * configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
1030         * configure: Regenerated.
1031
1032 2014-12-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1033
1034         * diagnostic.c (diagnostic_color_init): New.
1035         * diagnostic.h: Declare.
1036         * gcc.c (driver::global_initializations): Use it.
1037         (driver_handle_option): Handle -fdiagnostics-color_.
1038         * toplev.c: Do not include diagnostic-color.h.
1039         (process_options): Do not initialize color diagnostics here.
1040         * common.opt (fdiagnostics-color=): Add Driver.
1041         * opts-global.c (init_options_once): Initialize color here.
1042         * opts.c (common_handle_option): Use diagnostics_color_init.
1043         * diagnostic-color.h: Fix comment.
1044
1045 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1046
1047         * tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
1048         (NIY): Likewise.
1049         (buffer): Rename this variable to...
1050         (tree_pp): ...this.
1051
1052         (do_niy): Rename param from "buffer" to "pp".
1053         (dump_decl_name): Likewise.
1054         (dump_function_name): Likewise.
1055         (dump_function_declaration): Likewise.
1056         (dump_array_domain): Likewise.
1057         (dump_omp_clause): Likewise.
1058         (dump_omp_clauses): Likewise.
1059         (dump_location): Likewise.
1060         (dump_block_node): Likewise.
1061         (dump_generic_node): Likewise.
1062         (print_declaration): Likewise.
1063         (print_struct_decl): Likewise.
1064         (print_call_name): Likewise.
1065         (pretty_print_string): Likewise.
1066         (newline_and_indent): Likewise.
1067
1068         (print_generic_decl): Update for renaming of "buffer" to
1069         "tree_pp".
1070         (print_generic_stmt): Likewise.
1071         (print_generic_stmt_indented): Likewise.
1072         (print_generic_expr): Likewise.
1073         (maybe_init_pretty_print): Likewise.
1074
1075 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1076
1077         PR jit/63854
1078         * tree-pretty-print.c: Eliminate include of <new>.
1079         (buffer): Convert this variable from a pretty_printer to a
1080         pretty_printer *.
1081         (initialized): Eliminate this variable in favor of the NULL-ness
1082         of "buffer".
1083         (print_generic_decl): Update for "buffer" becoming a pointer.
1084         (print_generic_stmt): Likewise.
1085         (print_generic_stmt_indented): Likewise.
1086         (print_generic_expr): Likewise.
1087         (maybe_init_pretty_print): Likewise, allocating "buffer" on the
1088         heap and using its non-NULL-ness to ensure idempotency.
1089
1090 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1091
1092         PR jit/63854
1093         * ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
1094         ipa_add_new_function on function_insertion_hook_holder being
1095         non-NULL.
1096         * ipa-reference.c (ipa_reference_c_finalize): Remove
1097         node_removal_hook_holder and node_duplication_hook_holder if
1098         they've been added to symtab.
1099         * toplev.c (toplev::finalize): Call ipa_reference_c_finalize
1100         before cgraph_c_finalize so that the former can access "symtab".
1101
1102 2014-12-04  David Malcolm  <dmalcolm@redhat.com>
1103
1104         * doc/cfg.texi (GIMPLE statement iterators): Add note about
1105         gphi_iterator, and use one in the example.
1106         * doc/gimple.texi (Tuple specific accessors): Add missing
1107         GIMPLE_GOTO section and menu item.
1108         (gimple_build_asm, gimple gimple_build_assign_with_ops)
1109         gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
1110         description of removed functions.
1111         (gimple_build_assign, gimple_build_bind, gimple_build_call,
1112         gimple_build_call_from_tree, gimple_build_call_vec,
1113         gimple_build_catch, gimple_build_cond,
1114         gimple_build_cond_from_tree, gimple_build_debug_bind,
1115         gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
1116         gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
1117         gimple_build_omp_continue, gimple_build_omp_critical,
1118         gimple_build_omp_for, gimple_build_omp_parallel,
1119         gimple_build_omp_sections, gimple_build_omp_single,
1120         gimple_build_return, gimple_build_resx, gimple_build_switch,
1121         gimple_build_try): Update return type within description to
1122         reflect changes in gimple.h to using gimple subclasses.
1123         (gimple_build_asm_vec): Update return type, params and
1124         description.
1125         (gimple_asm_ninputs): Update param.
1126         (gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
1127         gimple_asm_set_input_op, gimple_asm_output_op
1128         gimple_asm_set_output_op, gimple_asm_clobber_op,
1129         gimple_asm_set_clobber_op, gimple_asm_string,
1130         gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
1131         gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
1132         gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
1133         gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
1134         gimple_call_return_type, gimple_call_set_chain,
1135         gimple_call_set_tail, gimple_call_tail_p,
1136         gimple_call_copy_skip_args, gimple_catch_types,
1137         gimple_catch_types_ptr, gimple_catch_handler,
1138         gimple_catch_set_types, gimple_catch_set_handler,
1139         gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
1140         gimple_cond_true_label, gimple_cond_set_true_label,
1141         gimple_cond_set_false_label, gimple_cond_false_label,
1142         gimple_cond_make_false, gimple_cond_make_true,
1143         gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
1144         gimple_eh_must_not_throw_fndecl,
1145         gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
1146         gimple_label_set_label, gimple_goto_set_dest,
1147         gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
1148         gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
1149         gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
1150         gimple_omp_continue_control_def,
1151         gimple_omp_continue_control_def_ptr,
1152         gimple_omp_continue_set_control_def,
1153         gimple_omp_continue_control_use,
1154         gimple_omp_continue_control_use_ptr,
1155         gimple_omp_continue_set_control_use, gimple_omp_critical_name,
1156         gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
1157         gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
1158         gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
1159         gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
1160         gimple_omp_parallel_data_arg_ptr,
1161         gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
1162         gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
1163         gimple_resx_set_region, gimple_return_retval,
1164         gimple_return_set_retval, gimple_switch_num_labels,
1165         gimple_switch_set_num_labels, gimple_switch_index,
1166         gimple_switch_set_index, gimple_switch_label,
1167         gimple_switch_set_label, gimple_switch_default_label,
1168         gimple_switch_set_default_label, gimple_try_set_eval,
1169         gimple_try_set_cleanup): Update initial param within description
1170         to reflect changes in gimple.h to using gimple subclasses.
1171         (Adding a new GIMPLE statement code): Update to reflect gimple
1172         statement subclassing.
1173
1174 2014-12-04  Sriraman Tallam  <tmsriram@google.com>
1175             H.J. Lu  <hongjiu.lu@intel.com>
1176
1177         * configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
1178         Linux/x86-64 linker supports PIE with copy reloc.
1179         * config.in: Regenerated.
1180         * configure: Likewise.
1181
1182         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
1183         pc-relative address for undefined, non-weak, non-function
1184         symbol reference in 64-bit PIE if linker supports PIE with
1185         copy reloc.
1186
1187         * doc/sourcebuild.texi: Document pie_copyreloc target.
1188
1189 2014-12-04  Marek Polacek  <polacek@redhat.com>
1190
1191         PR middle-end/56917
1192         * fold-const.c (fold_unary_loc): Perform the negation in A's type
1193         when transforming ~ (A - 1) or ~ (A + -1) to -A.
1194
1195 2014-12-04  Tobias Burnus  <burnus@net-b.de>
1196
1197         * Makefile.in: Remove CLOOGLIB and CLOOGINC.
1198
1199 2014-12-04  Richard Biener  <rguenther@suse.de>
1200
1201         * doc/match-and-simplify.texi: Update for recent changes.
1202
1203 2014-12-04  Martin Jambor  <mjambor@suse.cz>
1204
1205         * ipa-prop.h (ipa_alignment): New type.
1206         (ipa_jump_func): New field alignment.
1207         (ipcp_transformation_summary) New type.
1208         (ipcp_grow_transformations_if_necessary): Declare.
1209         (ipa_node_agg_replacements): Removed.
1210         (ipcp_transformations): Declare.
1211         (ipcp_get_transformation_summary): New function.
1212         (ipa_get_agg_replacements_for_node): Use it.
1213         * ipa-cp.c (ipcp_param_lattices): New field alignment.
1214         (print_all_lattices): Also print alignment.
1215         (alignment_bottom_p): New function.
1216         (set_alignment_to_bottom): Likewise.
1217         (set_all_contains_variable): Also set alignment to bottom.
1218         (initialize_node_lattices): Likewise.
1219         (propagate_alignment_accross_jump_function): New function.
1220         (propagate_constants_accross_call): Call it.
1221         (ipcp_store_alignment_results): New function.
1222         (ipcp_driver): Call it.
1223         * ipa-prop.c (ipa_node_agg_replacements): Removed.
1224         (ipcp_transformations): New.
1225         (ipa_print_node_jump_functions_for_edge): Also print alignment.
1226         (ipa_set_jf_unknown): New function.
1227         (detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
1228         (ipa_compute_jump_functions_for_edge): Also calculate alignment.
1229         (update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
1230         (ipcp_grow_transformations_if_necessary): New function.
1231         (ipa_set_node_agg_value_chain): Use ipcp_transformations.
1232         (ipa_node_removal_hook): Likewise.
1233         (ipa_node_duplication_hook): Also duplicate alignment results.
1234         (ipa_write_jump_function): Also stream alignments.
1235         (ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
1236         alignments.
1237         (write_agg_replacement_chain): Renamed to
1238         write_ipcp_transformation_info, also stream alignments.
1239         (read_agg_replacement_chain): Renamed to
1240         read_ipcp_transformation_info, also stream alignments.
1241         (ipa_prop_write_all_agg_replacement): Renamed to
1242         ipcp_write_transformation_summaries. Stream always.
1243         (ipa_prop_read_all_agg_replacement): Renamed to
1244         ipcp_read_transformation_summaries.
1245         (ipcp_update_alignments): New function.
1246         (ipcp_transform_function): Call it, free also alignments.
1247
1248 2014-12-04  Richard Biener  <rguenther@suse.de>
1249
1250         * gimple-fold.c (replace_stmt_with_simplification): Properly
1251         fail when maybe_push_res_to_seq fails.
1252
1253 2014-12-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
1254
1255         * config/aarch64/aarch64.md (define_insn "prefetch"): New.
1256
1257 2014-12-04  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1258
1259         * doc/install.texi: Remove mentions of cloog and ppl.
1260         * doc/invoke.texi: Likewise
1261
1262 2014-12-04  Jakub Jelinek  <jakub@redhat.com>
1263
1264         PR c++/56493
1265         * convert.c (convert_to_real, convert_to_expr, convert_to_complex):
1266         Handle COMPOUND_EXPR.
1267
1268 2014-12-04  Richard Biener  <rguenther@suse.de>
1269
1270         * builtins.c (target_newline): Export.
1271         (target_percent_s_newline): Likewise.
1272         (fold_builtin_1): Do not fold printf functions here.
1273         (fold_builtin_2): Likewise.
1274         (fold_builtin_3): Likewise, do not fold strncat.
1275         (fold_builtin_strncat): Move to gimple-fold.c.
1276         (fold_builtin_printf): Likewise.
1277         * builtins.h (target_newline): Declare.
1278         (target_percent_s_newline): Likewise.
1279         * gimple-fold.c (gimple_fold_builtin_strncat): Move from
1280         builtins.c and gimplify.
1281         (gimple_fold_builtin_printf): Likewise.
1282         (gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
1283         vprintf, printf_chk and vprintf_chk here.
1284
1285 2014-12-03  David Edelsohn  <dje.gcc@gmail.com>
1286
1287         * config/rs6000/rs6000.md (floatsidf2_internal): Use std::swap.
1288         (floatunssidf2_internal): Same.
1289         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Same.
1290         (rs6000_emit_int_cmove): Same.
1291         (rs6000_sched_reorder): Same.
1292         (altivec_expand_vec_perm_const): Same.
1293         (rs6000_expand_vec_perm_const_1): Same.
1294
1295 2014-12-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1296
1297         PR rtl-optimization/64010
1298         * reload.c (push_reload): Before reusing a register contained
1299         in an operand as input reload register, ensure that it is not
1300         used in CALL_INSN_FUNCTION_USAGE.
1301
1302 2014-12-03  Ulrich Drepper  <drepper@gmail.com>
1303
1304         * Makefile.in: Use $(LN_S) instead of $(LN) -s and remove file first
1305         if it exists.
1306
1307 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1308
1309         * expmed.c (expand_mult): Use std::swap.
1310
1311         PR c/59708
1312         * expmed.c (expand_widening_mult): Return const0_rtx if
1313         coeff is 0.
1314
1315         * doc/gimple.texi (gimple_build_assign_with_ops): Remove.
1316         (gimple_build_assign): Document the new overloads.
1317
1318 2014-12-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
1319
1320         PR target/64019
1321         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1322         not create LO_SUM address for constant addresses if the type can
1323         go in Altivec registers.
1324
1325 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1326
1327         PR fortran/44054
1328         * pretty-print.c (output_buffer::output_buffer): Init flush_p to true.
1329         (pp_flush): Flush only if flush_p.
1330         (pp_really_flush): New.
1331         * pretty-print.h (struct output_buffer): Add flush_p.
1332         (pp_really_flush): Declare.
1333
1334 2014-12-03  Jakub Jelinek  <jakub@redhat.com>
1335
1336         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add $(GENGTYPE_OBJS),
1337         gcc-ar.o, gcc-nm.o and gcc-ranlib.o.
1338         (GENGTYPE_OBJS): New.
1339         (gengtype-lex.o, gengtype-parse.o, gengtype-state.o, gengtype.o):
1340         Remove explicit dependencies.
1341         (CFLAGS-gengtype-lex.o, CFLAGS-gengtype-parse.o,
1342         CFLAGS-gengtype-state.o, CFLAGS-gengtype.o): Add -DHOST_GENERATOR_FILE
1343         instead of -DGENERATOR_FILE.
1344         (CFLAGS-errors.o): New.
1345         * gengtype.c: Instead of testing GENERATOR_FILE define, test
1346         HOST_GENERATOR_FILE.  If defined, include config.h and define
1347         GENERATOR_FILE afterwards, otherwise include bconfig.h.
1348         * gengtype-parse.c: Likewise.
1349         * gengtype-state.c: Likewise.
1350         * gengtype-lex.l: Likewise.
1351         * errors.c: Likewise.
1352
1353 2014-12-03  Joern Rennecke  <joern.rennecke@embecosm.com>
1354
1355         * config/epiphany/epiphany.c (epiphany_override_options):
1356         If TARGET_SOFT_CMPSF is not enabled, set flag_finite_math_only.
1357         * config/epiphany/epiphany.md (mov<mode>cc): Don't use
1358         reverse_condition_maybe_unordered if flag_finite_math_only is set.
1359
1360 2014-12-03  Andrew Stubbs  <ams@codesourcery.com>
1361
1362         Revert:
1363
1364         2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
1365         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
1366         when architecture is older than ARMv7.
1367
1368 2014-12-03  Richard Biener  <rguenther@suse.de>
1369
1370         * builtins.c (target_percent_c): Export.
1371         (fold_builtin_fprintf): Move to gimple-fold.c.
1372         (fold_builtin_2): Do not fold fprintf functions.
1373         (fold_builtin_3): Likewise.
1374         (fold_builtin_4): Remove.
1375         (fold_builtin_n): Do not call fold_builtin_4.
1376         * builtins.h (target_percent_c): Declare.
1377         * gimple-fold.c (gimple_fold_builtin_fprintf): Move from
1378         builtins.c and gimplify.
1379         (gimple_fold_builtin): Fold fprintf, fprintf_unlocked, vfprintf,
1380         fprintf_chk and vfprintf_chk here.
1381
1382 2014-12-03  Martin Jambor  <mjambor@suse.cz>
1383
1384         PR ipa/64153
1385         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Check
1386         type sizes before view_converting.
1387
1388 2014-12-03  H.J. Lu  <hongjiu.lu@intel.com>
1389
1390         PR rtl-optimization/64151
1391         PR rtl-optimization/64156
1392         * ira-costs.c (scan_one_insn): Revert r218266.
1393
1394 2014-12-03  Richard Biener  <rguenther@suse.de>
1395
1396         * builtins.c (fold_builtin_fpclassify): Change to take
1397         array of arguments instead of CALL_EXPR tree.
1398         (MAX_ARGS_TO_FOLD_BUILTIN): Remove.
1399         (fold_builtin_n): Dispatch to fold_builtin_varargs.
1400         (fold_call_expr): Always use fold_builtin_n.
1401         (fold_builtin_call_array): Change to not build the unfolded call,
1402         always use fold_builtin_n.
1403         (fold_builtin_varargs): Change to take array of arguments instead
1404         of CALL_EXPR tree.
1405         (fold_call_stmt): Always use fold_builtin_n.
1406         * tree.c (build_call_expr_loc_array): Use fold_build_call_array_loc.
1407         * fold-const.c (fold_build_call_array_loc): Build the call
1408         if fold_builtin_call_array returned NULL_TREE.
1409         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Do not build
1410         a CALL_EXPR and use fold_builtin_call_array instead of
1411         fold_call_expr.
1412
1413 2014-12-03  Alan Lawrence  <alan.lawrence@arm.com>
1414
1415         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>, orn<mode>3,
1416         bic<mode>3, add<mode>3, sub<mode>3, neg<mode>2, abs<mode>2, and<mode>3,
1417         ior<mode>3, xor<mode>3, one_cmpl<mode>2,
1418         aarch64_simd_lshr<mode> ,arch64_simd_ashr<mode>,
1419         aarch64_simd_imm_shl<mode>, aarch64_simd_reg_sshl<mode>,
1420         aarch64_simd_reg_shl<mode>_unsigned, aarch64_simd_reg_shr<mode>_signed,
1421         ashl<mode>3, lshr<mode>3, ashr<mode>3, vashl<mode>3,
1422         reduc_plus_scal_<mode>, aarch64_vcond_internal<mode><mode>,
1423         vcondu<mode><mode>, aarch64_cm<optab><mode>, aarch64_cmtst<mode>):
1424         Change VDQ to VDQ_I.
1425
1426         (mul<mode>3): Change VDQM to VDQ_BHSI.
1427         (aarch64_simd_vec_set<mode>,vashr<mode>3, vlshr<mode>3, vec_set<mode>,
1428         aarch64_mla<mode>, aarch64_mls<mode>, <su><maxmin><mode>3,
1429         aarch64_<sur>h<addsub><mode>): Change VQ_S to VDQ_BHSI.
1430         
1431         (*aarch64_<su>mlal<mode>, *aarch64_<su>mlsl<mode>,
1432         aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>,
1433         aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>, aarch64_<sur>shll_n<mode>):
1434         Change VDW to VD_BHSI.
1435         (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>):
1436         Change VDIC to VD_BHSI.
1437
1438         * config/aarch64/aarch64-simd-builtins.def (saddl, uaddl, ssubl, usubl,
1439         saddw, uaddw, ssubw, usubw, shadd, uhadd, srhadd, urhadd, sshll_n,
1440         ushll_n): Change BUILTIN_VDW to BUILTIN_VD_BHSI.
1441
1442         * config/aarch64/iterators.md (SDQ_I, VDQ, VQ_S, VSDQ_I_BHSI, VDQM, VDW,
1443         VDIC, VDQQHS): Remove.
1444         (Vwtype): Update comment (changing VDW to VD_BHSI).
1445
1446 2014-12-03  Richard Biener  <rguenther@suse.de>
1447
1448         PR middle-end/14541
1449         * builtins.c (fold_builtin_logarithm): Implement simplifications ...
1450         * match.pd: ... here as patterns.
1451
1452 2014-12-03  Prachi Godbole  <prachi.godbole@imgtec.com>
1453
1454         * config/mips/p5600.md (define_automaton, define_cpu_unit): Replace
1455         p5600_agen_pipe and p5600_alu_pipe with p5600_agen_alq_pipe.
1456         (p5600_int_arith_1, p5600_int_arith_2, p5600_int_arith_4): Change
1457         reservation order.
1458
1459 2014-12-03  Tom de Vries  <tom@codesourcery.com>
1460
1461         PR rtl-optimization/63957
1462         * doc/invoke.texi: Replace -fuse-caller-save with -fipa-ra.
1463         * final.c (rest_of_handle_final): Replace flag_use_caller_save with
1464         flag_ipa_ra.
1465         (get_call_reg_set_usage): Same.
1466         * lra-assigns.c (lra_assign): Same.
1467         * lra-constraints.c (need_for_call_save_p): Same.
1468         * lra-lives.c (process_bb_lives): Same.
1469         * lra.c (lra): Same.
1470         * calls.c (expand_call): Same.
1471         (emit_library_call_value_1): Same.
1472         * config/arm/arm.c (arm_option_override): Same.
1473         * opts.c (default_options_table): Replace OPT_fuse_caller_save with
1474         OPT_fipa_ra.
1475         * target.def (call_fusage_contains_non_callee_clobbers): Replace
1476         fuse-caller-save with fipa-ra.
1477         * doc/tm.texi (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Same.
1478         * common.opt: Same.
1479
1480 2014-12-03  Yury Gribov  <y.gribov@samsung.com>
1481
1482         * sanopt.c (maybe_get_single_definition): New function.
1483         (maybe_get_dominating_check): Ditto.
1484         (can_remove_asan_check): Ditto.
1485         (struct tree_map_traits): New struct.
1486         (struct sanopt_ctx): Use custom traits for asan_check_map.
1487         (maybe_optimize_ubsan_null_ifn): Move code to
1488         maybe_get_dominating_check.
1489         (maybe_optimize_asan_check_ifn): Move code and take non-SSA expressions
1490         into account when optimizing.
1491         (sanopt_optimize_walker): Optimize ASan checks even when
1492         recovering.
1493
1494 2014-12-03  Ilya Enkovich  <ilya.enkovich@intel.com>
1495
1496         * config/i386/constraints.md (Yr): New.
1497         * config/i386/i386.h (reg_class): Add NO_REX_SSE_REGS.
1498         (REG_CLASS_NAMES): Likewise.
1499         (REG_CLASS_CONTENTS): Likewise.
1500         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Add alternatives
1501         which use only NO_REX_SSE_REGS.
1502         (vec_set<mode>_0): Likewise.
1503         (*vec_setv4sf_sse4_1): Likewise.
1504         (sse4_1_insertps): Likewise.
1505         (*sse4_1_extractps): Likewise.
1506         (*sse4_1_mulv2siv2di3<mask_name>): Likewise.
1507         (*<sse4_1_avx2>_mul<mode>3<mask_name>): Likewise.
1508         (*sse4_1_<code><mode>3<mask_name>): Likewise.
1509         (*sse4_1_<code><mode>3): Likewise.
1510         (*sse4_1_eqv2di3): Likewise.
1511         (sse4_2_gtv2di3): Likewise.
1512         (*vec_extractv4si): Likewise.
1513         (*vec_concatv2si_sse4_1): Likewise.
1514         (vec_concatv2di): Likewise.
1515         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Likewise.
1516         (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Likewise.
1517         (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Likewise.
1518         (<vi8_sse4_1_avx2_avx512>_movntdqa): Likewise.
1519         (<sse4_1_avx2>_mpsadbw): Likewise.
1520         (<sse4_1_avx2>packusdw<mask_name>): Likewise.
1521         (<sse4_1_avx2>_pblendvb): Likewise.
1522         (sse4_1_pblendw): Likewise.
1523         (sse4_1_phminposuw): Likewise.
1524         (sse4_1_<code>v8qiv8hi2<mask_name>): Likewise.
1525         (sse4_1_<code>v4qiv4si2<mask_name>): Likewise.
1526         (sse4_1_<code>v4hiv4si2<mask_name>): Likewise.
1527         (sse4_1_<code>v2qiv2di2<mask_name>): Likewise.
1528         (sse4_1_<code>v2hiv2di2<mask_name>): Likewise.
1529         (sse4_1_<code>v2siv2di2<mask_name>): Likewise.
1530         (sse4_1_ptest): Likewise.
1531         (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Likewise.
1532         (sse4_1_round<ssescalarmodesuffix>): Likewise.
1533         * config/i386/subst.md (mask_prefix4): New.
1534         * config/i386/x86-tune.def (X86_TUNE_AVOID_4BYTE_PREFIXES): New.
1535
1536 2014-12-03  Segher Boessenkool  <segher@kernel.crashing.org>
1537
1538         PR rtl-optimization/52714
1539         * combine.c (try_combine): Allow combining two insns into two
1540         new insns if at least one of those is a noop.
1541
1542 2014-12-03  Bin Cheng  <bin.cheng@arm.com>
1543
1544         * target.def (fusion_priority): Wrap code with @smallexample.
1545         * doc/tm.texi: Regenerated.
1546
1547 2014-12-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1548
1549         * diagnostic.c (diagnostic_show_locus): Honor override_column when
1550         placing the caret.
1551
1552 2014-12-02  Dmitry Vyukov  <dvyukov@google.com>
1553
1554         * asan.c: (asan_finish_file): Use default priority for constructors
1555         in kernel mode.
1556
1557 2014-12-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1558
1559         PR target/64115
1560         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
1561         invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.
1562
1563 2014-12-02  H.J. Lu  <hongjiu.lu@intel.com>
1564
1565         PR target/64108
1566         * config/i386/i386.c (decide_alg): Stop only if there aren't
1567         any usable algorithms.
1568
1569 2014-12-02  Tom de Vries  <tom@codesourcery.com>
1570
1571         PR rtl-optimization/63718
1572         * config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
1573         Thumb1.
1574
1575 2014-12-02  Richard Biener  <rguenther@suse.de>
1576
1577         * match.pd: When combining divisions exclude the degenerate
1578         case involving INT_MIN from overflow handling.
1579
1580 2014-12-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
1581
1582         * ira-costs.c (scan_one_insn): Improve spill cost adjustment.
1583
1584 2014-12-02  Martin Jambor  <mjambor@suse.cz>
1585
1586         PR ipa/63814
1587         * ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
1588         (cgraph_edge_brings_value_p): New parameter dest, use
1589         same_node_or_its_all_contexts_clone_p and check availability.
1590         (cgraph_edge_brings_value_p): Likewise.
1591         (get_info_about_necessary_edges): New parameter dest, pass it to
1592         cgraph_edge_brings_value_p.  Update caller.
1593         (gather_edges_for_value): Likewise.
1594         (perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
1595         both the destination and availability.
1596
1597 2014-12-02  Uros Bizjak  <ubizjak@gmail.com>
1598
1599         PR target/64113
1600         * config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
1601         using post-reload splitter.  Use peephole2 pass instead.
1602         (call_value_osf_tlsldm): Ditto.
1603         (TLS_CALL): New int iterator.
1604         (tls): New int attribute.
1605         (call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
1606         and call_value_tlsldm using TLS_CALL int iterator.
1607
1608 2014-12-02  Richard Biener  <rguenther@suse.de>
1609             Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
1610
1611         * genmatch.c: Include hash-set.h.
1612         (fatal_at): Add source_location overload.
1613         (parser::record_operlist): New method.
1614         (parser::push_simplify): Likewise.
1615         (parser::oper_lists_set): New member.
1616         (parser::oper_lists): Likewise.
1617         (parser::parse_operation): Record seen operator list references.
1618         (parser::parse_c_expr): Likewise.
1619         (parser::parse_simplify): Init oper_lists_set and oper_lists
1620         and use push_simplify.
1621         (parser::parser): Init oper_lists_set and oper_lists.
1622
1623 2014-12-02  Richard Biener  <rguenther@suse.de>
1624
1625         * match.pd: Restrict division combining to trunc_div and
1626         exact_div.
1627
1628 2014-12-02  Jakub Jelinek  <jakub@redhat.com>
1629
1630         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
1631         Remove NULL last argument from create_tmp_var calls.
1632         * config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
1633         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
1634         * config/i386/i386.c (add_condition_to_bb,
1635         ix86_atomic_assign_expand_fenv): Likewise.
1636         * config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
1637         * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
1638         * config/aarch64/aarch64-builtins.c
1639         (aarch64_atomic_assign_expand_fenv): Likewise.
1640         * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
1641         Likewise.
1642         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
1643         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
1644         * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.
1645
1646         * config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
1647         gimple_build_assign instead of gimple_build_assign_with_ops and swap
1648         the order of first two arguments.
1649         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
1650         Likewise.  Remove last NULL_TREE argument.
1651
1652 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1653
1654         PR rtl-optimization/59278
1655         * combine (reg_dead_at_p): Consider REG_UNUSED notes.
1656
1657 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1658
1659         * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
1660
1661 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1662
1663         * combine.c (is_parallel_of_n_reg_sets): New function.
1664         (can_split_parallel_of_n_reg_sets): New function.
1665         (try_combine): If I2 is a PARALLEL of two SETs, split it into
1666         two insns if possible.
1667
1668 2014-12-01  Tobias Burnus  <burnus@net-b.de>
1669             Jack Howarth  <howarth@bromo.med.uc.edu>
1670
1671         PR middle-end/64017
1672         * configure.ac (ac_has_isl_schedule_constraints_compute_schedule):
1673         New check.
1674         * doc/install.texi (ISL): Permit ISL 0.14.
1675         * graphite-optimize-isl.c (getScheduleForBandList, optimize_isl):
1676         Conditionally use ISL 0.13+ functions.
1677         * graphite-interchange.c: Make 'extern "C"' conditional.
1678         * graphite-isl-ast-to-gimple.c: Ditto.
1679         * graphite-poly.c: Ditto.
1680         * graphite-sese-to-poly.c: Ditto.
1681         * config.in: Regenerate.
1682         * gcc/configure: Regenerate.
1683
1684 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1685
1686         * combine.c (distribute_links): Handle multiple SETs.
1687
1688 2014-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
1689
1690         * combine.c (struct insn_link): New field `regno'.
1691         (alloc_insn_link): New parameter `regno'.  Use it.
1692         (find_single_use): Check the new field.
1693         (can_combine_def_p, can_combine_use_p): New functions.  Split
1694         off from ...
1695         (create_log_links): ... here.  Correct data type of `regno'.
1696         Adjust call to alloc_insn_link.
1697         (adjust_for_new_dest): Find regno, use it in call to
1698         alloc_insn_link.
1699         (try_combine): Check reg_used_between_p when combining a PARALLEL
1700         as earlier insn.  Adjust call to alloc_insn_link.
1701         (distribute_links): Check the new field.
1702
1703 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1704
1705         PR jit/63854
1706         * real.c (real_from_string): Add missing mpfr_clear.
1707
1708 2014-12-01  David Malcolm  <dmalcolm@redhat.com>
1709
1710         PR jit/63854
1711         * tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
1712         release of stmts by converting it to an auto_vec.
1713
1714 2014-12-01  Richard Biener  <rguenther@suse.de>
1715
1716         * Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
1717         -Wno-unused-variable and -Wno-unused-but-set-variable to restore
1718         bootstrap with old GCC.
1719         (generic-match.o-warn): Likewise.
1720
1721 2014-12-01  Richard Biener  <rguenther@suse.de>
1722
1723         * fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
1724         Properly handle FIXED_CST shifts by INTEGER_CST.
1725         (const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
1726         VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
1727         VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
1728         VEC_WIDEN_MULT_ODD_EXPR handling here from ...
1729         (fold_binary_loc): ... here.  Call const_binop overload
1730         with result type.
1731
1732 2014-12-01  Marek Polacek  <polacek@redhat.com>
1733             Jakub Jelinek  <jakub@redhat.com>
1734
1735         PR sanitizer/64121
1736         * ubsan.c (instrument_object_size): Stop searching if the base
1737         occurs in abnormal phi.
1738
1739 2014-12-01  Marek Polacek  <polacek@redhat.com>
1740
1741         PR sanitizer/63956
1742         * ubsan.c (is_ubsan_builtin_p): Check also built-in class.
1743
1744 2014-12-01  Jakub Jelinek  <jakub@redhat.com>
1745
1746         * gimple.h (gimple_build_assign_stat): Remove prototype.
1747         (gimple_build_assign): Remove define.  Add overload prototypes
1748         with tree lhs and either a tree rhs, or enum tree_code and
1749         1, 2 or 3 tree operands.
1750         * gimple.c (gimple_build_assign_stat): Renamed to...
1751         (gimple_build_assign): ... this.  Add overloads with
1752         enum tree_code and 1, 2 or 3 tree operands.
1753         (gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
1754         Rename the 3 operand overload to ...
1755         (gimple_build_assign_1): ... this.  Make it static inline.
1756         * tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
1757         instead of gimple_build_assign_with_ops, swap the order of first
1758         two arguments and adjust formatting where necessary.
1759         * tree-vect-slp.c (vect_get_constant_vectors,
1760         vect_create_mask_and_perm): Likewise.
1761         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1762         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1763         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1764         * tsan.c (instrument_builtin_call): Likewise.
1765         * tree-chkp.c (chkp_compute_bounds_for_assignment,
1766         chkp_generate_extern_var_bounds): Likewise.
1767         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1768         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
1769         * gimple-builder.c (build_assign, build_type_cast): Likewise.
1770         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
1771         * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
1772         gimple_mod_subtract): Likewise.
1773         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1774         * tree-vect-patterns.c (vect_recog_dot_prod_pattern,
1775         vect_recog_sad_pattern, vect_handle_widen_op_by_const,
1776         vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
1777         vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
1778         vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
1779         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
1780         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
1781         adjust_bool_pattern_cast, adjust_bool_pattern,
1782         vect_recog_bool_pattern): Likewise.
1783         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
1784         insert_initializers, introduce_cast_before_cand,
1785         replace_one_candidate): Likewise.
1786         * tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
1787         powi_as_mults, build_and_insert_binop, build_and_insert_cast,
1788         pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
1789         Likewise.
1790         * tree-tailcall.c (adjust_return_value_with_ops,
1791         update_accumulator_with_ops): Likewise.
1792         * tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
1793         * tree-ssa-reassoc.c (build_and_add_sum,
1794         optimize_range_tests_to_bit_test, update_ops,
1795         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1796         negate_value, repropagate_negates, attempt_builtin_powi,
1797         reassociate_bb): Likewise.
1798         * tree-vect-loop.c (vect_is_simple_reduction_1,
1799         get_initial_def_for_induction, vect_create_epilog_for_reduction):
1800         Likewise.
1801         * ipa-split.c (split_function): Likewise.
1802         * tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
1803         abs_replacement, neg_replacement): Likewise.
1804         * tree-profile.c (gimple_gen_edge_profiler): Likewise.
1805         * tree-vrp.c (simplify_truth_ops_using_ranges,
1806         simplify_float_conversion_using_ranges,
1807         simplify_internal_call_using_ranges): Likewise.
1808         * gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
1809         * tree-vect-generic.c (expand_vector_divmod,
1810         optimize_vector_constructor): Likewise.
1811         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
1812         instrument_bool_enum_load): Likewise.
1813         * tree-ssa-loop-manip.c (create_iv): Likewise.
1814         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
1815         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
1816         expand_cilk_for, simd_clone_adjust): Likewise.
1817         * trans-mem.c (expand_transaction): Likewise.
1818         * tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
1819         vect_setup_realignment, vect_permute_load_chain,
1820         vect_shift_permute_load_chain): Likewise.
1821         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1822         vectorizable_simd_clone_call, vect_gen_widened_results_half,
1823         vect_create_vectorized_demotion_stmts, vectorizable_conversion,
1824         vectorizable_shift, vectorizable_operation, vectorizable_store,
1825         permute_vec_elements, vectorizable_load): Likewise.
1826
1827 2014-12-01  Richard Biener  <rguenther@suse.de>
1828
1829         PR middle-end/64111
1830         * tree.c (int_cst_hasher::hash): Use TYPE_UID instead of
1831         htab_hash_pointer to not break PCH.
1832
1833 2014-12-01  Richard Biener  <rguenther@suse.de>
1834
1835         PR tree-optimization/15346
1836         * Makefile.in (gimple-match.o-warn): Remove -Wno-unused-parameter,
1837         add -Wno-unused-but-set-variable.
1838         * match.pd: Combine two successive divisions.
1839
1840 2014-12-01  Richard Biener  <rguenther@suse.de>
1841
1842         PR middle-end/64126
1843         * match.pd: Allow conversions in ~A + 1 -> -A, add -A - 1 -> ~A
1844         and -1 - A -> ~A.
1845         * fold-const.c (fold_binary_loc): Remove transforms here.
1846
1847 2014-12-01  Maciej W. Rozycki  <macro@codesourcery.com>
1848
1849         * config/mips/mips.c (mips16_build_call_stub): Move the save of
1850         the return address in $18 ahead of passing arguments to FPRs.
1851
1852 2014-12-01  Ilya Enkovich  <ilya.enkovich@intel.com>
1853
1854         PR target/64055
1855         * tree-chkp.c (chkp_find_bound_slots_1): Allow non constant
1856         values in array domain.
1857
1858 2014-12-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
1859
1860         PR tree-optimization/63941
1861         * tree-if-conv.c (add_to_predicate_list): Delete wrong assertion that
1862         DOM_BB has non-true predicate, conditionally set non-true predicate
1863         for BB.
1864
1865 2014-12-01  Martin Jambor  <mjambor@suse.cz>
1866
1867         PR ipa/63551
1868         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Convert
1869         value of the argument to the type of the value in the condition.
1870
1871 2014-12-01  Oleg Endo  <olegendo@gcc.gnu.org>
1872
1873         PR target/63986
1874         PR target/51244
1875         * config/sh/sh.c (sh_unspec_insn_p,
1876         sh_insn_operands_modified_between_p): New functions.
1877         (sh_split_movrt_negc_to_movt_xor): Do not delete insn if its operands
1878         are modified or if it has side effects, may trap or is volatile.
1879
1880 2014-11-29  Jakub Jelinek  <jakub@redhat.com>
1881
1882         * gimple-expr.h (create_tmp_var_raw, create_tmp_var,
1883         create_tmp_reg): Add default NULL value to last argument.
1884         * tree-ssanames.h (make_ssa_name, copy_ssa_name): Likewise.
1885         * gimple-low.c (lower_builtin_posix_memalign): Remove NULL
1886         last argument from create_tmp_var_raw, create_tmp_var,
1887         create_tmp_reg, make_ssa_name and copy_ssa_name calls.
1888         * tree-ssa-strlen.c (get_string_length): Likewise.
1889         * tree-emutls.c (gen_emutls_addr, lower_emutls_1): Likewise.
1890         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
1891         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
1892         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
1893         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
1894         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
1895         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
1896         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
1897         * tsan.c (instrument_expr, instrument_builtin_call,
1898         instrument_func_entry): Likewise.
1899         * varpool.c (add_new_static_var): Likewise.
1900         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
1901         * gimplify.c (internal_get_tmp_var, gimplify_return_expr,
1902         gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
1903         gimplify_init_ctor_eval_range, gimplify_init_constructor,
1904         gimplify_omp_atomic, gimplify_expr): Likewise.
1905         * gimple-builder.c (build_assign, build_type_cast): Likewise.
1906         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1,
1907         slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge,
1908         vect_loop_versioning): Likewise.
1909         * tree-if-conv.c (version_loop_for_if_conversion): Likewise.
1910         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
1911         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
1912         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
1913         vect_recog_over_widening_pattern): Likewise.
1914         * tree-sra.c (build_ref_for_offset, create_access_replacement):
1915         Likewise.
1916         * tree-cfg.c (make_blocks): Likewise.
1917         * tree-eh.c (lower_eh_constructs_2, lower_resx, lower_eh_dispatch):
1918         Likewise.
1919         * tree-ssa-propagate.c (update_call_from_tree): Likewise.
1920         * tree-complex.c (get_component_ssa_name, expand_complex_div_wide):
1921         Likewise.
1922         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
1923         * tree-tailcall.c (update_accumulator_with_ops): Likewise.
1924         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm,
1925         execute_load_motion, reassociate_to_the_same_stmt): Likewise.
1926         * tree-ssa-reassoc.c (build_and_add_sum,
1927         optimize_range_tests_to_bit_test, update_ops,
1928         maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
1929         negate_value, repropagate_negates): Likewise.
1930         * tree-vect-loop.c (vect_is_simple_reduction_1,
1931         vect_create_epilog_for_reduction): Likewise.
1932         * ipa-split.c (split_function): Likewise.
1933         * tree-inline.c (remap_ssa_name, setup_one_parameter,
1934         declare_return_variable, tree_function_versioning): Likewise.
1935         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
1936         * cfgexpand.c (update_alias_info_with_stack_vars, expand_used_vars):
1937         Likewise.
1938         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
1939         neg_replacement): Likewise.
1940         * gimplify-me.c (force_gimple_operand_1, gimple_regimplify_operands):
1941         Likewise.
1942         * tree-vrp.c (simplify_truth_ops_using_ranges,
1943         simplify_float_conversion_using_ranges,
1944         simplify_internal_call_using_ranges): Likewise.
1945         * tree-switch-conversion.c (emit_case_bit_tests,
1946         build_one_array, build_arrays, gen_def_assigns): Likewise.
1947         * gimple-fold.c (gimple_fold_builtin_memory_op,
1948         gimple_fold_builtin_strcat, gimple_fold_call, gimple_build): Likewise.
1949         * tree-vect-generic.c (expand_vector_divmod,
1950         optimize_vector_constructor): Likewise.
1951         * ubsan.c (ubsan_encode_value, ubsan_expand_null_ifn,
1952         ubsan_expand_objsize_ifn, instrument_si_overflow,
1953         instrument_bool_enum_load, instrument_nonnull_arg): Likewise.
1954         * tree-outof-ssa.c (insert_backedge_copies): Likewise.
1955         * tree-ssa-loop-manip.c (create_iv,
1956         tree_transform_and_unroll_loop): Likewise.
1957         * omp-low.c (scan_omp_parallel, lower_rec_simd_input_clauses,
1958         lower_rec_input_clauses, lower_lastprivate_clauses,
1959         expand_parallel_call, expand_omp_for_static_chunk,
1960         expand_omp_atomic_pipeline, expand_omp_target,
1961         maybe_add_implicit_barrier_cancel, lower_omp_single_simple,
1962         lower_omp_critical, lower_omp_for, task_copyfn_copy_decl,
1963         lower_depend_clauses, lower_omp_target, lower_omp_1,
1964         ipa_simd_modify_stmt_ops, simd_clone_adjust): Likewise.
1965         * tree-parloops.c (take_address_of, create_phi_for_local_result,
1966         create_call_for_reduction_1, separate_decls_in_region,
1967         create_parallel_loop): Likewise.
1968         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_dependence,
1969         handle_scalar_deps_crossing_scop_limits): Likewise.
1970         * trans-mem.c (lower_transaction, build_tm_load, build_tm_store,
1971         expand_assign_tm, expand_call_tm, expand_transaction,
1972         ipa_tm_insert_gettmclone_call): Likewise.
1973         * tree-vect-data-refs.c (bump_vector_ptr, vect_setup_realignment):
1974         Likewise.
1975         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
1976         vectorizable_call, vectorizable_simd_clone_call,
1977         vectorizable_conversion, vectorizable_store, permute_vec_elements,
1978         vectorizable_load): Likewise.
1979
1980 2014-11-29  Tobias Burnus  <burnus@net-b.de>
1981             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1982
1983         * opt-functions.awk (lang_enabled_by): Support || for
1984         enabled-by.
1985         * optc-gen.awk: Ditto.
1986         * doc/options.texi (LangEnabledBy, EnabledBy): Document the
1987         || syntax.
1988
1989 2014-11-28  Mike Stump  <mikestump@comcast.net>
1990
1991         * bitmap.c (bitmap_ior): Zap current as it could be deleted.
1992         (bitmap_ior_and_compl): Likewise.
1993
1994 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
1995
1996         PR target/64061
1997         * lra.c (lra_substitute_pseudo): Ignore constant with int mode for
1998         subreg.
1999
2000 2014-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
2001
2002         PR target/64093
2003         * config/rs6000/rs6000.md (and<mode>3): Don't generate
2004         and<mode>3_imm unless rs6000_gen_cell_microcode is true.
2005
2006 2014-11-28  Vladimir Makarov  <vmakarov@redhat.com>
2007
2008         PR rtl-optimization/64087
2009         * lra-lives.c (process_bb_lives): Add debug output.
2010         (lra_create_live_ranges): Don't remove dead insn on the second
2011         call of lra_create_live_ranges_1.
2012
2013 2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>
2014
2015         PR rtl-optimization/64037
2016         * combine.c (setup_incoming_promotions): Pass the argument
2017         before any promotions happen to promote_function_mode.
2018
2019 2014-11-28  Evgeny Stupachenko  <evstupac@gmail.com>
2020
2021         * tree-vect-data-refs.c (vect_transform_grouped_load): Limit shift
2022         permutations to loads group of size 3.
2023
2024 2014-11-28  Jiong Wang  <jiong.wang@arm.com>
2025
2026         * config/arm/arm.md (copysignsf3): New pattern.
2027         (copysigndf3): Likewise.
2028
2029 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
2030             Ilya Verbin  <ilya.verbin@intel.com>
2031
2032         * omp-low.c (lower_omp_critical): Mark critical sections
2033         inside target functions as offloadable.
2034
2035 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2036
2037         * lto-wrapper.c (run_gcc): Set have_lto and have_offload if at least one
2038         file contains sections with LTO and offload IR, respectively.
2039
2040 2014-11-28  Ilya Verbin  <ilya.verbin@intel.com>
2041
2042         * cgraphunit.c (ipa_passes): Handle flag_generate_offload.
2043         (symbol_table::compile): Set flag_generate_offload if there is something
2044         to offload.
2045         * common.opt (flag_generate_offload): New Variable declaration.
2046         * dwarf2out.c (dwarf2out_finish): Handle flag_generate_offload.
2047         * ipa-inline-analysis.c (inline_generate_summary): Do not skip if
2048         flag_generate_offload is set.
2049         * lto-streamer.c (gate_lto_out): Handle flag_generate_offload.
2050         * passes.c (ipa_write_summaries): Do not skip if flag_generate_offload
2051         is set.
2052         * toplev.c (compile_file): Emit LTO marker if offload info has been
2053         previously emitted.  Do not emit lto_slim marker if
2054         flag_generate_offload is without flag_generate_lto.
2055         * tree.c (free_lang_data): Do not skip if flag_generate_offload is set.
2056
2057 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2058
2059         * config/arm/arm-cores.def (cortex-a17.cortex-a7): New entry.
2060         * config/arm/arm-tables.opt: Regenerate.
2061         * config/arm/arm-tune.md: Regenerate.
2062         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a17.cortex-a7.
2063         * config/arm/t-aprofile: Add cortex-a17.cortex-a7 entry to
2064         MULTILIB_MATCHES.
2065
2066 2014-11-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2067
2068         * config/arm/arm.md (generic_sched): Specify cortexa17 in 'no' list.
2069         Include cortex-a17.md.
2070         * config/arm/arm.c (arm_issue_rate): Specify 2 for cortexa17.
2071         * config/arm/arm-cores.def (cortex-a17): New entry.
2072         * config/arm/arm-tables.opt: Regenerate.
2073         * config/arm/arm-tune.md: Regenerate.
2074         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=cortex-a17.
2075         * config/arm/cortex-a17.md: New file.
2076         * config/arm/cortex-a17-neon.md: New file.
2077         * config/arm/driver-arm.c (arm_cpu_table): Add entry for cortex-a17.
2078         * config/arm/t-aprofile: Add cortex-a17 entries to MULTILIB_MATCHES.
2079
2080 2014-11-28  Richard Biener  <rguenther@suse.de>
2081
2082         PR middle-end/64084
2083         * genmatch.c (dt_node::gen_kids_1): New function, split out
2084         from dt_node::gen_kids.
2085         (decision_tree::cmp_node): DT_TRUE are generally not equal.
2086         (decision_tree::find_node): Treat DT_TRUE as barrier for
2087         node CSE on the same level.
2088         (dt_node::append_node): Do not keep DT_TRUE last.
2089         (dt_node::gen_kids): Emit code after each DT_TRUE node seen.
2090
2091 2014-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2092
2093         * config/arm/t-aprofile (MULTILIB_MATCHES): New entry for
2094         -march=armv8-a+crc.
2095
2096 2014-11-27  Uros Bizjak  <ubizjak@gmail.com>
2097
2098         * config/i386/i386.md (preferred_for_size): New attribute
2099         (*pushxf): Split Yx*r constraints to r,*r.  Use preferred_for_size
2100         attribute to conditionally disable alternative 1.
2101         (*pushdf): Split Yd*r constraints to r,*r.  Use preferred_for_size
2102         and prefered_for_speed attributes to conditionally disable
2103         alternative 1.
2104         (*movxf_internal): Split Yx*r constraints to r,*r.  Use
2105         preferred_for_size attribute to conditionally disable
2106         alternatives 3 and 4.
2107         (*movdf_internal): Split Yd*r constraints to r,*r.  Use
2108         preferred_for_size and prefered_for_speed attributes to conditionally
2109         disable alternatives 3 and 4.
2110         * config/i386/constraints.md (Yd, Yx): Remove register constraints.
2111
2112 2014-11-27  Eric Botcazou  <ebotcazou@adacore.com>
2113
2114         * dwarf2out.c (set_block_origin_self): Skip nested functions.
2115
2116 2014-11-27  H.J. Lu  <hongjiu.lu@intel.com>
2117
2118         PR target/63833
2119         * config/i386/i386.h (REAL_PIC_OFFSET_TABLE_REGNUM): Use
2120         R15_REG for 64-bit.
2121         * config/i386/rdos64.h (REAL_PIC_OFFSET_TABLE_REGNUM): Removed.
2122
2123 2014-11-27  Martin Liska  <mliska@suse.cz>
2124             David Malcolm  <dmalcolm@redhat.com>
2125
2126         * ipa-icf.c (sem_function::equals_private): int* is replaced with
2127         auto_vec.
2128         (sem_function::bb_dict_test): Likewise.
2129         * ipa-icf.h: Likewise.
2130
2131 2014-11-27  Richard Biener  <rguenther@suse.de>
2132
2133         PR middle-end/64088
2134         * fold-const.c (const_unop): Re-instantiate missing condition
2135         before calling fold_abs_const.
2136
2137         PR tree-optimization/64088
2138         * tree-ssa-tail-merge.c (update_debug_stmt): After resetting
2139         the stmt break from the loop over use operands.
2140
2141 2014-11-27  Ilya Tocar  <ilya.tocar@intel.com>
2142
2143         * config/i386/cpuid.h (bit_MPX, bit_BNDREGS, bit_BNDCSR):
2144         Define.
2145         * config/i386/i386.c (get_builtin_code_for_version): Add avx512f.
2146         (fold_builtin_cpu): Ditto.
2147         * doc/extend.texi: Documment it.
2148
2149 2014-11-27  Jakub Jelinek  <jakub@redhat.com>
2150
2151         PR middle-end/64067
2152         * expr.c (expand_expr_addr_expr_1) <case COMPOUND_LITERAL_EXPR>:
2153         Handle it by returning address of COMPOUND_LITERAL_EXPR_DECL
2154         not only if modifier is EXPAND_INITIALIZER, but whenever
2155         COMPOUND_LITERAL_EXPR_DECL is non-NULL and TREE_STATIC.
2156
2157         PR tree-optimization/64024
2158         * tree-vectorizer.h (struct _stmt_vec_info): Remove simd_clone_fndecl
2159         field.  Add simd_clone_info field.
2160         (STMT_VINFO_SIMD_CLONE_FNDECL): Remove.
2161         (STMT_VINFO_SIMD_CLONE_INFO): Define.
2162         * tree-vect-stmts.c (vectorizable_simd_clone_call): Adjust for
2163         STMT_VINFO_SIMD_CLONE_FNDECL becoming first element of
2164         STMT_VINFO_SIMD_CLONE_INFO vector.  For linear arguments, remember
2165         base and linear_step from analysis phase and use it during transform
2166         phase, biased by the difference between LOOP_VINFO_NITERS{_UNCHANGED,}
2167         multiplied by linear_step.
2168         (free_stmt_vec_info): Release STMT_VINFO_SIMD_CLONE_INFO.
2169
2170         PR lto/64025
2171         * alias.c (find_base_term): Use std::swap.  Prefer tmp2
2172         if it is CONSTANT_P other than CONST_INT.
2173
2174 2014-11-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2175
2176         PR target/59593
2177         * config/arm/arm.c (dump_minipool): dispatch to consttable pattern
2178         based on mode size.
2179         * config/arm/arm.md (consttable_1): Move from config/arm/thumb1.md and
2180         make it TARGET_EITHER.
2181         (consttable_2): Move from config/arm/thumb1.md, make it TARGET_EITHER
2182         and move HFmode handling from consttable_4 to it.
2183         (consttable_4): Move HFmode handling to consttable_2 pattern.
2184         * config/arm/thumb1.md (consttable_1): Move to config/arm/arm.md.
2185         (consttable_2): Ditto.
2186
2187 2014-11-27  Richard Biener  <rguenther@suse.de>
2188
2189         * tree-ssa-sccvn.c (try_to_simplify): Allow
2190         gimple_fold_stmt_to_constant_1 to follow SSA edges.
2191
2192 2014-11-27  Richard Biener  <rguenther@suse.de>
2193
2194         PR tree-optimization/64083
2195         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2196         forcibly mark loop for removal the wrong way.
2197
2198 2014-11-27  Richard Biener  <rguenther@suse.de>
2199
2200         PR middle-end/63704
2201         * alias.c (mems_in_disjoint_alias_sets_p): Remove assert
2202         and instead return false when !fstrict-aliasing.
2203
2204 2014-11-27  Richard Biener  <rguenther@suse.de>
2205
2206         PR tree-optimization/61634
2207         * tree-vect-slp.c: Include gimple-walk.h.
2208         (vect_detect_hybrid_slp_stmts): Rewrite to propagate hybrid
2209         down the SLP tree for one scalar statement.
2210         (vect_detect_hybrid_slp_1): New walker function.
2211         (vect_detect_hybrid_slp_2): Likewise.
2212         (vect_detect_hybrid_slp): Properly handle pattern statements
2213         in a pre-scan over all loop stmts.
2214
2215 2014-11-27  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2216
2217         Revert:
2218         2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
2219         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
2220         aarch64_convert_mode, aarch64_gen_ccmp_first,
2221         aarch64_gen_ccmp_next): New functions.
2222         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
2223
2224 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
2225
2226         * gcc.c (SANITIZER_SPEC): Don't error on -fsanitize=thread
2227         without -pie or -shared, error on -fsanitize=thread -static instead.
2228
2229 2014-11-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2230
2231         PR ipa/61190
2232         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Fix comment.
2233         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2234         (cgraph_node::call_for_symbol_and_aliases): Fix comment.
2235         (cgraph_node::call_for_symbol_thunks_and_aliases): Adjust comment.
2236         Add new optional parameter exclude_virtual_thunks.
2237         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Add new
2238         optional parameter exclude_virtual_thunks.
2239         (cgraph_node::set_const_flag): Don't propagate to virtual thunks.
2240         (cgraph_node::set_pure_flag): Likewise.
2241         (cgraph_node::function_symbol): Simplified.
2242         (cgraph_node::function_or_virtual_thunk_symbol): New function.
2243         * ipa-pure-const.c (analyze_function): For virtual thunks set
2244         pure_const_state to IPA_NEITHER.
2245         (propagate_pure_const): Use function_or_virtual_thunk_symbol.
2246
2247 2014-11-26  Richard Biener  <rguenther@suse.de>
2248
2249         PR middle-end/63738
2250         * tree-data-ref.c (split_constant_offset_1): Do not follow
2251         SSA edges for SSA names with SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
2252
2253 2014-11-26  Richard Biener  <rguenther@suse.de>
2254
2255         * fold-const.h (const_unop): Declare.
2256         (const_binop): Likewise.
2257         * fold-const.c (const_binop): Export overload that expects
2258         a type parameter and dispatches to fold_relational_const as well.
2259         Check both operand kinds for guarding the transforms.
2260         (const_unop): New function, with constant folding from fold_unary_loc.
2261         (fold_unary_loc): Dispatch to const_unop for tcc_constant operand.
2262         Remove constant folding done there from the simplifications.
2263         (fold_binary_loc): Check for constants using CONSTANT_CLASS_P.
2264         (fold_negate_expr): Remove dead code from the REAL_CST case.
2265         Avoid building garbage in the COMPLEX_CST case.
2266         * gimple-match-head.c (gimple_resimplify1): Dispatch to
2267         const_unop.
2268         (gimple_resimplify2): Dispatch to const_binop.
2269         (gimple_simplify): Likewise.
2270
2271 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2272
2273         PR bootstrap/63995
2274         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Ignore
2275         debug statement when searching for a new position for
2276         bounds load/creation statement.
2277
2278 2014-11-26  Marek Polacek  <polacek@redhat.com>
2279
2280         PR sanitizer/63788
2281         * asan.c (initialize_sanitizer_builtins): Add BT_FN_SIZE_CONST_PTR_INT
2282         var.  Conditionally build BUILT_IN_OBJECT_SIZE decl.
2283         (ATTR_PURE_NOTHROW_LEAF_LIST): Define.
2284
2285 2014-11-26  Ilya Enkovich  <ilya.enkovich@intel.com>
2286
2287         PR lto/64075
2288         * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Use
2289         proper size for function_code bitfield.
2290         (pack_ts_function_decl_value_fields): Likewise.
2291
2292 2014-11-21  Mark Wielaard  <mjw@redhat.com>
2293
2294         * doc/invoke.texi (-gdwarf-@{version}): Mention experimental DWARFv5.
2295         * opts.c (common_handle_option): Accept -gdwarf-5.
2296         * dwarf2out.c (is_cxx): Add DW_LANG_C_plus_plus_11 and
2297         DW_LANG_C_plus_plus_14.
2298         (lower_bound_default): Likewise. Plus DW_LANG_C11.
2299         (gen_compile_unit_die): Output DW_LANG_C_plus_plus_11,
2300         DW_LANG_C_plus_plus_14 or DW_LANG_C11.
2301         (output_compilation_unit_header): Output at most a DWARFv4 header.
2302         (output_skeleton_debug_sections): Likewise.
2303         (output_line_info): Likewise.
2304         (output_aranges): Document header version number.
2305
2306 2014-11-26  Richard Biener  <rguenther@suse.de>
2307
2308         * gimple-fold.c (get_symbol_constant_value): Allow all
2309         GIMPLE register type zero-constants.
2310
2311 2014-11-26  Mark Wielaard  <mjw@redhat.com>
2312
2313         * dwarf2out.c (gen_subprogram_die): Add DW_AT_noreturn when the
2314         function decl has TREE_THIS_VOLATILE.
2315
2316 2014-11-26  Richard Biener  <rguenther@suse.de>
2317
2318         PR tree-optimization/62238
2319         * tree-predcom.c (ref_at_iteration): Unshare the expression
2320         before gimplifying it.
2321         (prepare_initializers_chain): Discard unused seq.
2322
2323 2014-11-26  Prachi Godbole  <prachi.godbole@imgtec.com>
2324
2325         * config/mips/mips.c (mips_rtx_cost_data): Fix memory_latency cost
2326         for p5600.
2327
2328 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2329
2330         * ira-lives.c (process_bb_node_lives): Make code with conditional
2331         REAL_PIC_OFFSET_TABLE_REGNUM.
2332
2333 2014-11-25  Vladimir Makarov  <vmakarov@redhat.com>
2334
2335         PR target/63527
2336         * ira-lives.c (process_bb_node_lives): Check and remove conflict
2337         of pic pseudo with pic hard reg.
2338
2339 2014-11-25  Rohit  <rohitarulraj@freescale.com>
2340
2341         PR bootstrap/63703
2342         * config/rs6000/darwin.h (REGISTER_NAMES): Update based on 32 newly
2343         added GCC hard register numbers for SPE high registers.
2344
2345 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2346
2347         * bt-load.c (migrate_btr_defs): Get the key of a heap entry
2348         before removing it, not after.
2349
2350 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2351
2352         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Remove
2353         PATTERN call.
2354
2355 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2356
2357         * config/rs6000/sysv4.h (ASM_OUTPUT_REG_POP): Use addi instead
2358         of addic.
2359
2360 2014-11-25  Segher Boessenkool  <segher@kernel.crashing.org>
2361
2362         * config/rs6000/rs6000.md (iorxor, IORXOR): Delete code_attrs.
2363         (rest of file): Replace those with code resp. CODE.
2364
2365 2014-11-25  Tom de Vries  <tom@codesourcery.com>
2366
2367         * tree-cfg.c (verify_sese): New function.
2368         (move_sese_region_to_fn): Call verify_sese.
2369         * tree-cfg.h (verify_sese): Declare.
2370
2371 2014-11-25  Richard Biener  <rguenther@suse.de>
2372
2373         PR lto/64065
2374         * lto-streamer-out.c (output_struct_function_base): Stream
2375         last_clique field.
2376         * lto-streamer-in.c (input_struct_function_base): Likewise.
2377
2378 2014-11-25  Martin Liska  <mliska@suse.cz>
2379
2380         PR bootstrap/64050
2381         PR ipa/64060
2382         * sreal.c (sreal::operator+): Addition fixed.
2383         (sreal::signedless_plus): Negative numbers are
2384         handled correctly.
2385         (sreal::operator-): Subtraction is fixed.
2386         (sreal::signedless_minus): Negative numbers are
2387         handled correctly.
2388         * sreal.h (sreal::operator<): Equal negative numbers
2389         are compared correctly.
2390         (sreal::shift): New checking asserts are introduced.
2391         Operation is fixed.
2392
2393 2014-11-25  Richard Biener  <rguenther@suse.de>
2394
2395         PR tree-optimization/61927
2396         * tree-vect-loop.c (vect_analyze_loop_2): Revert ordering
2397         of group and pattern analysis to the one in GCC 4.8.
2398
2399 2014-11-25  Ilya Tocar  <ilya.tocar@intel.com>
2400             Jakub Jelinek  <jakub@redhat.com>
2401
2402         * gcc.c (handle_foffload_option): Remove unnecessary calls to strchr,
2403         strlen, strncpy.
2404         * lto-wrapper.c (append_offload_options): Likewise.
2405
2406 2014-11-25  Eric Botcazou  <ebotcazou@adacore.com>
2407
2408         * config/rs6000/rs6000.c (rs6000_call_aix): For the AIX ABI, do not
2409         load the static chain if the call was originally direct.
2410
2411 2014-11-25  Jan Hubicka  <hubicka@ucw.cz>
2412
2413         PR ipa/64059
2414         * ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
2415         devirtualization is disabled.
2416
2417 2014-11-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
2418
2419         PR target/63965
2420         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2421         Altivec & -16 mask if the type is not valid for Altivec registers.
2422         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2423         reg) that occurs during push_reload processing.
2424
2425         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2426         alternative for moving constant vectors which are easy altivec
2427         constants to GPRs.  Set the length attribute each of the
2428         alternatives.
2429
2430         * config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
2431         work in progress patch was committed instead of the fixes for
2432         63965.
2433         * config/rs6000/rs6000.c: Likewise.
2434
2435 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2436
2437         PR ipa/63671
2438         * ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
2439         and -fno-devirtualize more carefully.
2440         (can_remove_node_now_p): Update.
2441
2442 2014-11-24  Andrew Pinski  <apinski@cavium.com>
2443
2444         PR rtl-opt/63972
2445         * shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
2446
2447 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2448
2449         * config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
2450
2451 2014-11-24  Alan Lawrence  <alan.lawrence@arm.com>
2452
2453         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
2454         Refactor by combining switch statements and make arrays into scalars.
2455
2456 2014-11-24  David Edelsohn  <dje.gcc@gmail.com>
2457
2458         PR c++/58561
2459         * dbxout.c: Include stringpool.h
2460         (dbxout_type) [default]: Ignore auto type.
2461
2462 2014-11-24  Richard Biener  <rguenther@suse.de>
2463
2464         PR tree-optimization/63679
2465         * tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
2466         (copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
2467         to properly leave off at -1.
2468         (fully_constant_vn_reference_p): Generalize folding from
2469         constant initializers.
2470         (vn_reference_lookup_3): When looking through aggregate copies
2471         handle offsetted reads and try simplifying the result to
2472         a constant.
2473         * gimple-fold.h (fold_ctor_reference): Export.
2474         * gimple-fold.c (fold_ctor_reference): Likewise.
2475
2476 2014-11-24  Petr Murzin  <petr.murzin@intel.com>
2477
2478         * simplify-rtx.c (simplify_ternary_operation): Simplify
2479         vec_merge (vec_duplicate (vec_select)).
2480
2481 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2482
2483         * config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
2484         (cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
2485         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
2486
2487 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2488
2489         * config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
2490         (cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
2491         (cortexa57_tunings): Likewise.
2492         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
2493
2494 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2495
2496         * sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
2497         in the not conditional jump case.
2498         * doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2499         * target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
2500
2501 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2502
2503         * config/aarch64/aarch64.c: Include tm-constrs.h
2504         (AARCH64_FUSE_ADRP_ADD): Define.
2505         (cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
2506         (cortexa53_tunings): Likewise.
2507         (aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
2508
2509 2014-11-24  Martin Liska  <mliska@suse.cz>
2510
2511         * ipa-inline.c (edge_badness): long is replaced by sreal
2512         as fibonacci_heap template type.
2513         (update_edge_key): Likewise.
2514         (inline_small_functions): Likewise.
2515
2516 2014-11-24  Martin Liska  <mliska@suse.cz>
2517
2518         * predict.c (propagate_freq): More elegant sreal API is used.
2519         (estimate_bb_frequencies): Precomputed constants replaced by integer
2520         constants.
2521         * sreal.c (sreal::normalize): New function.
2522         (sreal::to_int): Likewise.
2523         (sreal::operator+): Likewise.
2524         (sreal::operator-): Likewise.
2525         (sreal::signedless_plus): Likewise.
2526         (sreal::signedless_minus): Likewise.
2527         (sreal::operator/): Negative number support is added.
2528         * sreal.h: Definition of new functions added.
2529         (inline sreal operator<<): New function.
2530         (inline sreal operator>>): Likewise.
2531
2532 2014-11-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2533
2534         * config/aarch64/aarch64-protos.h (struct tune_params): Add
2535         fuseable_ops field.
2536         * config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
2537         (cortexa53_tunings): Likewise.
2538         (cortexa57_tunings): Likewise.
2539         (thunderx_tunings): Likewise.
2540         (aarch64_macro_fusion_p): New function.
2541         (aarch_macro_fusion_pair_p): Likewise.
2542         (TARGET_SCHED_MACRO_FUSION_P): Define.
2543         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
2544         (AARCH64_FUSE_MOV_MOVK): Likewise.
2545         (AARCH64_FUSE_NOTHING): Likewise.
2546
2547 2014-11-24  Martin Liska  <mliska@suse.cz>
2548
2549         PR lto/63968
2550         * bb-reorder.c (find_traces_1_round): decreate_key is replaced
2551         with replace_key method.
2552         * fibonacci_heap.h (fibonacci_heap::insert): New argument.
2553         (fibonacci_heap::replace_key_data): Likewise.
2554         (fibonacci_heap::replace_key): New method that can even increment key,
2555         this operation costs O(log N).
2556         (fibonacci_heap::extract_min): New argument.
2557         (fibonacci_heap::delete_node): Likewise.
2558
2559 2014-11-24  Richard Biener  <rguenther@suse.de>
2560
2561         PR tree-optimization/55334
2562         * function.h (struct function): Add last_clique member.
2563         * tree-inline.c (remap_dependence_clique): New function.
2564         (remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
2565         (copy_tree_body_r): Likewise.
2566         (copy_cfg_body): Free dependence map.
2567         (copy_gimple_seq_and_replace_locals): Likewise.
2568         * tree-pretty-print.c (dump_generic_node): Dump
2569         dependence info.
2570         * tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
2571         to answer alias query.
2572         * tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
2573         tree-pretty-print.h and gimple-walk.h.
2574         (struct variable_info): Add is_restrict_var flag and ruid
2575         member.
2576         (new_var_info): Initialize is_restrict_var.
2577         (make_constraint_from_restrict): Likewise.
2578         (create_variable_info_for): Exclude restricts from global vars
2579         from new handling.
2580         (intra_create_variable_infos): But not those from parameters.
2581         (visit_loadstore): New function.
2582         (maybe_set_dependence_info): Likewise.
2583         (compute_dependence_clique): Likewise.
2584         (compute_may_aliases): Call compute_dependence_clique.
2585         * tree-data-ref.c (dr_analyze_indices): Copy dependence info
2586         to fake MEM_REF.
2587         (dr_may_alias_p): Use recorded dependence info to answer
2588         alias query.
2589         * tree-core.h (struct tree_base): Add clique, base struct in
2590         union.
2591         * tree.h (MR_DEPENDENCE_CLIQUE): New macro.
2592         (MR_DEPENDENCE_BASE): Likewise.
2593         * tree-inline.h (dependence_hasher): New hash-map kind.
2594         (struct copy_body_data): Add dependence_map pointer.
2595         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
2596         throwing away dependence info.
2597         * tree-streamer-in.c (unpack_value_fields): Stream dependence info.
2598         * tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
2599
2600 2014-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
2601
2602         PR target/53976
2603         * config/sh/sh_optimize_sett_clrt.cc
2604         (sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
2605         of void.  Abort at complex edges.
2606         (sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
2607         returned false.
2608
2609 2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
2610
2611         PR other/63694
2612         * configure.ac: Check for strtol, strtoul, strtoll and strtoull
2613         declarations.
2614         * configure: Regenerated.
2615         * config.in: Regenerated.
2616
2617 2014-11-22  Jan Hubicka  <hubicka@ucw.cz>
2618
2619         * ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline
2620         clones as having abstract origin used.
2621         * ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract
2622         origin check.
2623         (clone_inlined_nodes): Copy abstract originflag.
2624         * lto-cgraph.c (compute_ltrans_boundary): Use get_create to get
2625         abstract origin node.
2626
2627 2014-11-22  Uros Bizjak  <ubizjak@gmail.com>
2628
2629         * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
2630         * config/i386/i386.c (ix86_option_override_internal): Do not increase
2631         PARAM_MAX_COMPLETELY_PEELED_INSNS.
2632
2633 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2634
2635         PR target/63783
2636         PR target/51244
2637         * config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
2638         Do not emit bitwise not insn.  Emit logical not insn sequence instead.
2639         Adjust related comments throughout the file.
2640
2641 2014-11-22  Oleg Endo  <olegendo@gcc.gnu.org>
2642
2643         PR target/63986
2644         PR target/51244
2645         * config/sh/sh.c (sh_is_logical_t_store_expr,
2646         sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
2647         (sh_split_movrt_negc_to_movt_xor): New function.
2648         (sh_find_set_of_reg): Move to ...
2649         * config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
2650         to template function.
2651         (set_of_reg): Use rtx_insn* for insn member.
2652         (sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
2653         rtx_insn* for insn argument.
2654         * config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
2655         sequence using new sh_split_movrt_negc_to_movt_xor function.
2656         (movrt_xor): Allow also for SH2A.
2657         (*movt_movrt): Delete insns and splits.
2658
2659 2014-11-22  Marc Glisse  <marc.glisse@inria.fr>
2660
2661         PR tree-optimization/60770
2662         * tree-sra.c (clobber_subtree): New function.
2663         (sra_modify_constructor_assign): Call it.
2664
2665 2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>
2666
2667         PR target/63897
2668         * lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
2669         argument.
2670         (process_bb_lives): Rename dead_insn_p on remove_p
2671         and global_live_info_p on dead_insn_p.  Calculate local live info
2672         unconditionally.  Remove last argument in calls mark_regno_live and
2673         mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
2674         (lra_create_live_ranges): Rename to lra_create_live_ranges_1.
2675         Return bool.  Rename global_live_info_p on dead_insn_p.  Return
2676         flag of live info change.
2677         (lra_create_live_ranges): New.
2678
2679 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2680
2681         PR target/63848
2682         PR target/63975
2683         * internal-fn.c (expand_arith_overflow_result_store,
2684         expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
2685         do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
2686         adjust arguments to those functions.  Use unsignedp = true for
2687         EQ, NE, GEU, LEU, LTU and GTU comparisons.
2688
2689         PR tree-optimization/64006
2690         * tree-vrp.c (stmt_interesting_for_vrp): Return true
2691         for {ADD,SUB,MUL}_OVERFLOW internal calls.
2692         (vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
2693         internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
2694         immediate uses would change their value ranges and return
2695         SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
2696         if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
2697         interesting for vrp.
2698
2699 2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
2700
2701         PR target/63965
2702         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
2703         Altivec & -16 mask if the type is not valid for Altivec registers.
2704         (rs6000_secondary_reload_memory): Add support for ((reg + const) +
2705         reg) that occurs during push_reload processing.
2706
2707         * config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
2708         alternative for moving constant vectors which are easy altivec
2709         constants to GPRs.  Set the length attribute each of the
2710         alternatives.
2711
2712 2014-11-21  Matthew Fortune  <matthew.fortune@imgtec.com>
2713
2714         * configure.ac: When checking for MIPS .module support ensure that
2715         o32 FPXX is supported to avoid a second configure check.
2716         * configure: Regenerate.
2717
2718 2014-11-21  Jiong Wang  <jiong.wang@arm.com>
2719
2720         * config/aarch64/iterators.md (VS): New mode iterator.
2721         (vsi2qi): New mode attribute.
2722         (VSI2QI): Likewise.
2723         * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
2724         * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
2725         * config/aarch64/aarch64-builtins.c
2726         (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
2727
2728 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
2729
2730         PR bootstrap/63784
2731         * configure: Regenerated.
2732
2733 2014-11-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2734
2735         * config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
2736
2737 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2738
2739         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
2740         OPTION_MASK_ISA_PCOMMIT_SET): New.
2741         (ix86_handle_option): Handle OPT_mpcommit.
2742         * config.gcc: Add pcommitintrin.h
2743         * config/i386/pcommitintrin.h: New file.
2744         * config/i386/cpuid.h (bit_PCOMMIT): Define.
2745         * config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
2746         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2747         __PCOMMIT__.
2748         * config/i386/i386.c (ix86_target_string): Add -mpcommit.
2749         (PTA_PCOMMIT): Define.
2750         (ix86_option_override_internal): Handle new option.
2751         (ix86_valid_target_attribute_inner_p): Add pcommit.
2752         (ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
2753         (bdesc_special_args): Add __builtin_ia32_pcommit.
2754         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
2755         * config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
2756         (pcommit): New instruction.
2757         * config/i386/i386.opt: Add mpcommit.
2758         * config/i386/x86intrin.h: Include pcommitintrin.h.
2759
2760 2014-11-20  Mark Wielaard  <mjw@redhat.com>
2761
2762         PR debug/38757
2763         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
2764         * config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
2765         (darwin_override_options): Likewise.
2766         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
2767         Likewise.
2768         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
2769         Likewise.
2770         * dbxout.c (get_lang_number): Likewise.
2771         (dbxout_type): Likewise.
2772         (dbxout_symbol_location): Likewise.
2773         * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
2774         also for DW_LANG_{C,C99,ObjC}.
2775         (highest_c_language): New function.
2776         (gen_compile_unit_die): Call highest_c_language to merge LTO
2777         TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
2778         determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
2779         * fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
2780         * langhooks.h (struct lang_hooks): Add version comment to name.
2781         (lang_GNU_C): New function declaration.
2782         (lang_GNU_CXX): Likewise.
2783         * langhooks.c (lang_GNU_C): New function.
2784         (lang_GNU_CXX): Likewise.
2785         * vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
2786
2787 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2788
2789         * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
2790         OPTION_MASK_ISA_CLWB_SET): New.
2791         (ix86_handle_option): Handle OPT_mclwb.
2792         * config.gcc: Add clwbintrin.h.
2793         * config/i386/clwbintrin.h: New file.
2794         * config/i386/cpuid.h (bit_CLWB): Define.
2795         * config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
2796         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2797         __CLWB__.
2798         * config/i386/i386.c (ix86_target_string): Add -mclwb.
2799         (PTA_CLWB): Define.
2800         (ix86_option_override_internal): Handle new option.
2801         (ix86_valid_target_attribute_inner_p): Add clwb.
2802         (ix86_builtins): Add IX86_BUILTIN_CLWB.
2803         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
2804         (ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
2805         * config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
2806         * config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
2807         (clwb): New instruction.
2808         * config/i386/i386.opt: Add mclwb.
2809         * config/i386/x86intrin.h: Include clwbintrin.h.
2810
2811 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2812
2813         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
2814         OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
2815         (ix86_handle_option): Handle OPT_mavx512vbmi.
2816         * config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
2817         * config/i386/avx512vbmiintrin.h: New file.
2818         * config/i386/avx512vbmivlintrin.h: Ditto.
2819         * config/i386/cpuid.h (bit_AVX512VBMI): New.
2820         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
2821         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2822         __AVX512VBMI__.
2823         * config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
2824         (PTA_AVX512VBMI): Define.
2825         (ix86_option_override_internal): Handle new options.
2826         (ix86_valid_target_attribute_inner_p): Add avx512vbmi,
2827         (ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
2828         IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
2829         IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
2830         IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
2831         IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
2832         IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
2833         IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
2834         IX86_BUILTIN_VPERMI2VARQI128.
2835         (bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
2836         __builtin_ia32_vpmultishiftqb256_mask,
2837         __builtin_ia32_vpmultishiftqb128_mask,
2838         __builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
2839         __builtin_ia32_vpermt2varqi512_maskz,
2840         __builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
2841         __builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
2842         __builtin_ia32_vpermt2varqi256_maskz,
2843         __builtin_ia32_vpermt2varqi128_mask,
2844         __builtin_ia32_vpermt2varqi128_maskz,
2845         __builtin_ia32_vpermi2varqi256_mask,
2846         __builtin_ia32_vpermi2varqi128_mask.
2847         (ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
2848         * config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
2849         * config/i386/i386.opt: Add mavx512vbmi.
2850         * config/i386/immintrin.h: Include avx512vbmiintrin.h,
2851         avx512vbmivlintrin.h.
2852         * config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
2853         (VI1_AVX512VL): New iterator.
2854         (<avx512>_permvar<mode><mask_name>): Use it.
2855         (<avx512>_vpermi2var<mode>3_maskz): Ditto.
2856         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
2857         (<avx512>_vpermi2var<mode>3_mask): Ditto.
2858         (<avx512>_vpermt2var<mode>3_maskz): Ditto.
2859         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
2860         (<avx512>_vpermt2var<mode>3_mask): Ditto.
2861         (vpmultishiftqb<mode><mask_name>): Ditto.
2862
2863 2014-11-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2864
2865         PR rtl-optimization/63952
2866         * optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
2867         * config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
2868         Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
2869
2870 2014-11-21  Ilya Tocar  <ilya.tocar@intel.com>
2871
2872         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
2873         OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
2874         (ix86_handle_option): Handle OPT_mavx512ifma.
2875         * config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
2876         * config/i386/avx512ifmaintrin.h: New file.
2877         * config/i386/avx512ifmaivlntrin.h: Ditto.
2878         * config/i386/cpuid.h (bit_AVX512IFMA): New.
2879         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2880         avx512ifma.
2881         * config/i386/i386-c.c (ix86_target_macros_internal): Define
2882         __AVX512IFMA__.
2883         * config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
2884         (PTA_AVX512IFMA): Define.
2885         (ix86_option_override_internal): Handle new options.
2886         (ix86_valid_target_attribute_inner_p): Add avx512ifma.
2887         (ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
2888         IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
2889         IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
2890         IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
2891         IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
2892         IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
2893         IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
2894         (bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
2895         __builtin_ia32_vpmadd52luq512_maskz,
2896         __builtin_ia32_vpmadd52huq512_mask,
2897         __builtin_ia32_vpmadd52huq512_maskx,
2898         __builtin_ia32_vpmadd52luq256_mask,
2899         __builtin_ia32_vpmadd52luq256_maskz,
2900         __builtin_ia32_vpmadd52huq256_mask,
2901         __builtin_ia32_vpmadd52huq256_maskz,
2902         __builtin_ia32_vpmadd52luq128_mask,
2903         __builtin_ia32_vpmadd52luq128_maskz,
2904         __builtin_ia32_vpmadd52huq128_mask,
2905         __builtin_ia32_vpmadd52huq128_maskz,
2906         * config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
2907         * config/i386/i386.opt: Add mavx512ifma.
2908         * config/i386/immintrin.h: Include avx512ifmaintrin.h,
2909         avx512ifmavlintrin.h.
2910         * config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
2911         UNSPEC_VPMADD52HUQ.
2912         (VPMADD52): New iterator.
2913         (vpmadd52type): New attribute.
2914         (vpamdd52huq<mode>_maskz): New.
2915         (vpamdd52luq<mode>_maskz): Ditto.
2916         (vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
2917         (vpamdd52<vpmadd52type><mode>_mask): Ditto.
2918
2919 2014-11-21  Alan Lawrence  <alan.lawrence@arm.com>
2920
2921         Revert:
2922         2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
2923         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
2924
2925 2014-11-21  Andrew Bennett  <andrew.bennett@imgtec.com>
2926
2927         * config/mips/mips.c (mips_process_sync_loop): Place a 
2928         nop in the delay slot of the branch likely instruction.
2929         (mips_output_sync_loop): Ensure mips_branch_likely is 
2930         set before calling mips_output_sync_loop.
2931         (mips_sync_loop_insns): Likewise.
2932
2933 2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2934
2935         PR/target 63673
2936         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
2937         the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
2938         double.
2939
2940 2014-11-21  Georg-Johann Lay  <avr@gjlay.de>
2941
2942         Forward-port from 2014-10-30 4_9-branch r216934
2943
2944         PR target/63633
2945         * config/avr/avr-protos.h (regmask): New inline function.
2946         (avr_fix_inputs, avr_emit3_fix_outputs): New protos.
2947         * config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
2948         (avr_fix_inputs, avr_emit3_fix_outputs): New functions.
2949         * config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
2950         (mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
2951         (<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
2952         * config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
2953         (<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
2954         (<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
2955         * config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
2956         (mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
2957         (usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
2958         (fmul, fmuls, fmulsu): Fix operands.  Turn insn into expander as
2959         needed.
2960
2961 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
2962
2963         PR target/61137
2964         * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
2965         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
2966
2967 2014-11-21  James Greenhalgh  <james.greenhalgh@arm.com>
2968
2969         * config/aarch64/aarch64-simd.md
2970         (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
2971         output mnemonic and operands.
2972         (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
2973         (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
2974
2975 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
2976
2977         * config/i386/i386.c (ix86_option_override_internal): Increase
2978         PARAM_MAX_COMPLETELY_PEELED_INSNS.
2979
2980 2014-11-21  Evgeny Stupachenko  <evstupac@gmail.com>
2981
2982         PR target/60451
2983         * config/i386/i386.c (expand_vec_perm_even_odd_pack): New.
2984         (expand_vec_perm_even_odd_1): Add new expand for V8HI mode,
2985         replace for V16QI, V16HI and V32QI modes.
2986         (ix86_expand_vec_perm_const_1): Add new expand.
2987
2988 2014-11-21  Nick Clifton  <nickc@redhat.com>
2989
2990         * config/rl78/rl78-real.md (movqi_from_es): New pattern.
2991         * config/rl78/rl78.c (struct machine_function): Add uses_es field.
2992         (rl78_expand_prologue): Save the ES register in interrupt handlers
2993         that use it.
2994         (rl78_expand_epilogue): Restore the ES register if necessary.
2995         (rl78_start_function): Mention if the function uses the ES
2996         register.
2997         (rl78_lo16): Record the use of the ES register.
2998         (transcode_memory_rtx): Likewise.
2999
3000 2014-11-21  Jakub Jelinek  <jakub@redhat.com>
3001
3002         PR tree-optimization/61773
3003         * tree-ssa-strlen.c (get_string_length): Don't assert
3004         stpcpy has been prototyped if si->stmt is BUILT_IN_MALLOC.
3005
3006         PR target/63910
3007         * simplify-rtx.c (simplify_immed_subreg): Return NULL for integer
3008         modes wider than MAX_BITSIZE_MODE_ANY_INT.  If not using
3009         CONST_WIDE_INT, make sure r fits into CONST_DOUBLE.
3010
3011 2014-11-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
3012
3013         * config/rs6000/rs6000.c (includes_rldic_lshift_p): Use
3014         HOST_WIDE_INT_M1U instead of ~0.
3015         (includes_rldicr_lshift_p): Likewise.
3016
3017 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3018
3019         * config/nds32/nds32.c (nds32_legitimate_address_p): For LO_SUM,
3020         we need to look into its operand to determine if it is a valid
3021         address.
3022
3023 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3024
3025         * config/nds32/nds32.c (nds32_emit_stack_push_multiple): Add new
3026         vaarg_p argument and create correct CFI info.
3027         (nds32_expand_prologue): Pass true or false to
3028         nds32_emit_stack_push_multiple function.
3029
3030 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3031
3032         * config/nds32/nds32.c (nds32_expand_prologue): Set fp_adjust_insn
3033         as RTX_FRAME_RELATED_P rtx.
3034
3035 2014-11-21  Chung-Ju Wu  <jasonwucj@gmail.com>
3036
3037         * config/nds32/nds32.opt (march): Add help message.
3038
3039 2014-11-20  Patrick Palka  <ppalka@gcc.gnu.org>
3040
3041         * tree-vrp.c (test_for_singularity): New parameter
3042         strict_overflow_p.  Set *strict_overflow_p to true if signed
3043         overflow must be undefined for the return value to satisfy the
3044         conditional.
3045         (simplify_cond_using_ranges): Don't perform the simplification
3046         if it violates overflow rules.
3047
3048 2014-11-20  Marek Polacek  <polacek@redhat.com>
3049
3050         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Fix typo.
3051
3052 2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
3053
3054         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
3055         condition would be removed due to undefined behaviour.
3056
3057 2014-11-20  Andrew Pinski  <apinski@cavium.com>
3058
3059         PR ipa/63981
3060         PR ipa/63982
3061         * ipa-polymorphic-call.c (possible_placement_new):
3062         Use POINTER_SIZE instead of GET_MODE_BITSIZE (Pmode).
3063         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
3064         (extr_type_from_vtbl_ptr_store): Likewise.
3065
3066 2014-11-20  Markus Trippelsdorf  <markus@trippelsdorf.de>
3067
3068         * config/rs6000/constraints.md: Avoid signed integer overflows.
3069         * config/rs6000/predicates.md: Likewise.
3070         * config/rs6000/rs6000.c (num_insns_constant_wide): Likewise.
3071         (includes_rldic_lshift_p): Likewise.
3072         (includes_rldicr_lshift_p): Likewise. 
3073         * emit-rtl.c (const_wide_int_htab_hash): Likewise.
3074         * loop-iv.c (determine_max_iter): Likewise.
3075         (iv_number_of_iterations): Likewise.
3076         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Likewise.
3077         * varasm.c (get_section_anchor): Likewise.
3078
3079 2014-11-20  Charles Baylis  <charles.baylis@linaro.org>
3080
3081         PR target/63870
3082         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Pass
3083         expression to aarch64_simd_lane_bounds.
3084         * config/aarch64/aarch64-protos.h (aarch64_simd_lane_bounds): Update
3085         prototype.
3086         * config/aarch64/aarch64-simd.md: (aarch64_combinez<mode>): Update
3087         call to aarch64_simd_lane_bounds.
3088         (aarch64_get_lanedi): Likewise.
3089         (aarch64_ld2_lane<mode>): Likewise.
3090         (aarch64_ld3_lane<mode>): Likewise.
3091         (aarch64_ld4_lane<mode>): Likewise.
3092         (aarch64_im_lane_boundsi): Likewise.
3093         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Add exp
3094         parameter. Report calling function in error message if exp is non-NULL.
3095
3096 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3097
3098         PR target/60111
3099         * config/sh/sh.c: Use signed char for signed field.
3100
3101 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3102
3103         * cfgexpand.c, gimple-ssa.h, trans-mem.c: Replace htab with
3104         hash_table.
3105
3106 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3107
3108         * ipa-utils.c, lto-section-in.c, lto-streamer.h,
3109         tree-scalar-evolution.c: Replace htab with hash_table.
3110
3111 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3112
3113         * lto-section-in.c (lto_delete_in_decl_state): Adjust.
3114         (lto_free_function_in_decl_state): Likewise.
3115         * lto-streamer-out.c (copy_function_or_variable): Likewise.
3116         * lto-streamer.h (lto_file_decl_data_get_ ## name): Likewise.
3117         (lto_file_decl_data_num_ ## name ## s): Likewise.
3118         (struct lto_tree_ref_table): Remove.
3119         (struct lto_in_decl_state): Replace lto_tree_ref_table with vec<tree>.
3120
3121 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3122
3123         * hash-map.h (hash_map::iterator): New class.
3124         (hash_map::begin): New method.
3125         (hash_map::end): Likewise.
3126         * alias.c, config/alpha/alpha.c, dwarf2asm.c, omp-low.c, tree.h:
3127         replace splay_tree with hash_map.
3128
3129 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3130
3131         * hash-table.h (hash_table::hash_table): Call alloc_entries.
3132         (hash_table::alloc_entries): new method.
3133         (hash_table::expand): Call alloc_entries.
3134         (hash_table::empty): Likewise.
3135
3136 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3137
3138         * config/i386/i386.c, function.c, trans-mem.c, tree-core.h,
3139         tree.c, tree.h, ubsan.c, varasm.c: Use hash_table instead of htab.
3140
3141 2014-11-20  Trevor Saunders  <tsaunders@mozilla.com>
3142
3143         * doc/gty.texi: Document the new cache gty attribute.
3144         * gengtype.c (finish_cache_funcs): New function.
3145         (write_roots): Call gt_clear_cache on global variables with the cache
3146         gty attribute.
3147         * ggc-common.c (ggc_mark_roots): Call gt_clear_caches.
3148         * ggc.h (gt_clear_caches): New declaration.
3149         * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc
3150         memory.
3151         (gt_cleare_cache): New function.
3152         * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab.
3153
3154 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3155
3156         * combine.c (try_combine): Prefer to delete dead SETs inside
3157         a PARALLEL over keeping them.
3158
3159 2014-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
3160
3161         * combine.c (combine_validate_cost): Always print the insn costs
3162         to the dump file.
3163
3164 2014-11-20  Richard Henderson <rth@redhat.com>
3165
3166         PR target/63977
3167         * config/i386/i386.c (ix86_static_chain): Reinstate the check
3168         for DECL_STATIC_CHAIN.
3169
3170 2014-11-20  Tejas Belagod  <tejas.belagod@arm.com>
3171
3172         * config/aarch64/aarch64-protos.h (aarch64_classify_symbol):
3173         Fixup prototype.
3174         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate,
3175         aarch64_cannot_force_const_mem, aarch64_classify_address,
3176         aarch64_classify_symbolic_expression): Fixup call to
3177         aarch64_classify_symbol.
3178         (aarch64_classify_symbol): Add range-checking for
3179         symbol + offset addressing for tiny and small models.
3180
3181 2014-11-20  Richard Biener  <rguenther@suse.de>
3182
3183         PR middle-end/63962
3184         * match.pd ((p +p off1) +p off2 -> (p +p (off1 + off2))):
3185         Guard with single-use operand 0.
3186
3187 2014-11-20   Richard Biener  <rguenther@suse.de>
3188
3189         PR tree-optimization/63677
3190         * tree-ssa-dom.c: Include gimplify.h for unshare_expr.
3191         (avail_exprs_stack): Make a vector of pairs.
3192         (struct hash_expr_elt): Replace stmt member with vop member.
3193         (expr_elt_hasher::equal): Simplify.
3194         (initialize_hash_element): Adjust.
3195         (initialize_hash_element_from_expr): Likewise.
3196         (dom_opt_dom_walker::thread_across_edge): Likewise.
3197         (record_cond): Likewise.
3198         (dom_opt_dom_walker::before_dom_children): Likewise.
3199         (print_expr_hash_elt): Likewise.
3200         (remove_local_expressions_from_table): Restore previous state
3201         if requested.
3202         (record_equivalences_from_stmt): Record &x + CST as constant
3203         &MEM[&x, CST] for further propagation.
3204         (vuse_eq): New function.
3205         (lookup_avail_expr): For loads use the alias oracle to see
3206         whether a candidate from the expr hash is usable.
3207         (avail_expr_hash): Do not hash VUSEs.
3208
3209 2014-11-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3210
3211         PR target/59593
3212         * config/arm/arm.md (*movhi_insn): Use right formatting
3213         for immediate.
3214
3215 2014-11-20  Igor Zamyatin  <igor.zamyatin@intel.com>
3216
3217         PR sanitizer/63845
3218         * function.c (assign_parms): Move init of pic_offset_table_rtx
3219         from here to...
3220         * cfgexpand.c (expand_used_vars): ...here.
3221
3222 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3223
3224         * tree.c (free_lang_data_in_type): If BINFO has no important
3225         information in it, set it to NULL.
3226         (get_binfo_at_offset): Do not walk fields, only bases.
3227         * ipa-utils.h (polymorphic_type_binfo_p): Be ready for BINFO_TYPE
3228         to be NULL.
3229         * ipa-polymorphic-call.c (record_known_type): Likewise.
3230
3231 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3232
3233         PR jit/63854
3234         * ipa-icf.c (sem_item_optimizer::~sem_item_optimizer): Free each
3235         congruence_class_group *.
3236
3237 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
3238
3239         PR target/63947
3240         * config/i386/i386.c (put_condition_code) <case LTU, case GEU>:
3241         Output "b" and "nb" suffix for FP mode.
3242
3243 2014-11-19  Jan Hubicka  <hubicka@ucw.cz>
3244
3245         PR bootstrap/63963
3246         * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Stream out
3247         DECL_FUNCTION_SPECIFIC_TARGET
3248         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): Stream in
3249         DECL_FUNCTION_SPECIFIC_TARGET.
3250
3251 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3252
3253         PR jit/63854
3254         * pass_manager.h (GCC_PASS_LISTS): Add all_late_ipa_passes.
3255
3256 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3257
3258         PR jit/63854
3259         * lra.c (lra): After creating live ranges in preparation for call
3260         to lra_inheritance, set live_p to true.
3261
3262 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3263
3264         PR jit/63854
3265         * tree-ssa-threadedge.c (thread_across_edge): Don't just release
3266         "path", delete it.
3267         * tree-ssa-threadupdate.c (delete_jump_thread_path): Likewise.
3268
3269 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3270
3271         PR jit/63854
3272         * tree-ssa-pre.c (do_regular_insertion): Convert "avail" from
3273         vec<> to auto_vec<> to fix a leak.
3274
3275 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3276
3277         PR jit/63854
3278         * dwarf2out.c (dwarf2out_c_finalize): Free producer_string.
3279
3280 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3281
3282         PR jit/63854
3283         * ira-costs.c (ira_costs_c_finalize): New function.
3284         * ira.h (ira_costs_c_finalize): New prototype.
3285         * toplev.c (toplev::finalize): Call ira_costs_c_finalize.
3286
3287 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3288
3289         PR jit/63854
3290         * ipa-reference.c (ipa_reference_c_finalize): Release
3291         optimization_summary_obstack.
3292
3293 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3294
3295         PR jit/63854
3296         * toplev.c (toplev::finalize): Free opts_obstack.
3297
3298 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3299
3300         PR jit/63854
3301         * toplev.c (toplev::finalize): Clean up save_decoded_options.
3302
3303 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3304
3305         PR jit/63854
3306         * bb-reorder.c
3307         (find_rarely_executed_basic_blocks_and_crossing_edges): Convert
3308         local bbs_in_hot_partition from vec<> to auto_vec<>.
3309
3310 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3311
3312         PR jit/63854
3313         * config/alpha/alpha.c (alpha_option_override): Remove static from
3314         "handle_trap_shadows_info" and "align_insns_info".
3315         * config/i386/i386.c (ix86_option_override): Likewise for
3316         "insert_vzeroupper_info".
3317         * config/rl78/rl78.c (rl78_asm_file_start): Likewise for
3318         "rl78_devirt_info" and "rl78_move_elim_info".
3319         * config/rs6000/rs6000.c (rs6000_option_override): Likewise for
3320         "analyze_swaps_info".
3321         * context.c (gcc::context::~context): New.
3322         * context.h (gcc::context::~context): New.
3323         * dumpfile.c (dump_files): Add "false" initializers for new field
3324         "owns_strings".
3325         (gcc::dump_manager::~dump_manager): New.
3326         (gcc::dump_manager::dump_register): Add param "take_ownership".
3327         * dumpfile.h (struct dump_file_info): Add field "owns_strings".
3328         (gcc::dump_manager::~dump_manager): New.
3329         (gcc::dump_manager::dump_register): Add param "take_ownership".
3330         * pass_manager.h (gcc::pass_manager::operator delete): New.
3331         (gcc::pass_manager::~pass_manager): New.
3332         * passes.c (pass_manager::register_one_dump_file): Pass "true" to
3333         new "owns_strings" argument to dump_register.
3334         (pass_manager::operator delete): New.
3335         (delete_pass_tree): New function.
3336         (pass_manager::~pass_manager): New.
3337         * statistics.c (statistics_early_init): Pass "false" to
3338         new "owns_strings" argument to dump_register.
3339         * toplev.c (toplev::finalize): Clean up the context and thus the
3340         things it owns.
3341
3342 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3343
3344         PR jit/63854
3345         * reginfo.c (finish_subregs_of_mode): Replace obstack_finish with
3346         obstack_free when cleaning up valid_mode_changes_obstack.
3347
3348 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3349
3350         PR jit/63854
3351         * opts.c (finalize_options_struct): New.
3352         * opts.h (finalize_options_struct): New.
3353         * toplev.c (toplev::finalize): Call finalize_options_struct
3354         on global_options and global_options_set.
3355
3356 2014-11-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3357             Jakub Jelinek  <jakub@redhat.com>
3358
3359         PR driver/36312
3360         PR driver/63837
3361         * gcc.c (process_command): Don't check for input/output
3362         filename equality if output is HOST_BIT_BUCKET.
3363         * toplev.c (init_asm_output): Likewise.
3364
3365 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3366
3367         Merger of git branch "gimple-classes-v2-option-3".
3368
3369         * ChangeLog.gimple-classes: New.
3370
3371         * coretypes.h (struct gcond): Add forward decl.
3372         (struct gdebug): Likewise.
3373         (struct ggoto): Likewise.
3374         (struct glabel): Likewise.
3375         (struct gswitch): Likewise.
3376         (struct gassign): Likewise.
3377         (struct gasm): Likewise.
3378         (struct gcall): Likewise.
3379         (struct gtransaction): Likewise.
3380         (struct greturn): Likewise.
3381         (struct gbind): Likewise.
3382         (struct gcatch): Likewise.
3383         (struct geh_filter): Likewise.
3384         (struct geh_mnt): Likewise.
3385         (struct geh_else): Likewise.
3386         (struct gresx): Likewise.
3387         (struct geh_dispatch): Likewise.
3388         (struct gphi): Likewise.
3389         (struct gtry): Likewise.
3390         (struct gomp_atomic_load): Likewise.
3391         (struct gomp_atomic_store): Likewise.
3392         (struct gomp_continue): Likewise.
3393         (struct gomp_critical): Likewise.
3394         (struct gomp_for): Likewise.
3395         (struct gomp_parallel): Likewise.
3396         (struct gomp_task): Likewise.
3397         (struct gomp_sections): Likewise.
3398         (struct gomp_single): Likewise.
3399         (struct gomp_target): Likewise.
3400         (struct gomp_teams): Likewise.
3401
3402         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
3403         for renaming of gimple subclasses.
3404
3405         * gdbhooks.py: Update.
3406
3407         * gimple-iterator.c (gsi_for_phi): New.
3408         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3409         to gphi_iterator.
3410         * gimple-iterator.h (struct gphi_iterator): New subclass of
3411         gimple_stmt_iterator.
3412         (gsi_for_phi): New prototype.
3413         (gsi_start_phis): Strengthen return type from gimple_stmt_iterator
3414         to gphi_iterator.
3415         (gsi_next_nonvirtual_phi): Strengthen param from
3416         gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
3417         gimple to gphi *.
3418
3419         * gsstruct.def: Update for renamings of classes.
3420
3421         * gimple.c (gimple_build_return): Strengthen return type from
3422         gimple to greturn *.
3423         (gimple_call_reset_alias_info): Strengthen param to gcall *.
3424         (gimple_build_call_1): Strengthen return type from gimple to
3425         gcall *.
3426         (gimple_build_call_vec): Likewise.
3427         (gimple_build_call): Likewise.
3428         (gimple_build_call_valist): Likewise.
3429         (gimple_build_call_internal_1): Likewise.
3430         (gimple_build_call_internal): Likewise.
3431         (gimple_build_call_internal_vec): Likewise.
3432         (gimple_build_call_from_tree): Likewise.
3433         (gimple_build_assign_stat): Strengthen return type from gimple to
3434         gassign *.
3435         (gimple_build_assign_with_ops): Likewise.
3436         (gimple_build_assign_with_ops): Likewise.
3437         (gimple_build_cond): Strengthen return type from gimple to
3438         gcond *.
3439         (gimple_build_cond_from_tree): Likewise.
3440         (gimple_cond_set_condition_from_tree): Require a gcond *.
3441         (gimple_build_label): Strengthen return type from gimple to
3442         glabel *.
3443         (gimple_build_goto): Strengthen return type from gimple to
3444         ggoto *.
3445         (gimple_build_bind): Strengthen return type from gimple to
3446         gbind *.
3447         (gimple_build_asm_1): Strengthen return type from gimple to
3448         gasm *.
3449         (gimple_build_asm_vec): Likewise.
3450         (gimple_build_catch): Strengthen return type from gimple to
3451         gcatch *.
3452         (gimple_build_eh_filter): Strengthen return type from gimple to
3453         geh_filter *.
3454         (gimple_build_eh_must_not_throw): Strengthen return type from
3455         gimple to geh_mnt *.
3456         (gimple_build_eh_else): Strengthen return type from gimple to
3457         geh_else *.
3458         (gimple_build_try): Update for renaming of gimple_statement_try to
3459         gtry.
3460         (gimple_build_resx): Strengthen return type from gimple to
3461         gresx *.
3462         (gimple_build_switch_nlabels): Strengthen return type from gimple
3463         to gswitch *.
3464         (gimple_build_switch): Likewise.
3465         (gimple_build_eh_dispatch): Strengthen return type from gimple to
3466         geh_dispatch *.
3467         (gimple_build_debug_bind_stat): Strengthen return type from gimple
3468         to gdebug *.
3469         (gimple_build_debug_source_bind_stat): Strengthen return type from
3470         gimple to gdebug *.
3471         (gimple_build_omp_critical): Strengthen return type from gimple to
3472         gomp_critical *.
3473         (gimple_build_omp_for): Strengthen return type from gimple to
3474         gomp_for *.
3475         (gimple_build_omp_parallel): Strengthen return type from gimple to
3476         gomp_parallel *.
3477         (gimple_build_omp_task): Strengthen return type from gimple to
3478         gomp_task *.
3479         (gimple_build_omp_continue): Strengthen return type from gimple to
3480         gomp_continue *.
3481         (gimple_build_omp_sections): Strengthen return type from gimple to
3482         gomp_sections *.
3483         (gimple_build_omp_single): Strengthen return type from gimple to
3484         gomp_single *.
3485         (gimple_build_omp_target): Strengthen return type from gimple to
3486         gomp_target *.
3487         (gimple_build_omp_teams): Strengthen return type from gimple to
3488         gomp_teams *.
3489         (gimple_build_omp_atomic_load): Strengthen return type from gimple
3490         to gomp_atomic_load *.
3491         (gimple_build_omp_atomic_store): Strengthen return type from gimple
3492         to gomp_atomic_store *.
3493         (gimple_build_transaction): Strengthen return type from gimple
3494         to gtransaction *.
3495         (empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
3496         (gimple_call_fnspec): Require a const gcall *.
3497         (gimple_call_arg_flags): Likewise.
3498         (gimple_call_return_flags): Likewise.
3499         (gimple_set_bb): Add a checked cast.
3500         (gimple_copy): Within the cases, add locals of the appropriate
3501         subclass and use in place of "stmt" and "copy" for typesafety.
3502         (gimple_has_side_effects): Add a checked cast.
3503         (gimple_could_trap_p_1): Likewise.
3504         (gimple_call_copy_skip_args): Require a gcall *, and return one.
3505         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3506         (infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
3507         dyn_cast, introducing local "return_stmt" and using ti in place
3508         of "stmt".
3509
3510         * gimple.h (gimple_vec): Eliminate this typedef.
3511         (struct gimple_statement_call): Rename to...
3512         (struct gcall): ...this.
3513         (struct gimple_statement_bind): Rename to...
3514         (struct gbind): ...this.
3515         (struct gimple_statement_catch): Rename to...
3516         (struct gcatch): ...this.
3517         (struct gimple_statement_eh_filter): Rename to...
3518         (struct geh_filter): ...this.
3519         (struct gimple_statement_eh_else): Rename to...
3520         (struct geh_else): ...this.
3521         (struct gimple_statement_eh_mnt): Rename to...
3522         (struct geh_mnt): ...this.
3523         (struct gimple_statement_phi): Rename to...
3524         (struct gphi): ...this.
3525         (struct gimple_statement_resx): Rename to...
3526         (struct gresx): ...this.
3527         (struct gimple_statement_eh_dispatch): Rename to...
3528         (struct geh_dispatch): ...this.
3529         (struct gimple_statement_try): Rename to...
3530         (struct gtry): ...this.
3531         (struct gimple_statement_asm): Rename to...
3532         (struct gasm): ...this.
3533         (struct gimple_statement_omp_critical): Rename to...
3534         (struct gomp_critical): ...this.
3535         (struct gimple_statement_omp_for): Rename to...
3536         (struct gomp_for): ...this.
3537         (struct gimple_statement_omp_parallel): Rename to...
3538         (struct gomp_parallel): ...this.
3539         (struct gimple_statement_omp_target): Rename to...
3540         (struct gomp_target): ...this.
3541         (struct gimple_statement_omp_task): Rename to...
3542         (struct gomp_task): ...this.
3543         (struct gimple_statement_omp_sections): Rename to...
3544         (struct gomp_sections): ...this.
3545         (struct gimple_statement_omp_continue): Rename to...
3546         (struct gomp_continue): ...this.
3547         (struct gimple_statement_omp_single): Rename to...
3548         (struct gomp_single): ...this.
3549         (struct gimple_statement_omp_teams): Rename to...
3550         (struct gomp_teams): ...this.
3551         (struct gimple_statement_omp_atomic_load): Rename to...
3552         (struct gomp_atomic_load): ...this.
3553         (struct gimple_statement_omp_atomic_store :): Rename to...
3554         (struct gomp_atomic_store :): ...this.
3555         (struct gimple_statement_transaction): Rename to...
3556         (struct gtransaction): ...this.
3557         (struct gcond): New subclass.
3558         (struct gdebug): New subclass.
3559         (struct ggoto): New subclass.
3560         (struct glabel): New subclass.
3561         (struct gswitch): New subclass.
3562         (struct gassign): New subclass.
3563         (struct greturn): New subclass.
3564         (is_a_helper <gimple_statement_asm *>::test): Rename to...
3565         (is_a_helper <gasm *>::test): ...this.
3566         (is_a_helper <gimple_statement_bind *>::test): Rename to...
3567         (is_a_helper <gbind *>::test): ...this.
3568         (is_a_helper <gassign *>::test): New.
3569         (is_a_helper <gimple_statement_call *>::test): Rename to...
3570         (is_a_helper <gcall *>::test): ...this.
3571         (is_a_helper <gimple_statement_catch *>::test): Rename to...
3572         (is_a_helper <gcatch *>::test): ...this.
3573         (is_a_helper <gimple_statement_resx *>::test): Rename to...
3574         (is_a_helper <gresx *>::test): ...this.
3575         (is_a_helper <gcond *>::test): New.
3576         (is_a_helper <gdebug *>::test): New.
3577         (is_a_helper <ggoto *>::test): New.
3578         (is_a_helper <glabel *>::test): New.
3579         (is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
3580         (is_a_helper <geh_dispatch *>::test): ...this.
3581         (is_a_helper <gimple_statement_eh_else *>::test): Rename to...
3582         (is_a_helper <geh_else *>::test): ...this.
3583         (is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
3584         (is_a_helper <geh_filter *>::test): ...this.
3585         (is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
3586         (is_a_helper <geh_mnt *>::test): ...this.
3587         (is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
3588         (is_a_helper <gomp_atomic_load *>::test): ...this.
3589         (is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
3590         (is_a_helper <gomp_atomic_store *>::test): ...this.
3591         (is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
3592         (is_a_helper <gomp_continue *>::test): ...this.
3593         (is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
3594         (is_a_helper <gomp_critical *>::test): ...this.
3595         (is_a_helper <gimple_statement_omp_for *>::test): Rename to...
3596         (is_a_helper <gomp_for *>::test): ...this.
3597         (is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
3598         (is_a_helper <gomp_parallel *>::test): ...this.
3599         (is_a_helper <gimple_statement_omp_target *>::test): Rename to...
3600         (is_a_helper <gomp_target *>::test): ...this.
3601         (is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
3602         (is_a_helper <gomp_sections *>::test): ...this.
3603         (is_a_helper <gimple_statement_omp_single *>::test): Rename to...
3604         (is_a_helper <gomp_single *>::test): ...this.
3605         (is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
3606         (is_a_helper <gomp_teams *>::test): ...this.
3607         (is_a_helper <gimple_statement_omp_task *>::test): Rename to...
3608         (is_a_helper <gomp_task *>::test): ...this.
3609         (is_a_helper <gimple_statement_phi *>::test): Rename to...
3610         (is_a_helper <gphi *>::test): ...this.
3611         (is_a_helper <gimple_statement_transaction *>::test): Rename to...
3612         (is_a_helper <gtransaction *>::test): ...this.
3613         (is_a_helper <greturn *>::test): New.
3614         (is_a_helper <gswitch *>::test): New.
3615         (is_a_helper <gimple_statement_try *>::test): Rename to...
3616         (is_a_helper <gtry *>::test): ...this.
3617         (is_a_helper <const gimple_statement_asm *>::test): Rename to...
3618         (is_a_helper <const gasm *>::test): ...this.
3619         (is_a_helper <const gimple_statement_bind *>::test): Rename to...
3620         (is_a_helper <const gbind *>::test): ...this.
3621         (is_a_helper <const gimple_statement_call *>::test): Rename to...
3622         (is_a_helper <const gcall *>::test): ...this.
3623         (is_a_helper <const gimple_statement_catch *>::test): Rename to...
3624         (is_a_helper <const gcatch *>::test): ...this.
3625         (is_a_helper <const gimple_statement_resx *>::test): Rename to...
3626         (is_a_helper <const gresx *>::test): ...this.
3627         (is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
3628         (is_a_helper <const geh_dispatch *>::test): ...this.
3629         (is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
3630         (is_a_helper <const geh_filter *>::test): ...this.
3631         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
3632         Rename to...
3633         (is_a_helper <const gomp_atomic_load *>::test): ...this.
3634         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
3635         Rename to...
3636         (is_a_helper <const gomp_atomic_store *>::test): ...this.
3637         (is_a_helper <const gimple_statement_omp_continue *>::test):
3638         Rename to...
3639         (is_a_helper <const gomp_continue *>::test): ...this.
3640         (is_a_helper <const gimple_statement_omp_critical *>::test):
3641         Rename to...
3642         (is_a_helper <const gomp_critical *>::test): ...this.
3643         (is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
3644         (is_a_helper <const gomp_for *>::test): ...this.
3645         (is_a_helper <const gimple_statement_omp_parallel *>::test):
3646         Rename to...
3647         (is_a_helper <const gomp_parallel *>::test): ...this.
3648         (is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
3649         (is_a_helper <const gomp_target *>::test): ...this.
3650         (is_a_helper <const gimple_statement_omp_sections *>::test):
3651         Rename to...
3652         (is_a_helper <const gomp_sections *>::test): ...this.
3653         (is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
3654         (is_a_helper <const gomp_single *>::test): ...this.
3655         (is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
3656         (is_a_helper <const gomp_teams *>::test): ...this.
3657         (is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
3658         (is_a_helper <const gomp_task *>::test): ...this.
3659         (is_a_helper <const gimple_statement_phi *>::test): Rename to...
3660         (is_a_helper <const gphi *>::test): ...this.
3661         (is_a_helper <const gimple_statement_transaction *>::test): Rename to...
3662         (is_a_helper <const gtransaction *>::test): ...this.
3663         (gimple_build_return): Strengthen return type to greturn *.
3664         (gimple_call_reset_alias_info): Require a gcall *.
3665         (gimple_build_call_vec): Return a gcall *.
3666         (gimple_build_call): Likewise.
3667         (gimple_build_call_valist): Likewise.
3668         (gimple_build_call_internal): Likewise.
3669         (gimple_build_call_internal_vec): Likewise.
3670         (gimple_build_call_from_tree): Likewise.
3671         (gimple_build_assign_stat): Return a gassign *.
3672         (gimple_build_assign_with_ops): Likewise.
3673         (gimple_build_cond): Return a gcond *.
3674         (gimple_build_cond_from_tree): Likewise.
3675         (gimple_cond_set_condition_from_tree): Require a gcond *.
3676         (gimple_build_label): Return a glabel *.
3677         (gimple_build_goto): Return a ggoto *.
3678         (gimple_build_bind): Return a gbind *.
3679         (gimple_build_asm_vec): Return a gasm *.
3680         (gimple_build_catch): Return a gcatch *.
3681         (gimple_build_eh_filter): Return a geh_filter *.
3682         (gimple_build_eh_must_not_throw): Return a geh_mnt *.
3683         (gimple_build_eh_else): Return a geh_else *.
3684         (gimple_build_try): Return a gtry *.
3685         (gimple_build_resx): Return a gresx *.
3686         (gimple_build_switch_nlabels): Return a gswitch *.
3687         (gimple_build_switch): Return a gswitch *.
3688         (gimple_build_eh_dispatch): Return a geh_dispatch *.
3689         (gimple_build_debug_bind_stat): Return a gdebug *.
3690         (gimple_build_debug_source_bind_stat): Return a gdebug *.
3691         (gimple_build_omp_critical): Return a gomp_critical *.
3692         (gimple_build_omp_for): Return a gomp_for *.
3693         (gimple_build_omp_parallel): Return a gomp_parallel *.
3694         (gimple_build_omp_task): Return a gomp_task *.
3695         (gimple_build_omp_continue): Return a gomp_continue *.
3696         (gimple_build_omp_sections): Return a gomp_sections *.
3697         (gimple_build_omp_single): Return a gomp_single *.
3698         (gimple_build_omp_target): Return a gomp_target *.
3699         (gimple_build_omp_teams): Return a gomp_teams *.
3700         (gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
3701         (gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
3702         (gimple_build_transaction): Return a gtransaction *.
3703         (gimple_call_arg_flags): Require a const gcall *.
3704         (gimple_call_return_flags): Likewise.
3705         (gimple_call_copy_skip_args): Require and return a gcall *.
3706         (gimple_asm_clobbers_memory_p): Require a const gasm *.
3707         (gimple_seq_first_stmt_as_a_bind): New.
3708         (gimple_assign_nontemporal_move_p): Require a const gassign *
3709         rather than a const_gimple.
3710         (gimple_call_internal_fn): Update for renaming to gcall.
3711         (gimple_call_fntype): Likewise.
3712         (gimple_call_set_fntype): Require a gcall * rather than a gimple.
3713         (gimple_call_set_fn): Likewise.
3714         (gimple_call_set_internal_fn): Likewise.
3715         (gimple_call_set_chain): Likewise.
3716         (gimple_call_set_tail): Likewise.
3717         (gimple_call_tail_p): Likewise.
3718         (gimple_call_set_return_slot_opt): Likewise.
3719         (gimple_call_return_slot_opt_p): Likewise.
3720         (gimple_call_set_from_thunk): Likewise.
3721         (gimple_call_from_thunk_p): Likewise.
3722         (gimple_call_set_va_arg_pack): Likewise.
3723         (gimple_call_va_arg_pack_p): Likewise.
3724         (gimple_call_set_nothrow): Likewise.
3725         (gimple_call_nothrow_p): Likewise.
3726         (gimple_call_set_alloca_for_var): Likewise.
3727         (gimple_call_alloca_for_var_p): Likewise.
3728         (gimple_call_use_set): Likewise.
3729         (gimple_call_clobber_set): Likewise.
3730         (gimple_call_return_type): Require a const gcall * rather than a
3731         const_gimple.
3732         (gimple_call_chain_ptr): Likewise.
3733         (gimple_call_copy_flags): Require a pair of gcall *.
3734         (gimple_cond_set_code): Require a gcond * rather than a gimple
3735         (gimple_cond_set_lhs): Likewise.
3736         (gimple_cond_set_rhs): Likewise.
3737         (gimple_cond_set_true_label): Likewise.
3738         (gimple_cond_set_false_label): Likewise.
3739         (gimple_cond_make_false): Likewise.
3740         (gimple_cond_make_true): Likewise.
3741         (gimple_cond_lhs_ptr): Require a const gcond * rather than a
3742         const_gimple.
3743         (gimple_cond_rhs_ptr): Likewise.
3744         (gimple_cond_true_label): Likewise.
3745         (gimple_cond_false_label): Likewise.
3746         (gimple_cond_true_p): Likewise.
3747         (gimple_cond_false_p): Likewise.
3748         (gimple_cond_set_condition): Likewise.
3749         (gimple_label_label): Require a const glabel *.
3750         (gimple_label_set_label): Require a glabel *.
3751         (gimple_goto_set_dest): Require a ggoto *.
3752         (gimple_bind_vars): Require a const gbind *.
3753         (gimple_bind_block): Likewise.
3754         (gimple_bind_set_vars): Require a gbind *.
3755         (gimple_bind_append_vars): Likewise.
3756         (gimple_bind_body_ptr): Likewise.
3757         (gimple_bind_body): Likewise.
3758         (gimple_bind_set_body): Likewise.
3759         (gimple_bind_add_stmt): Likewise.
3760         (gimple_bind_add_seq): Likewise.
3761         (gimple_bind_set_block): Likewise.
3762         (gimple_asm_ninputs): Require a const gasm *.
3763         (gimple_asm_noutputs): Likewise.
3764         (gimple_asm_nclobbers): Likewise.
3765         (gimple_asm_nlabels): Likewise.
3766         (gimple_asm_input_op): Likewise.
3767         (gimple_asm_input_op_ptr): Likewise.
3768         (gimple_asm_output_op): Likewise.
3769         (gimple_asm_output_op_ptr): Likewise.
3770         (gimple_asm_clobber_op): Likewise.
3771         (gimple_asm_label_op): Likewise.
3772         (gimple_asm_string): Likewise.
3773         (gimple_asm_volatile_p): Likewise.
3774         (gimple_asm_input_p): Likewise.
3775         (gimple_asm_set_input_op): Require a gasm *.
3776         (gimple_asm_set_output_op): Likewise.
3777         (gimple_asm_set_clobber_op): Likewise.
3778         (gimple_asm_set_label_op): Likewise.
3779         (gimple_asm_set_volatile): Likewise.
3780         (gimple_asm_set_input): Likewise.
3781         (gimple_catch_types): Require a const gcatch *.
3782         (gimple_catch_types_ptr): Require a gcatch *.
3783         (gimple_catch_handler_ptr): Likewise.
3784         (gimple_catch_handler): Likewise.
3785         (gimple_catch_set_types): Likewise.
3786         (gimple_catch_set_handler): Likewise.
3787         (gimple_eh_filter_types): Update for renaming of subclass to
3788         geh_filter.
3789         (gimple_eh_filter_types_ptr): Likewise.
3790         (gimple_eh_filter_failure_ptr): Likewise.
3791         (gimple_eh_filter_set_types): Require a geh_filter *.
3792         (gimple_eh_filter_set_failure): Likewise.
3793         (gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
3794         (gimple_eh_must_not_throw_set_fndecl): Likewise.
3795         (gimple_eh_else_n_body_ptr): Require a geh_else *.
3796         (gimple_eh_else_n_body): Likewise.
3797         (gimple_eh_else_e_body_ptr): Likewise.
3798         (gimple_eh_else_e_body): Likewise.
3799         (gimple_eh_else_set_n_body): Likewise.
3800         (gimple_eh_else_set_e_body): Likewise.
3801         (gimple_try_set_kind): Require a gtry *.
3802         (gimple_try_set_catch_is_cleanup): Likewise.
3803         (gimple_try_set_eval): Likewise.
3804         (gimple_try_set_cleanup): Likewise.
3805         (gimple_try_eval_ptr): Update for renaming of subclass to gtry.
3806         (gimple_try_cleanup_ptr): Likewise.
3807         (gimple_phi_capacity): Update for renaming of subclass to gphi.
3808         (gimple_phi_num_args): Likewise.
3809         (gimple_phi_result): Likewise.
3810         (gimple_phi_result_ptr): Likewise.
3811         (gimple_phi_arg): Likewise.
3812         (gimple_phi_set_result): Require a gphi *.
3813         (gimple_phi_set_arg): Likewise.
3814         (gimple_phi_arg_def_ptr): Likewise.
3815         (gimple_phi_arg_edge): Likewise.
3816         (gimple_phi_arg_location): Likewise.
3817         (gimple_phi_arg_location_from_edge): Likewise.
3818         (gimple_phi_arg_set_location): Likewise.
3819         (gimple_phi_arg_has_location): Likewise.
3820         (gimple_resx_region): Require a const gresx *.
3821         (gimple_resx_set_region): Require a gresx *.
3822         (gimple_eh_dispatch_region): Require a const geh_dispatch *.
3823         (gimple_eh_dispatch_set_region): Require a geh_dispatch *.
3824         (gimple_switch_num_labels): Require a const gswitch *.
3825         (gimple_switch_set_num_labels): Likewise.
3826         (gimple_switch_index): Likewise.
3827         (gimple_switch_index_ptr): Likewise.
3828         (gimple_switch_label): Likewise.
3829         (gimple_switch_default_label): Likewise.
3830         (gimple_switch_set_index): Require a gswitch *.
3831         (gimple_switch_set_label): Likewise.
3832         (gimple_switch_set_default_label): Likewise.
3833         (gimple_omp_critical_name): Require a const gomp_critical *.
3834         (gimple_omp_critical_name_ptr): Require a gomp_critical *.
3835         (gimple_omp_critical_set_name): Likewise.
3836         (gimple_omp_for_set_kind): Require a gomp_for *.
3837         (gimple_omp_for_set_combined_p): Likewise.
3838         (gimple_omp_for_set_combined_into_p): Likewise.
3839         (gimple_omp_for_clauses): Update for renaming of subclass to
3840         gomp_for.
3841         (gimple_omp_for_clauses_ptr): Likewise.
3842         (gimple_omp_for_set_clauses): Likewise.
3843         (gimple_omp_for_collapse): Likewise.
3844         (gimple_omp_for_index): Likewise.
3845         (gimple_omp_for_index_ptr): Likewise.
3846         (gimple_omp_for_set_index): Likewise.
3847         (gimple_omp_for_initial): Likewise.
3848         (gimple_omp_for_initial_ptr): Likewise.
3849         (gimple_omp_for_set_initial): Likewise.
3850         (gimple_omp_for_final): Likewise.
3851         (gimple_omp_for_final_ptr): Likewise.
3852         (gimple_omp_for_set_final): Likewise.
3853         (gimple_omp_for_incr): Likewise.
3854         (gimple_omp_for_incr_ptr): Likewise.
3855         (gimple_omp_for_set_incr): Likewise.
3856         (gimple_omp_for_pre_body): Likewise.
3857         (gimple_omp_for_set_pre_body): Likewise.
3858         (gimple_omp_parallel_clauses): Update for renaming of subclass to
3859         gomp_parallel.
3860         (gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
3861         (gimple_omp_parallel_set_clauses): Likewise.
3862         (gimple_omp_parallel_child_fn_ptr): Likewise.
3863         (gimple_omp_parallel_set_child_fn): Likewise.
3864         (gimple_omp_parallel_data_arg_ptr): Likewise.
3865         (gimple_omp_parallel_set_data_arg): Likewise.
3866         (gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
3867         (gimple_omp_parallel_data_arg): Likewise.
3868         (gimple_omp_task_clauses): Update for renaming of subclass to
3869         gomp_task.
3870         (gimple_omp_task_clauses_ptr): Likewise.
3871         (gimple_omp_task_set_clauses): Likewise.
3872         (gimple_omp_task_child_fn): Likewise.
3873         (gimple_omp_task_child_fn_ptr): Likewise.
3874         (gimple_omp_task_set_child_fn): Likewise.
3875         (gimple_omp_task_data_arg): Likewise.
3876         (gimple_omp_task_data_arg_ptr): Likewise.
3877         (gimple_omp_task_set_data_arg): Likewise.
3878         (gimple_omp_taskreg_clauses): Whitespace fixes.
3879         (gimple_omp_taskreg_clauses_ptr): Likewise.
3880         (gimple_omp_taskreg_set_clauses): Likewise.
3881         (gimple_omp_taskreg_child_fn): Likewise.
3882         (gimple_omp_taskreg_child_fn_ptr): Likewise.
3883         (gimple_omp_taskreg_set_child_fn): Likewise.
3884         (gimple_omp_taskreg_data_arg): Likewise.
3885         (gimple_omp_taskreg_data_arg_ptr): Likewise.
3886         (gimple_omp_taskreg_set_data_arg): Likewise.
3887         (gimple_omp_task_copy_fn): Update for renaming of subclass to
3888         gomp_task.
3889         (gimple_omp_task_copy_fn_ptr): Likewise.
3890         (gimple_omp_task_set_copy_fn): Likewise.
3891         (gimple_omp_task_arg_size): Likewise.
3892         (gimple_omp_task_arg_size_ptr): Likewise.
3893         (gimple_omp_task_set_arg_size): Likewise.
3894         (gimple_omp_task_arg_align): Likewise.
3895         (gimple_omp_task_arg_align_ptr): Likewise.
3896         (gimple_omp_task_set_arg_align): Likewise.
3897         (gimple_omp_single_clauses): Update for renaming of subclass to
3898         gomp_single.
3899         (gimple_omp_single_clauses_ptr): Likewise.
3900         (gimple_omp_single_set_clauses): Likewise.
3901         (gimple_omp_target_clauses): Update for renaming of subclass to
3902         gomp_target.
3903         (gimple_omp_target_clauses_ptr): Likewise.
3904         (gimple_omp_target_set_clauses): Require a gomp_target *.
3905         (gimple_omp_target_set_kind): Likewise.
3906         (gimple_omp_target_child_fn_ptr): Likewise.
3907         (gimple_omp_target_set_child_fn): Likewise.
3908         (gimple_omp_target_data_arg_ptr): Likewise.
3909         (gimple_omp_target_set_data_arg): Likewise.
3910         (gimple_omp_target_child_fn): Require a const gomp_target *.
3911         (gimple_omp_target_data_arg): Likewise.
3912         (gimple_omp_teams_clauses): Update for renaming of subclass to
3913         gomp_teams.
3914         (gimple_omp_teams_clauses_ptr): Likewise.
3915         (gimple_omp_teams_set_clauses): Require a gomp_teams *.
3916         (gimple_omp_sections_clauses): Update for renaming of subclass to
3917         gomp_sections.
3918         (gimple_omp_sections_clauses_ptr): Likewise.
3919         (gimple_omp_sections_set_clauses): Likewise.
3920         (gimple_omp_sections_control): Likewise.
3921         (gimple_omp_sections_control_ptr): Likewise.
3922         (gimple_omp_sections_set_control): Likewise.
3923         (gimple_omp_for_set_cond): Likewise.
3924         (gimple_omp_for_cond): Likewise.
3925         (gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
3926         (gimple_omp_atomic_store_val_ptr): Likewise.
3927         (gimple_omp_atomic_load_set_lhs): Likewise.
3928         (gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
3929         (gimple_omp_atomic_load_lhs): Likewise.
3930         (gimple_omp_atomic_load_rhs): Likewise.
3931         (gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
3932         (gimple_omp_atomic_load_set_rhs): Likewise.
3933         (gimple_omp_atomic_load_rhs_ptr): Likewise.
3934         (gimple_omp_continue_control_def): Require a const gomp_continue *.
3935         (gimple_omp_continue_control_use): Likewise.
3936         (gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
3937         (gimple_omp_continue_set_control_def): Likewise.
3938         (gimple_omp_continue_control_use_ptr): Likewise.
3939         (gimple_omp_continue_set_control_use): Likewise.
3940         (gimple_transaction_body_ptr): Require a gtransaction *.
3941         (gimple_transaction_body): Likewise.
3942         (gimple_transaction_label_ptr): Likewise.
3943         (gimple_transaction_label): Require a const gtransaction *.
3944         (gimple_transaction_subcode): Likewise.
3945         (gimple_transaction_set_body): Require a gtransaction *.
3946         (gimple_transaction_set_label): Likewise.
3947         (gimple_transaction_set_subcode): Likewise.
3948         (gimple_return_retval_ptr): Require a const greturn *.
3949         (gimple_return_retval): Likewise.
3950         (gimple_return_set_retval): Require a greturn *.
3951         (gimple_expr_type): Introduce local "call_stmt" and use in place of
3952         "stmt" for typesafety.
3953
3954         * asan.c: Use gimple subclasses.
3955         * auto-profile.c: Likewise.
3956         * builtins.c: Likewise.
3957         * builtins.h: Likewise.
3958         * cfgexpand.c: Likewise.
3959         * cfgloop.c: Likewise.
3960         * cfgloopmanip.c: Likewise.
3961         * cgraph.c: Likewise.
3962         * cgraph.h: Likewise.
3963         * cgraphbuild.c: Likewise.
3964         * cgraphclones.c: Likewise.
3965         * cgraphunit.c: Likewise.
3966         * expr.h: Likewise.
3967         * gimple-builder.c: Likewise.
3968         * gimple-builder.h: Likewise.
3969         * gimple-fold.c: Likewise.
3970         * gimple-low.c: Likewise.
3971         * gimple-pretty-print.c: Likewise.
3972         * gimple-ssa-isolate-paths.c: Likewise.
3973         * gimple-ssa-strength-reduction.c: Likewise.
3974         * gimple-streamer-in.c: Likewise.
3975         * gimple-streamer-out.c: Likewise.
3976         * gimple-walk.c: Likewise.
3977         * gimplify-me.c: Likewise.
3978         * gimplify.c: Likewise.
3979         * gimplify.h: Likewise.
3980         * graphite-scop-detection.c: Likewise.
3981         * graphite-sese-to-poly.c: Likewise.
3982         * internal-fn.c: Likewise.
3983         * internal-fn.def:: Likewise.
3984         * internal-fn.h: Likewise.
3985         * ipa-icf-gimple.c: Likewise.
3986         * ipa-icf-gimple.h: Likewise.
3987         * ipa-icf.c: Likewise.
3988         * ipa-inline-analysis.c: Likewise.
3989         * ipa-prop.c: Likewise.
3990         * ipa-prop.h: Likewise.
3991         * ipa-pure-const.c: Likewise.
3992         * ipa-split.c: Likewise.
3993         * lto-streamer-in.c: Likewise.
3994         * lto-streamer-out.c: Likewise.
3995         * omp-low.c: Likewise.
3996         * predict.c: Likewise.
3997         * sanopt.c: Likewise.
3998         * sese.c: Likewise.
3999         * ssa-iterators.h: Likewise.
4000         * stmt.c: Likewise.
4001         * trans-mem.c: Likewise.
4002         * tree-call-cdce.c: Likewise.
4003         * tree-cfg.c: Likewise.
4004         * tree-cfg.h: Likewise.
4005         * tree-cfgcleanup.c: Likewise.
4006         * tree-chkp.c: Likewise.
4007         * tree-chkp.h: Likewise.
4008         * tree-complex.c: Likewise.
4009         * tree-data-ref.c: Likewise.
4010         * tree-dfa.c: Likewise.
4011         * tree-eh.c: Likewise.
4012         * tree-eh.h: Likewise.
4013         * tree-emutls.c: Likewise.
4014         * tree-if-conv.c: Likewise.
4015         * tree-inline.c: Likewise.
4016         * tree-inline.h: Likewise.
4017         * tree-into-ssa.c: Likewise.
4018         * tree-into-ssa.h: Likewise.
4019         * tree-loop-distribution.c: Likewise.
4020         * tree-nrv.c: Likewise.
4021         * tree-object-size.c: Likewise.
4022         * tree-outof-ssa.c: Likewise.
4023         * tree-parloops.c: Likewise.
4024         * tree-phinodes.c: Likewise.
4025         * tree-phinodes.h: Likewise.
4026         * tree-predcom.c: Likewise.
4027         * tree-profile.c: Likewise.
4028         * tree-scalar-evolution.c: Likewise.
4029         * tree-scalar-evolution.h
4030         * tree-sra.cn_function):
4031         * tree-ssa-alias.c: Likewise.
4032         * tree-ssa-alias.h: Likewise.
4033         * tree-ssa-ccp.c: Likewise.
4034         * tree-ssa-coalesce.c: Likewise.
4035         * tree-ssa-copy.c: Likewise.
4036         * tree-ssa-copyrename.c: Likewise.
4037         * tree-ssa-dce.c: Likewise.
4038         * tree-ssa-dom.c: Likewise.
4039         * tree-ssa-forwprop.c: Likewise.
4040         * tree-ssa-ifcombine.c: Likewise.
4041         * tree-ssa-live.c: Likewise.
4042         * tree-ssa-loop-im.c: Likewise.
4043         * tree-ssa-loop-ivcanon.c: Likewise.
4044         * tree-ssa-loop-ivopts.c: Likewise.
4045         * tree-ssa-loop-manip.c: Likewise.
4046         * tree-ssa-loop-niter.c: Likewise.
4047         * tree-ssa-loop-prefetch.c: Likewise.
4048         * tree-ssa-loop-unswitch.c: Likewise.
4049         * tree-ssa-math-opts.c: Likewise.
4050         * tree-ssa-operands.c: Likewise.
4051         * tree-ssa-phiopt.c: Likewise.
4052         * tree-ssa-phiprop.c: Likewise.
4053         * tree-ssa-pre.c: Likewise.
4054         * tree-ssa-propagate.c: Likewise.
4055         * tree-ssa-propagate.h: Likewise.
4056         * tree-ssa-reassoc.c: Likewise.
4057         * tree-ssa-sccvn.c: Likewise.
4058         * tree-ssa-sccvn.h: Likewise.
4059         * tree-ssa-sink.c: Likewise.
4060         * tree-ssa-strlen.c
4061         * tree-ssa-structalias.c
4062         * tree-ssa-tail-merge.c: Likewise.
4063         * tree-ssa-ter.c: Likewise.
4064         * tree-ssa-threadedge.c: Likewise.
4065         * tree-ssa-threadedge.h: Likewise.
4066         * tree-ssa-threadupdate.c: Likewise.
4067         * tree-ssa-uncprop.c: Likewise.
4068         * tree-ssa-uninit.c: Likewise.
4069         * tree-ssa.c: Likewise.
4070         * tree-stdarg.c: Likewise.
4071         * tree-switch-conversion.c: Likewise.
4072         * tree-tailcall.c: Likewise.
4073         * tree-vect-data-refs.c: Likewise.
4074         * tree-vect-generic.c: Likewise.
4075         * tree-vect-loop-manip.c: Likewise.
4076         * tree-vect-loop.c: Likewise.
4077         * tree-vect-patterns.c: Likewise.
4078         * tree-vect-slp.c: Likewise.
4079         * tree-vect-stmts.c: Likewise.
4080         * tree-vectorizer.h: Likewise.
4081         * tree-vrp.c: Likewise.
4082         * tree.c: Likewise.
4083         * ubsan.c: Likewise.
4084         * value-prof.c: Likewise.
4085         * value-prof.h: Likewise.
4086         * vtable-verify.c: Likewise.
4087
4088 2014-11-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
4089
4090         * config/rs6000/constraints.md: Avoid signed integer overflows.
4091         * config/rs6000/predicates.md: Likewise.
4092
4093 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4094
4095         PR target/63424
4096         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): New.
4097
4098 2014-11-19  Renlin Li  <Renlin.Li@arm.com>
4099
4100         PR middle-end/63762
4101         * ira.c (ira): Update preferred class.
4102
4103 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4104
4105         * gimple.h (gimple_build_assign_with_ops): Add unary arg overload.
4106         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4107         (gimple_assign_set_rhs_with_ops): ... this.  Adjust binary arg
4108         inline overload to use it.  Add unary arg overload.
4109         * gimple.c (gimple_build_assign_with_ops): New unary arg overload.
4110         (gimple_assign_set_rhs_from_tree): Use
4111         gimple_assign_set_rhs_with_ops instead of
4112         gimple_assign_set_rhs_with_ops_1.
4113         (gimple_assign_set_rhs_with_ops_1): Renamed to ...
4114         (gimple_assign_set_rhs_with_ops): ... this.
4115         * ipa-split.c (split_function): Remove last NULL argument
4116         from gimple_build_assign_with_ops call.
4117         * tree-ssa-loop-im.c
4118         (move_computations_dom_walker::before_dom_children): Likewise.
4119         * tsan.c (instrument_builtin_call): Likewise.
4120         * tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
4121         vectorizable_conversion, vectorizable_load): Likewise.
4122         * tree-vect-loop.c (vect_is_simple_reduction_1,
4123         get_initial_def_for_induction): Likewise.
4124         * tree-loop-distribution.c (generate_memset_builtin): Likewise.
4125         * tree-vect-patterns.c (vect_handle_widen_op_by_const,
4126         vect_recog_widen_mult_pattern, vect_operation_fits_smaller_type,
4127         vect_recog_over_widening_pattern, vect_recog_rotate_pattern,
4128         vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern,
4129         vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast,
4130         adjust_bool_pattern, vect_recog_bool_pattern): Likewise.
4131         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement,
4132         neg_replacement): Likewise.
4133         * asan.c (build_shadow_mem_access, maybe_create_ssa_name,
4134         maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
4135         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4136         * omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
4137         expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
4138         simd_clone_adjust): Likewise.
4139         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
4140         * gimple-ssa-strength-reduction.c (introduce_cast_before_cand,
4141         replace_one_candidate): Likewise.
4142         * gimple-builder.c (build_type_cast): Likewise.
4143         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
4144         (forward_propagate_addr_expr_1): Remove last NULL argument
4145         from gimple_assign_set_rhs_with_ops call.
4146         (simplify_vector_constructor): Use gimple_assign_set_rhs_with_ops
4147         instead of gimple_assign_set_rhs_with_ops_1.
4148         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Remove last NULL
4149         argument from gimple_build_assign_with_ops call.
4150         (repropagate_negates): Remove last NULL argument from
4151         gimple_assign_set_rhs_with_ops call.
4152         * ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn): Remove
4153         last NULL argument from gimple_build_assign_with_ops call.
4154         (instrument_bool_enum_load): Likewise.  Remove last NULL argument
4155         from gimple_assign_set_rhs_with_ops call.
4156         * tree-ssa-math-opts.c (build_and_insert_cast, convert_mult_to_fma):
4157         Remove last NULL argument from gimple_build_assign_with_ops call.
4158         (bswap_replace): Likewise.  Use gimple_assign_set_rhs_with_ops instead
4159         of gimple_assign_set_rhs_with_ops_1.
4160         (convert_plusminus_to_widen): Use gimple_assign_set_rhs_with_ops
4161         instead of gimple_assign_set_rhs_with_ops_1.
4162         * gimple-fold.c (replace_stmt_with_simplification): Likewise.
4163         (rewrite_to_defined_overflow, gimple_build): Remove last NULL argument
4164         from gimple_build_assign_with_ops call.
4165         * tree-ssa-strlen.c (handle_pointer_plus): Remove last NULL argument
4166         from gimple_assign_set_rhs_with_ops call.
4167         * tree-vrp.c (simplify_truth_ops_using_ranges,
4168         simplify_bit_ops_using_ranges): Remove last NULL argument from
4169         gimple_assign_set_rhs_with_ops call.
4170         (simplify_float_conversion_using_ranges,
4171         simplify_internal_call_using_ranges): Remove last NULL argument from
4172         gimple_build_assign_with_ops call.
4173
4174 2014-11-19  Wilco Dijkstra  <wdijkstr@arm.com>
4175
4176         PR target/61915
4177         * config/aarch64/aarch64.c (generic_regmove_cost): Increase FP move
4178         cost.
4179
4180 2014-11-19  Marek Polacek  <polacek@redhat.com>
4181
4182         PR sanitizer/63690
4183         * ubsan.c (instrument_object_size): Check for MEM_REF.
4184
4185 2014-11-19  Ilya Verbin  <ilya.verbin@intel.com>
4186
4187         PR regression/63868
4188         * cgraph.c (cgraph_node::create): Guard g->have_offload with
4189         ifdef ENABLE_OFFLOADING.
4190         * omp-low.c (create_omp_child_function): Likewise.
4191         (expand_omp_target): Guard node->mark_force_output and offload_funcs
4192         with ifdef ENABLE_OFFLOADING.
4193         * varpool.c (varpool_node::get_create): Guard g->have_offload and
4194         offload_vars with ifdef ENABLE_OFFLOADING.
4195
4196 2014-11-19  Felix Yang  <felix.yang@huawei.com>
4197             Shanyao Chen  <chenshanyao@huawei.com>
4198
4199         PR target/59593
4200         * config/arm/arm.md (define_attr "arch"): Add v6t2.
4201         (define_attr "arch_enabled"): Add test for the above.
4202         (*movhi_insn_arch4): Add new alternative.
4203
4204 2014-11-19  Richard Henderson  <rth@redhat.com>
4205
4206         * c-family/c-common.c (c_common_reswords): Add
4207         __builtin_call_with_static_chain.
4208         * c-family/c-common.h (RID_BUILTIN_CALL_WITH_STATIC_CHAIN): New.
4209         * c/c-parser.c (c_parser_postfix_expression): Handle it.
4210         * doc/extend.texi (__builtin_call_with_static_chain): Document it.
4211
4212         * calls.c (prepare_call_address): Allow decl or type for first arg.
4213         (expand_call): Pass type to prepare_call_address if no decl.
4214         * gimple-fold.c (gimple_fold_call): Eliminate the static chain if
4215         the function doesn't use it; fold it otherwise.
4216         * gimplify.c (gimplify_call_expr): Gimplify the static chain.
4217         * tree-cfg.c (verify_gimple_call): Allow a static chain on indirect
4218         function calls.
4219
4220         * targhooks.c (default_static_chain): Remove check for
4221         DECL_STATIC_CHAIN.
4222         * config/moxie/moxie.c (moxie_static_chain): Likewise.
4223         * config/i386/i386.c (ix86_static_chain): Allow decl or type
4224         as the first argument.
4225         * config/xtensa/xtensa.c (xtensa_static_chain): Change the name
4226         of the unused first parameter.
4227         * doc/tm.texi (TARGET_STATIC_CHAIN): Document the first parameter
4228         may be a type.
4229         * target.def (static_chain): Likewise.
4230
4231 2014-11-19  Renlin Li  <renlin.li@arm.com>
4232
4233     * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_FP_FAST,
4234         __ARM_FEATURE_FMA, __ARM_FP, __ARM_FEATURE_NUMERIC_MAXMIN, __ARM_NEON_FP.
4235
4236 2014-11-19  Marek Polacek  <polacek@redhat.com>
4237
4238         PR sanitizer/63879
4239         * fold-const.c (negate_expr_p) <case NEGATE_EXPR>: Return
4240         !TYPE_OVERFLOW_SANITIZED.
4241         (fold_negate_expr) <case INTEGER_CST>: Fold when overflow
4242         does not trap and when overflow wraps, or when SANITIZE_SI_OVERFLOW
4243         is 0.
4244
4245 2014-11-19  Ilya Tocar  <ilya.tocar@intel.com>
4246
4247         * collect2.c (main): Don't call fatal_error before
4248         diagnostic_initialize.
4249         * lto-wrapper.c (main): Likewise.
4250
4251 2014-11-19  Tom de Vries  <tom@codesourcery.com>
4252
4253         PR tree-optimization/62167
4254         * tree-ssa-tail-merge.c (stmt_local_def): Handle statements with vuse
4255         conservatively.
4256         (gimple_equal_p): Don't use vn_valueize to compare for lhs equality of
4257         assigns.
4258
4259 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4260
4261         PR tree-optimization/63915
4262         * tree-vect-stmts.c (vectorizable_simd_clone_call): Pass
4263         true instead of false as last argument to gsi_replace.
4264
4265         PR sanitizer/63520
4266         * internal-fn.c (expand_ubsan_result_store): New function.
4267         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
4268         Use it instead of just emit_move_insn.
4269
4270 2014-11-19  Richard Biener  <rguenther@suse.de>
4271
4272         PR tree-optimization/63844
4273         * omp-low.c (fixup_child_record_type): Use a restrict qualified
4274         referece type for the receiver parameter.
4275
4276 2014-11-19  Jakub Jelinek  <jakub@redhat.com>
4277
4278         PR sanitizer/63913
4279         * ubsan.c: Include tree-eh.h.
4280         (instrument_bool_enum_load): Handle loads that can throw.
4281
4282         PR rtl-optimization/63843
4283         * simplify-rtx.c (simplify_binary_operation_1) <case ASHIFTRT>: For
4284         optimization of ashiftrt of subreg of lshiftrt, check that code
4285         is ASHIFTRT.
4286
4287 2014-11-18  Andrew MacLeod  <amacleod@redhat.com>
4288
4289         * attribs.c (decl_attributes): Remove always true condition,
4290         TREE_TYPE(x) will never compare equal to a TYPE_DECL.
4291
4292 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4293
4294         PR target/63937
4295         * target.def (use_by_pieces_infrastructure_p): Take unsigned
4296         HOST_WIDE_INT as the size parameter.
4297         * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
4298         * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
4299         * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
4300         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
4301         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
4302         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
4303         * config/aarch64/aarch64.c
4304         (aarch64_use_by_pieces_infrastructure_p)): Likewise.
4305         * doc/tm.texi: Regenerate.
4306
4307 2014-11-18  Jan Hubicka  <hubicka@ucw.cz>
4308
4309         * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn.
4310         (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check.
4311         (ipa_get_indirect_edge_target_1): Use opt_for_fn.
4312         (good_cloning_opportunity_p): Likewise.
4313         (ipa-cp gate): Enable ipa-cp with LTO.
4314         * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn.
4315         * ipa.c (symbol_table::remove_unreachable_nodes): Always build type
4316         inheritance.
4317         * ipa-inline-transform.c (inline_transform): Check if there are inlines
4318         to apply even at -O0.
4319         * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn.
4320         (analyze_functions): Build type inheritance graph.
4321         * ipa-inline.c (can_inline_edge_p): Use opt_for_fn.
4322         (want_early_inline_function_p, want_inline_small_function_p):
4323         Likewise.
4324         (check_callers): Likewise.
4325         (edge_badness): Likewise.
4326         (inline_small_functions): Always be ready for indirect inlining
4327         to happend.
4328         (ipa_inline): Always use want_inline_function_to_all_callers_p.
4329         (early_inline_small_functions): Use opt_for_fn.
4330         * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn.
4331         (estimate_function_body_sizes): Likewise.
4332         (compute_inline_parameters): Likewise.
4333         (estimate_edge_devirt_benefit): Likewise.
4334         (inline_analyze_function): Likewise.
4335         * ipa-devirt.c (ipa_devirt): Likewise.
4336         (gate): Use in_lto_p.
4337         * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn.
4338         (try_make_edge_direct_virtual_call): Likewise.
4339         (update_indirect_edges_after_inlining): Likewise.
4340         (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check.
4341         * common.opt (findirect-inlining): Turn into optimization.
4342         * ipa-pure-const.c (add_new_function): Use opt_for_fn.
4343         (pure_const_generate_summary): Likewise.
4344         (gate_pure_const): Always enable with in_lto_p.
4345
4346 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4347
4348         * config/mips/mips.md (compression): Add `micromips32' setting.
4349         (enabled, length): Handle it.
4350         (shift_compression): Replace `micromips' with `micromips32' in
4351         the `compression' attribute.
4352         (*add<mode>3, sub<mode>3): Likewise.
4353
4354 2014-11-18  Maciej W. Rozycki  <macro@codesourcery.com>
4355
4356         * gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
4357         range, a jump otherwise.
4358
4359 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4360
4361         * config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
4362         Split into...
4363         (cortex_a15_gp_to_vfp): ...This.
4364         (cortex_a15_fp_to_gp): ...And this.
4365         Define and comment bypass from vfp operations to fp->gp moves.
4366
4367 2014-11-18  Martin Liska  <mliska@suse.cz>
4368
4369         * var-tracking.c (vt_find_locations): New fibonacci_node is used.
4370
4371 2014-11-18  Martin Liska  <mliska@suse.cz>
4372
4373         * bt-load.c (add_btr_def): New fibonacci_heap is used.
4374         (migrate_btr_defs): Likewise.
4375
4376 2014-11-18  Martin Liska  <mliska@suse.cz>
4377
4378         * tracer.c (tail_duplicate): New fibonacci_heap class is used.
4379
4380 2014-11-18  Martin Liska  <mliska@suse.cz>
4381
4382         * bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
4383         (find_traces): Likewise.
4384         (find_traces_1_round): Likewise.
4385
4386 2014-11-18  Martin Liska  <mliska@suse.cz>
4387
4388         * fibonacci_heap.h: New file.
4389         (fibonacci_heap::insert): Created from fibheap_insert.
4390         (fibonacci_heap::empty): Created from fibheap_empty.
4391         (fibonacci_heap::nodes): Created from fibheap_nodes.
4392         (fibonacci_heap::min_key): Created from fibheap_min_key.
4393         (fibonacci_heap::decrease_key): Created from fibheap_replace_key.
4394         (fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
4395         (fibonacci_heap::extract_min): Created from fibheap_extract_min.
4396         (fibonacci_heap::min): Created from fibheap_min.
4397         (fibonacci_heap::replace_data): Created from fibheap_replace_data.
4398         (fibonacci_heap::delete_node): Created from fibheap_delete_node.
4399         (fibonacci_heap::union_with): Created from fibheap_union.
4400         * ipa-inline.c (update_edge_key): New heap API is used.
4401         (update_caller_keys): Likewise.
4402         (update_callee_keys): Likewise.
4403         (lookup_recursive_calls): Likewise.
4404         (recursive_inlining): Likewise.
4405         (add_new_edges_to_heap): Likewise.
4406         (heap_edge_removal_hook): Likewise.
4407         (inline_small_functions): Likewise.
4408
4409 2014-11-18  Marek Polacek  <polacek@redhat.com>
4410
4411         PR sanitizer/63866
4412         * asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
4413         put it into TYPE_NAME and TYPE_STUB_DECL.
4414         * ubsan.c (ubsan_type_descriptor_type): New variable.
4415         Function renamed to ...
4416         (ubsan_get_type_descriptor_type): ... this.  Cache
4417         return value in ubsan_type_descriptor_type variable.
4418         Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
4419         TYPE_NAME and TYPE_STUB_DECL.
4420         (ubsan_get_source_location_type): Create a TYPE_DECL for
4421         "__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
4422         (ubsan_type_descriptor, ubsan_create_data): Call
4423         ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
4424         Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.
4425
4426 2014-11-18  Felix Yang  <felix.yang@huawei.com>
4427
4428         * config/aarch64/aarch64.c (doloop_end): New pattern.
4429         * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.
4430
4431 2014-11-18  Jason Merrill  <jason@redhat.com>
4432
4433         * tree.c (warn_deprecated_use): Show declaration with inform.
4434
4435 2014-11-18  Richard Biener  <rguenther@suse.de>
4436
4437         PR tree-optimization/63914
4438         * tree-ssa-ccp.c (canonicalize_value): Remove float value
4439         canonicalization.
4440         (valid_lattice_transition): Allow (partial) transition
4441         from NaN to non-NaN if !HONOR_NANS.
4442         (set_lattice_value): Check for valid lattice transitions
4443         only when checking is enabled.
4444
4445 2014-11-18  Bernd Schmidt  <bernds@codesourcery.com>
4446
4447         * config/nvptx/nvptx.c: Include <sstream> directly after "config.h".
4448
4449 2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>
4450
4451         * config/arm/neon-testgen.ml (emit_prologue): Handle new
4452         compile_test_optim argument.
4453         (emit_automatics): Rename to emit_variables. Support variable
4454         indentation of its output.
4455         (compile_test_optim): New function.
4456         (test_intrinsic): Call compile_test_optim.
4457         * config/arm/neon.ml (features): Add Compiler_optim.
4458         (ops): Add Compiler_optim feature to Vbic and Vorn.
4459         (type_in_crypto_only): Replace 'or' by '||'.
4460         (reinterp): Likewise.
4461         (reinterpq): Likewise.
4462
4463 2014-11-18  Alan Lawrence  <alan.lawrence@arm.com>
4464
4465         * config/aarch64/arm_neon.h (vld1_dup_f32, vld1_dup_f64, vld1_dup_p8,
4466         vld1_dup_p16, vld1_dup_s8, vld1_dup_s16, vld1_dup_s32, vld1_dup_s64,
4467         vld1_dup_u8, vld1_dup_u16, vld1_dup_u32, vld1_dup_u64, vld1q_dup_f32,
4468         vld1q_dup_f64, vld1q_dup_p8, vld1q_dup_p16, vld1q_dup_s8, vld1q_dup_s16,
4469         vld1q_dup_s32, vld1q_dup_s64, vld1q_dup_u8, vld1q_dup_u16,
4470         vld1q_dup_u32, vld1q_dup_u64): Replace inline asm with vdup_n_ and
4471         pointer dereference.
4472
4473 2014-11-18  Marc Glisse  <marc.glisse@inria.fr>
4474
4475         * tree.c (element_mode, integer_truep): New functions.
4476         * tree.h (element_mode, integer_truep): Declare them.
4477         * fold-const.c (negate_expr_p, fold_negate_expr, combine_comparisons,
4478         fold_cond_expr_with_comparison, fold_real_zero_addition_p,
4479         fold_comparison, fold_ternary_loc, tree_call_nonnegative_warnv_p,
4480         fold_strip_sign_ops): Use element_mode.
4481         (fold_binary_loc): Use element_mode and element_precision.
4482         * match.pd: Use integer_truep, element_mode, element_precision,
4483         VECTOR_TYPE_P and build_one_cst. Extend some transformations to
4484         vectors. Simplify A/-A.
4485
4486 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4487
4488         * config/arm/arm.md (unaligned_loaddi): Use std::swap instead of
4489         manual swapping implementation.
4490         (movcond_addsi): Likewise.
4491         * config/arm/arm.c (arm_canonicalize_comparison): Likewise.
4492         (arm_select_dominance_cc_mode): Likewise.
4493         (arm_reload_out_hi): Likewise.
4494         (gen_operands_ldrd_strd): Likewise.
4495         (output_move_double): Likewise.
4496         (arm_print_operand_address): Likewise.
4497         (thumb_output_move_mem_multiple): Likewise.
4498         (SWAP_RTX): Delete.
4499
4500 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4501
4502         * config/arm/arm-builtins.c (CONVERT_QUALIFIERS): Delete.
4503         (COPYSIGNF_QUALIFIERS): Likewise.
4504         (CREATE_QUALIFIERS): Likewise.
4505         (DUP_QUALIFIERS): Likewise.
4506         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4507         (FLOAT_NARROW_QUALIFIERS): Likewise.
4508         (REINTERP_QUALIFIERS): Likewise.
4509         (RINT_QUALIFIERS): Likewise.
4510         (SPLIT_QUALIFIERS): Likewise.
4511         (FIXCONV_QUALIFIERS): Likewise.
4512         (SCALARMUL_QUALIFIERS): Likewise.
4513         (SCALARMULL_QUALIFIERS): Likewise.
4514         (SCALARMULH_QUALIFIERS): Likewise.
4515         (SELECT_QUALIFIERS): Likewise.
4516         (VTBX_QUALIFIERS): Likewise.
4517         (SHIFTIMM_QUALIFIERS): Likewise.
4518         (SCALARMAC_QUALIFIERS): Likewise.
4519         (LANEMUL_QUALIFIERS): Likewise.
4520         (LANEMULH_QUALIFIERS): Likewise.
4521         (LANEMULL_QUALIFIERS): Likewise.
4522         (SHIFTACC_QUALIFIERS): Likewise.
4523         (SHIFTINSERT_QUALIFIERS): Likewise.
4524         (VTBL_QUALIFIERS): Likewise.
4525         (LOADSTRUCT_QUALIFIERS): Likewise.
4526         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4527         (STORESTRUCT_QUALIFIERS): Likewise.
4528         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4529         (neon_builtin_type_mode): Delete.
4530         (v8qi_UP): Map to V8QImode.
4531         (v8qi_UP): Map to V8QImode.
4532         (v4hi_UP): Map to V4HImode.
4533         (v4hf_UP): Map to V4HFmode.
4534         (v2si_UP): Map to V2SImode.
4535         (v2sf_UP): Map to V2SFmode.
4536         (di_UP): Map to DImode.
4537         (v16qi_UP): Map to V16QImode.
4538         (v8hi_UP): Map to V8HImode.
4539         (v4si_UP): Map to V4SImode.
4540         (v4sf_UP): Map to V4SFmode.
4541         (v2di_UP): Map to V2DImode.
4542         (ti_UP): Map to TImode.
4543         (ei_UP): Map to EImode.
4544         (oi_UP): Map to OImode.
4545         (neon_itype): Delete.
4546         (neon_builtin_datum): Remove itype, make mode a machine_mode.
4547         (VAR1): Update accordingly.
4548         (arm_init_neon_builtins): Use machine_mode directly.
4549         (neon_dereference_pointer): Likewise.
4550         (arm_expand_neon_args): Use qualifiers to decide operand types.
4551         (arm_expand_neon_builtin): Likewise.
4552         * config/arm/arm_neon_builtins.def: Remap operation type for
4553         many builtins.
4554
4555 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4556
4557         * config/arm/arm-builtins.c (arm_scalar_builtin_types): New.
4558         (enum arm_simd_type): Likewise.
4559         (struct arm_simd_type_info): Likewise
4560         (arm_mangle_builtin_scalar_type): Likewise.
4561         (arm_mangle_builtin_vector_type): Likewise.
4562         (arm_mangle_builtin_type): Likewise.
4563         (arm_simd_builtin_std_type): Likewise.
4564         (arm_lookup_simd_builtin_type): Likewise.
4565         (arm_simd_builtin_type): Likewise.
4566         (arm_init_simd_builtin_types): Likewise.
4567         (arm_init_simd_builtin_scalar_types): Likewise.
4568         (arm_init_neon_builtins): Rewrite using qualifiers.
4569         * config/arm/arm-protos.h (arm_mangle_builtin_type): New.
4570         * config/arm/arm-simd-builtin-types.def: New file.
4571         * config/arm/t-arm (arm-builtins.o): Depend on it.
4572         * config/arm/arm.c (arm_mangle_type): Call arm_mangle_builtin_type.
4573         * config/arm/arm_neon.h (int8x8_t): Use new internal type.
4574         (int16x4_t): Likewise.
4575         (int32x2_t): Likewise.
4576         (float16x4_t): Likewise.
4577         (float32x2_t): Likewise.
4578         (poly8x8_t): Likewise.
4579         (poly16x4_t): Likewise.
4580         (uint8x8_t): Likewise.
4581         (uint16x4_t): Likewise.
4582         (uint32x2_t): Likewise.
4583         (int8x16_t): Likewise.
4584         (int16x8_t): Likewise.
4585         (int32x4_t): Likewise.
4586         (int64x2_t): Likewise.
4587         (float32x4_t): Likewise.
4588         (poly8x16_t): Likewise.
4589         (poly16x8_t): Likewise.
4590         (uint8x16_t): Likewise.
4591         (uint16x8_t): Likewise.
4592         (uint32x4_t): Likewise.
4593         (uint64x2_t): Likewise.
4594
4595 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4596
4597         * gcc/config/arm/arm-builtins.c (arm_type_qualifiers): New.
4598         (neon_itype): Add new types corresponding to the types used in
4599         qualifiers names.
4600         (arm_unop_qualifiers): New.
4601         (arm_bswap_qualifiers): Likewise.
4602         (arm_binop_qualifiers): Likewise.
4603         (arm_ternop_qualifiers): Likewise.
4604         (arm_getlane_qualifiers): Likewise.
4605         (arm_lanemac_qualifiers): Likewise.
4606         (arm_setlane_qualifiers): Likewise.
4607         (arm_combine_qualifiers): Likewise.
4608         (arm_load1_qualifiers): Likewise.
4609         (arm_load1_lane_qualifiers): Likewise.
4610         (arm_store1_qualifiers): Likewise.
4611         (arm_storestruct_lane_qualifiers): Likewise.
4612         (UNOP_QUALIFIERS): Likewise.
4613         (DUP_QUALIFIERS): Likewise.
4614         (SPLIT_QUALIFIERS): Likewise.
4615         (CONVERT_QUALIFIERS): Likewise.
4616         (FLOAT_WIDEN_QUALIFIERS): Likewise.
4617         (FLOAT_NARROW_QUALIFIERS): Likewise.
4618         (RINT_QUALIFIERS): Likewise.
4619         (COPYSIGNF_QUALIFIERS): Likewise.
4620         (CREATE_QUALIFIERS): Likewise.
4621         (REINTERP_QUALIFIERS): Likewise.
4622         (BSWAP_QUALIFIERS): Likewise.
4623         (BINOP_QUALIFIERS): Likewise.
4624         (FIXCONV_QUALIFIERS): Likewise.
4625         (SCALARMUL_QUALIFIERS): Likewise.
4626         (SCALARMULL_QUALIFIERS): Likewise.
4627         (SCALARMULH_QUALIFIERS): Likewise.
4628         (TERNOP_QUALIFIERS): Likewise.
4629         (SELECT_QUALIFIERS): Likewise.
4630         (VTBX_QUALIFIERS): Likewise.
4631         (GETLANE_QUALIFIERS): Likewise.
4632         (SHIFTIMM_QUALIFIERS): Likewise.
4633         (LANEMAC_QUALIFIERS): Likewise.
4634         (SCALARMAC_QUALIFIERS): Likewise.
4635         (SETLANE_QUALIFIERS): Likewise.
4636         (SHIFTINSERT_QUALIFIERS): Likewise.
4637         (SHIFTACC_QUALIFIERS): Likewise.
4638         (LANEMUL_QUALIFIERS): Likewise.
4639         (LANEMULL_QUALIFIERS): Likewise.
4640         (LANEMULH_QUALIFIERS): Likewise.
4641         (COMBINE_QUALIFIERS): Likewise.
4642         (VTBL_QUALIFIERS): Likewise.
4643         (LOAD1_QUALIFIERS): Likewise.
4644         (LOADSTRUCT_QUALIFIERS): Likewise.
4645         (LOAD1LANE_QUALIFIERS): Likewise.
4646         (LOADSTRUCTLANE_QUALIFIERS): Likewise.
4647         (STORE1_QUALIFIERS): Likewise.
4648         (STORESTRUCT_QUALIFIERS): Likewise.
4649         (STORE1LANE_QUALIFIERS): Likewise.
4650         (STORESTRUCTLANE_QUALIFIERS): Likewise.
4651         (neon_builtin_datum): Keep track of qualifiers.
4652         (VAR1): Likewise.
4653
4654 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4655
4656         * config/arm/arm-builtins.c (VAR1): Add a comma.
4657         (VAR2): Rewrite in terms of VAR1.
4658         (VAR3-10): Likewise.
4659         (arm_builtins): Remove leading comma before ARM_BUILTIN_MAX.
4660         * config/arm/arm_neon_builtins.def: Remove trailing commas.
4661
4662 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4663
4664         * config.gcc (extra_objs): Add arm-builtins.o for arm*-*-*.
4665         (target_gtfiles): Add config/arm/arm-builtins.c for arm*-*-*.
4666         * config/arm/arm-builtins.c: New.
4667         * config/arm/t-arm (arm_builtins.o): New.
4668         * config/arm/arm-protos.h (arm_expand_builtin): New.
4669         (arm_builtin_decl): Likewise.
4670         (arm_init_builtins): Likewise.
4671         (arm_atomic_assign_expand_fenv): Likewise.
4672         * config/arm/arm.c (arm_atomic_assign_expand_fenv): Remove prototype.
4673         (arm_init_builtins): Likewise.
4674         (arm_init_iwmmxt_builtins): Likewise
4675         (safe_vector_operand): Likewise
4676         (arm_expand_binop_builtin): Likewise
4677         (arm_expand_unop_builtin): Likewise
4678         (arm_expand_builtin): Likewise
4679         (arm_builtin_decl): Likewise
4680         (insn_flags): Remove static.
4681         (tune_flags): Likewise.
4682         (enum arm_builtins): Move to config/arm/arm-builtins.c.
4683         (arm_init_neon_builtins): Likewise.
4684         (struct builtin_description): Likewise.
4685         (arm_init_iwmmxt_builtins): Likewise.
4686         (arm_init_fp16_builtins): Likewise.
4687         (arm_init_crc32_builtins): Likewise.
4688         (arm_init_builtins): Likewise.
4689         (arm_builtin_decl): Likewise.
4690         (safe_vector_operand): Likewise.
4691         (arm_expand_ternop_builtin): Likewise.
4692         (arm_expand_binop_builtin): Likewise.
4693         (arm_expand_unop_builtin): Likewise.
4694         (neon_dereference_pointer): Likewise.
4695         (arm_expand_neon_args): Likewise.
4696         (arm_expand_neon_builtin): Likewise.
4697         (neon_split_vcombine): Likewise.
4698         (arm_expand_builtin): Likewise.
4699         (arm_builtin_vectorized_function): Likewise.
4700         (arm_atomic_assign_expand_fenv): Likewise.
4701
4702 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4703
4704         * config/arm/t-arm (arm.o): Include arm-protos.h in the recipe.
4705         * config/arm/arm.c (FL_CO_PROC): Move to arm-protos.h.
4706         (FL_ARCH3M): Likewise.
4707         (FL_MODE26): Likewise.
4708         (FL_MODE32): Likewise.
4709         (FL_ARCH4): Likewise.
4710         (FL_ARCH5): Likewise.
4711         (FL_THUMB): Likewise.
4712         (FL_LDSCHED): Likewise.
4713         (FL_STRONG): Likewise.
4714         (FL_ARCH5E): Likewise.
4715         (FL_XSCALE): Likewise.
4716         (FL_ARCH6): Likewise.
4717         (FL_VFPV2): Likewise.
4718         (FL_WBUF): Likewise.
4719         (FL_ARCH6K): Likewise.
4720         (FL_THUMB2): Likewise.
4721         (FL_NOTM): Likewise.
4722         (FL_THUMB_DIV): Likewise.
4723         (FL_VFPV3): Likewise.
4724         (FL_NEON): Likewise.
4725         (FL_ARCH7EM): Likewise.
4726         (FL_ARCH7): Likewise.
4727         (FL_ARM_DIV): Likewise.
4728         (FL_ARCH8): Likewise.
4729         (FL_CRC32): Likewise.
4730         (FL_SMALLMUL): Likewise.
4731         (FL_IWMMXT): Likewise.
4732         (FL_IWMMXT2): Likewise.
4733         (FL_TUNE): Likewise.
4734         (FL_FOR_ARCH2): Likewise.
4735         (FL_FOR_ARCH3): Likewise.
4736         (FL_FOR_ARCH3M): Likewise.
4737         (FL_FOR_ARCH4): Likewise.
4738         (FL_FOR_ARCH4T): Likewise.
4739         (FL_FOR_ARCH5): Likewise.
4740         (FL_FOR_ARCH5T): Likewise.
4741         (FL_FOR_ARCH5E): Likewise.
4742         (FL_FOR_ARCH5TE): Likewise.
4743         (FL_FOR_ARCH5TEJ): Likewise.
4744         (FL_FOR_ARCH6): Likewise.
4745         (FL_FOR_ARCH6J): Likewise.
4746         (FL_FOR_ARCH6K): Likewise.
4747         (FL_FOR_ARCH6Z): Likewise.
4748         (FL_FOR_ARCH6ZK): Likewise.
4749         (FL_FOR_ARCH6T2): Likewise.
4750         (FL_FOR_ARCH6M): Likewise.
4751         (FL_FOR_ARCH7): Likewise.
4752         (FL_FOR_ARCH7A): Likewise.
4753         (FL_FOR_ARCH7VE): Likewise.
4754         (FL_FOR_ARCH7R): Likewise.
4755         (FL_FOR_ARCH7M): Likewise.
4756         (FL_FOR_ARCH7EM): Likewise.
4757         (FL_FOR_ARCH8A): Likewise.
4758         * config/arm/arm-protos.h: Take definitions moved from arm.c.
4759
4760 2014-11-18  James Greenhalgh  <james.greenhalgh@arm.com>
4761
4762         * config/arm/arm.c (arm_expand_neon_builtin): Remove "Magic Word"
4763         parameter, rearrange switch statement accordingly.
4764         (arm_evpc_neon_vrev): Remove "Magic Word".
4765         * config/arm/unspecs.md (unspec): Split many UNSPECs to
4766         rounding, or signed/unsigned variants.
4767         * config/arm/neon.md (vcond<mode><mode>): Remove "Magic Word" code.
4768         (vcondu<mode><mode>): Likewise.
4769         (neon_vadd): Remove "Magic Word" operand.
4770         (neon_vaddl): Remove "Magic Word" operand, convert to use
4771         signed/unsigned iterator.
4772         (neon_vaddw): Likewise.
4773         (neon_vhadd): Likewise, also iterate over "rounding" forms.
4774         (neon_vqadd): Remove "Magic Word" operand, convert to use
4775         signed/unsigned iterator.
4776         (neon_v<r>addhn): Remove "Magic Word" operand, convert to iterate
4777         over "rounding" forms.
4778         (neon_vmul): Remove "Magic Word" operand, iterate over
4779         polynomial/float instruction forms.
4780         (neon_vmla): Remove "Magic Word" operand.
4781         (neon_vfma): Likewise.
4782         (neon_vfms): Likewise.
4783         (neon_vmls): Likewise.
4784         (neon_vmlal): Remove "Magic Word" operand, iterate over
4785         signed/unsigned forms.
4786         (neon_vmlsl): Likewise.
4787         (neon_vqdmulh): Remove "Magic Word" operand, iterate over "rounding"
4788         forms.
4789         (neon_vqdmlal): Remove "Magic Word" operand, iterate over
4790         signed/unsigned forms.
4791         (neon_vqdmlsl): Likewise.
4792         (neon_vmull): Likewise.
4793         (neon_vqdmull): Remove "Magic Word" operand.
4794         (neon_vsub): Remove "Magic Word" operand.
4795         (neon_vsubl): Remove "Magic Word" operand, convert to use
4796         signed/unsigned iterator.
4797         (neon_vsubw): Likewise.
4798         (neon_vhsub): Likewise.
4799         (neon_vqsub): Likewise.
4800         (neon_v<r>subhn): Remove "Magic Word" operand, convert to iterate
4801         over "rounding" forms.
4802         (neon_vceq): Remove "Magic Word" operand.
4803         (neon_vcge): Likewise.
4804         (neon_vcgeu): Likewise.
4805         (neon_vcgt): Likewise.
4806         (neon_vcgtu): Likewise.
4807         (neon_vcle): Likewise.
4808         (neon_vclt): Likewise.
4809         (neon_vcage): Likewise.
4810         (neon_vcagt): Likewise.
4811         (neon_vabd): Remove "Magic Word" operand, iterate over
4812         signed/unsigned forms, and split out...
4813         (neon_vabdf): ...this as new.
4814         (neon_vabdl): Remove "Magic Word" operand, iterate over
4815         signed/unsigned forms.
4816         (neon_vaba): Likewise.
4817         (neon_vmax): Remove "Magic Word" operand, iterate over
4818         signed/unsigned and max/min forms, and split out...
4819         (neon_v<maxmin>f): ...this as new.
4820         (neon_vmin): Delete.
4821         (neon_vpadd): Remove "Magic Word" operand.
4822         (neon_vpaddl): Remove "Magic Word" operand, iterate over
4823         signed/unsigned variants.
4824         (neon_vpadal): Likewise.
4825         (neon_vpmax): Remove "Magic Word" operand, iterate over
4826         signed/unsigned and max/min forms, and split out...
4827         (neon_vp<maxmin>f): ...this as new.
4828         (neon_vpmin): Delete.
4829         (neon_vrecps): Remove "Magic Word" operand.
4830         (neon_vrsqrts): Likewise.
4831         (neon_vabs): Likewise.
4832         (neon_vqabs): Likewise.
4833         (neon_vneg): Likewise.
4834         (neon_vqneg): Likewise.
4835         (neon_vcls): Likewise.
4836         (neon_vcnt): Likewise.
4837         (neon_vrecpe): Likewise.
4838         (neon_vrsqrte): Likewise.
4839         (neon_vmvn): Likewise.
4840         (neon_vget_lane): Likewise.
4841         (neon_vget_laneu): New.
4842         (neon_vget_lanedi): Remove "Magic Word" operand.
4843         (neon_vget_lanev2di): Likewise.
4844         (neon_vcvt): Remove "Magic Word" operand, iterate over
4845         signed/unsigned variants.
4846         (neon_vcvt_n): Likewise.
4847         (neon_vmovn): Remove "Magic Word" operand.
4848         (neon_vqmovn): Remove "Magic Word" operand, iterate over
4849         signed/unsigned variants.
4850         (neon_vmovun): Remove "Magic Word" operand.
4851         (neon_vmovl): Remove "Magic Word" operand, iterate over
4852         signed/unsigned variants.
4853         (neon_vmul_lane): Remove "Magic Word" operand.
4854         (neon_vmull_lane): Remove "Magic Word" operand, iterate over
4855         signed/unsigned variants.
4856         (neon_vqdmull_lane): Remove "Magic Word" operand.
4857         (neon_vqdmulh_lane): Remove "Magic Word" operand, iterate over
4858         rounding variants.
4859         (neon_vmla_lane): Remove "Magic Word" operand.
4860         (neon_vmlal_lane): Remove "Magic Word" operand, iterate over
4861         signed/unsigned variants.
4862         (neon_vqdmlal_lane): Remove "Magic Word" operand.
4863         (neon_vmls_lane): Likewise.
4864         (neon_vmlsl_lane): Remove "Magic Word" operand, iterate over
4865         signed/unsigned variants.
4866         (neon_vqdmlsl_lane): Remove "Magic Word" operand.
4867         (neon_vmul_n): Remove "Magic Word" operand.
4868         (neon_vmull_n): Rename to...
4869         (neon_vmulls_n): ...this, remove "Magic Word" operand.
4870         (neon_vmullu_n): New.
4871         (neon_vqdmull_n): Remove "Magic Word" operand.
4872         (neon_vqdmulh_n): Likewise.
4873         (neon_vqrdmulh_n): New.
4874         (neon_vmla_n): Remove "Magic Word" operand.
4875         (neon_vmls_n): Likewise.
4876         (neon_vmlal_n): Rename to...
4877         (neon_vmlals_n): ...this, remove "Magic Word" operand.
4878         (neon_vmlalu_n): New.
4879         (neon_vqdmlal_n): Remove "Magic Word" operand.
4880         (neon_vmlsl_n): Rename to...
4881         (neon_vmlsls_n): ...this, remove "Magic Word" operand.
4882         (neon_vmlslu_n): New.
4883         (neon_vqdmlsl_n): Remove "Magic Word" operand.
4884         (neon_vrev64): Remove "Magic Word" operand.
4885         (neon_vrev32): Likewise.
4886         (neon_vrev16): Likewise.
4887         (neon_vshl): Remove "Magic Word" operand, iterate over
4888         signed/unsigned and "rounding" forms.
4889         (neon_vqshl): Likewise.
4890         (neon_vshr_n): Likewise.
4891         (neon_vshrn_n): Remove "Magic Word" operand, iterate over
4892         "rounding" forms.
4893         (neon_vqshrn_n): Remove "Magic Word" operand, iterate over
4894         signed/unsigned and "rounding" forms.
4895         (neon_vqshrun_n): Remove "Magic Word" operand, iterate over
4896         "rounding" forms.
4897         (neon_vshl_n): Remove "Magic Word" operand.
4898         (neon_vqshl_n): Remove "Magic Word" operand, iterate over
4899         signed/unsigned variants.
4900         (neon_vqshlu_n): Remove "Magic Word" operand.
4901         (neon_vshll_n): Remove "Magic Word" operand, iterate over
4902         signed/unsigned variants.
4903         (neon_vsra_n): Remove "Magic Word" operand, iterate over
4904         signed/unsigned and "rounding" forms.
4905         * config/arm/iterators.md (VPF): New.
4906         (VADDL): Likewise.
4907         (VADDW): Likewise.
4908         (VHADD): Likewise.
4909         (VQADD): Likewise.
4910         (VADDHN): Likewise.
4911         (VMLAL): Likewise.
4912         (VMLAL_LANE): Likewise.
4913         (VLMSL): Likewise.
4914         (VMLSL_LANE): Likewise.
4915         (VQDMULH): Likewise,
4916         (VQDMULH_LANE): Likewise.
4917         (VMULL): Likewise.
4918         (VMULL_LANE): Likewise.
4919         (VSUBL): Likewise.
4920         (VSUBW): Likewise.
4921         (VHSUB): Likewise.
4922         (VQSUB): Likewise.
4923         (VSUBHN): Likewise.
4924         (VABD): Likewise.
4925         (VABDL): Likewise.
4926         (VMAXMIN): Likewise.
4927         (VMAXMINF): Likewise.
4928         (VPADDL): Likewise.
4929         (VPADAL): Likewise.
4930         (VPMAXMIN): Likewise.
4931         (VPMAXMINF): Likewise.
4932         (VCVT_US): Likewise.
4933         (VCVT_US_N): Likewise.
4934         (VQMOVN): Likewise.
4935         (VMOVL): Likewise.
4936         (VSHL): Likewise.
4937         (VQSHL): Likewise.
4938         (VSHR_N): Likewise.
4939         (VSHRN_N): Likewise.
4940         (VQSHRN_N): Likewise.
4941         (VQSHRUN_N): Likewise.
4942         (VQSHL_N): Likewise.
4943         (VSHLL_N): Likewise.
4944         (VSRA_N): Likewise.
4945         (pf): Likewise.
4946         (sup): Likewise.
4947         (r): Liekwise.
4948         (maxmin): Likewise.
4949         (shift_op): Likewise.
4950         * config/arm/arm_neon_builtins.def (vaddl): Split to...
4951         (vaddls): ...this and...
4952         (vaddlu): ...this.
4953         (vaddw): Split to...
4954         (vaddws): ...this and...
4955         (vaddwu): ...this.
4956         (vhadd): Split to...
4957         (vhadds): ...this and...
4958         (vhaddu): ...this and...
4959         (vrhadds): ...this and...
4960         (vrhaddu): ...this.
4961         (vqadd): Split to...
4962         (vqadds): ...this and...
4963         (vqaddu): ...this.
4964         (vaddhn): Split to itself and...
4965         (vraddhn): ...this.
4966         (vmul): Split to...
4967         (vmulf): ...this and...
4968         (vmulp): ...this.
4969         (vmlal): Split to...
4970         (vmlals): ...this and...
4971         (vmlalu): ...this.
4972         (vmlsl): Split to...
4973         (vmlsls): ...this and...
4974         (vmlslu): ...this.
4975         (vqdmulh): Split to itself and...
4976         (vqrdmulh): ...this.
4977         (vmull): Split to...
4978         (vmullp): ...this and...
4979         (vmulls): ...this and...
4980         (vmullu): ...this.
4981         (vmull_n): Split to...
4982         (vmulls_n): ...this and...
4983         (vmullu_n): ...this.
4984         (vmull_lane): Split to...
4985         (vmulls_lane): ...this and...
4986         (vmullu_lane): ...this.
4987         (vqdmulh_n): Split to itself and...
4988         (vqrdmulh_n): ...this.
4989         (vqdmulh_lane): Split to itself and...
4990         (vqrdmulh_lane): ...this.
4991         (vshl): Split to...
4992         (vshls): ...this and...
4993         (vshlu): ...this and...
4994         (vrshls): ...this and...
4995         (vrshlu): ...this.
4996         (vqshl): Split to...
4997         (vqshls): ...this and...
4998         (vqrshlu): ...this and...
4999         (vqrshls): ...this and...
5000         (vqrshlu): ...this.
5001         (vshr_n): Split to...
5002         (vshrs_n): ...this and...
5003         (vshru_n): ...this and...
5004         (vrshrs_n): ...this and...
5005         (vrshru_n): ...this.
5006         (vshrn_n): Split to itself and...
5007         (vrshrn_n): ...this.
5008         (vqshrn_n): Split to...
5009         (vqshrns_n): ...this and...
5010         (vqshrnu_n): ...this and...
5011         (vqrshrns_n): ...this and...
5012         (vqrshrnu_n): ...this.
5013         (vqshrun_n): Split to itself and...
5014         (vqrshrun_n): ...this.
5015         (vqshl_n): Split to...
5016         (vqshl_s_n): ...this and...
5017         (vqshl_u_n): ...this.
5018         (vshll_n): Split to...
5019         (vshlls_n): ...this and...
5020         (vshllu_n): ...this.
5021         (vsra_n): Split to...
5022         (vsras_n): ...this and...
5023         (vsrau_n): ...this and.
5024         (vrsras_n): ...this and...
5025         (vrsrau_n): ...this and.
5026         (vsubl): Split to...
5027         (vsubls): ...this and...
5028         (vsublu): ...this.
5029         (vsubw): Split to...
5030         (vsubws): ...this and...
5031         (vsubwu): ...this.
5032         (vqsub): Split to...
5033         (vqsubs): ...this and...
5034         (vqsubu): ...this.
5035         (vhsub): Split to...
5036         (vhsubs): ...this and...
5037         (vhsubu): ...this.
5038         (vsubhn): Split to itself and...
5039         (vrsubhn): ...this.
5040         (vabd): Split to...
5041         (vabds): ...this and...
5042         (vabdu): ...this and...
5043         (vabdf): ...this.
5044         (vabdl): Split to...
5045         (vabdls): ...this and...
5046         (vabdlu): ...this.
5047         (vaba): Split to...
5048         (vabas): ...this and...
5049         (vabau): ...this and...
5050         (vabal): Split to...
5051         (vabals): ...this and...
5052         (vabalu): ...this.
5053         (vmax): Split to...
5054         (vmaxs): ...this and...
5055         (vmaxu): ...this and...
5056         (vmaxf): ...this.
5057         (vmin): Split to...
5058         (vmins): ...this and...
5059         (vminu): ...this and...
5060         (vminf): ...this.
5061         (vpmax): Split to...
5062         (vpmaxs): ...this and...
5063         (vpmaxu): ...this and...
5064         (vpmaxf): ...this.
5065         (vpmin): Split to...
5066         (vpmins): ...this and...
5067         (vpminu): ...this and...
5068         (vpminf): ...this.
5069         (vpaddl): Split to...
5070         (vpaddls): ...this and...
5071         (vpaddlu): ...this.
5072         (vpadal): Split to...
5073         (vpadals): ...this and...
5074         (vpadalu): ...this.
5075         (vget_laneu): New.
5076         (vqmovn): Split to...
5077         (vqmovns): ...this and...
5078         (vqmovnu): ...this.
5079         (vmovl): Split to...
5080         (vmovls): ...this and...
5081         (vmovlu): ...this.
5082         (vmlal_lane): Split to...
5083         (vmlals_lane): ...this and...
5084         (vmlalu_lane): ...this.
5085         (vmlsl_lane): Split to...
5086         (vmlsls_lane): ...this and...
5087         (vmlslu_lane): ...this.
5088         (vmlal_n): Split to...
5089         (vmlals_n): ...this and...
5090         (vmlalu_n): ...this.
5091         (vmlsl_n): Split to...
5092         (vmlsls_n): ...this and...
5093         (vmlslu_n): ...this.
5094         (vext): Make type "SHIFTINSERT".
5095         (vcvt): Split to...
5096         (vcvts): ...this and...
5097         (vcvtu): ...this.
5098         (vcvt_n): Split to...
5099         (vcvts_n): ...this and...
5100         (vcvtu_n): ...this.
5101         * config/arm/arm_neon.h (vaddl_s8): Remove "Magic Word".
5102         (vaddl_s16): Likewise.
5103         (vaddl_s32): Likewise.
5104         (vaddl_u8): Likewise.
5105         (vaddl_u16): Likewise.
5106         (vaddl_u32): Likewise.
5107         (vaddw_s8): Likewise.
5108         (vaddw_s16): Likewise.
5109         (vaddw_s32): Likewise.
5110         (vaddw_u8): Likewise.
5111         (vaddw_u16): Likewise.
5112         (vaddw_u32): Likewise.
5113         (vhadd_s8): Likewise.
5114         (vhadd_s16): Likewise.
5115         (vhadd_s32): Likewise.
5116         (vhadd_u8): Likewise.
5117         (vhadd_u16): Likewise.
5118         (vhadd_u32): Likewise.
5119         (vhaddq_s8): Likewise.
5120         (vhaddq_s16): Likewise.
5121         (vhaddq_s32): Likewise.
5122         (vhaddq_u8): Likewise.
5123         (vhaddq_u16): Likewise.
5124         (vrhadd_s8): Likewise.
5125         (vrhadd_s16): Likewise.
5126         (vrhadd_s32): Likewise.
5127         (vrhadd_u8): Likewise.
5128         (vrhadd_u16): Likewise.
5129         (vrhadd_u32): Likewise.
5130         (vrhaddq_s8): Likewise.
5131         (vrhaddq_s16): Likewise.
5132         (vrhaddq_s32): Likewise.
5133         (vrhaddq_u8): Likewise.
5134         (vrhaddq_u16): Likewise.
5135         (vrhaddq_u32): Likewise.
5136         (vqadd_s8): Likewise.
5137         (vqadd_s16): Likewise.
5138         (vqadd_s32): Likewise.
5139         (vqadd_s64): Likewise.
5140         (vqadd_u8): Likewise.
5141         (vqadd_u16): Likewise.
5142         (vqadd_u32): Likewise.
5143         (vqadd_u64): Likewise.
5144         (vqaddq_s8): Likewise.
5145         (vqaddq_s16): Likewise.
5146         (vqaddq_s32): Likewise.
5147         (vqaddq_s64): Likewise.
5148         (vqaddq_u8): Likewise.
5149         (vqaddq_u16): Likewise.
5150         (vqaddq_u32): Likewise.
5151         (vqaddq_u64): Likewise.
5152         (vaddhn_s16): Likewise.
5153         (vaddhn_s32): Likewise.
5154         (vaddhn_s64): Likewise.
5155         (vaddhn_u16): Likewise.
5156         (vaddhn_u32): Likewise.
5157         (vaddhn_u64): Likewise.
5158         (vraddhn_s16): Likewise.
5159         (vraddhn_s32): Likewise.
5160         (vraddhn_s64): Likewise.
5161         (vraddhn_u16): Likewise.
5162         (vraddhn_u32): Likewise.
5163         (vraddhn_u64): Likewise.
5164         (vmul_p8): Likewise.
5165         (vmulq_p8): Likewise.
5166         (vqdmulh_s16): Likewise.
5167         (vqdmulh_s32): Likewise.
5168         (vqdmulhq_s16): Likewise.
5169         (vqdmulhq_s32): Likewise.
5170         (vqrdmulh_s16): Likewise.
5171         (vqrdmulh_s32): Likewise.
5172         (vqrdmulhq_s16): Likewise.
5173         (vqrdmulhq_s32): Likewise.
5174         (vmull_s8): Likewise.
5175         (vmull_s16): Likewise.
5176         (vmull_s32): Likewise.
5177         (vmull_u8): Likewise.
5178         (vmull_u16): Likewise.
5179         (vmull_u32): Likewise.
5180         (vmull_p8): Likewise.
5181         (vqdmull_s16): Likewise.
5182         (vqdmull_s32): Likewise.
5183         (vmla_s8): Likewise.
5184         (vmla_s16): Likewise.
5185         (vmla_s32): Likewise.
5186         (vmla_f32): Likewise.
5187         (vmla_u8): Likewise.
5188         (vmla_u16): Likewise.
5189         (vmla_u32): Likewise.
5190         (vmlaq_s8): Likewise.
5191         (vmlaq_s16): Likewise.
5192         (vmlaq_s32): Likewise.
5193         (vmlaq_f32): Likewise.
5194         (vmlaq_u8): Likewise.
5195         (vmlaq_u16): Likewise.
5196         (vmlaq_u32): Likewise.
5197         (vmlal_s8): Likewise.
5198         (vmlal_s16): Likewise.
5199         (vmlal_s32): Likewise.
5200         (vmlal_u8): Likewise.
5201         (vmlal_u16): Likewise.
5202         (vmlal_u32): Likewise.
5203         (vqdmlal_s16): Likewise.
5204         (vqdmlal_s32): Likewise.
5205         (vmls_s8): Likewise.
5206         (vmls_s16): Likewise.
5207         (vmls_s32): Likewise.
5208         (vmls_f32): Likewise.
5209         (vmls_u8): Likewise.
5210         (vmls_u16): Likewise.
5211         (vmls_u32): Likewise.
5212         (vmlsq_s8): Likewise.
5213         (vmlsq_s16): Likewise.
5214         (vmlsq_s32): Likewise.
5215         (vmlsq_f32): Likewise.
5216         (vmlsq_u8): Likewise.
5217         (vmlsq_u16): Likewise.
5218         (vmlsq_u32): Likewise.
5219         (vmlsl_s8): Likewise.
5220         (vmlsl_s16): Likewise.
5221         (vmlsl_s32): Likewise.
5222         (vmlsl_u8): Likewise.
5223         (vmlsl_u16): Likewise.
5224         (vmlsl_u32): Likewise.
5225         (vqdmlsl_s16): Likewise.
5226         (vqdmlsl_s32): Likewise.
5227         (vfma_f32): Likewise.
5228         (vfmaq_f32): Likewise.
5229         (vfms_f32): Likewise.
5230         (vfmsq_f32): Likewise.
5231         (vsubl_s8): Likewise.
5232         (vsubl_s16): Likewise.
5233         (vsubl_s32): Likewise.
5234         (vsubl_u8): Likewise.
5235         (vsubl_u16): Likewise.
5236         (vsubl_u32): Likewise.
5237         (vsubw_s8): Likewise.
5238         (vsubw_s16): Likewise.
5239         (vsubw_s32): Likewise.
5240         (vsubw_u8): Likewise.
5241         (vsubw_u16): Likewise.
5242         (vsubw_u32): Likewise.
5243         (vhsub_s8): Likewise.
5244         (vhsub_s16): Likewise.
5245         (vhsub_s32): Likewise.
5246         (vhsub_u8): Likewise.
5247         (vhsub_u16): Likewise.
5248         (vhsub_u32): Likewise.
5249         (vhsubq_s8): Likewise.
5250         (vhsubq_s16): Likewise.
5251         (vhsubq_s32): Likewise.
5252         (vhsubq_u8): Likewise.
5253         (vhsubq_u16): Likewise.
5254         (vhsubq_u32): Likewise.
5255         (vqsub_s8): Likewise.
5256         (vqsub_s16): Likewise.
5257         (vqsub_s32): Likewise.
5258         (vqsub_s64): Likewise.
5259         (vqsub_u8): Likewise.
5260         (vqsub_u16): Likewise.
5261         (vqsub_u32): Likewise.
5262         (vqsub_u64): Likewise.
5263         (vqsubq_s8): Likewise.
5264         (vqsubq_s16): Likewise.
5265         (vqsubq_s32): Likewise.
5266         (vqsubq_s64): Likewise.
5267         (vqsubq_u8): Likewise.
5268         (vqsubq_u16): Likewise.
5269         (vqsubq_u32): Likewise.
5270         (vqsubq_u64): Likewise.
5271         (vsubhn_s16): Likewise.
5272         (vsubhn_s32): Likewise.
5273         (vsubhn_s64): Likewise.
5274         (vsubhn_u16): Likewise.
5275         (vsubhn_u32): Likewise.
5276         (vsubhn_u64): Likewise.
5277         (vrsubhn_s16): Likewise.
5278         (vrsubhn_s32): Likewise.
5279         (vrsubhn_s64): Likewise.
5280         (vrsubhn_u16): Likewise.
5281         (vrsubhn_u32): Likewise.
5282         (vrsubhn_u64): Likewise.
5283         (vceq_s8): Likewise.
5284         (vceq_s16): Likewise.
5285         (vceq_s32): Likewise.
5286         (vceq_f32): Likewise.
5287         (vceq_u8): Likewise.
5288         (vceq_u16): Likewise.
5289         (vceq_u32): Likewise.
5290         (vceq_p8): Likewise.
5291         (vceqq_s8): Likewise.
5292         (vceqq_s16): Likewise.
5293         (vceqq_s32): Likewise.
5294         (vceqq_f32): Likewise.
5295         (vceqq_u8): Likewise.
5296         (vceqq_u16): Likewise.
5297         (vceqq_u32): Likewise.
5298         (vceqq_p8): Likewise.
5299         (vcge_s8): Likewise.
5300         (vcge_s16): Likewise.
5301         (vcge_s32): Likewise.
5302         (vcge_f32): Likewise.
5303         (vcge_u8): Likewise.
5304         (vcge_u16): Likewise.
5305         (vcge_u32): Likewise.
5306         (vcgeq_s8): Likewise.
5307         (vcgeq_s16): Likewise.
5308         (vcgeq_s32): Likewise.
5309         (vcgeq_f32): Likewise.
5310         (vcgeq_u8): Likewise.
5311         (vcgeq_u16): Likewise.
5312         (vcgeq_u32): Likewise.
5313         (vcle_s8): Likewise.
5314         (vcle_s16): Likewise.
5315         (vcle_s32): Likewise.
5316         (vcle_f32): Likewise.
5317         (vcle_u8): Likewise.
5318         (vcle_u16): Likewise.
5319         (vcle_u32): Likewise.
5320         (vcleq_s8): Likewise.
5321         (vcleq_s16): Likewise.
5322         (vcleq_s32): Likewise.
5323         (vcleq_f32): Likewise.
5324         (vcleq_u8): Likewise.
5325         (vcleq_u16): Likewise.
5326         (vcleq_u32): Likewise.
5327         (vcgt_s8): Likewise.
5328         (vcgt_s16): Likewise.
5329         (vcgt_s32): Likewise.
5330         (vcgt_f32): Likewise.
5331         (vcgt_u8): Likewise.
5332         (vcgt_u16): Likewise.
5333         (vcgt_u32): Likewise.
5334         (vcgtq_s8): Likewise.
5335         (vcgtq_s16): Likewise.
5336         (vcgtq_s32): Likewise.
5337         (vcgtq_f32): Likewise.
5338         (vcgtq_u8): Likewise.
5339         (vcgtq_u16): Likewise.
5340         (vcgtq_u32): Likewise.
5341         (vclt_s8): Likewise.
5342         (vclt_s16): Likewise.
5343         (vclt_s32): Likewise.
5344         (vclt_f32): Likewise.
5345         (vclt_u8): Likewise.
5346         (vclt_u16): Likewise.
5347         (vclt_u32): Likewise.
5348         (vcltq_s8): Likewise.
5349         (vcltq_s16): Likewise.
5350         (vcltq_s32): Likewise.
5351         (vcltq_f32): Likewise.
5352         (vcltq_u8): Likewise.
5353         (vcltq_u16): Likewise.
5354         (vcltq_u32): Likewise.
5355         (vcage_f32): Likewise.
5356         (vcageq_f32): Likewise.
5357         (vcale_f32): Likewise.
5358         (vcaleq_f32): Likewise.
5359         (vcagt_f32): Likewise.
5360         (vcagtq_f32): Likewise.
5361         (vcalt_f32): Likewise.
5362         (vcaltq_f32): Likewise.
5363         (vtst_s8): Likewise.
5364         (vtst_s16): Likewise.
5365         (vtst_s32): Likewise.
5366         (vtst_u8): Likewise.
5367         (vtst_u16): Likewise.
5368         (vtst_u32): Likewise.
5369         (vtst_p8): Likewise.
5370         (vtstq_s8): Likewise.
5371         (vtstq_s16): Likewise.
5372         (vtstq_s32): Likewise.
5373         (vtstq_u8): Likewise.
5374         (vtstq_u16): Likewise.
5375         (vtstq_u32): Likewise.
5376         (vtstq_p8): Likewise.
5377         (vabd_s8): Likewise.
5378         (vabd_s16): Likewise.
5379         (vabd_s32): Likewise.
5380         (vabd_f32): Likewise.
5381         (vabd_u8): Likewise.
5382         (vabd_u16): Likewise.
5383         (vabd_u32): Likewise.
5384         (vabdq_s8): Likewise.
5385         (vabdq_s16): Likewise.
5386         (vabdq_s32): Likewise.
5387         (vabdq_f32): Likewise.
5388         (vabdq_u8): Likewise.
5389         (vabdq_u16): Likewise.
5390         (vabdq_u32): Likewise.
5391         (vabdl_s8): Likewise.
5392         (vabdl_s16): Likewise.
5393         (vabdl_s32): Likewise.
5394         (vabdl_u8): Likewise.
5395         (vabdl_u16): Likewise.
5396         (vabdl_u32): Likewise.
5397         (vaba_s8): Likewise.
5398         (vaba_s16): Likewise.
5399         (vaba_s32): Likewise.
5400         (vaba_u8): Likewise.
5401         (vaba_u16): Likewise.
5402         (vaba_u32): Likewise.
5403         (vabaq_s8): Likewise.
5404         (vabaq_s16): Likewise.
5405         (vabaq_s32): Likewise.
5406         (vabaq_u8): Likewise.
5407         (vabaq_u16): Likewise.
5408         (vabaq_u32): Likewise.
5409         (vabal_s8): Likewise.
5410         (vabal_s16): Likewise.
5411         (vabal_s32): Likewise.
5412         (vabal_u8): Likewise.
5413         (vabal_u16): Likewise.
5414         (vabal_u32): Likewise.
5415         (vmax_s8): Likewise.
5416         (vmax_s16): Likewise.
5417         (vmax_s32): Likewise.
5418         (vmax_f32): Likewise.
5419         (vmax_u8): Likewise.
5420         (vmax_u16): Likewise.
5421         (vmax_u32): Likewise.
5422         (vmaxq_s8): Likewise.
5423         (vmaxq_s16): Likewise.
5424         (vmaxq_s32): Likewise.
5425         (vmaxq_f32): Likewise.
5426         (vmaxq_u8): Likewise.
5427         (vmaxq_u16): Likewise.
5428         (vmaxq_u32): Likewise.
5429         (vmin_s8): Likewise.
5430         (vmin_s16): Likewise.
5431         (vmin_s32): Likewise.
5432         (vmin_f32): Likewise.
5433         (vmin_u8): Likewise.
5434         (vmin_u16): Likewise.
5435         (vmin_u32): Likewise.
5436         (vminq_s8): Likewise.
5437         (vminq_s16): Likewise.
5438         (vminq_s32): Likewise.
5439         (vminq_f32): Likewise.
5440         (vminq_u8): Likewise.
5441         (vminq_u16): Likewise.
5442         (vminq_u32): Likewise.
5443         (vpadd_s8): Likewise.
5444         (vpadd_s16): Likewise.
5445         (vpadd_s32): Likewise.
5446         (vpadd_f32): Likewise.
5447         (vpadd_u8): Likewise.
5448         (vpadd_u16): Likewise.
5449         (vpadd_u32): Likewise.
5450         (vpaddl_s8): Likewise.
5451         (vpaddl_s16): Likewise.
5452         (vpaddl_s32): Likewise.
5453         (vpaddl_u8): Likewise.
5454         (vpaddl_u16): Likewise.
5455         (vpaddl_u32): Likewise.
5456         (vpaddlq_s8): Likewise.
5457         (vpaddlq_s16): Likewise.
5458         (vpaddlq_s32): Likewise.
5459         (vpaddlq_u8): Likewise.
5460         (vpaddlq_u16): Likewise.
5461         (vpaddlq_u32): Likewise.
5462         (vpadal_s8): Likewise.
5463         (vpadal_s16): Likewise.
5464         (vpadal_s32): Likewise.
5465         (vpadal_u8): Likewise.
5466         (vpadal_u16): Likewise.
5467         (vpadal_u32): Likewise.
5468         (vpadalq_s8): Likewise.
5469         (vpadalq_s16): Likewise.
5470         (vpadalq_s32): Likewise.
5471         (vpadalq_u8): Likewise.
5472         (vpadalq_u16): Likewise.
5473         (vpadalq_u32): Likewise.
5474         (vpmax_s8): Likewise.
5475         (vpmax_s16): Likewise.
5476         (vpmax_s32): Likewise.
5477         (vpmax_f32): Likewise.
5478         (vpmax_u8): Likewise.
5479         (vpmax_u16): Likewise.
5480         (vpmax_u32): Likewise.
5481         (vpmin_s8): Likewise.
5482         (vpmin_s16): Likewise.
5483         (vpmin_s32): Likewise.
5484         (vpmin_f32): Likewise.
5485         (vpmin_u8): Likewise.
5486         (vpmin_u16): Likewise.
5487         (vpmin_u32): Likewise.
5488         (vrecps_f32): Likewise.
5489         (vrecpsq_f32): Likewise.
5490         (vrsqrts_f32): Likewise.
5491         (vrsqrtsq_f32): Likewise.
5492         (vshl_s8): Likewise.
5493         (vshl_s16): Likewise.
5494         (vshl_s32): Likewise.
5495         (vshl_s64): Likewise.
5496         (vshl_u8): Likewise.
5497         (vshl_u16): Likewise.
5498         (vshl_u32): Likewise.
5499         (vshl_u64): Likewise.
5500         (vshlq_s8): Likewise.
5501         (vshlq_s16): Likewise.
5502         (vshlq_s32): Likewise.
5503         (vshlq_s64): Likewise.
5504         (vshlq_u8): Likewise.
5505         (vshlq_u16): Likewise.
5506         (vshlq_u32): Likewise.
5507         (vshlq_u64): Likewise.
5508         (vrshl_s8): Likewise.
5509         (vrshl_s16): Likewise.
5510         (vrshl_s32): Likewise.
5511         (vrshl_s64): Likewise.
5512         (vrshl_u8): Likewise.
5513         (vrshl_u16): Likewise.
5514         (vrshl_u32): Likewise.
5515         (vrshl_u64): Likewise.
5516         (vrshlq_s8): Likewise.
5517         (vrshlq_s16): Likewise.
5518         (vrshlq_s32): Likewise.
5519         (vrshlq_s64): Likewise.
5520         (vrshlq_u8): Likewise.
5521         (vrshlq_u16): Likewise.
5522         (vrshlq_u32): Likewise.
5523         (vrshlq_u64): Likewise.
5524         (vqshl_s8): Likewise.
5525         (vqshl_s16): Likewise.
5526         (vqshl_s32): Likewise.
5527         (vqshl_s64): Likewise.
5528         (vqshl_u8): Likewise.
5529         (vqshl_u16): Likewise.
5530         (vqshl_u32): Likewise.
5531         (vqshl_u64): Likewise.
5532         (vqshlq_s8): Likewise.
5533         (vqshlq_s16): Likewise.
5534         (vqshlq_s32): Likewise.
5535         (vqshlq_s64): Likewise.
5536         (vqshlq_u8): Likewise.
5537         (vqshlq_u16): Likewise.
5538         (vqshlq_u32): Likewise.
5539         (vqshlq_u64): Likewise.
5540         (vqrshl_s8): Likewise.
5541         (vqrshl_s16): Likewise.
5542         (vqrshl_s32): Likewise.
5543         (vqrshl_s64): Likewise.
5544         (vqrshl_u8): Likewise.
5545         (vqrshl_u16): Likewise.
5546         (vqrshl_u32): Likewise.
5547         (vqrshl_u64): Likewise.
5548         (vqrshlq_s8): Likewise.
5549         (vqrshlq_s16): Likewise.
5550         (vqrshlq_s32): Likewise.
5551         (vqrshlq_s64): Likewise.
5552         (vqrshlq_u8): Likewise.
5553         (vqrshlq_u16): Likewise.
5554         (vqrshlq_u32): Likewise.
5555         (vqrshlq_u64): Likewise.
5556         (vshr_n_s8): Likewise.
5557         (vshr_n_s16): Likewise.
5558         (vshr_n_s32): Likewise.
5559         (vshr_n_s64): Likewise.
5560         (vshr_n_u8): Likewise.
5561         (vshr_n_u16): Likewise.
5562         (vshr_n_u32): Likewise.
5563         (vshr_n_u64): Likewise.
5564         (vshrq_n_s8): Likewise.
5565         (vshrq_n_s16): Likewise.
5566         (vshrq_n_s32): Likewise.
5567         (vshrq_n_s64): Likewise.
5568         (vshrq_n_u8): Likewise.
5569         (vshrq_n_u16): Likewise.
5570         (vshrq_n_u32): Likewise.
5571         (vshrq_n_u64): Likewise.
5572         (vrshr_n_s8): Likewise.
5573         (vrshr_n_s16): Likewise.
5574         (vrshr_n_s32): Likewise.
5575         (vrshr_n_s64): Likewise.
5576         (vrshr_n_u8): Likewise.
5577         (vrshr_n_u16): Likewise.
5578         (vrshr_n_u32): Likewise.
5579         (vrshr_n_u64): Likewise.
5580         (vrshrq_n_s8): Likewise.
5581         (vrshrq_n_s16): Likewise.
5582         (vrshrq_n_s32): Likewise.
5583         (vrshrq_n_s64): Likewise.
5584         (vrshrq_n_u8): Likewise.
5585         (vrshrq_n_u16): Likewise.
5586         (vrshrq_n_u32): Likewise.
5587         (vrshrq_n_u64): Likewise.
5588         (vshrn_n_s16): Likewise.
5589         (vshrn_n_s32): Likewise.
5590         (vshrn_n_s64): Likewise.
5591         (vshrn_n_u16): Likewise.
5592         (vshrn_n_u32): Likewise.
5593         (vshrn_n_u64): Likewise.
5594         (vrshrn_n_s16): Likewise.
5595         (vrshrn_n_s32): Likewise.
5596         (vrshrn_n_s64): Likewise.
5597         (vrshrn_n_u16): Likewise.
5598         (vrshrn_n_u32): Likewise.
5599         (vrshrn_n_u64): Likewise.
5600         (vqshrn_n_s16): Likewise.
5601         (vqshrn_n_s32): Likewise.
5602         (vqshrn_n_s64): Likewise.
5603         (vqshrn_n_u16): Likewise.
5604         (vqshrn_n_u32): Likewise.
5605         (vqshrn_n_u64): Likewise.
5606         (vqrshrn_n_s16): Likewise.
5607         (vqrshrn_n_s32): Likewise.
5608         (vqrshrn_n_s64): Likewise.
5609         (vqrshrn_n_u16): Likewise.
5610         (vqrshrn_n_u32): Likewise.
5611         (vqrshrn_n_u64): Likewise.
5612         (vqshrun_n_s16): Likewise.
5613         (vqshrun_n_s32): Likewise.
5614         (vqshrun_n_s64): Likewise.
5615         (vqrshrun_n_s16): Likewise.
5616         (vqrshrun_n_s32): Likewise.
5617         (vqrshrun_n_s64): Likewise.
5618         (vshl_n_s8): Likewise.
5619         (vshl_n_s16): Likewise.
5620         (vshl_n_s32): Likewise.
5621         (vshl_n_s64): Likewise.
5622         (vshl_n_u8): Likewise.
5623         (vshl_n_u16): Likewise.
5624         (vshl_n_u32): Likewise.
5625         (vshl_n_u64): Likewise.
5626         (vshlq_n_s8): Likewise.
5627         (vshlq_n_s16): Likewise.
5628         (vshlq_n_s32): Likewise.
5629         (vshlq_n_s64): Likewise.
5630         (vshlq_n_u8): Likewise.
5631         (vshlq_n_u16): Likewise.
5632         (vshlq_n_u32): Likewise.
5633         (vshlq_n_u64): Likewise.
5634         (vqshl_n_s8): Likewise.
5635         (vqshl_n_s16): Likewise.
5636         (vqshl_n_s32): Likewise.
5637         (vqshl_n_s64): Likewise.
5638         (vqshl_n_u8): Likewise.
5639         (vqshl_n_u16): Likewise.
5640         (vqshl_n_u32): Likewise.
5641         (vqshl_n_u64): Likewise.
5642         (vqshlq_n_s8): Likewise.
5643         (vqshlq_n_s16): Likewise.
5644         (vqshlq_n_s32): Likewise.
5645         (vqshlq_n_s64): Likewise.
5646         (vqshlq_n_u8): Likewise.
5647         (vqshlq_n_u16): Likewise.
5648         (vqshlq_n_u32): Likewise.
5649         (vqshlq_n_u64): Likewise.
5650         (vqshlu_n_s8): Likewise.
5651         (vqshlu_n_s16): Likewise.
5652         (vqshlu_n_s32): Likewise.
5653         (vqshlu_n_s64): Likewise.
5654         (vqshluq_n_s8): Likewise.
5655         (vqshluq_n_s16): Likewise.
5656         (vqshluq_n_s32): Likewise.
5657         (vqshluq_n_s64): Likewise.
5658         (vshll_n_s8): Likewise.
5659         (vshll_n_s16): Likewise.
5660         (vshll_n_s32): Likewise.
5661         (vshll_n_u8): Likewise.
5662         (vshll_n_u16): Likewise.
5663         (vshll_n_u32): Likewise.
5664         (vsra_n_s8): Likewise.
5665         (vsra_n_s16): Likewise.
5666         (vsra_n_s32): Likewise.
5667         (vsra_n_s64): Likewise.
5668         (vsra_n_u8): Likewise.
5669         (vsra_n_u16): Likewise.
5670         (vsra_n_u32): Likewise.
5671         (vsra_n_u64): Likewise.
5672         (vsraq_n_s8): Likewise.
5673         (vsraq_n_s16): Likewise.
5674         (vsraq_n_s32): Likewise.
5675         (vsraq_n_s64): Likewise.
5676         (vsraq_n_u8): Likewise.
5677         (vsraq_n_u16): Likewise.
5678         (vsraq_n_u32): Likewise.
5679         (vsraq_n_u64): Likewise.
5680         (vrsra_n_s8): Likewise.
5681         (vrsra_n_s16): Likewise.
5682         (vrsra_n_s32): Likewise.
5683         (vrsra_n_s64): Likewise.
5684         (vrsra_n_u8): Likewise.
5685         (vrsra_n_u16): Likewise.
5686         (vrsra_n_u32): Likewise.
5687         (vrsra_n_u64): Likewise.
5688         (vrsraq_n_s8): Likewise.
5689         (vrsraq_n_s16): Likewise.
5690         (vrsraq_n_s32): Likewise.
5691         (vrsraq_n_s64): Likewise.
5692         (vrsraq_n_u8): Likewise.
5693         (vrsraq_n_u16): Likewise.
5694         (vrsraq_n_u32): Likewise.
5695         (vrsraq_n_u64): Likewise.
5696         (vabs_s8): Likewise.
5697         (vabs_s16): Likewise.
5698         (vabs_s32): Likewise.
5699         (vabs_f32): Likewise.
5700         (vabsq_s8): Likewise.
5701         (vabsq_s16): Likewise.
5702         (vabsq_s32): Likewise.
5703         (vabsq_f32): Likewise.
5704         (vqabs_s8): Likewise.
5705         (vqabs_s16): Likewise.
5706         (vqabs_s32): Likewise.
5707         (vqabsq_s8): Likewise.
5708         (vqabsq_s16): Likewise.
5709         (vqabsq_s32): Likewise.
5710         (vneg_s8): Likewise.
5711         (vneg_s16): Likewise.
5712         (vneg_s32): Likewise.
5713         (vneg_f32): Likewise.
5714         (vnegq_s8): Likewise.
5715         (vnegq_s16): Likewise.
5716         (vnegq_s32): Likewise.
5717         (vnegq_f32): Likewise.
5718         (vqneg_s8): Likewise.
5719         (vqneg_s16): Likewise.
5720         (vqneg_s32): Likewise.
5721         (vqnegq_s8): Likewise.
5722         (vqnegq_s16): Likewise.
5723         (vqnegq_s32): Likewise.
5724         (vmvn_s8): Likewise.
5725         (vmvn_s16): Likewise.
5726         (vmvn_s32): Likewise.
5727         (vmvn_u8): Likewise.
5728         (vmvn_u16): Likewise.
5729         (vmvn_u32): Likewise.
5730         (vmvn_p8): Likewise.
5731         (vmvnq_s8): Likewise.
5732         (vmvnq_s16): Likewise.
5733         (vmvnq_s32): Likewise.
5734         (vmvnq_u8): Likewise.
5735         (vmvnq_u16): Likewise.
5736         (vmvnq_u32): Likewise.
5737         (vmvnq_p8): Likewise.
5738         (vcls_s8): Likewise.
5739         (vcls_s16): Likewise.
5740         (vcls_s32): Likewise.
5741         (vclsq_s8): Likewise.
5742         (vclsq_s16): Likewise.
5743         (vclsq_s32): Likewise.
5744         (vclz_s8): Likewise.
5745         (vclz_s16): Likewise.
5746         (vclz_s32): Likewise.
5747         (vclz_u8): Likewise.
5748         (vclz_u16): Likewise.
5749         (vclz_u32): Likewise.
5750         (vclzq_s8): Likewise.
5751         (vclzq_s16): Likewise.
5752         (vclzq_s32): Likewise.
5753         (vclzq_u8): Likewise.
5754         (vclzq_u16): Likewise.
5755         (vclzq_u32): Likewise.
5756         (vcnt_s8): Likewise.
5757         (vcnt_u8): Likewise.
5758         (vcnt_p8): Likewise.
5759         (vcntq_s8): Likewise.
5760         (vcntq_u8): Likewise.
5761         (vcntq_p8): Likewise.
5762         (vrecpe_f32): Likewise.
5763         (vrecpe_u32): Likewise.
5764         (vrecpeq_f32): Likewise.
5765         (vrecpeq_u32): Likewise.
5766         (vrsqrte_f32): Likewise.
5767         (vrsqrte_u32): Likewise.
5768         (vrsqrteq_f32): Likewise.
5769         (vrsqrteq_u32): Likewise.
5770         (vget_lane_s8): Likewise.
5771         (vget_lane_s16): Likewise.
5772         (vget_lane_s32): Likewise.
5773         (vget_lane_f32): Likewise.
5774         (vget_lane_u8): Likewise.
5775         (vget_lane_u16): Likewise.
5776         (vget_lane_u32): Likewise.
5777         (vget_lane_p8): Likewise.
5778         (vget_lane_p16): Likewise.
5779         (vget_lane_s64): Likewise.
5780         (vget_lane_u64): Likewise.
5781         (vgetq_lane_s8): Likewise.
5782         (vgetq_lane_s16): Likewise.
5783         (vgetq_lane_s32): Likewise.
5784         (vgetq_lane_f32): Likewise.
5785         (vgetq_lane_u8): Likewise.
5786         (vgetq_lane_u16): Likewise.
5787         (vgetq_lane_u32): Likewise.
5788         (vgetq_lane_p8): Likewise.
5789         (vgetq_lane_p16): Likewise.
5790         (vgetq_lane_s64): Likewise.
5791         (vgetq_lane_u64): Likewise.
5792         (vcvt_s32_f32): Likewise.
5793         (vcvt_f32_s32): Likewise.
5794         (vcvt_f32_u32): Likewise.
5795         (vcvt_u32_f32): Likewise.
5796         (vcvtq_s32_f32): Likewise.
5797         (vcvtq_f32_s32): Likewise.
5798         (vcvtq_f32_u32): Likewise.
5799         (vcvtq_u32_f32): Likewise.
5800         (vcvt_n_s32_f32): Likewise.
5801         (vcvt_n_f32_s32): Likewise.
5802         (vcvt_n_f32_u32): Likewise.
5803         (vcvt_n_u32_f32): Likewise.
5804         (vcvtq_n_s32_f32): Likewise.
5805         (vcvtq_n_f32_s32): Likewise.
5806         (vcvtq_n_f32_u32): Likewise.
5807         (vcvtq_n_u32_f32): Likewise.
5808         (vmovn_s16): Likewise.
5809         (vmovn_s32): Likewise.
5810         (vmovn_s64): Likewise.
5811         (vmovn_u16): Likewise.
5812         (vmovn_u32): Likewise.
5813         (vmovn_u64): Likewise.
5814         (vqmovn_s16): Likewise.
5815         (vqmovn_s32): Likewise.
5816         (vqmovn_s64): Likewise.
5817         (vqmovn_u16): Likewise.
5818         (vqmovn_u32): Likewise.
5819         (vqmovn_u64): Likewise.
5820         (vqmovun_s16): Likewise.
5821         (vqmovun_s32): Likewise.
5822         (vqmovun_s64): Likewise.
5823         (vmovl_s8): Likewise.
5824         (vmovl_s16): Likewise.
5825         (vmovl_s32): Likewise.
5826         (vmovl_u8): Likewise.
5827         (vmovl_u16): Likewise.
5828         (vmovl_u32): Likewise.
5829         (vmul_lane_s16): Likewise.
5830         (vmul_lane_s32): Likewise.
5831         (vmul_lane_f32): Likewise.
5832         (vmul_lane_u16): Likewise.
5833         (vmul_lane_u32): Likewise.
5834         (vmulq_lane_s16): Likewise.
5835         (vmulq_lane_s32): Likewise.
5836         (vmulq_lane_f32): Likewise.
5837         (vmulq_lane_u16): Likewise.
5838         (vmulq_lane_u32): Likewise.
5839         (vmla_lane_s16): Likewise.
5840         (vmla_lane_s32): Likewise.
5841         (vmla_lane_f32): Likewise.
5842         (vmla_lane_u16): Likewise.
5843         (vmla_lane_u32): Likewise.
5844         (vmlaq_lane_s16): Likewise.
5845         (vmlaq_lane_s32): Likewise.
5846         (vmlaq_lane_f32): Likewise.
5847         (vmlaq_lane_u16): Likewise.
5848         (vmlaq_lane_u32): Likewise.
5849         (vmlal_lane_s16): Likewise.
5850         (vmlal_lane_s32): Likewise.
5851         (vmlal_lane_u16): Likewise.
5852         (vmlal_lane_u32): Likewise.
5853         (vqdmlal_lane_s16): Likewise.
5854         (vqdmlal_lane_s32): Likewise.
5855         (vmls_lane_s16): Likewise.
5856         (vmls_lane_s32): Likewise.
5857         (vmls_lane_f32): Likewise.
5858         (vmls_lane_u16): Likewise.
5859         (vmls_lane_u32): Likewise.
5860         (vmlsq_lane_s16): Likewise.
5861         (vmlsq_lane_s32): Likewise.
5862         (vmlsq_lane_f32): Likewise.
5863         (vmlsq_lane_u16): Likewise.
5864         (vmlsq_lane_u32): Likewise.
5865         (vmlsl_lane_s16): Likewise.
5866         (vmlsl_lane_s32): Likewise.
5867         (vmlsl_lane_u16): Likewise.
5868         (vmlsl_lane_u32): Likewise.
5869         (vqdmlsl_lane_s16): Likewise.
5870         (vqdmlsl_lane_s32): Likewise.
5871         (vmull_lane_s16): Likewise.
5872         (vmull_lane_s32): Likewise.
5873         (vmull_lane_u16): Likewise.
5874         (vmull_lane_u32): Likewise.
5875         (vqdmull_lane_s16): Likewise.
5876         (vqdmull_lane_s32): Likewise.
5877         (vqdmulhq_lane_s16): Likewise.
5878         (vqdmulhq_lane_s32): Likewise.
5879         (vqdmulh_lane_s16): Likewise.
5880         (vqdmulh_lane_s32): Likewise.
5881         (vqrdmulhq_lane_s16): Likewise.
5882         (vqrdmulhq_lane_s32): Likewise.
5883         (vqrdmulh_lane_s16): Likewise.
5884         (vqrdmulh_lane_s32): Likewise.
5885         (vmul_n_s16): Likewise.
5886         (vmul_n_s32): Likewise.
5887         (vmul_n_f32): Likewise.
5888         (vmul_n_u16): Likewise.
5889         (vmul_n_u32): Likewise.
5890         (vmulq_n_s16): Likewise.
5891         (vmulq_n_s32): Likewise.
5892         (vmulq_n_f32): Likewise.
5893         (vmulq_n_u16): Likewise.
5894         (vmulq_n_u32): Likewise.
5895         (vmull_n_s16): Likewise.
5896         (vmull_n_s32): Likewise.
5897         (vmull_n_u16): Likewise.
5898         (vmull_n_u32): Likewise.
5899         (vqdmull_n_s16): Likewise.
5900         (vqdmull_n_s32): Likewise.
5901         (vqdmulhq_n_s16): Likewise.
5902         (vqdmulhq_n_s32): Likewise.
5903         (vqdmulh_n_s16): Likewise.
5904         (vqdmulh_n_s32): Likewise.
5905         (vqrdmulhq_n_s16): Likewise.
5906         (vqrdmulhq_n_s32): Likewise.
5907         (vqrdmulh_n_s16): Likewise.
5908         (vqrdmulh_n_s32): Likewise.
5909         (vmla_n_s16): Likewise.
5910         (vmla_n_s32): Likewise.
5911         (vmla_n_f32): Likewise.
5912         (vmla_n_u16): Likewise.
5913         (vmla_n_u32): Likewise.
5914         (vmlaq_n_s16): Likewise.
5915         (vmlaq_n_s32): Likewise.
5916         (vmlaq_n_f32): Likewise.
5917         (vmlaq_n_u16): Likewise.
5918         (vmlaq_n_u32): Likewise.
5919         (vmlal_n_s16): Likewise.
5920         (vmlal_n_s32): Likewise.
5921         (vmlal_n_u16): Likewise.
5922         (vmlal_n_u32): Likewise.
5923         (vqdmlal_n_s16): Likewise.
5924         (vqdmlal_n_s32): Likewise.
5925         (vmls_n_s16): Likewise.
5926         (vmls_n_s32): Likewise.
5927         (vmls_n_f32): Likewise.
5928         (vmls_n_u16): Likewise.
5929         (vmls_n_u32): Likewise.
5930         (vmlsq_n_s16): Likewise.
5931         (vmlsq_n_s32): Likewise.
5932         (vmlsq_n_f32): Likewise.
5933         (vmlsq_n_u16): Likewise.
5934         (vmlsq_n_u32): Likewise.
5935         (vmlsl_n_s16): Likewise.
5936         (vmlsl_n_s32): Likewise.
5937         (vmlsl_n_u16): Likewise.
5938         (vmlsl_n_u32): Likewise.
5939         (vqdmlsl_n_s16): Likewise.
5940         (vqdmlsl_n_s32): Likewise.
5941
5942 2014-11-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5943
5944         * config/arm/arm.c (arm_new_rtx_costs, case PLUS, MINUS):
5945         Add cost of alu.arith in simple SImode case.
5946
5947 2014-11-18  Jiong Wang  <jiong.wang@arm.com>
5948
5949         * lra-eliminations.c (update_reg_eliminate): Relax gcc_assert for fixed
5950         registers.
5951
5952 2014-11-18  Marat Zakirov  <m.zakirov@samsung.com>
5953
5954         * opts.c (finish_options): Disable aggressive opts for sanitizer.  
5955         (common_handle_option): Move code to finish_options.  
5956
5957 2014-11-18  Yury Gribov  <y.gribov@samsung.com>
5958
5959         PR sanitizer/63802
5960         * stor-layout.c (min_align_of_type): Respect user alignment
5961         more.
5962
5963 2014-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
5964
5965         * passes.c (remove_cgraph_node_from_order): New.
5966         (do_per_function_toporder): Register cgraph removal
5967         hook.
5968
5969 2014-11-17  Terry Guo  <terry.guo@arm.com>
5970
5971         * config/arm/arm.c (arm_issue_rate): Return 2 for cortex-m7.
5972         * config/arm/arm.md (generic_sched): Exclude cortex-m7.
5973         (generic_vfp): Likewise.
5974         * config/arm/cortex-m7.md: Pipeline description for cortex-m7.
5975
5976 2014-11-17  Vladimir Makarov  <vmakarov@redhat.com>
5977
5978         PR rtl-optimization/63906
5979         * lra-remat.c (operand_to_remat): Check SP and
5980         frame_pointer_required.
5981
5982 2014-11-17  Mircea Namolaru  <mircea.namolaru@inria.fr>
5983
5984         * doc/invoke.texi (floop-unroll-and-jam): Document
5985         (loop-unroll-jam-size): Likewise.
5986         (loop-unroll-jam-depth): Likewise.
5987         * graphite-optimize-isl.c (getPrevectorMap_full): Modify comment.
5988         (getScheduleForBandList): Replaced unsafe union_map reuse.
5989
5990 2014-11-17  Andrew Pinski  <apinski@cavium.com>
5991
5992         * config/aarch64/thunderx.md: Remove copyright which should not
5993         have been there.
5994
5995 2014-11-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
5996             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5997
5998         * config/rs6000/rs6000.c (RELOAD_REG_AND_M16): Add support for
5999         Altivec style vector loads that ignore the bottom 3 bits of the
6000         address.
6001         (rs6000_debug_addr_mask): New function to print the addr_mask
6002         values if debugging.
6003         (rs6000_debug_print_mode): Call rs6000_debug_addr_mask to print
6004         out addr_mask.
6005         (rs6000_setup_reg_addr_masks): Add support for Altivec style
6006         vector loads that ignore the bottom 3 bits of the address.  Allow
6007         pre-increment and pre-decrement on floating point, even if the
6008         -mupper-regs-{sf,df} options were used.
6009         (rs6000_init_hard_regno_mode_ok): Rework DFmode support if
6010         -mupper-regs-df.  Add support for -mupper-regs-sf.  Rearrange code
6011         placement for direct move support.
6012         (rs6000_option_override_internal): Add checks for -mupper-regs-df
6013         requiring -mvsx, and -mupper-regs-sf requiring -mpower8-vector.
6014         If -mupper-regs, set both -mupper-regs-sf and -mupper-regs-df,
6015         depending on the underlying cpu.
6016         (rs6000_secondary_reload_fail): Add ATTRIBUTE_NORETURN.
6017         (rs6000_secondary_reload_toc_costs): Helper function to identify
6018         costs of a TOC load for secondary reload support.
6019         (rs6000_secondary_reload_memory): Helper function for secondary
6020         reload, to determine if a particular memory operation is directly
6021         handled by the hardware, or if it needs support from secondary
6022         reload to create a valid address.
6023         (rs6000_secondary_reload): Rework code, to be clearer.  If the
6024         appropriate -mupper-regs-{sf,df} is used, use FPR registers to
6025         reload scalar values, since the FPR registers have D-form
6026         addressing. Move most of the code handling memory to the function
6027         rs6000_secondary_reload_memory, and use the reg_addr structure to
6028         determine what type of address modes are supported.  Print more
6029         debug information if -mdebug=addr.
6030         (rs6000_secondary_reload_inner): Rework entire function to be more
6031         general.  Use the reg_addr bits to determine what type of
6032         addressing is supported.
6033         (rs6000_preferred_reload_class): Rework.  Move constant handling
6034         into a single place.  Prefer using FLOAT_REGS for scalar floating
6035         point.
6036         (rs6000_secondary_reload_class): Use a FPR register to move a
6037         value from an Altivec register to a GPR, and vice versa.  Move VSX
6038         handling above traditional floating point.
6039
6040         * config/rs6000/rs6000.md (mov<mode>_hardfloat, FMOVE32 case):
6041         Delete some spaces in the constraints.
6042         (DF->DF move peephole2): Disable if -mupper-regs-{sf,df} to
6043         allow using FPR registers to load/store an Altivec register for
6044         scalar floating point types.
6045         (SF->SF move peephole2): Likewise.
6046         (DFmode splitter): Add a define_split to move floating point
6047         constants to the constant pool before register allocation.
6048         Normally constants are put into the pool immediately, but
6049         -ffast-math delays putting them into the constant pool for the
6050         reciprocal approximation support.
6051         (SFmode splitter): Likewise.
6052
6053         * config/rs6000/rs6000.opt (-mupper-regs-df): Make option public.
6054         (-mupper-regs-sf): Likewise.
6055
6056         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
6057         __UPPER_REGS_DF__ if -mupper-regs-df.  Define __UPPER_REGS_SF__ if
6058         -mupper-regs-sf.
6059         (-mupper-regs): New combination option that sets -mupper-regs-sf
6060         and -mupper-regs-df by default if the cpu supports the instructions.
6061
6062         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6063         -mupper-regs, -mupper-regs-sf, and -mupper-regs-df.
6064
6065         * config/rs6000/predicates.md (memory_fp_constant): New predicate
6066         to return true if the operand is a floating point constant that
6067         must be put into the constant pool, before register allocation
6068         occurs.
6069
6070         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Enable
6071         -mupper-regs-df by default.
6072         (ISA_2_7_MASKS_SERVER): Enable -mupper-regs-sf by default.
6073         (POWERPC_MASKS): Add -mupper-regs-{sf,df} as options set by the
6074         various -mcpu=... options.
6075         (power7 cpu): Enable -mupper-regs-df by default.
6076
6077         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6078         -mupper-regs.
6079
6080 2014-11-17  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6081
6082         * ira-conflicts.c (build_conflict_bit_table): Add the current
6083         object to OBJECTS_LIVE after traversing OBJECTS_LIVE.
6084
6085 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6086
6087         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
6088         (ipa_get_indirect_edge_target): Add SPECULATIVE argument.
6089         (devirtualization_time_bonus): Use it.
6090         (ipcp_discover_new_direct_edges): Likewise.
6091         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Update.
6092         * ipa-prop.h (ipa_get_indirect_edge_target): Update prototype.
6093
6094 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6095
6096         * tree.c (free_lang_data_in_decl): Set DECL_FUNCTION_SPECIFIC_OPTIMIZATION
6097         to optimization_default_node.
6098
6099 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6100
6101         * cgraphunit.c (analyze_functions): Use opt_for_fn.
6102         * cgraph.h (cgraph_node::optimize_for_size_p): Likewise.
6103
6104 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6105
6106         * cgraph.c (symbol_table::create_edge): Use opt_for_fn.
6107         (cgraph_node::cannot_return_p): Likewise.
6108         (cgraph_edge::cannot_lead_to_return_p): Likewise.
6109         (cgraph_edge::maybe_hot_p): Likewise.
6110
6111 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6112
6113         * predict.c (maybe_hot_frequency_p): Use opt_for_fn.
6114         (optimize_function_for_size_p): Likewise.
6115         (probably_never_executed): Likewise; replace cfun by fun.
6116
6117 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6118
6119         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
6120         variant reading from memory and assembling to ld1.
6121
6122         * config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
6123         vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
6124         vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
6125         vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
6126         vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
6127         vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
6128         vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.
6129
6130 2014-11-17  Jason Merrill  <jason@redhat.com>
6131
6132         * tree-inline.c (copy_fn): New.
6133         * tree-inline.h: Declare it.
6134
6135 2014-11-17  Alan Lawrence  <alan.lawrence@arm.com>
6136
6137         * config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
6138         * config/aarch64/aarch64-simd-builtins.def (create): Remove.
6139         * config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
6140         * config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
6141         vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
6142         * config/aarch64/iterators.md (VD1): Remove.
6143
6144 2014-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6145
6146         * config/aarch64/aarch64-cores.def (cortex-a53): Remove
6147         AARCH64_FL_CRYPTO from feature flags.
6148         (cortex-a57): Likewise.
6149         (cortex-a57.cortex-a53): Likewise.
6150
6151 2014-11-17  Jan Hubicka  <hubicka@ucw.cz>
6152
6153         * tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
6154         DECL_FUNCTION_SPECIFIC_TARGET.
6155         * i386.c (ix86_set_current_function): Handle explicit default options.
6156
6157 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6158
6159         * builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
6160         instead of BNDmode.
6161         (expand_builtin_mempcpy_with_bounds): Likewise.
6162         (expand_builtin_memset_with_bounds): Likewise.
6163
6164 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6165
6166         * tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
6167         ipa-ref.h, plugin-api.h.
6168         (get_string_length): Handle calls with bounds.
6169         (adjust_last_stmt): Likewise.
6170         (handle_builtin_strchr): Likewise.
6171         (handle_builtin_strcpy): Likewise.
6172         (handle_builtin_memcpy): Likewise.
6173         (handle_builtin_strcat): Likewise.
6174
6175 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6176
6177         * tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
6178         (chkp_get_nochk_fndecl): New.
6179         (chkp_optimize_string_function_calls): New.
6180         (chkp_opt_execute): Call chkp_optimize_string_function_calls.
6181         * tree-cfg.h (insert_cond_bb): New.
6182         * tree-cfg.c (insert_cond_bb): New.
6183
6184 2014-11-17  Ilya Enkovich  <ilya.enkovich@intel.com>
6185
6186         * tree-core.h (built_in_class): Add builtin codes to be used
6187         by Pointer Bounds Checker for instrumented builtin functions.
6188         * tree-streamer-in.c: Include ipa-chkp.h.
6189         (streamer_get_builtin_tree): Created instrumented decl if
6190         required.
6191         * ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
6192         * ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
6193         function decls.
6194         (chkp_maybe_clone_builtin_fndecl): New.
6195         (chkp_maybe_create_clone): Support builtin function decls.
6196         (chkp_versioning): Clone builtin functions.
6197         * tree-chkp.c (chkp_instrument_normal_builtin): New.
6198         (chkp_add_bounds_to_call_stmt): Support builtin functions.
6199         (chkp_replace_function_pointer): Likewise.
6200         * builtins.c (expand_builtin_memcpy_args): New.
6201         (expand_builtin_memcpy): Call expand_builtin_memcpy_args.
6202         (expand_builtin_memcpy_with_bounds): New.
6203         (expand_builtin_mempcpy_with_bounds): New.
6204         (expand_builtin_mempcpy_args): Add orig_exp arg. Support
6205         BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
6206         (expand_builtin_memset_with_bounds): New.
6207         (expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
6208         (expand_builtin_with_bounds): New.
6209         * builtins.h (expand_builtin_with_bounds): New.
6210         * expr.c (expand_expr_real_1): Support instrumented builtin calls.
6211
6212 2014-11-17  Dodji Seketeli  <dodji@redhat.com>
6213
6214         * gimple.h (gimple_set_visited, gimple_visited_p)
6215         (gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
6216         comments to these accessors.
6217
6218 2014-11-17  Georg-Johann Lay  <avr@gjlay.de>
6219
6220         * config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
6221         Set avr_log_details to "all".
6222
6223 2014-11-17  Richard Biener  <rguenther@suse.de>
6224
6225         PR middle-end/63898
6226         * match.pd: Guard X / CST -> X * CST' transform against
6227         zero CST.
6228
6229 2014-11-17  Terry Guo  <terry.guo@arm.com>
6230
6231         * config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
6232         format.
6233
6234 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
6235
6236         * ifcvt.c (HAVE_cbranchcc4): Define.
6237         (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
6238         Use HAVE_cbranchcc4.
6239
6240 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6241
6242         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
6243         aarch64_convert_mode, aarch64_gen_ccmp_first,
6244         aarch64_gen_ccmp_next): New functions.
6245         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.
6246
6247 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6248
6249         * config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
6250         * aarch64.c (aarch64_nzcv_codes): New data.
6251         (aarch64_ccmp_mode_to_code): New.
6252         (aarch64_print_operand): Output nzcv.
6253         config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
6254         New patterns.
6255         (cstore<mode>4): Handle ccmp_cc_register.
6256         * config/aarch64/predicates.md (const0_operand): New.
6257
6258 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6259
6260         * config/aarch64/aarch64-modes.def: Define ccmp CC mode.
6261         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
6262         extacted from aarch64_get_condition_code.
6263         (aarch64_get_condition_code): Call aarch64_get_condition_code_1.
6264         config/aarch64/predicates.md (ccmp_cc_register): New predicate.
6265
6266 014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6267
6268         * config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
6269         aarch64_ccmp_operand): New constraints.
6270
6271 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6272
6273         * Makefile.in: Add ccmp.o.
6274         * ccmp.c: New file.
6275         * ccmp.h: New file.
6276         * expr.c: include "ccmp.h"
6277         (expand_cond_expr_using_cmove): Handle VOIDmode.
6278         (expand_expr_real_1): Try to expand ccmp.
6279
6280 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6281
6282         * cfgexpand.c (expand_gimple_cond): Check ccmp.
6283         * expmed.c (emit_cstore): Make it global.
6284         * expmed.h: #include "insn-codes.h"
6285         (emit_cstore): New prototype.
6286         * expr.c (expand_operands): Make it global.
6287         * expr.h (expand_operands): New prototype.
6288         * optabs.c (get_rtx_code): Make it global.
6289         * optabs.h (get_rtx_code): New prototype.
6290
6291 2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6292
6293         * target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
6294         * doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6295         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
6296
6297 2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>
6298
6299         PR middle-end/63790
6300         * tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
6301         Always combine comparisons or conversions from booleans.
6302
6303 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6304
6305         * ipa-polymorphic-call.c
6306         (ipa_polymorphic_call_context::speculation_consistent_p): Constify.
6307         (ipa_polymorphic_call_context::meet_speculation_with): New function.
6308         (ipa_polymorphic_call_context::combine_with): Handle types in construction
6309         better.
6310         (ipa_polymorphic_call_context::equal_to): Do not bother about useless
6311         speculation.
6312         (ipa_polymorphic_call_context::meet_with): New function.
6313         * cgraph.h (class ipa_polymorphic_call_context): Add
6314         meet_width, meet_speculation_with; constify speculation_consistent_p.
6315         * ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
6316         context.
6317         (propagate_context_accross_jump_function): Likewise; be more cureful.
6318         about set_contains_variable.
6319         (ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
6320         (find_more_scalar_values_for_callers_subset): Fix.
6321         (find_more_contexts_for_caller_subset): Perform meet operation.
6322
6323 2014-11-16  Jan Hubicka  <hubicka@ucw.cz>
6324
6325         * passes.c (execute_one_pass): Do not apply all transforms prior
6326         every simple IPA pass.
6327         * cgraphunit.c: Do not include fibheap.h
6328         (expand_thunk): Use get_untransformed_body.
6329         (cgraph_node::expand): Likewise.
6330         * tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
6331         * cgraph.c (release_function_body): Do not push cfun when CFG is not there.
6332         (cgraph_node::get_untransformed_body): Break out from ...
6333         (cgraph_node::get_body): ... here; add code to apply all transforms.
6334         * cgraph.h (cgraph_node): Add get_untransformed_body.
6335         * ipa-icf.c (sem_function::init): Use get_untransformed_body.
6336         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
6337         * tree-inline.c (expand_call_inline): LIkewise.
6338         * i386.c (ix86_reset_to_default_globals): Break out from ...
6339         (ix86_set_current_function): ... here;
6340         (ix86_reset_previous_fndecl): Use it.
6341         (ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.
6342
6343 2014-11-16  Eric Botcazou  <ebotcazou@adacore.com>
6344
6345         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
6346         * doc/tm.texi: Regenerate.
6347
6348 2014-11-16  Uros Bizjak  <ubizjak@gmail.com>
6349
6350         * config/sh/sh.c: Do not include algorithm.
6351         (sh_emit_scc_to_t): Replace open-coded swap with std::swap
6352         to swap values.
6353         (sh_emit_compare_and_branch): Ditto.
6354         (sh_emit_compare_and_set): Ditto.
6355         * config/sh/sh.md (replacement peephole2): Ditto.
6356         (cstore4_media): Ditto.
6357         (*fmasf4): Ditto.
6358
6359 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6360
6361         * lra-remat.c (cand_transf_func): Process regno for
6362         rematerialization too.
6363         * lra.c (lra): Switch on rematerialization pass.
6364
6365 2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>
6366
6367         * lra.c (lra): Switch off rematerialization pass.
6368
6369 2014-11-15  Marc Glisse  <marc.glisse@inria.fr>
6370
6371         * config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
6372         _mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
6373         instead of builtins.
6374         * config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
6375         typedefs.
6376         (_mm_sqrt_sd): Fix comment.
6377         (_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
6378         _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
6379         _mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
6380         _mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
6381         _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
6382         _mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
6383         _mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
6384         _mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
6385         Use vector extensions instead of builtins.
6386         * config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
6387         _mm_mullo_epi32): Likewise.
6388         * config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
6389         New typedefs.
6390         (_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
6391         _mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
6392         Use vector extensions instead of builtins.
6393         * config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
6394         _mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
6395         _mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
6396         _mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
6397         _mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
6398         _mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
6399         _mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
6400         * config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
6401         New typedefs.
6402         (_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
6403         _mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
6404         _mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
6405         _mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
6406         _mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
6407         _mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
6408         _mm512_div_ps): Use vector extensions instead of builtins.
6409         * config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
6410         _mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
6411         * config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
6412         * config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
6413         Likewise.
6414
6415 2014-11-15  Jan Hubicka <hubicka@ucw.cz>
6416
6417         * lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
6418         * lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
6419         * optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
6420         * opth-gen.awk: Add prototype of cl_optimization_hash.
6421         * tree-streamer-in.c (unpack_ts_optimization): Remove.
6422         (streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
6423         * tree-streamer-out.c (pack_ts_optimization): Remove.
6424         (streamer_pack_tree_bitfields): Use cl_optimization_stream_out.
6425
6426 2014-11-15  Mircea Namolaru  <mircea.namolaru@inria.fr>
6427
6428         * common.opt (flag_loop_unroll_and_jam): New flag.
6429         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE): Parameter for unroll and
6430         jam flag.
6431         (PARAM_LOOP_UNROLL_JAM_DEPTH): Likewise.
6432         * graphite-poly.h (struct poly_bb:map_sepclass): New field
6433         * graphite-poly.c (new_poly_bb): Initialization for new field.
6434         (apply_poly_transforms): Support for unroll and jam flag.
6435         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass): Compute the
6436         separation class.
6437         (generate_luj_sepclass_opt): Build the separation class option.
6438         (generate_luj_options): Set unroll and jam options.
6439         (set_options): Support for unroll and jam options.
6440         (scop_to_isl_ast): Likewise
6441         * graphite-optimize-isl.c (getPrevectorMap_full): New function for
6442         computing the separating class map.
6443         (optimize_isl): Support for the separating class map.
6444         (apply_schedule_map_to_scop): Likewise.
6445         (getScheduleMap): Likewise.
6446         (getScheduleForBand): Likewise.
6447         (getScheduleForBandList): Likewise.
6448         * graphite.c (gate_graphite_transforms): Add unroll and jam flag.
6449         * toplev.c (process_options) Likewise.
6450
6451 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6452
6453         * tree-cfg.c (replace_loop_annotate_in_block): New function extracted
6454         from...
6455         (replace_loop_annotate): ...here.  Call it on the header and on the
6456         latch block, if any.  Restore proper behavior of final cleanup.
6457
6458 2014-11-15  Eric Botcazou  <ebotcazou@adacore.com>
6459
6460         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
6461         for max-completely-peeled-insns limit.
6462
6463 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6464
6465         * ipa-prop.h (ipa_known_type_data): Remove.
6466         (ipa_binfo_from_known_type_jfunc): Remove.
6467
6468 2014-11-14  Andrew Pinski  <apinski@cavium.com>
6469
6470         * config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
6471         over to thunderx.
6472         * config/aarch64/aarch64.md: Include thunderx.md.
6473         (generic_sched): Set to no for thunderx.
6474         * config/aarch64/thunderx.md: New file.
6475
6476 2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6477
6478         * config/rs6000/predicates.md (easy_fp_constant): Delete redunant
6479         tests for 0.0.
6480
6481         * config/rs6000/vector.md (VEC_R): Move secondary reload support
6482         insns to rs6000.md from vector.md.
6483         (reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
6484         (reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
6485         (vec_reload_and_plus_<mptrsize>): Likewise.
6486
6487         * config/rs6000/rs6000.md (Fa): New mode attribute to give
6488         constraint for the Altivec registers for a type.
6489         (RELOAD): New mode iterator for all of the types that have
6490         secondary reload address support to load up a base register.
6491         (extendsfdf2_fpr): Use correct constraint.
6492         (copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
6493         instruction.
6494         (floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
6495         Generate the non-VSX instruction if all registers were FPRs.  Do
6496         not use the patterns in vsx.md for scalar operations.
6497         (floatsi<mode>2_lfiwax_mem): Likewise.
6498         (floatunssi<mode>2_lfiwzx): Likewise.
6499         (floatunssi<mode>2_lfiwzx_mem): Likewise.
6500         (fix_trunc<mode>di2_fctidz): Likewise.
6501         (fixuns_trunc<mode>di2_fctiduz): Likewise.
6502         (fctiwz_<mode>): Likewise.
6503         (fctiwuz_<mode>): Likewise.
6504         (friz): Likewise.
6505         (floatdidf2_fpr): Likewise.
6506         (floatdidf2_mem): Likewise.
6507         (floatunsdidf2): Likewise.
6508         (floatunsdidf2_fcfidu): Likewise.
6509         (floatunsdidf2_mem): Likewise.
6510         (floatdisf2_fcfids): Likewise.
6511         (floatdisf2_mem): Likewise.
6512         (floatdisf2_internal1): Add explicit test for not FCFIDS to make
6513         it more obvious that the code is for pre-ISA 2.06 machines.
6514         (floatdisf2_internal2): Likewise.
6515         (floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
6516         Generate the non-VSX instruction if all registers were FPRs.  Do
6517         not use the patterns in vsx.md for scalar operations.
6518         (floatunsdisf2_mem): Likewise.
6519         (reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
6520         handlers here from vector.md, and expand the types we generate
6521         reload handlers for.
6522         (reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
6523         (vec_reload_and_plus_<mptrsize>): Likewise.
6524
6525         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
6526         vector forms of the instructions.  Move VSX scalar forms to
6527         rs6000.md, and add support for -mupper-regs-sf.
6528         (vsx_floatuns<VSi><mode>2): Likewise.
6529         (vsx_fix_trunc<mode><VSi>2): Likewise.
6530         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
6531         (vsx_float_fix_<mode>2): Delete DF version, rename to
6532         vsx_float_fix_v2df2.
6533         (vsx_float_fix_v2df2): Likewise.
6534
6535 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6536
6537         * ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
6538         (ipa_pass_through_data): Removed field type_preserved.
6539         (ipa_ancestor_jf_data): removed fields type and type_preserved.
6540         (ipa_jump_func): Removed field known_type.
6541         (ipa_get_jf_known_type_offset): Removed.
6542         (ipa_get_jf_known_type_base_type): Likewise.
6543         (ipa_get_jf_known_type_component_type): Likewise.
6544         (ipa_get_jf_ancestor_type): Likewise.
6545         * ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
6546         (ipa_get_jf_pass_through_result): Likewise.
6547         (ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
6548         (values_equal_for_ipcp_p): Removed BINFO handling.
6549         (ipa_get_indirect_edge_target_1): Updated comment.
6550         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
6551         of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
6552         (ipa_set_jf_known_type): Removed.
6553         (ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
6554         all callers.
6555         (ipa_set_jf_arith_pass_through): Likewise.
6556         (ipa_set_ancestor_jf): Likewise.
6557         (ipa_binfo_from_known_type_jfunc): Removed.
6558         (prop_type_change_info): Removed fields known_current_type and
6559         multiple_types_encountered.
6560         (extr_type_from_vtbl_ptr_store): Removed.
6561         (check_stmt_for_type_change): Do not attempt to identify changed type.
6562         (detect_type_change_from_memory_writes): Do not set the removed fields,
6563         always set jfunc to unknown.
6564         (compute_complex_assign_jump_func): Do not detect dynamic type change.
6565         (compute_complex_ancestor_jump_func): Likewise.
6566         (compute_known_type_jump_func): Removed.
6567         (ipa_compute_jump_functions_for_edge): Do not detect dynamic type
6568         change.  Do not comute known type jump functions.
6569         (combine_known_type_and_ancestor_jfs): Removed.
6570         (update_jump_functions_after_inlining): Removed handling of
6571         IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
6572         (ipa_write_jump_function): Do not stream removed fields or known type
6573         jump functions.
6574         (ipa_read_jump_function): Likewise.
6575
6576 2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
6577
6578         * lra-int.h (lra_create_live_ranges): Add parameter.
6579         * lra-lives.c (temp_bitmap): Move higher.
6580         (initiate_live_solver): Move temp_bitmap initialization into
6581         lra_live_ranges_init.
6582         (finish_live_solver): Move temp_bitmap clearing into
6583         live_ranges_finish.
6584         (process_bb_lives): Add parameter.  Use it to control live info
6585         update and dead insn elimination.  Pass it to mark_regno_live and
6586         mark_regno_dead.
6587         (lra_create_live_ranges): Add parameter.  Pass it to
6588         process_bb_lives.
6589         (lra_live_ranges_init, lra_live_ranges_finish): See changes in
6590         initiate_live_solver and finish_live_solver.
6591         * lra-remat.c (do_remat): Process insn non-operand hard regs too.
6592         Use temp_bitmap to update avail_cands.
6593         * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
6594         check with lra_need_for_spill_p after live range pass.  Switch on
6595         rematerialization pass.
6596
6597 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6598
6599         * ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
6600         agg_preserved flag instead.
6601         (ipa_get_jf_ancestor_type_preserved): Likewise.
6602         (ipa_node_params): Rename known_vals to known_csts, update all users.
6603         New field known_contexts.
6604         (ipa_get_indirect_edge_target): Update prototype.
6605         (ipcp_poly_ctx_values_pool): Declare.
6606         (ipa_context_from_jfunc): Likewise.
6607         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
6608         * cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
6609         parameter newline of method dump.
6610         * ipa-cp.c (ctxlat): New field.
6611         (ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
6612         (ipcp_poly_ctx_values_pool):New variable.
6613         (ipa_get_poly_ctx_lat): New function.
6614         (print_ipcp_constant_value): New overloaded function for contexts.
6615         (print_all_lattices): Also print contexts.
6616         (ipa_topo_info): New field contexts;
6617         (set_all_contains_variable): Also set the flag in the context lattice.
6618         (initialize_node_lattices): Likewise for flag bottom.
6619         (ipa_get_jf_ancestor_result): Removed BINFO handling.
6620         (ipa_value_from_jfunc): Likewise.
6621         (ipa_context_from_jfunc): New function.
6622         (values_equal_for_ipcp_p): New overloaded function for contexts.
6623         (allocate_and_init_ipcp_value): Construct the value.
6624         (allocate_and_init_ipcp_value): New overloaded function for contexts.
6625         (propagate_scalar_accross_jump_function): Removed handling of
6626         KNOWN_TYPE jump functions.
6627         (propagate_context_accross_jump_function): New function.
6628         (propagate_constants_accross_call): Also propagate contexts.
6629         (ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
6630         (ipa_get_indirect_edge_target): Likewise.
6631         (devirtualization_time_bonus): Likewise.
6632         (gather_context_independent_values): Create and populate known_contexts
6633         vector rather than known_binfos.
6634         (perform_estimation_of_a_value): Work on contexts rather than BINFOs.
6635         (estimate_local_effects): Likewise.
6636         (add_all_node_vals_to_toposort): Also add contexts to teir topological
6637         sort.
6638         (ipcp_propagate_stage): Also propagate effects of contexts.
6639         (ipcp_discover_new_direct_edges): Receive and pass known_contexts to
6640         ipa_get_indirect_edge_target_1.
6641         (cgraph_edge_brings_value_p): New overloaded function for contexts.
6642         (create_specialized_node): Work on contexts rather than BINFOs.
6643         (find_more_contexts_for_caller_subset): New function.
6644         (known_contexts_useful_p): New function.
6645         (copy_useful_known_contexts): Likewise.
6646         (modify_known_vectors_with_val): Likewise.
6647         (ipcp_val_in_agg_replacements_p): Renamed to
6648         ipcp_val_agg_replacement_ok_p, return true for all offset indicating
6649         non-aggregate.
6650         (ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
6651         (decide_about_value): Work on contexts rather than BINFOs.
6652         (decide_whether_version_node): Likewise.
6653         (ipcp_driver): Initialize the new alloc pool.
6654         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
6655         printing of edge contexts.
6656         (ipa_set_ancestor_jf): Replace assert with conditional setting of
6657         type_preserved to false.
6658         (update_jump_functions_after_inlining): Use access function instead of
6659         reading agg_preserved directly.  Store combined context in the ancestor
6660         case.
6661         (try_make_edge_direct_virtual_call): Work on contexts rather than
6662         BINFOs.
6663         (update_indirect_edges_after_inlining): Get context from
6664         ipa_context_from_jfunc.
6665         (ipa_free_node_params_substructures): Free also known_contexts.
6666         (ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
6667         (ipa_free_all_structures_after_iinln): Likewise.
6668         * ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
6669         contexts rather than BINFOs.
6670         (estimate_edge_devirt_benefit): Likewise.
6671         (estimate_edge_size_and_time): Likewise.
6672         (estimate_calls_size_and_time): Likewise.
6673         (estimate_node_size_and_time): Likewise.
6674         (estimate_ipcp_clone_size_and_time): Likewise.
6675         (do_estimate_edge_time): Likewise.
6676         (do_estimate_edge_size): Likewise.
6677         (do_estimate_edge_hints): Likewise.
6678         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
6679         parameter newline, ouput newline only when it is set.
6680         (ipa_polymorphic_call_context::equal_to): New method.
6681
6682 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6683
6684         * ipa-cp.c (ipcp_value_source): Converted to a template class.  All
6685         users converted to the same specialization as the using class/function
6686         or specialization on tree.
6687         (ipcp_value): Likewise.
6688         (ipcp_lattice): Likewise.
6689         (ipcp_agg_lattice): Now derived from tree specialization of
6690         ipcp_lattice.
6691         (values_topo): Moved to new class value_topo_info.
6692         (ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
6693         Updated all callers.
6694         (print_lattice): Turned into ipcp_lattice::print.  Updated all
6695         callers.
6696         (value_topo_info): New class template.
6697         (ipa_topo_info): New field constants.  New constructor.
6698         (build_toporder_info): Do not clear stack_top, only checkign assert
6699         it.
6700         (set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
6701         Updated all callers.
6702         (set_lattice_contains_variable): Turned into
6703         ipcp_lattice::set_contains_variable.  Updated all callers.
6704         (add_value_source): Turned into ipcp_value::add_source.  Updated all
6705         callers.
6706         (allocate_and_init_ipcp_value): New function.
6707         (add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
6708         parameter got default a value.  Updated all callers.
6709         (add_scalar_value_to_lattice): Removed, users converted to using
6710         ipcp_lattice::add_value with default value of the last parameter.
6711         (add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
6712         all callers.
6713         (propagate_effects): Made method of value_topo_info.
6714         (cgraph_edge_brings_value_p): Now a template function.
6715         (get_info_about_necessary_edges): Likewise.
6716         (gather_edges_for_value): Likewise.
6717         (perhaps_add_new_callers): Likewise.
6718         (decide_about_value): Likewise.
6719         * ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
6720
6721 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6722
6723         * doc/install.texi (--with-diagnostics-color=): Document.
6724
6725         * tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
6726         IFN_GOMP_SIMD_LANE without lhs as useless.
6727
6728         * ipa-pure-const.c (struct funct_state_d): Add can_free field.
6729         (varying_state): Add true for can_free.
6730         (check_call): For builtin or internal !nonfreeing_call_p set
6731         local->can_free.
6732         (check_stmt): For asm volatile and asm with "memory" set
6733         local->can_free.
6734         (analyze_function): Clear local->can_free initially, continue
6735         calling check_stmt until all flags are computed, dump can_free
6736         flag.
6737         (pure_const_write_summary): Write can_free flag.
6738         (pure_const_read_summary): Read it back.
6739         (propagate_pure_const): Propagate also can_free flag, set
6740         w->nonfreeing_fn if it is false after propagation.
6741         * cgraph.h (cgraph_node): Add nonfreeing_fn member.
6742         * gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
6743         (nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
6744         Also return true for IFN_ABNORMAL_DISPATCHER.
6745         * cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
6746         * lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
6747         (input_overwrite_node): Read it back.
6748
6749 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6750             Marek Polacek  <polacek@redhat.com>
6751
6752         * sanopt.c: Include tree-ssa-operands.h.
6753         (struct sanopt_info): Add has_freeing_call_p,
6754         has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
6755         imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
6756         being_visited_p fields.
6757         (struct sanopt_ctx): Add asan_check_map field.
6758         (imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
6759         maybe_optimize_asan_check_ifn): New functions.
6760         (sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
6761         internal calls.
6762         (pass_sanopt::execute): Call sanopt_optimize even for
6763         -fsanitize=address.
6764         * gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
6765         internal calls.
6766
6767 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6768
6769         * tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
6770         'if (extract_scalar_result)' to the only place that it is true.
6771
6772 2014-11-14  H.J. Lu  <hongjiu.lu@intel.com>
6773
6774         * config.gcc (default_gnu_indirect_function): Set to yes
6775         for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
6776         Android nor uclibc.
6777
6778 2014-11-14  Felix Yang  <felix.yang@huawei.com>
6779             Jiji Jiang  <jiangjiji@huawei.com>
6780
6781         * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
6782         VALL mode iterator instead of VALLDI.
6783
6784 2014-11-14  Jan Hubicka  <hubicka@ucw.cz>
6785
6786         * optc-save-gen.awk: Output cl_target_option_eq,
6787         cl_target_option_hash, cl_target_option_stream_out,
6788         cl_target_option_stream_in functions.
6789         * opth-gen.awk: Output prototypes for
6790         cl_target_option_eq and cl_target_option_hash.
6791         * lto-streamer.h (cl_target_option_stream_out,
6792         cl_target_option_stream_in): Declare.
6793         * tree.c (cl_option_hash_hash): Use cl_target_option_hash.
6794         (cl_option_hash_eq): Use cl_target_option_eq.
6795         * tree-streamer-in.c (unpack_value_fields): Stream in
6796         TREE_TARGET_OPTION.
6797         * lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
6798         DECL_FUNCTION_SPECIFIC_TARGET.
6799         (hash_tree): Hash TREE_TARGET_OPTION; visit
6800         DECL_FUNCTION_SPECIFIC_TARGET.
6801         * tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
6802         TS_TARGET_OPTION.
6803         (streamer_write_tree_body): Output TS_TARGET_OPTION.
6804
6805 2014-11-14  Richard Biener  <rguenther@suse.de>
6806
6807         * gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
6808         valueization hook defaulted to no_follow_ssa_edges.
6809         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
6810         2nd valueization hook to gimple_simplify.
6811         * tree-ssa-ccp.c (valueize_op_1): New function to be
6812         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6813         (ccp_fold): Adjust.
6814         * tree-vrp.c (vrp_valueize_1): New function to be
6815         used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
6816         (vrp_visit_assignment_or_call): Adjust.
6817
6818 2014-11-14  Marek Polacek  <polacek@redhat.com>
6819
6820         * fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
6821         that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
6822         folding with TYPE_OVERFLOW_SANITIZED.
6823
6824 2014-11-14  Marek Polacek  <polacek@redhat.com>
6825
6826         PR sanitizer/63839
6827         * asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
6828         ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
6829         * builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
6830         Define.
6831         * builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
6832         instrument BUILT_IN_UNREACHABLE here.
6833         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
6834         const.
6835         * sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
6836         * tree-ssa-ccp.c (optimize_unreachable): Bail out if
6837         SANITIZE_UNREACHABLE.
6838         * ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
6839         * ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
6840
6841 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6842
6843         * config/rs6000/vector.md (vec_shl_<mode>): Remove.
6844         (vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
6845
6846 2014-11-14  Alan Lawrence  <alan.lawrence@arm.com>
6847
6848         * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
6849         BYTES_BIG_ENDIAN.
6850         * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
6851         vect_create_epilog_for_reduction): Likewise.
6852         * doc/md.texi (vec_shr_m): Clarify direction of shifting.
6853
6854 2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6855
6856         PR target/63724
6857         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
6858         numerical immediate handling to...
6859         (aarch64_internal_mov_immediate): ...this. New.
6860         (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
6861         (aarch64_mov_operand_p): Relax predicate.
6862         * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
6863         (*movsi_aarch64): Turn into define_insn_and_split and new alternative
6864         for 'n'.
6865         (*movdi_aarch64): Likewise.
6866
6867 2014-11-14  Richard Biener  <rguenther@suse.de>
6868
6869         * match.pd: Implement more binary patterns exercised by
6870         fold_stmt.
6871         * fold-const.c (sing_bit_p): Export.
6872         (exact_inverse): Likewise.
6873         (fold_binary_loc): Remove patterns here.
6874         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
6875         * fold-const.h (sing_bit_p): Declare.
6876         (exact_inverse): Likewise.
6877
6878 2014-11-14  Marek Polacek  <polacek@redhat.com>
6879
6880         * tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
6881
6882 2014-11-14  Richard Biener  <rguenther@suse.de>
6883
6884         * genmatch.c (add_operator): Allow CONSTRUCTOR.
6885         (dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
6886         (parser::parse_op): Allow to iterate over predicates.
6887
6888 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
6889
6890         * configure.ac (--with-diagnostics-color): New configure
6891         option, default to --with-diagnostics-color=auto.
6892         * toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
6893         to determine -fdiagnostics-color= option default.
6894         * doc/invoke.texi (-fdiagnostics-color=): Document new
6895         default.
6896         * configure: Regenerated.
6897         * config.in: Regenerated.
6898
6899 2014-11-13  Teresa Johnson  <tejohnson@google.com>
6900
6901         PR tree-optimization/63841
6902         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
6903
6904 2014-11-14  Bin Cheng  <bin.cheng@arm.com>
6905
6906         * timevar.def (TV_SCHED_FUSION): New time var.
6907         * passes.def (pass_sched_fusion): New pass.
6908         * config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
6909         (extract_base_offset_in_addr, fusion_load_store): New.
6910         (arm_sched_fusion_priority): New.
6911         (arm_option_override): Disable scheduling fusion by default
6912         on non-armv7 processors or ldrd/strd isn't preferred.
6913         * sched-int.h (struct _haifa_insn_data): New field.
6914         (INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
6915         * sched-rgn.c (rest_of_handle_sched_fusion): New.
6916         (pass_data_sched_fusion, pass_sched_fusion): New.
6917         (make_pass_sched_fusion): New.
6918         * haifa-sched.c (sched_fusion): New.
6919         (insn_cost): Handle sched_fusion.
6920         (priority): Handle sched_fusion by calling target hook.
6921         (enum rfs_decision): New enum value.
6922         (rfs_str): New element for RFS_FUSION.
6923         (rank_for_schedule): Support sched_fusion.
6924         (schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
6925         (schedule_block, fix_tick_ready): Handle sched_fusion.
6926         * common.opt (flag_schedule_fusion): New.
6927         * tree-pass.h (make_pass_sched_fusion): New.
6928         * target.def (fusion_priority): New.
6929         * doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
6930         * doc/tm.texi: Regenerated.
6931         * doc/invoke.texi (-fschedule-fusion): New.
6932
6933 2014-11-13  Rong Xu  <xur@google.com>
6934
6935         PR debug/63581
6936         * cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
6937         footer, instead of unconditionally overwritten.
6938
6939 2014-11-14  Martin Jambor  <mjambor@suse.cz>
6940
6941         * cgraph.h (clear_outer_type): Make public.  Fix comment.
6942         * ipa-devirt.c (possible_polymorphic_call_targets): Use
6943         clear_outer_type when resetting the context.
6944
6945 2014-11-13  Dominique Dhumieres  <dominiq@lps.ens.fr>
6946
6947         PR bootstrap/63853
6948         * gcc.c (handle_foffload_option): Replace strchrnul with strchr.
6949         * lto-wrapper.c (parse_env_var, append_offload_options): Likewise.
6950
6951 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
6952
6953         * fold-const.c (const_binop): Remove code handling VEC_RSHIFT_EXPR.
6954         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
6955         * tree-inline.c (estimate_operator_cost): Likewise.
6956         * tree-pretty-print.c (dump_generic_node, op_code_prio, op_symbol_code):
6957         Likewise.
6958
6959         * tree-vect-generic.c (expand_vector_operations_1): Remove assertion
6960         against VEC_RSHIFT_EXPR.
6961
6962         * optabs.h (expand_vec_shift_expr): Remove.
6963         * optabs.c (optab_for_tree_code): Remove case VEC_RSHIFT_EXPR.
6964         (expand_vec_shift_expr): Remove.
6965         * tree.def (VEC_RSHIFT_EXPR): Remove
6966
6967 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
6968
6969         * optabs.c (can_vec_perm_p): Update comment, does not consider vec_shr.
6970         (shift_amt_for_vec_perm_mask): New.
6971         (expand_vec_perm_1): Use vec_shr_optab if second vector is const0_rtx
6972         and mask appropriate.
6973
6974         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): New.
6975         (have_whole_vector_shift): New.
6976         (vect_model_reduction_cost): Call have_whole_vector_shift instead of
6977         looking for vec_shr_optab.
6978         (vect_create_epilog_for_reduction): Likewise; also rename local variable
6979         have_whole_vector_shift to reduce_with_shift; output VEC_PERM_EXPRs
6980         instead of VEC_RSHIFT_EXPRs.
6981
6982         * tree-vect-stmts.c (vect_gen_perm_mask_checked): Extend comment.
6983
6984 2014-11-13  Alan Lawrence  <alan.lawrence@arm.com>
6985
6986         * tree-vectorizer.h (vect_gen_perm_mask): Remove.
6987         (vect_gen_perm_mask_checked, vect_gen_perm_mask_any): New.
6988
6989         * tree_vec_data_refs.c (vect_permute_load_chain,
6990         vec_permute_store_chain, vec_shift_permute_load_chain): Replace
6991         vect_gen_perm_mask & assert with vect_gen_perm_mask_checked.
6992
6993         * tree-vect-stmts.c (vectorizable_mask_load_store, vectorizable_load):
6994         Likewise.
6995         (vect_gen_perm_mask_checked): New.
6996         (vect_gen_perm_mask): Remove can_vec_perm_p check, rename to...
6997         (vect_gen_perm_mask_any): ...this.
6998         (perm_mask_for_reverse): Call can_vec_perm_p and
6999         vect_gen_perm_mask_checked.
7000
7001 2014-11-13  Felix Yang  <felix.yang@huawei.com>
7002
7003         * ipa-utils.h: Fix typo in comments.
7004         * ipa-profile.c: Likewise.
7005         * tree-ssa-loop-ivcanon.c: Fix typo in comments and debugging dumps.
7006
7007 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7008
7009         PR tree-optimization/63841
7010         * tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
7011
7012 2014-11-13  Teresa Johnson  <tejohnson@google.com>
7013
7014         PR tree-optimization/63841
7015         * tree.c (initializer_zerop): A clobber does not zero initialize.
7016
7017 2014-11-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7018
7019         * optabs.c (prepare_operand): Gracefully fail if the mode of X
7020         does not match the operand mode expected by the insn pattern.
7021
7022 2014-11-13  Richard Biener  <rguenther@suse.de>
7023
7024         * match.pd: Add tcc_comparison, inverted_tcc_comparison
7025         and inverted_tcc_comparison_with_nans operator lists.
7026         Use tcc_comparison in the truth_valued_p predicate definition.
7027         Restrict logical_inverted_value with bit_xor to integral types.
7028         Build a boolean true for simplifying x |^ !x because of
7029         vector types.  Implement patterns from forward_propagate_comparison
7030         * tree-ssa-forwprop.c (forward_propagate_comparison): Remove.
7031         (get_prop_dest_stmt): Likewise.
7032         (pass_forwprop::execute): Do not call it.
7033         * fold-const.c (fold_unary_loc): Remove the pattern here.
7034
7035 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7036             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7037
7038         * config.gcc (*-intelmic-* | *-intelmicemul-*): Add i386/t-intelmic to
7039         tmake_file.
7040         (i[34567]86-*-* | x86_64-*-*): Build mkoffload$(exeext) with the
7041         accelerator compiler.
7042         * config/i386/intelmic-mkoffload.c: New file.
7043         * config/i386/t-intelmic: Ditto.
7044
7045 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7046             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7047             Ilya Verbin  <ilya.verbin@intel.com>
7048
7049         * common.opt (foffload, foffload-abi): New options.
7050         * config/i386/i386.c (ix86_offload_options): New static function.
7051         (TARGET_OFFLOAD_OPTIONS): Define.
7052         * coretypes.h (enum offload_abi): New enum.
7053         * doc/tm.texi: Regenerate.
7054         * doc/tm.texi.in (TARGET_OFFLOAD_OPTIONS): Document.
7055         * gcc.c (offload_targets): New static variable.
7056         (handle_foffload_option): New static function.
7057         (driver_handle_option): Handle OPT_foffload_.
7058         (driver::maybe_putenv_OFFLOAD_TARGETS): Set OFFLOAD_TARGET_NAMES
7059         according to offload_targets.
7060         * hooks.c (hook_charptr_void_null): New hook.
7061         * hooks.h (hook_charptr_void_null): Declare.
7062         * lto-opts.c: Include lto-section-names.h.
7063         (lto_write_options): Append options from target offload_options hook and
7064         store them to offload_lto section.  Do not store target-specific,
7065         driver and diagnostic options in offload_lto section.
7066         * lto-wrapper.c (merge_and_complain): Handle OPT_foffload_ and
7067         OPT_foffload_abi_.
7068         (append_compiler_options, append_linker_options)
7069         (append_offload_options): New static functions.
7070         (compile_offload_image): Add new arguments with options.
7071         Call append_compiler_options and append_offload_options.
7072         (compile_images_for_offload_targets): Add new arguments with options.
7073         (find_and_merge_options): New static function.
7074         (run_gcc): Outline options handling into the new functions:
7075         find_and_merge_options, append_compiler_options, append_linker_options.
7076         * opts.c (common_handle_option): Don't handle OPT_foffload_.
7077         Forbid OPT_foffload_abi_ for non-offload compiler.
7078         * target.def (offload_options): New target hook.
7079
7080 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7081             Bernd Schmidt  <bernds@codesourcery.com>
7082             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7083             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7084
7085         * gcc.c (spec_host_machine, accel_dir_suffix): New variables.
7086         (process_command): Tweak path construction for the possibility
7087         of being configured as an offload compiler.
7088         (driver::maybe_putenv_OFFLOAD_TARGETS): New function.
7089         (driver::main): Call maybe_putenv_OFFLOAD_TARGETS.
7090         (driver::set_up_specs): Tweak path construction for the possibility of
7091         being configured as an offload compiler.
7092         * lto-wrapper.c (OFFLOAD_TARGET_NAMES_ENV): Define.
7093         (offload_names, offloadbegin, offloadend): New static variables.
7094         (free_array_of_ptrs, parse_env_var, access_check, compile_offload_image)
7095         (compile_images_for_offload_targets, copy_file, find_offloadbeginend):
7096         New static functions.
7097         (run_gcc): Determine whether offload sections are present.  If so, run
7098         compile_images_for_offload_targets and return the names of new generated
7099         objects to linker.  If there are offload sections, but no LTO sections,
7100         then return the copies of input objects without link-time recompilation.
7101
7102 2014-11-13  Richard Biener  <rguenther@suse.de>
7103
7104         * genmatch.c (dt_node::gen_kids): Fix placement of break statement.
7105
7106 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7107             Bernd Schmidt  <bernds@codesourcery.com>
7108             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7109             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
7110
7111         * Makefile.in (GTFILES): Add omp-low.h to list of GC files.
7112         * cgraphunit.c: Include omp-low.h.
7113         * doc/tm.texi: Regenerate.
7114         * doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
7115         * gengtype.c (open_base_files): Add omp-low.h to ifiles.
7116         * lto-cgraph.c (output_offload_tables): New function.
7117         (input_offload_tables): Likewise.
7118         * lto-section-in.c (lto_section_name): Add "offload_table".
7119         * lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
7120         (OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
7121         * lto-streamer-out.c (lto_output): Call output_offload_tables.
7122         * lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
7123         (output_offload_tables, input_offload_tables): Declare.
7124         * omp-low.c: Include common/common-target.h and lto-section-names.h.
7125         (offload_funcs, offload_vars): New global <tree, va_gc> vectors.
7126         (expand_omp_target): Add child_fn into offload_funcs vector.
7127         (add_decls_addresses_to_decl_constructor): New function.
7128         (omp_finish_file): Likewise.
7129         * omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
7130         * target.def (record_offload_symbol): New DEFHOOK.
7131         * toplev.c: Include omp-low.h.
7132         (compile_file): Call omp_finish_file.
7133         * varpool.c: Include omp-low.h.
7134         (varpool_node::get_create): Add decl into offload_vars vector.
7135
7136 2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
7137             Ilya Tocar  <ilya.tocar@intel.com>
7138             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7139             Bernd Schmidt  <bernds@codesourcery.com>
7140
7141         * cgraph.c: Include context.h.
7142         (cgraph_node::create): Set node->offloadable and g->have_offload if
7143         decl have "omp declare target" attribute.
7144         * cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
7145         * cgraphunit.c: Include lto-section-names.h.
7146         (ipa_passes): Call ipa_write_summaries if there is something to write to
7147         OFFLOAD_SECTION_NAME_PREFIX sections.
7148         (symbol_table::compile): Set flag_generate_lto if there is something to
7149         offload.
7150         Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
7151         * context.c (gcc::context::context): Initialize have_offload with false.
7152         * context.h (class context): Add have_offload flag.
7153         * ipa-inline-analysis.c (inline_generate_summary): Do not exit under
7154         flag_generate_lto.
7155         (inline_free_summary): Always remove hooks.
7156         * lto-cgraph.c (referenced_from_other_partition_p): Ignore references
7157         from non-offloadable nodes while streaming a node into offload section.
7158         (reachable_from_other_partition_p): Likewise.
7159         (select_what_to_stream): New function.
7160         (compute_ltrans_boundary): Do not call
7161         lto_set_symtab_encoder_in_partition if the node should not be streamed.
7162         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
7163         (section_name_prefix): Declare.
7164         * lto-streamer.c (section_name_prefix): New variable.
7165         (lto_get_section_name): Use section_name_prefix instead of
7166         LTO_SECTION_NAME_PREFIX.
7167         * lto-streamer.h (select_what_to_stream): Declare.
7168         * omp-low.c: Include context.h.
7169         (is_targetreg_ctx): New function.
7170         (scan_sharing_clauses): Use offloadable flag, instead of an attribute.
7171         (create_omp_child_function, check_omp_nesting_restrictions): Use new
7172         is_targetreg_ctx function.  Replace usage of "omp declare target"
7173         attribute with a cgraph_node flag offloadable.
7174         (expand_omp_target): Set mark_force_output for offloadable functions.
7175         (lower_omp_critical): Set offloadable flag for omp critical symbol.
7176         * passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
7177         select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
7178         if the node should not be streamed out.
7179         * tree-pass.h (ipa_write_summaries): New bool argument.
7180         * varpool.c: Include context.h.
7181         (varpool_node::get_create): Set node->offloadable and g->have_offload if
7182         decl have "omp declare target" attribute.
7183
7184 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
7185             Thomas Schwinge  <thomas@codesourcery.com>
7186             Ilya Verbin  <ilya.verbin@intel.com>
7187             Andrey Turetskiy  <andrey.turetskiy@intel.com>
7188
7189         * Makefile.in (real_target_noncanonical, accel_dir_suffix)
7190         (enable_as_accelerator): New variables substituted by configure.
7191         (libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
7192         being configured as an offload compiler.
7193         (DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
7194         ACCEL_DIR_SUFFIX.
7195         (install-cpp, install-common, install_driver, install-gcc-ar): Do not
7196         install for the offload compiler.
7197         * config.in: Regenerate.
7198         * configure: Regenerate.
7199         * configure.ac (real_target_noncanonical, accel_dir_suffix)
7200         (enable_as_accelerator): Compute new variables.
7201         (ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
7202         (OFFLOAD_TARGETS): List of target names suitable for offloading.
7203         (ENABLE_OFFLOADING): Define if list of offload targets is not empty.
7204         * doc/install.texi (Options specification): Document
7205         --enable-as-accelerator-for and --enable-offload-targets.
7206
7207 2014-11-13  H.J. Lu  <hongjiu.lu@intel.com>
7208
7209         PR tree-optimization/63828
7210         * ipa-polymorphic-call.c (possible_placement_new): Check
7211         POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.
7212
7213 2014-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7214
7215         * doc/tm.texi.in (SELECT_CC_MODE): Update example.
7216         (REVERSIBLE_CC_MODE): Fix example.
7217         (REVERSE_CONDITION): Fix typo.
7218         * doc/tm.texi: Regenerate.
7219
7220 2014-11-13  Tom de Vries  <tom@codesourcery.com>
7221
7222         * omp-low.c (pass_data_expand_omp): Set properties_provided to
7223         PROP_gimple_eomp.
7224         (pass_expand_omp::gate): Remove function.  Move gate expression to ...
7225         (pass_expand_omp::execute): ... here, as new variable gate.  Add early
7226         exit if gate is false.
7227         (pass_data pass_data_expand_omp_ssa): New pass_data.
7228         (class pass_expand_omp_ssa): New pass.
7229         (make_pass_expand_omp_ssa): New function.
7230         * passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
7231         instead of NEXT_PASS.
7232         (pass_expand_omp_ssa): Add after pass_parallelize_loops.
7233         * tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
7234         (pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
7235         and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
7236         cfun->omp_expand_needed.
7237         * tree-pass.h: Add define PROP_gimple_eomp.
7238         (make_pass_expand_omp_ssa): Declare.
7239
7240 2014-11-13  Marek Polacek  <polacek@redhat.com>
7241
7242         * tree.h (TYPE_OVERFLOW_SANITIZED): Define.
7243         * fold-const.c (fold_binary_loc): Use it.
7244         * match.pd: Likewise.
7245
7246 2014-11-14  Kirill Yukhin  <kirill.yukhin@intel.com>
7247
7248         * lra-lives.c (struct bb_data): Rename to ...
7249         (struct bb_data_pseudos): ... this.
7250         (initiate_live_solver): Update struct name.
7251
7252 2014-11-13  Richard Biener  <rguenther@suse.de>
7253
7254         * match.pd: Implement conditional expression patterns.
7255         * tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
7256         them here.
7257         (combine_cond_exprs): Remove.
7258         (pass_forwprop::execute): Do not call combine_cond_exprs.
7259         * fold-const.c (fold_ternary_loc): Remove patterns here.
7260         (pedantic_omit_one_operand_loc): Remove.
7261
7262 2014-12-13  Richard Biener  <rguenther@suse.de>
7263
7264         PR middle-end/61559
7265         * match.pd: Implement bswap patterns for transforms checked by
7266         gcc.dg/builtin-bswap-8.c.
7267
7268 2014-11-13  Vladimir Makarov  <vmakarov@redhat.com>
7269
7270         * lra.c (lra): Switch off rematerialization pass.
7271
7272 2014-11-12  Vladimir Makarov  <vmakarov@redhat.com>
7273
7274         * common.opt (flra-remat): New.
7275         * opts.c (default_options_table): Add entry for flra_remat.
7276         * timevar_def (TV_LRA_REMAT): New.
7277         * doc/invoke.texi (-flra-remat): Add description of the new
7278         option.
7279         * doc/passes.texi (-flra-remat): Remove lra-equivs.c and
7280         lra-saves.c.  Add lra-remat.c.
7281         * Makefile.in (OBJS): Add lra-remat.o.
7282         * lra-remat.c: New file.
7283         * lra.c: Add info about the rematerialization pass in the top
7284         comment.
7285         (collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
7286         Process unallocatable regs too.
7287         (lra_constraint_new_insn_uid_start): Remove.
7288         (lra): Add code for calling rematerialization sub-pass.
7289         * lra-int.h (lra_constraint_new_insn_uid_start): Remove.
7290         (lra_constrain_insn, lra_remat): New prototypes.
7291         (lra_eliminate_regs_1): Add parameter.
7292         * lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
7293         Process unallocatable hard regs too.
7294         (process_bb_lives): Ditto.
7295         * lra-spills.c (remove_pseudos): Add argument to
7296         lra_eliminate_regs_1 call.
7297         * lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
7298         for sp offset calculation.
7299         (lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
7300         (eliminate_regs_in_insn): Add parameter.  Use it for sp offset
7301         calculation.
7302         (process_insn_for_elimination): Add argument for
7303         eliminate_regs_in_insn call.
7304         * lra-constraints.c (get_equiv_with_elimination):  Add argument
7305         for lra_eliminate_regs_1 call.
7306         (process_addr_reg): Add parameter.  Use it.
7307         (process_address_1): Ditto.  Add argument for process_addr_reg
7308         call.
7309         (process_address): Ditto.
7310         (curr_insn_transform): Add parameter.  Use it.  Add argument for
7311         process_address calls.
7312         (lra_constrain_insn): New function.
7313         (lra_constraints): Add argument for curr_insn_transform call.
7314
7315 2014-11-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7316
7317         * opts-global.c (postpone_unknown_option_warning): Fix spelling.
7318         (print_ignored_options): Fix quoting.
7319         * opts.c (common_handle_option): Likewise.
7320         (set_debug_level): Likewise.
7321         * toplev.c (process_options): Likewise.
7322
7323 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7324
7325         PR ipa/63838
7326         * ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
7327         chain instead of node->indirect_calls.  Put !can_throw into
7328         conditions of all the loops.
7329
7330 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7331
7332         * config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
7333         set pic_offset_table_rtx.
7334
7335 2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>
7336
7337         * common/config/mips/mips-common.c (mips_handle_option): Ensure
7338         that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
7339         * config.gcc (--with-fp-32): New option.
7340         (--with-odd-spreg-32): Likewise.
7341         * config.in (HAVE_AS_DOT_MODULE): New config define.
7342         * config/mips/mips-protos.h
7343         (mips_secondary_memory_needed): New prototype.
7344         (mips_hard_regno_caller_save_mode): Likewise.
7345         * config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
7346         (mips_get_arg_info): Assert that V2SFmode is only handled specially
7347         with TARGET_PAIRED_SINGLE_FLOAT.
7348         (mips_return_mode_in_fpr_p): Likewise.
7349         (mips16_call_stub_mode_suffix): Likewise.
7350         (mips_get_reg_raw_mode): New static function.
7351         (mips_return_fpr_pair): O32 return values span two registers.
7352         (mips16_build_call_stub): Likewise.
7353         (mips_function_value_regno_p): Support both FP return registers.
7354         (mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
7355         specific cases for TARGET_FPXX to move via memory.
7356         (mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
7357         than UNITS_PER_FPREG 'span' one register.
7358         (mips_dwarf_frame_reg_mode): New static function.
7359         (mips_file_start): Switch to using .module instead of .gnu_attribute.
7360         No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
7361         Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
7362         (mips_save_reg, mips_restore_reg): Always represent DFmode frame
7363         slots with two CFI directives even for O32 FP64.
7364         (mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
7365         saving/restoring callee-saved registers.
7366         (mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
7367         (mips_secondary_memory_needed): New function.
7368         (mips_option_override): ABI check for TARGET_FLOATXX.  Disable
7369         odd-numbered single-precision registers when using TARGET_FLOATXX.
7370         Implement -modd-spreg and defaults.
7371         (mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
7372         callee-saved behaviour.
7373         (mips_hard_regno_caller_save_mode): Implement.
7374         (TARGET_GET_RAW_RESULT_MODE): Define target hook.
7375         (TARGET_GET_RAW_ARG_MODE): Define target hook.
7376         (TARGET_DWARF_FRAME_REG_MODE): Define target hook.
7377         * config/mips/mips.h (TARGET_FLOAT32): New macro.
7378         (TARGET_O32_FP64A_ABI): Likewise.
7379         (TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
7380         _MIPS_SPFPSET builtin define.
7381         (MIPS_FPXX_OPTION_SPEC): New macro.
7382         (OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
7383         --with-odd-spreg-32=* to -m[no-]odd-spreg.
7384         (ISA_HAS_ODD_SPREG): New macro.
7385         (ISA_HAS_MXHC1): True for anything other than -mfp32.
7386         (ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
7387         (MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
7388         (HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
7389         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
7390         (SECONDARY_MEMORY_NEEDED): Likewise.
7391         (FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
7392         * config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
7393         FP64A ABI extensions.
7394         (move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
7395         TARGET_FLOAT64.
7396         * config/mips/mips.opt (mfpxx): New target option.
7397         (modd-spreg): Likewise.
7398         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
7399         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
7400         fp64 sysroot.
7401         * config/mips/t-mti-elf: Remove fp64 multilib.
7402         * config/mips/t-mti-linux: Likewise.
7403         * configure.ac: Detect .module support.
7404         * configure: Regenerate.
7405         * doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
7406         * doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
7407         options.
7408
7409 2014-11-12  H.J. Lu  <hongjiu.lu@intel.com>
7410
7411         PR target/63815
7412         * config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
7413         from ...
7414         (ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
7415         (x86_output_mi_thunk): Set PIC register to %r11.  Call
7416         ix86_init_large_pic_reg to initialize PIC register.
7417
7418 2014-11-12  Kai Tietz  <ktietz@redhat.com>
7419
7420         * sdbout.c (sdbout_symbol): Eliminate register only
7421         if decl isn't a global variable.
7422
7423 2014-11-12  Alan Lawrence  <alan.lawrence@arm.com>
7424
7425         * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.
7426
7427         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
7428         qualifier_lane_index.
7429         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
7430         (aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
7431         (aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.
7432
7433         (aarch64_types_getlane_qualifiers): Rename to...
7434         (aarch64_types_binop_imm_qualifiers): ...this.
7435         (TYPES_SHIFTIMM): Follow renaming.
7436         (TYPES_GETLANE): Rename to...
7437         (TYPE_GETREG): ...this.
7438
7439         (aarch64_types_setlane_qualifiers): Rename to...
7440         (aarch64_type_ternop_imm_qualifiers): ...this.
7441         (TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
7442         (TYPES_SETLANE): Follow renaming above, and rename self to...
7443         (TYPE_SETREG): ...this.
7444
7445         (enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
7446         (aarch64_simd_expand_args): Add range check and endianness-flip.
7447
7448         (aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.
7449
7450         * config/aarch64/aarch64-simd.md
7451         (aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
7452         (aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
7453         (aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.
7454
7455         (aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
7456         (aarch64_sq<r>dmulh_lane<mode>): ...this.
7457
7458         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
7459         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.
7460
7461         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
7462         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.
7463
7464         (aarch64_sqdmull_lane<mode>_internal *2): Rename to...
7465         (aarch64_sqdmull_lane<mode>): ...this.
7466
7467         (aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
7468         (aarch64_sqdmull_laneq<mode>): ...this.
7469
7470         (aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
7471         (aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
7472         aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
7473         aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.
7474
7475         (aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
7476         aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
7477         aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
7478         bounds check and lane flip.
7479
7480         * config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
7481         get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
7482         set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.
7483
7484         (sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
7485         sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
7486         renaming of TERNOP_LANE to QUADOP_LANE.
7487
7488         (sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
7489         sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
7490         qualifiers to TERNOP_LANE.
7491
7492 2014-11-12  Tobias Burnus  <burnus@net-b.de>
7493
7494         * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
7495         * configure.ac: Ditto.
7496         * graphite-interchange.c: Remove HAVE_CLOOG block.
7497         * config.in: Regenerate.
7498         * configure: Regenerate.
7499
7500 2014-11-12  Jiong Wang  <jiong.wang@arm.com>
7501
7502         * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as
7503         caller-save.
7504         (EPILOGUE_USES): Guard the check by epilogue_completed.
7505         * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for
7506         LR.
7507         (aarch64_can_eliminate): Check LR_REGNUM liveness.
7508
7509 2014-11-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7510
7511         * config/arm/arm.c (*<arith_shift_insn>_shiftsi): Fix typo.
7512
7513 2014-11-12  Marek Polacek  <polacek@redhat.com>
7514
7515         * fold-const.c (fold_binary_loc): Don't fold if the result
7516         is undefined.
7517         * match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
7518         -(-A) -> A): Likewise.
7519
7520 2014-11-12  Richard Biener  <rguenther@suse.de>
7521
7522         Merge from match-and-simplify branch
7523         2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7524
7525         * genmatch.c (user_id): Add new member is_oper_list.
7526         (user_id::user_id): Add new default argument.
7527         (parser::parse_operator_list): New function.
7528         (parser::parse_for): Allow operator-list.
7529         (parser::parse_pattern): Call parser::parse_operator_list.
7530         (parser::parse_operation): Reject operator-list.
7531         * match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.
7532
7533         2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7534
7535         * genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.
7536
7537         2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7538
7539         * genmatch.c (parser::parse_op): Check if predicate is used in
7540         result operand.
7541
7542         2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7543
7544         * genmatch.c (parser::parse_for): Make sure to have a valid
7545         token to report errors at.
7546
7547         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7548
7549         * genmatch.c (parser): Add new member parsing_match_operand.
7550         (parser::parse_operation): Check for conditional convert in result
7551         operand.
7552         (parser::parse_expr): Check for commutative operator in result operand.
7553         Check for :type in match operand.
7554         (parser::parse_simplify): Set/unset parsing_match_operand.
7555         (parser::parser): Initialize parsing_match_operand.
7556
7557         2014-10-28  Richard Biener  <rguenther@suse.de>
7558
7559         * genmatch.c (parser::parse_for): Properly check for already
7560         defined operators.
7561
7562         2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
7563
7564         * genmatch.c (error_cb): Adjust for printing warnings.
7565         (warning_at): New function.
7566         (user_id): Add new member used.
7567         (get_operator): Mark user_id as used.
7568         (parse_for): Warn for unused operators.
7569
7570 2014-11-12  Richard Biener  <rguenther@suse.de>
7571
7572         * match.pd: Implement simple complex operations cancelling.
7573         * fold-const.c (fold_unary_loc): Remove them here.
7574
7575 2014-11-12  Joseph Myers  <joseph@codesourcery.com>
7576
7577         * cppbuiltin.c (define_builtin_macros_for_compilation_flags):
7578         Define __NO_MATH_ERRNO__ if -fno-math-errno.
7579         * doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.
7580
7581 2014-11-12  Richard Biener  <rguenther@suse.de>
7582
7583         * genmatch.c (::gen_transform): Add capture_info and
7584         expand_compares arguments.
7585         (struct expr): Add is_generic flag.
7586         (lower_cond): New functions lowering [VEC_]COND_EXPR
7587         conditions to a GENERIC and a GIMPLE variant.
7588         (lower): Call lower_cond.
7589         (cmp_operand): Also compare the is_generic flag.
7590         (capture_info::cinfo): Add cond_expr_cond_p flag.
7591         (capture_info::capture_info): Pass down whether the
7592         expression argument is a COND_EXPR condition.
7593         (capture_info::walk_match): Likewise, mark captures
7594         capturing COND_EXPR conditions with cond_expr_cond_p.
7595         (expr::gen_transform): Pass down whether we need to
7596         expand compares from COND_EXPR conditions.
7597         (capture::gen_transform): Expand compares substituted
7598         from COND_EXPR conditions into non-COND_EXPR conditions.
7599         (dt_operand::gen_gimple_expr): Handle explicitely marked
7600         GENERIC expressions as generic.
7601         (dt_simplify::gen): Pass whether we need to expand
7602         conditions to gen_transform.  Handle capture results
7603         which are from COND_EXPR conditions.
7604         (main): Pass gimple flag down to lower.
7605
7606 2014-11-12  Jakub Jelinek  <jakub@redhat.com>
7607
7608         PR c/59708
7609         * builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
7610         * builtins.c (fold_builtin_arith_overflow): New function.
7611         (fold_builtin_3): Use it.
7612         * builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
7613         BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
7614         BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
7615         BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
7616         BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
7617         BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
7618         BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
7619         BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
7620         BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
7621         BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
7622         * builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
7623         BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
7624         BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
7625         BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
7626         BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
7627         * expr.c (write_complex_part): Remove prototype, no longer static.
7628         * expr.h (write_complex_part): New prototype.
7629         * function.c (aggregate_value_p): For internal functions return 0.
7630         * gimple-fold.c (arith_overflowed_p): New functions.
7631         (gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
7632         * gimple-fold.h (arith_overflowed_p): New prototype.
7633         * tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
7634         (find_non_realpart_uses, maybe_optimize_arith_overflow): New
7635         functions.
7636         (eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
7637         into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
7638         never used.
7639         * gimplify.c (gimplify_call_expr): Handle gimplification of
7640         internal calls with lhs.
7641         * internal-fn.c (get_range_pos_neg, get_min_precision,
7642         expand_arith_overflow_result_store): New functions.
7643         (ubsan_expand_si_overflow_addsub_check): Renamed to ...
7644         (expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7645         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7646         Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
7647         (ubsan_expand_si_overflow_neg_check): Renamed to ...
7648         (expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
7649         arguments, remove STMT argument.  Handle SUB_OVERFLOW with
7650         0 as first argument expansion.
7651         (ubsan_expand_si_overflow_mul_check): Renamed to ...
7652         (expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
7653         UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
7654         Handle MUL_OVERFLOW expansion.
7655         (expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
7656         arguments for it.
7657         (expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
7658         expand_neg_overflow, prepare arguments for it.
7659         (expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
7660         for it.
7661         (expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
7662         expand_MUL_OVERFLOW): New functions.
7663         * internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
7664         internal functions.
7665         * tree-vrp.c (check_for_binary_op_overflow): New function.
7666         (extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
7667         is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
7668         (simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
7669         internal functions.
7670         * optabs.def (umulv4_optab): New optab.
7671         * config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
7672         (*umulv<mode>4, *<u>mulvqi4): New define_insns.
7673         * doc/extend.texi (Integer Overflow Builtins): Document
7674         __builtin_*_overflow.
7675
7676 2014-11-12  Richard Biener  <rguenther@suse.de>
7677
7678         * genmatch.c (capture_info::capture_info): Add missing
7679         COND_EXPR handling.
7680         (capture_info::walk_match): Fix COND_EXPR handling.
7681         (capture_info::walk_result): Likewise.
7682
7683 2014-11-12  Richard Biener  <rguenther@suse.de>
7684
7685         PR middle-end/63821
7686         * match.pd: Add missing conversion to the -(T)-X pattern.
7687
7688 2014-11-12  Richard Biener  <rguenther@suse.de>
7689
7690         PR bootstrap/63819
7691         * hash-table.h: Include ggc.h also for generator programs.
7692         * genmatch.c (ggc_internal_cleared_alloc): Properly define
7693         using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.
7694
7695 2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7696
7697         PR tree-optimization/63761
7698         * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
7699         rather than taking it as a parameter. Add some comments to explain the
7700         gsi_move_before in case of load and why canonicalization of bswap into
7701         a rotation is only done for 16bit values.
7702         (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
7703         refer to the statement just before cur_stmt. Ignore 16bit bswap that
7704         are already in canonical form. Adapt bswap_replace to removal of its
7705         gsi parameter.
7706
7707 2014-11-12  Richard Sandiford  <richard.sandiford@arm.com>
7708
7709         * rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
7710         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
7711         (for_each_rtx_in_insn): Delete.
7712         (init_rtlanal): Remove initialization of non_rtx_starting_operands.
7713         * df-core.c: Remove reference to for_each_rtx in comment.
7714
7715 2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>
7716
7717         * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
7718         arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
7719         * doc/aarch64-acle-intrinsics.texi: Remove.
7720         * doc/arm-acle-intrinsics.texi: Remove.
7721         * doc/arm-neon-intrinsics.texi: Remove.
7722         * doc/extend.texi: Consolidate sections AArch64 intrinsics,
7723         ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
7724         Extension section. Add references to public ACLE specification.
7725
7726 2014-11-11  Patrick Palka  <ppalka@gcc.gnu.org>
7727
7728         * tree-vrp.c (register_edge_assert_for_2): Change return type to
7729         void and adjust accordingly.
7730         (register_edge_assert_for_1): Likewise.
7731         (register_edge_assert_for): Likewise.
7732         (find_conditional_asserts): Likewise.
7733         (find_switch_asserts): Likewise.
7734         (find_assert_locations_1): Likewise.
7735         (find_assert_locations): Likewise.
7736         (insert_range_insertions): Inspect the need_assert_for bitmap.
7737
7738 2014-11-11  Andrew Pinski  <apinski@cavium.com>
7739
7740         Bug target/61997
7741         * config.gcc (aarch64*-*-*): Set target_gtfiles to include
7742         aarch64-builtins.c.
7743         * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
7744         at the end of the file.
7745
7746 2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
7747             Manuel López-Ibáñez  <manu@gcc.gnu.org>
7748
7749         PR driver/36312
7750         * diagnostic-core.h: Add prototype for fatal_error.
7751         * diagnostic.c (fatal_error): New function fatal_error.
7752         * gcc.c (store_arg): Remove have_o_argbuf_index.
7753         (process_command): Check if input and output files are the same.
7754         * toplev.c (init_asm_output): Check if input and output files are
7755         the same.
7756
7757 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7758
7759         * reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
7760
7761 2014-11-11  Eric Botcazou  <ebotcazou@adacore.com>
7762
7763         PR target/61535
7764         * config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
7765         smaller than 8 bytes.
7766         (sparc_function_arg_1): Tweak.
7767         (sparc_function_value_1): Tweak.
7768
7769 2014-11-11  David Malcolm  <dmalcolm@redhat.com>
7770
7771         * ChangeLog.jit: New.
7772         * Makefile.in (doc_build_sys): New variable, set to "sphinx" if
7773         sphinx is installed, falling back to "texinfo" otherwise.
7774         (FULL_DRIVER_NAME): New variable, adapted from the
7775         install-driver target.  New target, a symlink within the builddir,
7776         linked to "xgcc", for use when running the JIT library from the
7777         builddir.
7778         (MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
7779         (install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
7780         out.
7781         * configure.ac (doc_build_sys): New variable, set to "sphinx" if
7782         sphinx is installed, falling back to "texinfo" otherwise.
7783         (GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
7784         GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
7785         * configure: Regenerate.
7786         * doc/install.texi (--enable-host-shared): Specify that this is
7787         required when building libgccjit.
7788         (Tools/packages necessary for modifying GCC): Add Sphinx.
7789         * timevar.def (TV_JIT_REPLAY): New.
7790         (TV_ASSEMBLE): New.
7791         (TV_LINK): New.
7792         (TV_LOAD): New.
7793
7794 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7795
7796         PR target/63610
7797         * configure: Regenerate.
7798
7799 2014-11-11  James Greenhalgh  <james.greenhalgh@arm.com>
7800
7801         * config/aarch64/aarch64-simd.md
7802         (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
7803         (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
7804         are punning between float vectors and integer vectors.
7805
7806 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7807
7808         * config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
7809         open-coded swap with std::swap to swap values.
7810         (alpha_emit_setcc): Ditto.
7811         (alpha_emit_conditional_move): Ditto.
7812         (alpha_split_tmode_pair): Ditto.
7813
7814 2014-11-11  Evgeny Stupachenko  <evstupac@gmail.com>
7815
7816         * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
7817         permutations on power of 2 cases.
7818
7819 2014-11-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7820
7821         * config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
7822         (CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).
7823
7824 2014-11-11  Richard Biener  <rguenther@suse.de>
7825
7826         * tree-core.h (pedantic_lvalues): Remove.
7827         * fold-const.c (pedantic_lvalues): Likewise.
7828         (pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.
7829
7830 2014-11-11  Martin Liska  <mliska@suse.cz>
7831
7832         PR ipa/63622
7833         PR ipa/63795
7834         * ipa-icf.c (sem_function::merge): Add new target symbol alias
7835         support guard.
7836         (sem_variable::merge): Likewise.
7837         * ipa-icf.h (target_supports_symbol_aliases_p): New function.
7838
7839 2014-11-11  Richard Biener  <rguenther@suse.de>
7840
7841         * match.pd: Implement patterns from associate_plusminus
7842         and factor in differences from the fold-const.c implementation.
7843         * fold-const.c (fold_binary_loc): Remove patterns here.
7844         * tree-ssa-forwprop.c (associate_plusminus): Remove.
7845         (pass_forwprop::execute): Don't call it.
7846         * tree.c (tree_nop_conversion_p): New function, factored
7847         from tree_nop_conversion.
7848         * tree.h (tree_nop_conversion_p): Declare.
7849
7850 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7851
7852         * system.h: Include algorithm and utility.
7853         * rtl.h: Do not include utility here.
7854         * wide-int.h: Ditto.
7855         * tree-vect-data-refs.c (swap): Remove template.
7856         (vect_prune_runtime_alias_test_list): Use std::swap instead of swap.
7857
7858 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7859
7860         PR bootstrap/63699
7861         PR bootstrap/63750
7862         * system.h: Include <string> before "safe-ctype.h"
7863         * wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
7864         calls to min/max with wi namespace.
7865         * ipa-chkp.c: Don't include <string>.
7866
7867 2014-11-11  Terry Guo  <terry.guo@arm.com>
7868
7869         * doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
7870         * config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
7871         registers.
7872         (*thumb1_movhf): Likewise.
7873
7874 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7875
7876         * sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
7877         instead of INT64_MAX.
7878
7879 2014-11-11  Tobias Burnus  <burnus@net-b.de>
7880
7881         * doc/install.texi (Prerequisites): Remove CLooG.
7882
7883 2014-11-10  Trevor Saunders  <tsaunders@mozilla.com>
7884
7885         * ipa-inline.c (edge_badness): Adjust.
7886         (inline_small_functions): Likewise.
7887         * predict.c (propagate_freq): Likewise.
7888         (estimate_bb_frequencies): Likewise.
7889         * sreal.c (sreal::dump): Rename from dump_sreal.
7890         (debug): Adjust.
7891         (copy): Remove function.
7892         (sreal::shift_right): Rename from sreal_sift_right.
7893         (sreal::normalize): Rename from normalize.
7894         (sreal_init): Remove function.
7895         (sreal::to_int): Rename from sreal_to_int.
7896         (sreal_compare): Remove function.
7897         (sreal::operator+): Rename from sreal_add.
7898         (sreal::operator-): Rename from sreal_sub.
7899         (sreal::operator*): Rename from sreal_mul.
7900         (sreal::operator/): Rename from sreal_div.
7901         * sreal.h (class sreal): Adjust.
7902         (inline sreal &operator+=): New operator.
7903         (inline sreal &operator-=): Likewise.
7904         (inline sreal &operator/=): Likewise.
7905         (inline sreal &operator*=): Likewise.
7906         (inline bool operator!=): Likewise.
7907         (inline bool operator>): Likewise.
7908         (inline bool operator<=): Likewise.
7909         (inline bool operator>=): Likewise.
7910
7911 2014-11-11  Bin Cheng  <bin.cheng@arm.com>
7912
7913         * sched-deps.c (sched_analyze_1): Check pending list if it is not
7914         less than MAX_PENDING_LIST_LENGTH.
7915         (sched_analyze_2, sched_analyze_insn, deps_analyze_insn): Ditto.
7916
7917 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7918
7919         * config/i386/i386.c (ix86_decompose_address): Replace open-coded
7920         swap with std::swap to swap values.
7921         (ix86_fixup_binary_operands): Ditto.
7922         (ix86_binary_operator_ok): Ditto.
7923         (ix86_prepare_fp_compare_args): Ditto.
7924         (ix86_expand_branch): Ditto.
7925         (ix86_expand_carry_flag_compare): Ditto.
7926         (ix86_expand_int_movcc): Ditto.
7927         (ix86_prepare_sse_fp_compare_args): Ditto.
7928         (ix86_expand_sse_fp_minmax): Ditto.
7929         (ix86_expand_int_vcond): Ditto.
7930         (ix86_split_long_move): Ditto.
7931         (ix86_expand_sse_comi): Ditto.
7932         (ix86_expand_sse_compare_and_jump): Ditto.
7933         (ix86_expand_sse_compare_mask): Ditto.
7934         * config/i386/i386.md (*add<mode>_1): Ditto.
7935         (addsi_1_zext): Ditto.
7936         (*addhi_1): Ditto.
7937         (*addqi_1): Ditto.
7938         (*add<mode>_2): Ditto.
7939         (*addsi_2_zext): Ditto.
7940         (*add<mode>_3): Ditto.
7941         (*addsi_3_zext): Ditto.
7942         (*add<mode>_5): Ditto.
7943         (absneg splitter): Ditto.
7944
7945 2014-11-11  Uros Bizjak  <ubizjak@gmail.com>
7946
7947         Revert:
7948         2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
7949
7950         PR target/63620
7951         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
7952         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
7953         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
7954         be reloaded through memory.
7955         (*pushxf): Ditto.
7956         (*pushdf): Ditto.
7957
7958 2014-11-11  Jakub Jelinek  <jakub@redhat.com>
7959             Martin Liska  <mliska@suse.cz>
7960
7961         * ipa-icf-gimple.c (func_checker::compare_bb): Fix comment typo.
7962         (func_checker::compare_gimple_call): Compare gimple_call_fn,
7963         gimple_call_chain, gimple_call_fntype and call flags.
7964
7965 2014-11-10  Vladimir Makarov  <vmakarov@redhat.com>
7966
7967         PR rtl-optimization/63620
7968         PR rtl-optimization/63799
7969         * lra-lives.c (process_bb_lives): Do not delete EH_REGION, trapped
7970         and setting PIC pseudo insns.
7971         (lra_create_live_ranges): Fix the typo.
7972
7973 2014-11-10  Patrick Palka  <ppalka@gcc.gnu.org>
7974
7975         PR middle-end/63748
7976         * tree-ssa-propagate.c (may_propagate_copy): Allow propagating
7977         SSA copies whose source and destination names both occur in
7978         abnormal PHIs.
7979
7980 2014-11-10 Roman Gareev  <gareevroman@gmail.com>
7981
7982         * Makefile.in: Remove the compilation of graphite-clast-to-gimple.o.
7983         * common.opt: Remove using of fgraphite-code-generator flag.
7984         * flag-types.h: Likewise.
7985         * graphite.c: Remove using of CLooG.
7986         * graphite-blocking.c: Likewise.
7987         * graphite-dependences.c: Likewise.
7988         * graphite-poly.c: Likewise.
7989         * graphite-poly.h: Likewise.
7990         * graphite-scop-detection.c: Likewise.
7991         * graphite-sese-to-poly.c: Likewise.
7992         * graphite-clast-to-gimple.c: Removed.
7993         * graphite-clast-to-gimple.h: Likewise.
7994         * graphite-htab.h: Likewise.
7995
7996 2014-11-10  Paolo Carlini  <paolo.carlini@oracle.com>
7997
7998         * doc/invoke.texi ([-Wshift-count-negative, -Wshift-count-overflow]):
7999         Add.
8000
8001 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8002
8003         * config/frv/frv.c (frv_io_handle_use_1): Delete.
8004         (frv_io_handle_use): Use find_all_hard_regs.
8005
8006 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8007
8008         * config/frv/frv.c (frv_registers_conflict_p_1): Take an rtx rather
8009         than an rtx *.  Take the regstate_t directly rather than via a void *.
8010         Return a bool rather than an int.  Iterate over all subrtxes here.
8011         (frv_registers_conflict_p): Update accordingly.
8012
8013 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8014
8015         * config/frv/frv.c: Include rtl-iter.h.
8016         (frv_acc_group_1): Delete.
8017         (frv_acc_group): Use FOR_EACH_SUBRTX.
8018
8019 2014-11-10  Richard Sandiford  <richard.sandiford@arm.com>
8020
8021         * config/frv/frv.c: Move include of rtl.h after hard-reg-set.h.
8022         (frv_clear_registers_used): Delete.
8023         (frv_ifcvt_modify_tests): Use find_all_hard_regs.
8024
8025 2014-11-10  Jan Hubicka  <hubicka@ucw.cz>
8026
8027         PR bootstrap/63573
8028         * calls.c (initialize_argument_information): When emitting thunk call
8029         use original memory placement of the argument.
8030
8031 2014-11-10  Renlin Li  <renlin.li@arm.com>
8032
8033         PR middle-end/61529
8034         * tree-ssa-threadupdate.c (compute_path_counts): Bound path_in_freq.
8035
8036 2014-11-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8037
8038         * expmed.c (expand_shift_1): Expand 8 bit rotate of 16 bit value to
8039         bswaphi if available.
8040
8041 2014-11-10  Bernd Schmidt  <bernds@codesourcery.com>
8042
8043         * config/nvptx/nvptx.c: New file.
8044         * config/nvptx/nvptx.h: New file.
8045         * config/nvptx/nvptx-protos.h: New file.
8046         * config/nvptx/nvptx.md: New file.
8047         * config/nvptx/t-nvptx: New file.
8048         * config/nvptx/nvptx.opt: New file.
8049         * common/config/nvptx/nvptx-common.c: New file.
8050         * config.gcc: Handle nvptx-*-*.
8051
8052 2014-11-10  Richard Biener  <rguenther@suse.de>
8053
8054         * tree-ssa-operands.c (finalize_ssa_uses): Properly put
8055         released operands on the free list.
8056
8057 2014-11-10  Richard Biener  <rguenther@suse.de>
8058
8059         * match.pd: Implement pattern from simplify_mult.
8060         * tree-ssa-forwprop.c (simplify_mult): Remove.
8061         (pass_forwprop::execute): Do not call simplify_mult.
8062
8063 2014-11-10  Richard Biener  <rguenther@suse.de>
8064
8065         PR tree-optimization/63800
8066         * tree-ssa-pre.c (eliminate_push_avail): Push in a way so
8067         we can restore the previous availability in after_dom_children.
8068         (eliminate_dom_walker::after_dom_children): Restore
8069         previous availability.
8070
8071 2014-11-10  Richard Biener  <rguenther@suse.de>
8072
8073         PR middle-end/63798
8074         * expr.c (expand_expr_real_2): When expanding FMA_EXPRs
8075         properly treat the embedded multiplication as commutative
8076         when looking for feeding negates.
8077
8078 2014-11-10  Joern Rennecke  <joern.rennecke@embecosm.com>
8079
8080         * config/avr/avr.h (CPLUSPLUS_CPP_SPEC): Define.
8081
8082 2014-11-10  Martin Liska  <mliska@suse.cz>
8083
8084         * gcc.dg/tree-ssa/ldist-19.c: ICF is disabled
8085         for the test because of default char signedness
8086         on powerpc64 target.
8087
8088 2014-11-10  Richard Biener  <rguenther@suse.de>
8089
8090         * match.pd: Implement pattern from simplify_conversion_from_bitmask.
8091         * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): Remove.
8092         (pass_forwprop::execute): Do not call simplify_conversion_from_bitmask.
8093
8094 2014-11-10  Richard Biener  <rguenther@suse.de>
8095
8096         * match.pd: Move rest of the conversion combining patterns
8097         from tree-ssa-forwprop.c.
8098         * tree-ssa-forwprop.c (combine_conversions): Remove.
8099         (pass_forwprop::execute): Do not call it.
8100
8101 2014-11-10  Eric Botcazou  <ebotcazou@adacore.com>
8102
8103         * gimple-low.c (lower_function_body): Clear the location of the first
8104         inserted representative return if it also fills in for the fallthru.
8105
8106 2014-11-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8107
8108         * tree-if-conv.c (add_to_predicate_list): Check unconditionally
8109         that bb is always executed to early exit. Use predicate of
8110         cd-equivalent block for join blocks if it exists.
8111         (if_convertible_loop_p_1): Recompute POST_DOMINATOR tree.
8112         (tree_if_conversion): Free post-dominance information.
8113
8114 2014-11-09  Jason Merrill  <jason@redhat.com>
8115
8116         * config/i386/avx512vldqintrin.h (_mm256_broadcast_f32x2): __mmask8.
8117         * config/i386/avx512vlintrin.h (_mm256_mask_cvtepi32_storeu_epi16)
8118         (_mm_mask_cvtusepi32_storeu_epi16)
8119         (_mm_mask_cvtsepi64_storeu_epi32): Return void.
8120
8121 2014-11-09  Joern Rennecke  <joern.rennecke@embecosm.com>
8122
8123         * config/avr/predicates.md (low_io_address_operand): Fix typo.
8124
8125 2014-11-09  Vladimir Makarov  <vmakarov@redhat.com>
8126
8127         PR rtl-optimization/63620
8128         * lra-constraints.c (substitute_pseudo): Add prefix lra_ to the
8129         name.  Move to lra.c.  Make it external.
8130         (substitute_pseudo_within_insn): Ditto.
8131         (inherit_reload_reg, split_reg, remove_inheritance_pseudos): Use
8132         the new names.
8133         (undo_optional_reloads): Ditto.
8134         * lra-int.h (lra_dump_bitmap_with_title, lra_substitute_pseudo):
8135         New prototypes.
8136         (lra_substitute_pseudo_within_insn): Ditto.
8137         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): New.
8138         (mark_regno_live): Add parameter.  Update bb_gen_pseudos.
8139         (mark_regno_dead): Add parameter.  Update bb_gen_pseudos and
8140         bb_killed_pseudos.
8141         (struct bb_data, bb_data_t, bb_data): New.
8142         (get_bb_data, get_bb_data_by_index): Ditto.
8143         (all_hard_regs_bitmap): New.
8144         (live_trans_fun, live_con_fun_0, live_con_fun_n, all_blocks): New.
8145         (initiate_live_solver, finish_live_solver): New.
8146         (process_bb_lives): Change return type.  Add code updating local
8147         live data and removing dead insns.  Pass new argument to
8148         mark_regno_live and mark_regno_dead.  Check changing bb pseudo
8149         life info.  Return the result.
8150         (lra_create_live_ranges): Add code to do global pseudo live
8151         analysis.
8152         (lra_live_ranges_init): Call initiate_live_solver.
8153         (lra_live_ranges_finish): Call finish_live_solver.
8154         * lra.c (lra_dump_bitmap_with_title): New.
8155         (lra_substitute_pseudo, lra_substitute_pseudo_within_insn): Move
8156         from lra-constraints.c.
8157
8158 2014-11-09  Richard Biener  <rguenther@suse.de>
8159
8160         * match.pd: Add patterns convering two conversions in a row
8161         from fold-const.c.
8162         * fold-const.c (fold_unary_loc): Remove them here.
8163         * tree-ssa-forwprop.c (combine_conversions): Likewise.
8164         * genmatch.c (dt_node::gen_kids): Check whether we may
8165         follow SSA use-def chains.
8166
8167 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8168
8169         * config/aarch64/aarch64.c: Include rtl-iter.h.
8170         (aarch64_tls_operand_p_1): Delete.
8171         (aarch64_tls_operand_p): Use FOR_EACH_SUBRTX.
8172
8173 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8174
8175         * config/arm/arm.c (arm_note_pic_base): Delete.
8176         (arm_cannot_copy_insn_p): Use FOR_EACH_SUBRTX.
8177
8178 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8179
8180         * config/arm/arm.c: Include rtl-iter.h.
8181         (arm_tls_referenced_p_1): Delete.
8182         (arm_tls_referenced_p): Use FOR_EACH_SUBRTX.
8183
8184 2014-11-08  Richard Sandiford  <richard.sandiford@arm.com>
8185
8186         * config/arm/aarch-common.c: Include rtl-iter.h.
8187         (search_term, arm_find_sub_rtx_with_search_term): Delete.
8188         (arm_find_sub_rtx_with_code): Use FOR_EACH_SUBRTX_VAR.
8189         (arm_get_set_operands): Pass the insn pattern rather than the
8190         insn itself.
8191         (arm_no_early_store_addr_dep): Likewise.
8192
8193 2014-11-08  Eric Botcazou  <ebotcazou@adacore.com>
8194
8195         * config/arm/arm.c (arm_set_return_address): Mark the store as frame
8196         related, if any.
8197         (thumb_set_return_address): Likewise.
8198
8199 2014-11-07  Jeff Law  <law@redhat.com>
8200
8201         PR tree-optimization/61515
8202         * tree-ssa-threadedge.c (invalidate_equivalences): Walk the unwinding
8203         stack rather than looking at every SSA_NAME's value.
8204
8205 2014-11-07  Richard Biener  <rguenther@suse.de>
8206
8207         PR tree-optimization/63605
8208         * fold-const.c (fold_binary_loc): Properly use element_precision
8209         for types that may not be scalar.
8210
8211 2014-11-07  Evgeny Stupachenko  <evstupac@gmail.com>
8212
8213         PR target/63534
8214         * config/i386/i386.md (builtin_setjmp_receiver): Use
8215         pic_offset_table_rtx for PIC register.
8216         (nonlocal_goto_receiver): Delete.
8217
8218 2014-11-07  Daniel Hellstrom  <daniel@gaisler.com>
8219
8220         * config.gcc (sparc-*-rtems*): Clean away unused t-elf.
8221         * config/sparc/t-rtems: Add leon3v7 and muser-mode multilibs.
8222
8223 2014-11-07  Martin Liska  <mliska@suse.cz>
8224
8225         PR ipa/63580
8226         * cgraphunit.c (cgraph_node::create_wrapper):
8227         TREE_ADDRESSABLE is set to false for a newly created thunk.
8228
8229 2014-11-07  Martin Liska  <mliska@suse.cz>
8230
8231         PR ipa/63747
8232         * ipa-icf-gimple.c (func_checker::compare_gimple_switch):
8233         Missing checking for CASE_LOW and CASE_HIGH added.
8234
8235 2014-11-07  Martin Liska  <mliska@suse.cz>
8236
8237         PR ipa/63595
8238         * cgraphunit.c (cgraph_node::expand_thunk): DECL_BY_REFERENCE
8239         is correctly handled for thunks created by IPA ICF.
8240
8241 2014-11-07  Jiong Wang  <jiong.wang@arm.com>
8242 2014-11-07  Richard Biener  <rguenther@suse.de>
8243
8244         PR tree-optimization/63676
8245         * gimple-fold.c (fold_gimple_assign): Do not fold node when
8246         TREE_CLOBBER_P be true.
8247
8248 2014-11-07  Richard Biener  <rguenther@suse.de>
8249
8250         PR middle-end/63770
8251         * match.pd: Guard conflicting GENERIC pattern properly.
8252
8253 2014-11-07  Richard Biener  <rguenther@suse.de>
8254
8255         * match.pd: Add patterns for POINTER_PLUS_EXPR association
8256         and special patterns from tree-ssa-forwprop.c
8257         * fold-const.c (fold_binary_loc): Remove them here.
8258         * tree-ssa-forwprop.c (to_purge): New global bitmap.
8259         (fwprop_set_lattice_val): New function.
8260         (fwprop_invalidate_lattice): Likewise.
8261         (remove_prop_source_from_use): Instead of purging dead EH
8262         edges record blocks to do that in to_purge.
8263         (tidy_after_forward_propagate_addr): Likewise.
8264         (forward_propagate_addr_expr): Invalidate the lattice for
8265         SSA names we release.
8266         (simplify_conversion_from_bitmask): Likewise.
8267         (simplify_builtin_call): Likewise.
8268         (associate_pointerplus_align): Remove.
8269         (associate_pointerplus_diff): Likewise.
8270         (associate_pointerplus): Likewise.
8271         (fold_all_stmts): Merge with ...
8272         (pass_forwprop::execute): ... the original loop over all
8273         basic-blocks.  Delay purging dead EH edges and invalidate
8274         the lattice for SSA names we release.
8275
8276 2014-11-07  Terry Guo  <terry.guo@arm.com>
8277
8278         * config/arm/arm.opt (masm-syntax-unified): New option.
8279         * doc/invoke.texi (-masm-syntax-unified): Document new option.
8280         * config/arm/arm.h (TARGET_UNIFIED_ASM): Also include thumb1.
8281         (ASM_APP_ON): Redefined.
8282         * config/arm/arm.c (arm_option_override): Thumb2 inline assembly
8283         code always use UAL syntax.
8284         (arm_output_mi_thunk): Use UAL syntax for Thumb1 target.
8285         * config/arm/thumb1.md: Likewise.
8286
8287 2014-11-06  John David Anglin  <danglin@gcc.gnu.org>
8288
8289         * config/pa/pa.md (trap): New insn.  Add "trap" to attribute type.
8290         Don't allow trap insn in in_branch_delay, in_nullified_branch_delay
8291         or in_call_delay.
8292         
8293 2014-11-06  Steve Ellcey  <sellcey@imgtec.com>
8294
8295         * config.gcc (mips*-mti-linux*): Remove gnu_ld and gas assignments.
8296         Set default_mips_arch and default_mips_abi instead of tm_defines.
8297         (mips*-*-linux*): Set default_mips_arch and default_mips_abi instead
8298         of tm_defines.
8299         (mips*-*-*): Check with_arch and with_abi.  Set tm_defines.
8300         * config/mips/mips.h (STANDARD_STARTFILE_PREFIX_1): Set default
8301         based on MIPS_ABI_DEFAULT.
8302         (STANDARD_STARTFILE_PREFIX_2): Ditto.
8303
8304 2014-11-06  Joseph Myers  <joseph@codesourcery.com>
8305
8306         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to corner
8307         cases of extended identifiers.
8308
8309 2014-11-06  Eric Botcazou  <ebotcazou@adacore.com>
8310
8311         * tree-cfgcleanup.c (fixup_noreturn_call): Do not perform DCE here.
8312
8313 2014-11-06  DJ Delorie  <dj@redhat.com>
8314
8315         * config/m32c/cond.md (movqicc_<code>_<mode>): Remove mode of
8316         conditional.
8317         (movhicc_<code>_<mode>): Likewise.
8318         * config/m32c/m32c.c (encode_pattern_1): Specialise PSImode
8319         subregs.
8320         (m32c_eh_return_data_regno): Change to using memregs to avoid
8321         tying up all the compute regs.
8322         (m32c_legitimate_address_p) Subregs are not valid addresses.
8323
8324 2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
8325
8326         * function.c (thread_prologue_and_epilogue_insns): No longer static.
8327         * function.h (thread_prologue_and_epilogue_insns): Declare.
8328
8329         * target.def (assemble_undefined_decl): New hooks.
8330         * hooks.c (hook_void_FILEptr_constcharptr_const_tree): New function.
8331         * hooks.h (hook_void_FILEptr_constcharptr_const_tree): Declare.
8332         * doc/tm.texi.in (TARGET_ASM_ASSEMBLE_UNDEFINED_DECL): Add.
8333         * doc/tm.texi: Regenerate.
8334         * output.h (assemble_undefined_decl): Declare.
8335         (get_fnname_from_decl): Declare.
8336         * varasm.c (assemble_undefined_decl): New function.
8337         (get_fnname_from_decl): New function.
8338         * final.c (rest_of_handle_final): Use it.
8339         * varpool.c (varpool_output_variables): Call assemble_undefined_decl
8340         for nodes without a definition.
8341
8342         * target.def (call_args, end_call_args): New hooks.
8343         * hooks.c (hook_void_rtx_tree): New empty function.
8344         * hooks.h (hook_void_rtx_tree): Declare.
8345         * doc/tm.texi.in (TARGET_CALL_ARGS, TARGET_END_CALL_ARGS): Add.
8346         * doc/tm.texi: Regenerate.
8347         * calls.c (expand_call): Slightly rearrange the code.  Use the two new
8348         hooks.
8349         (expand_library_call_value_1): Use the two new hooks.
8350
8351         * expr.c (use_reg_mode): Just return for pseudo registers.
8352
8353         * combine.c (try_combine): Don't allow a call as one of the source
8354         insns.
8355
8356         * target.def (decl_end): New hook.
8357         * varasm.c (assemble_variable_contents, assemble_constant_contents):
8358         Use it.
8359         * doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
8360         * doc/tm.texi: Regenerate.
8361
8362 2014-11-06  Renlin Li  <renlin.li@arm.com>
8363
8364         * config/aarch64/aarch64.c (aarch64_architecture_version): New.
8365         (processor): New architecture_version field.
8366         (aarch64_override_options): Initialize aarch64_architecture_version.
8367         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_ARCH,
8368         __ARM_ARCH_PROFILE, aarch64_arch_name macro.
8369
8370 2014-11-06  James Greenhalgh  <james.greenhalgh@arm.com>
8371
8372         * params.def (sra-max-scalarization-size-Ospeed): New.
8373         (sra-max-scalarization-size-Osize): Likewise.
8374         * doc/invoke.texi (sra-max-scalarization-size-Ospeed): Document.
8375         (sra-max-scalarization-size-Osize): Likewise.
8376         * toplev.c (process_options): Set default values for new
8377         parameters.
8378         * tree-sra.c (analyze_all_variable_accesses): Use new parameters.
8379         * targhooks.c (get_move_ratio): Remove static designator.
8380         * target.h (get_move_ratio): Declare.
8381
8382 2014-11-06  Marek Polacek  <polacek@redhat.com>
8383
8384         * sanopt.c (sanopt_optimize_walker): Limit removal of the checks.
8385         Remove vector limit.
8386
8387 2014-11-06  Richard Biener  <rguenther@suse.de>
8388
8389         * match.pd: Implement bitwise binary and unary simplifications
8390         from tree-ssa-forwprop.c.
8391         * fold-const.c (fold_unary_loc): Remove them here.
8392         (fold_binary_loc): Likewise.
8393         * tree-ssa-forwprop.c (simplify_not_neg_expr): Remove.
8394         (truth_valued_ssa_name): Likewise.
8395         (lookup_logical_inverted_value): Likewise.
8396         (simplify_bitwise_binary_1): Likewise.
8397         (hoist_conversion_for_bitop_p): Likewise.
8398         (simplify_bitwise_binary_boolean): Likewise.
8399         (simplify_bitwise_binary): Likewise.
8400         (pass_forwprop::execute): Remove calls to simplify_not_neg_expr
8401         and simplify_bitwise_binary.
8402         * genmatch.c (dt_node::append_true_op): Use safe_as_a for parent.
8403         (decision_tree::insert): Also insert non-expressions.
8404
8405 2014-11-06  Hale Wang  <hale.wang@arm.com>
8406
8407         * config/arm/arm-cores.def: Add support for
8408         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8409         cortex-m1.small-multiply.
8410         * config/arm/arm-tables.opt: Regenerate.
8411         * config/arm/arm-tune.md: Regenerate.
8412         * config/arm/arm.c: Update the rtx-costs for MUL.
8413         * config/arm/bpabi.h: Handle
8414         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8415         cortex-m1.small-multiply.
8416         * doc/invoke.texi: Document
8417         -mcpu=cortex-m0.small-multiply,cortex-m0plus.small-multiply,
8418         cortex-m1.small-multiply.
8419
8420 2014-11-06  Hale Wang  <hale.wang@arm.com>
8421
8422         * config/arm/arm.c: Add cortex-m7 tune.
8423         * config/arm/arm-cores.def: Use cortex-m7 tune.
8424
8425 2014-11-05  Uros Bizjak  <ubizjak@gmail.com>
8426
8427         PR target/63538
8428         * config/i386/i386.c (in_large_data_p): Reject automatic variables.
8429         (ix86_encode_section_info): Do not check for non-automatic varibles
8430         when setting SYMBOL_FLAG_FAR_ADDR flag.
8431         (x86_64_elf_select_section): Do not check ix86_cmodel here.
8432         (x86_64_elf_unique_section): Ditto.
8433         (x86_elf_aligned_common): Emit tab before .largecomm.
8434
8435 2014-11-05  Joseph Myers  <joseph@codesourcery.com>
8436
8437         PR preprocessor/9449
8438         * doc/cpp.texi (Character sets, Tokenization)
8439         (Implementation-defined behavior): Don't refer to UCNs in
8440         identifiers requiring -fextended-identifiers.
8441         * doc/cppopts.texi (-fextended-identifiers): Document as enabled
8442         by default for C99 and later and C++.
8443         * doc/invoke.texi (-std=c99, -std=c11): Don't refer to extended
8444         identifiers needing -fextended-identifiers.
8445
8446 2014-11-05  Ilya Tocar  <ilya.tocar@intel.com>
8447
8448         * config/i386/i386.c (expand_vec_perm_pshufb): Try vpermq/vpermd
8449         for 512-bit wide modes.
8450         (expand_vec_perm_1): Use correct versions of patterns.
8451         * config/i386/sse.md (avx512f_vec_dup<mode>_1): New.
8452         (vashr<mode>3<mask_name>): Split V8HImode and V16QImode.
8453
8454 2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>
8455
8456         * ipa-chkp.c: New.
8457         * ipa-chkp.h: New.
8458         * tree-chkp.c: New.
8459         * tree-chkp.h: New.
8460         * tree-chkp-opt.c: New.
8461         * rtl-chkp.c: New.
8462         * rtl-chkp.h: New.
8463         * Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
8464         tree-chkp-opt.o.
8465         (GTFILES): Add tree-chkp.c.
8466         * mode-classes.def (MODE_POINTER_BOUNDS): New.
8467         * tree.def (POINTER_BOUNDS_TYPE): New.
8468         * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
8469         (POINTER_BOUNDS_MODE): New.
8470         (make_pointer_bounds_mode): New.
8471         * machmode.h (POINTER_BOUNDS_MODE_P): New.
8472         * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
8473         (layout_type): Support POINTER_BOUNDS_TYPE.
8474         * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
8475         * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
8476         * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
8477         (type_contains_placeholder_1): Likewise.
8478         (build_common_tree_nodes): Initialize
8479         pointer_bounds_type_node.
8480         * tree.h (POINTER_BOUNDS_TYPE_P): New.
8481         (pointer_bounds_type_node): New.
8482         (POINTER_BOUNDS_P): New.
8483         (BOUNDED_TYPE_P): New.
8484         (BOUNDED_P): New.
8485         (CALL_WITH_BOUNDS_P): New.
8486         * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
8487         (gimple_call_with_bounds_p): New.
8488         (gimple_call_set_with_bounds): New.
8489         (gimple_return_retbnd): New.
8490         (gimple_return_set_retbnd): New
8491         * gimple.c (gimple_build_return): Increase number of ops
8492         for return statement.
8493         (gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
8494         flag.
8495         * gimple-pretty-print.c (dump_gimple_return): Print second op.
8496         * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
8497         * gimplify.c (gimplify_init_constructor): Avoid infinite
8498         loop during gimplification of bounds initializer.
8499         * calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
8500         (special_function_p): Use original decl name when analyzing
8501         instrumentation clone.
8502         (arg_data): Add fields special_slot, pointer_arg and
8503         pointer_offset.
8504         (store_bounds): New.
8505         (emit_call_1): Propagate instrumentation flag for CALL.
8506         (initialize_argument_information): Compute pointer_arg,
8507         pointer_offset and special_slot for pointer bounds arguments.
8508         (finalize_must_preallocate): Preallocate when storing bounds
8509         in bounds table.
8510         (compute_argument_addresses): Skip pointer bounds.
8511         (expand_call): Store bounds into tables separately.  Return
8512         result joined with resulting bounds.
8513         * cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
8514         (expand_call_stmt): Propagate bounds flag for CALL_EXPR.
8515         (expand_return): Add returned bounds arg.  Handle returned bounds.
8516         (expand_gimple_stmt_1): Adjust to new expand_return signature.
8517         (gimple_expand_cfg): Reset rtx bounds map.
8518         * expr.c: Include tree-chkp.h, rtl-chkp.h.
8519         (expand_assignment): Handle returned bounds.
8520         (store_expr_with_bounds): New.  Replaces store_expr with new bounds
8521         target argument.  Handle bounds returned by calls.
8522         (store_expr): Now wraps store_expr_with_bounds.
8523         * expr.h (store_expr_with_bounds): New.
8524         * function.c: Include tree-chkp.h, rtl-chkp.h.
8525         (bounds_parm_data): New.
8526         (use_register_for_decl): Do not registerize decls used for bounds
8527         stores and loads.
8528         (assign_parms_augmented_arg_list): Add bounds of the result
8529         structure pointer as the second argument.
8530         (assign_parm_find_entry_rtl): Mark bounds are never passed on
8531         the stack.
8532         (assign_parm_is_stack_parm): Likewise.
8533         (assign_parm_load_bounds): New.
8534         (assign_bounds): New.
8535         (assign_parms): Load bounds and determine a location for
8536         returned bounds.
8537         (diddle_return_value_1): New.
8538         (diddle_return_value): Handle returned bounds.
8539         * function.h (rtl_data): Add field for returned bounds.
8540         * varasm.c: Include tree-chkp.h.
8541         (output_constant): Support POINTER_BOUNDS_TYPE.
8542         (output_constant_pool_2): Support MODE_POINTER_BOUNDS.
8543         (ultimate_transparent_alias_target): Move up.
8544         (make_decl_rtl): For instrumented function use
8545         name of the original decl.
8546         (assemble_start_function): Mark function as global
8547         in case it is instrumentation clone of the global
8548         function.
8549         (do_assemble_alias): Follow transparent alias chain
8550         for identifier.  Check if original alias is public.
8551         (maybe_assemble_visibility): Use visibility of the
8552         original function for instrumented version.
8553         (default_unique_section): Likewise.
8554         * emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
8555         (init_emit_once): Build pointer bounds zero constants.
8556         * explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
8557         * target.def (builtin_chkp_function): New.
8558         (chkp_bound_type): New.
8559         (chkp_bound_mode): New.
8560         (chkp_make_bounds_constant): New.
8561         (chkp_initialize_bounds): New.
8562         (load_bounds_for_arg): New.
8563         (store_bounds_for_arg): New.
8564         (load_returned_bounds): New.
8565         (store_returned_bounds): New.
8566         (chkp_function_value_bounds): New.
8567         (setup_incoming_vararg_bounds): New.
8568         (function_arg): Update hook description with new possible return
8569         value CONST_INT.
8570         * targhooks.h (default_load_bounds_for_arg): New.
8571         (default_store_bounds_for_arg): New.
8572         (default_load_returned_bounds): New.
8573         (default_store_returned_bounds): New.
8574         (default_chkp_bound_type): New.
8575         (default_chkp_bound_mode): New.
8576         (default_builtin_chkp_function): New.
8577         (default_chkp_function_value_bounds): New.
8578         (default_chkp_make_bounds_constant): New.
8579         (default_chkp_initialize_bounds): New.
8580         (default_setup_incoming_vararg_bounds): New.
8581         * targhooks.c (default_load_bounds_for_arg): New.
8582         (default_store_bounds_for_arg): New.
8583         (default_load_returned_bounds): New.
8584         (default_store_returned_bounds): New.
8585         (default_chkp_bound_type): New.
8586         (default_chkp_bound_mode); New.
8587         (default_builtin_chkp_function): New.
8588         (default_chkp_function_value_bounds): New.
8589         (default_chkp_make_bounds_constant): New.
8590         (default_chkp_initialize_bounds): New.
8591         (default_setup_incoming_vararg_bounds): New.
8592         * builtin-types.def (BT_BND): New.
8593         (BT_FN_PTR_CONST_PTR): New.
8594         (BT_FN_CONST_PTR_CONST_PTR): New.
8595         (BT_FN_BND_CONST_PTR): New.
8596         (BT_FN_CONST_PTR_BND): New.
8597         (BT_FN_PTR_CONST_PTR_SIZE): New.
8598         (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
8599         (BT_FN_VOID_PTRPTR_CONST_PTR): New.
8600         (BT_FN_VOID_CONST_PTR_SIZE): New.
8601         (BT_FN_VOID_PTR_BND): New.
8602         (BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
8603         (BT_FN_BND_CONST_PTR_SIZE): New.
8604         (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
8605         (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
8606         * chkp-builtins.def: New.
8607         * builtins.def: include chkp-builtins.def.
8608         (DEF_CHKP_BUILTIN): New.
8609         * builtins.c: Include tree-chkp.h and rtl-chkp.h.
8610         (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
8611         BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
8612         BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
8613         BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
8614         BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
8615         BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
8616         BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
8617         BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
8618         BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
8619         BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
8620         (std_expand_builtin_va_start): Init bounds for va_list.
8621         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
8622         __CHKP__ macro when Pointer Bounds Checker is on.
8623         * params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
8624         * passes.def (pass_ipa_chkp_versioning): New.
8625         (pass_early_local_passes): Renamed to pass_build_ssa_passes.
8626         (pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
8627         (pass_chkp_instrumentation_passes): New.
8628         (pass_ipa_chkp_produce_thunks): New.
8629         (pass_local_optimization_passes): New.
8630         (pass_chkp_opt): New.
8631         * tree-pass.h (make_pass_ipa_chkp_versioning): New.
8632         (make_pass_ipa_chkp_produce_thunks): New.
8633         (make_pass_chkp): New.
8634         (make_pass_chkp_opt): New.
8635         (make_pass_early_local_passes): Renamed to ...
8636         (make_pass_build_ssa_passes): This.
8637         (make_pass_chkp_instrumentation_passes): New.
8638         (make_pass_local_optimization_passes): New.
8639         * passes.c (pass_manager::execute_early_local_passes): Execute
8640         early passes in three steps.
8641         (execute_all_early_local_passes): Renamed to ...
8642         (execute_build_ssa_passes): This.
8643         (pass_data_early_local_passes): Renamed to ...
8644         (pass_data_build_ssa_passes): This.
8645         (pass_early_local_passes): Renamed to ...
8646         (pass_build_ssa_passes): This.
8647         (pass_data_chkp_instrumentation_passes): New.
8648         (pass_chkp_instrumentation_passes): New.
8649         (pass_data_local_optimization_passes): New.
8650         (pass_local_optimization_passes): New.
8651         (make_pass_early_local_passes): Renamed to ...
8652         (make_pass_build_ssa_passes): This.
8653         (make_pass_chkp_instrumentation_passes): New.
8654         (make_pass_local_optimization_passes): New.
8655         * c-family/c.opt (fcheck-pointer-bounds): New.
8656         (fchkp-check-incomplete-type): New.
8657         (fchkp-zero-input-bounds-for-main): New.
8658         (fchkp-first-field-has-own-bounds): New.
8659         (fchkp-narrow-bounds): New.
8660         (fchkp-narrow-to-innermost-array): New.
8661         (fchkp-optimize): New.
8662         (fchkp-use-fast-string-functions): New.
8663         (fchkp-use-nochk-string-functions): New.
8664         (fchkp-use-static-bounds): New.
8665         (fchkp-use-static-const-bounds): New.
8666         (fchkp-treat-zero-dynamic-size-as-infinite): New.
8667         (fchkp-check-read): New.
8668         (fchkp-check-write): New.
8669         (fchkp-store-bounds): New.
8670         (fchkp-instrument-calls): New.
8671         (fchkp-instrument-marked-only): New.
8672         (Wchkp): New.
8673         * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
8674         (handle_bnd_legacy): New.
8675         (handle_bnd_instrument): New.
8676         (c_common_attribute_table): Add bnd_variable_size, bnd_legacy
8677         and bnd_instrument.  Fix documentation.
8678         (c_common_format_attribute_table): Likewsie.
8679         * toplev.c: include tree-chkp.h.
8680         (process_options): Check Pointer Bounds Checker is supported.
8681         (compile_file): Add chkp_finish_file call.
8682         * ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
8683         to handle instrumentation clones properly.
8684         (propagate_constants_accross_call): Do not propagate
8685         through instrumentation thunks.
8686         * ipa-pure-const.c (propagate_pure_const): Support
8687         IPA_REF_CHKP.
8688         * ipa-inline.c (early_inliner): Check edge has summary allocated.
8689         * ipa-split.c: Include tree-chkp.h.
8690         (find_retbnd): New.
8691         (split_part_set_ssa_name_p): New.
8692         (consider_split): Do not split retbnd and retval
8693         producers.
8694         (insert_bndret_call_after): new.
8695         (split_function): Propagate Pointer Bounds Checker
8696         instrumentation marks and handle returned bounds.
8697         * tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
8698         into bit field and add with_bounds field.
8699         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
8700         with_bounds field for instrumented calls.
8701         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
8702         CALL_WITH_BOUNDS_P flag for calls.
8703         * tree-ssa-ccp.c: Include tree-chkp.h.
8704         (insert_clobber_before_stack_restore): Handle
8705         BUILT_IN_CHKP_BNDRET calls.
8706         * tree-ssa-dce.c: Include tree-chkp.h.
8707         (propagate_necessity): For free call fed by alloc check
8708         bounds are also provided by the same alloc.
8709         (eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
8710         used by free calls.
8711         * tree-inline.c: Include tree-chkp.h.
8712         (declare_return_variable): Add arg holding
8713         returned bounds slot.  Create and initialize returned bounds var.
8714         (remap_gimple_stmt): Handle returned bounds.
8715         Return sequence of statements instead of a single statement.
8716         (insert_init_stmt): Add declaration.
8717         (remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
8718         (copy_bb): Adjust to changed return type of remap_gimple_stmt.
8719         Properly handle bounds in va_arg_pack and va_arg_pack_len.
8720         (expand_call_inline): Handle returned bounds.  Add bounds copy
8721         for generated mem to mem assignments.
8722         * tree-inline.h (copy_body_data): Add fields retbnd and
8723         assign_stmts.
8724         * value-prof.c: Include tree-chkp.h.
8725         (gimple_ic): Support returned bounds.
8726         * ipa.c (cgraph_build_static_cdtor_1): Support contructors
8727         with "chkp ctor" and "bnd_legacy" attributes.
8728         (symtab_remove_unreachable_nodes): Keep initial values for
8729         pointer bounds to be used for checks eliminations.
8730         (process_references): Handle IPA_REF_CHKP.
8731         (walk_polymorphic_call_targets): Likewise.
8732         * ipa-visibility.c (cgraph_externally_visible_p): Mark
8733         instrumented 'main' as externally visible.
8734         (function_and_variable_visibility): Filter instrumentation
8735         thunks.
8736         * cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
8737         field.
8738         (cgraph_node): Add instrumented_version, orig_decl and
8739         instrumentation_clone fields.
8740         (symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
8741         (varpool_node): Add need_bounds_init field.
8742         (cgraph_local_p): New.
8743         * cgraph.c: Include tree-chkp.h.
8744         (cgraph_node::remove): Fix instrumented_version
8745         of the referenced node if any.
8746         (cgraph_node::dump): Dump instrumentation_clone and
8747         instrumented_version fields.
8748         (cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
8749         references and instrumentation thunks.
8750         (cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
8751         all not instrumented instrumentation clones alive.
8752         (cgraph_redirect_edge_call_stmt_to_callee): Support
8753         returned bounds.
8754         * cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
8755         reference.
8756         (cgraph_rebuild_references): Likewise.
8757         * cgraphunit.c: Include tree-chkp.h.
8758         (assemble_thunks_and_aliases): Skip thunks calling instrumneted
8759         function version.
8760         (varpool_finalize_decl): Register statically initialized decls
8761         in Pointer Bounds Checker.
8762         (walk_polymorphic_call_targets): Do not mark generated call to
8763         __builtin_unreachable as with_bounds.
8764         (output_weakrefs): If there are both instrumented and original
8765         versions, output only one of them.
8766         (cgraph_node::expand_thunk): Set with_bounds flag
8767         for created call statement.
8768         * ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
8769         (ipa_ref): increase size of use field.
8770         * symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
8771         * varpool.c (dump_varpool_node): Dump need_bounds_init field.
8772         (ctor_for_folding): Do not fold constant bounds vars.
8773         * lto-streamer.h (LTO_minor_version): Change minor version from
8774         0 to 1.
8775         * lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
8776         pointer bounds.
8777         (lto_output_node): Output instrumentation_clone,
8778         thunk.add_pointer_bounds_args and orig_decl field.
8779         (lto_output_ref): Adjust to new ipa_ref::use field size.
8780         (input_overwrite_node): Read instrumentation_clone field.
8781         (input_node): Read thunk.add_pointer_bounds_args and orig_decl
8782         fields.
8783         (input_ref): Adjust to new ipa_ref::use field size.
8784         (input_cgraph_1): Compute instrumented_version fields and restore
8785         IDENTIFIER_TRANSPARENT_ALIAS chains.
8786         (lto_output_varpool_node): Output
8787         need_bounds_init value.
8788         (input_varpool_node): Read need_bounds_init value.
8789         * lto-partition.c (add_symbol_to_partition_1): Keep original
8790         and instrumented versions together.
8791         (privatize_symbol_name): Restore transparent alias chain if required.
8792         (add_references_to_partition): Add references to pointer bounds vars.
8793         * dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
8794         * dwarf2out.c (gen_subprogram_die): Ignore bound args.
8795         (gen_type_die_with_usage): Skip pointer bounds.
8796         (dwarf2out_global_decl): Likewise.
8797         (is_base_type): Support POINTER_BOUNDS_TYPE.
8798         (gen_formal_types_die): Skip pointer bounds.
8799         (gen_decl_die): Likewise.
8800         * var-tracking.c (vt_add_function_parameters): Skip
8801         bounds parameters.
8802         * ipa-icf.c (sem_function::merge): Do not merge when instrumentation
8803         thunk still exists.
8804         (sem_variable::merge): Reset need_bounds_init flag.
8805         * doc/extend.texi: Document Pointer Bounds Checker built-in functions
8806         and attributes.
8807         * doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8808         (TARGET_STORE_BOUNDS_FOR_ARG): New.
8809         (TARGET_LOAD_RETURNED_BOUNDS): New.
8810         (TARGET_STORE_RETURNED_BOUNDS): New.
8811         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8812         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8813         (TARGET_BUILTIN_CHKP_FUNCTION): New.
8814         (TARGET_CHKP_BOUND_TYPE): New.
8815         (TARGET_CHKP_BOUND_MODE): New.
8816         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8817         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8818         * doc/tm.texi: Regenerated.
8819         * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
8820         (BND32mode): New.
8821         (BND64mode): New.
8822         * doc/invoke.texi (-mmpx): New.
8823         (-mno-mpx): New.
8824         (chkp-max-ctor-size): New.
8825         * config/i386/constraints.md (w): New.
8826         (Ti): New.
8827         (Tb): New.
8828         * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
8829         * config/i386/i386-modes.def (BND32): New.
8830         (BND64): New.
8831         * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
8832         * config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
8833         (regclass_map): Add bound registers.
8834         (dbx_register_map): Likewise.
8835         (dbx64_register_map): Likewise.
8836         (svr4_dbx_register_map): Likewise.
8837         (isa_opts): Add -mmpx.
8838         (PTA_MPX): New.
8839         (ix86_option_override_internal): Support MPX ISA.
8840         (ix86_conditional_register_usage): Support bound registers.
8841         (ix86_code_end): Add MPX bnd prefix.
8842         (output_set_got): Likewise.
8843         (print_reg): Avoid prefixes for bound registers.
8844         (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
8845         (ix86_print_operand_punct_valid_p): Likewise.
8846         (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
8847         UNSPEC_BNDLDX_ADDR.
8848         (ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
8849         (ix86_class_likely_spilled_p): Add bound regs support.
8850         (ix86_hard_regno_mode_ok): Likewise.
8851         (x86_order_regs_for_local_alloc): Likewise.
8852         (ix86_bnd_prefixed_insn_p): New.
8853         (ix86_builtins): Add
8854         IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
8855         IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
8856         IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
8857         IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
8858         IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
8859         IX86_BUILTIN_BNDUPPER.
8860         (builtin_isa): Add leaf_p and nothrow_p fields.
8861         (def_builtin): Initialize leaf_p and nothrow_p.
8862         (ix86_add_new_builtins): Handle leaf_p and nothrow_p
8863         flags.
8864         (bdesc_mpx): New.
8865         (bdesc_mpx_const): New.
8866         (ix86_init_mpx_builtins): New.
8867         (ix86_init_builtins): Call ix86_init_mpx_builtins.
8868         (ix86_emit_cmove): New.
8869         (ix86_emit_move_max): New.
8870         (ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
8871         IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
8872         IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
8873         IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
8874         IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
8875         IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
8876         (ix86_function_value_bounds): New.
8877         (ix86_builtin_mpx_function): New.
8878         (ix86_get_arg_address_for_bt): New.
8879         (ix86_load_bounds): New.
8880         (ix86_store_bounds): New.
8881         (ix86_load_returned_bounds): New.
8882         (ix86_store_returned_bounds): New.
8883         (ix86_mpx_bound_mode): New.
8884         (ix86_make_bounds_constant): New.
8885         (ix86_initialize_bounds):
8886         (TARGET_LOAD_BOUNDS_FOR_ARG): New.
8887         (TARGET_STORE_BOUNDS_FOR_ARG): New.
8888         (TARGET_LOAD_RETURNED_BOUNDS): New.
8889         (TARGET_STORE_RETURNED_BOUNDS): New.
8890         (TARGET_CHKP_BOUND_MODE): New.
8891         (TARGET_BUILTIN_CHKP_FUNCTION): New.
8892         (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
8893         (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
8894         (TARGET_CHKP_INITIALIZE_BOUNDS): New.
8895         (ix86_option_override_internal): Do not
8896         support x32 with MPX.
8897         (init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
8898         and force_bnd_pass.
8899         (function_arg_advance_32): Return number of used integer
8900         registers.
8901         (function_arg_advance_64): Likewise.
8902         (function_arg_advance_ms_64): Likewise.
8903         (ix86_function_arg_advance): Handle pointer bounds.
8904         (ix86_function_arg): Likewise.
8905         (ix86_function_value_regno_p): Mark fisrt bounds registers as
8906         possible function value.
8907         (ix86_function_value_1): Handle pointer bounds type/mode
8908         (ix86_return_in_memory): Likewise.
8909         (ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
8910         (ix86_expand_call): Generate returned bounds.
8911         (ix86_setup_incoming_vararg_bounds): New.
8912         (ix86_va_start): Initialize bounds for pointers in va_list.
8913         (TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
8914         * config/i386/i386.h (TARGET_MPX): New.
8915         (TARGET_MPX_P): New.
8916         (FIRST_PSEUDO_REGISTER): Fix to new value.
8917         (FIXED_REGISTERS): Add bound registers.
8918         (CALL_USED_REGISTERS): Likewise.
8919         (REG_ALLOC_ORDER): Likewise.
8920         (HARD_REGNO_NREGS): Likewise.
8921         (VALID_BND_REG_MODE): New.
8922         (FIRST_BND_REG): New.
8923         (LAST_BND_REG): New.
8924         (reg_class): Add BND_REGS.
8925         (REG_CLASS_NAMES): Likewise.
8926         (REG_CLASS_CONTENTS): Likewise.
8927         (BND_REGNO_P): New.
8928         (ANY_BND_REG_P): New.
8929         (BNDmode): New.
8930         (HI_REGISTER_NAMES): Add bound registers.
8931         (ix86_args): Add bnd_regno, bnds_in_bt, force_bnd_pass and
8932         stdarg fields.
8933         * config/i386/i386.md (UNSPEC_BNDMK): New.
8934         (UNSPEC_BNDMK_ADDR): New.
8935         (UNSPEC_BNDSTX): New.
8936         (UNSPEC_BNDLDX): New.
8937         (UNSPEC_BNDLDX_ADDR): New.
8938         (UNSPEC_BNDCL): New.
8939         (UNSPEC_BNDCU): New.
8940         (UNSPEC_BNDCN): New.
8941         (UNSPEC_MPX_FENCE): New.
8942         (UNSPEC_SIZEOF): New.
8943         (BND0_REG): New.
8944         (BND1_REG): New.
8945         (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8946         (length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8947         (prefix_rep): Check for bnd prefix.
8948         (prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8949         (length_nobnd): New.
8950         (length): Use length_nobnd when specified.
8951         (memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
8952         (BND): New.
8953         (bnd_ptr): New.
8954         (BNDCHECK): New.
8955         (bndcheck): New.
8956         (*jcc_1): Add MPX bnd prefix.
8957         (*jcc_2): Likewise.
8958         (jump): Likewise.
8959         (*indirect_jump): Likewise.
8960         (*tablejump_1): Likewise.
8961         (simple_return_internal): Likewise.
8962         (simple_return_internal_long): Likewise.
8963         (simple_return_pop_internal): Likewise.
8964         (simple_return_indirect_internal): Likewise.
8965         (<mode>_mk): New.
8966         (*<mode>_mk): New.
8967         (mov<mode>): New.
8968         (*mov<mode>_internal_mpx): New.
8969         (<mode>_<bndcheck>): New.
8970         (*<mode>_<bndcheck>): New.
8971         (<mode>_ldx): New.
8972         (*<mode>_ldx): New.
8973         (<mode>_stx): New.
8974         (*<mode>_stx): New.
8975         move_size_reloc_<mode>): New.
8976         * config/i386/predicates.md (address_mpx_no_base_operand): New.
8977         (address_mpx_no_index_operand): New.
8978         (bnd_mem_operator): New.
8979         (symbol_operand): New.
8980         (x86_64_immediate_size_operand): New.
8981         * config/i386/i386.opt (mmpx): New.
8982         * config/i386/i386-builtin-types.def (BND): New.
8983         (ULONG): New.
8984         (BND_FTYPE_PCVOID_ULONG): New.
8985         (VOID_FTYPE_BND_PCVOID): New.
8986         (VOID_FTYPE_PCVOID_PCVOID_BND): New.
8987         (BND_FTYPE_PCVOID_PCVOID): New.
8988         (BND_FTYPE_PCVOID): New.
8989         (BND_FTYPE_BND_BND): New.
8990         (PVOID_FTYPE_PVOID_PVOID_ULONG): New.
8991         (PVOID_FTYPE_PCVOID_BND_ULONG): New.
8992         (ULONG_FTYPE_VOID): New.
8993         (PVOID_FTYPE_BND): New.
8994
8995 2014-11-05  Bernd Schmidt  <bernds@codesourcery.com>
8996
8997         * passes.def (pass_compute_alignments, pass_duplicate_computed_gotos,
8998         pass_variable_tracking, pass_free_cfg, pass_machine_reorg,
8999         pass_cleanup_barriers, pass_delay_slots,
9000         pass_split_for_shorten_branches, pass_convert_to_eh_region_ranges,
9001         pass_shorten_branches, pass_est_nothrow_function_flags,
9002         pass_dwarf2_frame, pass_final): Move outside of pass_postreload and
9003         into pass_late_compilation.
9004         (pass_late_compilation): Add.
9005         * passes.c (pass_data_late_compilation, pass_late_compilation,
9006         make_pass_late_compilation): New.
9007         * timevar.def (TV_LATE_COMPILATION): New.
9008
9009         * target.def (omit_struct_return_reg): New data hook.
9010         * doc/tm.texi.in: Add @hook TARGET_OMIT_STRUCT_RETURN_REG.
9011         * doc/tm.texi: Regenerate.
9012         * function.c (expand_function_end): Use it.
9013
9014         * target.def (no_register_allocation): New data hook.
9015         * doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
9016         * doc/tm.texi: Regenerate.
9017         * ira.c (gate_ira): New function.
9018         (pass_data_ira): Set has_gate.
9019         (pass_ira): Add a gate function.
9020         (pass_data_reload): Likewise.
9021         (pass_reload): Add a gate function.
9022         (pass_ira): Use it.
9023         * reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
9024         no register allocation happens on the target and return.
9025         * final.c (alter_subreg): Ensure register is not a pseudo before
9026         calling simplify_subreg.
9027         (output_operand): Assert that x isn't a pseudo only if doing
9028         register allocation.
9029
9030         * dbxout.c (dbxout_symbol): Don't call eliminate_regs on decls for
9031         global vars.
9032
9033         * optabs.c (emit_indirect_jump): Test HAVE_indirect_jump and emit a
9034         sorry if necessary.
9035
9036 2014-11-05  Alex Velenko  <Alex.Velenko@arm.com>
9037
9038         * simplify-rtx.c (simplify_binary_operation_1): Div check added.
9039         * rtl.h (SUBREG_P): New macro added.
9040
9041 2014-11-05  Tejas Belagod  <tejas.belagod@arm.com>
9042
9043         * config/aarch64/aarch64-builtins.c
9044         (aarch64_build_scalar_type): Remove.
9045         (aarch64_scalar_builtin_types, aarch64_simd_type,
9046         aarch64_simd_type, aarch64_mangle_builtin_scalar_type,
9047         aarch64_mangle_builtin_vector_type,
9048         aarch64_mangle_builtin_type, aarch64_simd_builtin_std_type,
9049         aarch64_lookup_simd_builtin_type, aarch64_simd_builtin_type,
9050         aarch64_init_simd_builtin_types,
9051         aarch64_init_simd_builtin_scalar_types): New.
9052         (aarch64_init_simd_builtins): Refactor.
9053         (aarch64_init_crc32_builtins): Fixup with qualifier.
9054         * config/aarch64/aarch64-protos.h
9055         (aarch64_mangle_builtin_type): Export.
9056         * config/aarch64/aarch64-simd-builtin-types.def: New.
9057         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Remove.
9058         (aarch64_mangle_type): Refactor.
9059         * config/aarch64/arm_neon.h: Declare vector types based on
9060         internal types.
9061         * config/aarch64/t-aarch64: Update dependency.
9062
9063 2014-11-04  Pat Haugen  <pthaugen@us.ibm.com>
9064
9065         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl,
9066         atomic_update_decl): Guard declaration with #ifdef.
9067
9068 2014-11-04  Marek Polacek  <polacek@redhat.com>
9069
9070         * sanopt.c (sanopt_optimize_walker): Remove unused variables.
9071
9072 2014-11-04  Marek Polacek  <polacek@redhat.com>
9073
9074         * Makefile.in (OBJS): Add sanopt.o.
9075         (GTFILES): Add sanopt.c.
9076         * asan.h (asan_expand_check_ifn): Declare.
9077         * asan.c (asan_expand_check_ifn): No longer static.
9078         (class pass_sanopt, pass_sanopt::execute, make_pass_sanopt): Move...
9079         * sanopt.c: ...here.  New file.
9080
9081 2014-11-04  Jiong Wang  <jiong.wang@arm.com>
9082 2014-11-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>
9083
9084         PR target/63293
9085         * config/aarch64/aarch64.c (aarch64_expand_epiloue): Add barriers before
9086         stack adjustment.
9087
9088 2014-11-04  Bernd Schmidt  <bernds@codesourcery.com>
9089
9090         * combine.c (combine_simplify_rtx): In STORE_FLAG_VALUE == -1 case,
9091         also verify that mode is equal to the mode of op0.
9092
9093         * bb-reorder.c (get_uncond_jump_length): Avoid using delete_insn,
9094         emit into a sequence instead.
9095
9096 2014-11-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9097
9098         * config/sh/sh.c (emit_fpu_switch): Drop unused automatic variable.
9099
9100 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9101
9102         config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
9103         (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
9104         (reduc_smax_<mode> *2): Rename to...
9105         (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
9106         (reduc_umin_<mode> *2): Rename to...
9107         (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
9108         (reduc_umax_<mode> *2): Rename to...
9109         (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
9110
9111 2014-11-04  Alan Lawrence  <alan.lawrence@arm.com>
9112
9113         config/arm/neon.md (reduc_plus_*): Rename to...
9114         (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
9115
9116 2014-11-04  Michael Collison <michael.collison@linaro.org>
9117
9118         * config/aarch64/iterators.md (lconst_atomic): New mode attribute
9119         to support constraints for CONST_INT in atomic operations.
9120         * config/aarch64/atomics.md
9121         (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
9122         (atomic_nand<mode>): Likewise.
9123         (atomic_fetch_<atomic_optab><mode>): Likewise.
9124         (atomic_fetch_nand<mode>): Likewise.
9125         (atomic_<atomic_optab>_fetch<mode>): Likewise.
9126         (atomic_nand_fetch<mode>): Likewise.
9127
9128 2014-11-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9129
9130         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in definition
9131         of __ARM_FEATURE_IDIV.
9132
9133 2014-11-04  Marek Polacek  <polacek@redhat.com>
9134
9135         * ubsan.c (instrument_object_size): Optimize [x & CST] array accesses.
9136
9137 2014-11-03  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9138
9139         * config/rx/rx.c (rx_handle_func_attribute): Mark unused argument.
9140
9141 2014-11-04  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9142
9143         Revert:
9144         2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9145         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9146         Allow CC mode if HAVE_cbranchcc4.
9147
9148 2014-11-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9149
9150         * godump.c (go_format_type): Rewrite RECORD_TYPE nad UNION_TYPE support
9151         with -fdump-go-spec.  Anonymous substructures are now flattened and
9152         replaced by their fields (record) or the first named, non-bitfield
9153         field (union).
9154
9155 2014-11-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9156
9157         * input.c (expand_location_to_spelling_point): Fix typo.
9158         (expansion_point_location_if_in_system_header): Fix comment.
9159
9160 2014-11-03  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9161
9162         * config/avr/gen-avr-mmcu-specs.c: Remove unnecessary format specifier.
9163
9164 2014-11-03  Richard Biener  <rguenther@suse.de>
9165
9166         * tree-eh.c (operation_could_trap_helper_p): Handle conversions
9167         like ordinary operations.
9168         * gimplify.c (gimplify_conversion): Gimplify CONVERT_EXPR
9169         as NOP_EXPR.
9170
9171 2014-11-03  Joseph Myers  <joseph@codesourcery.com>
9172
9173         * configure.ac (TARGET_GLIBC_MAJOR, TARGET_GLIBC_MINOR): Define
9174         macros.
9175         * configure, config.h.in: Regenerate.
9176         * config/rs6000/linux.h [TARGET_GLIBC_MAJOR > 2 ||
9177         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9178         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9179         * config/rs6000/linux64.h [TARGET_GLIBC_MAJOR > 2 ||
9180         (TARGET_GLIBC_MAJOR == 2 && TARGET_GLIBC_MINOR >= 19)]
9181         (RS6000_GLIBC_ATOMIC_FENV): New macro.
9182         * config/rs6000/rs6000.c (atomic_hold_decl, atomic_clear_decl)
9183         (atomic_update_decl): New static variables.
9184         (rs6000_atomic_assign_expand_fenv) [RS6000_GLIBC_ATOMIC_FENV]:
9185         Generate calls to __atomic_feholdexcept, __atomic_feclearexcept
9186         and __atomic_feupdateenv for soft-float and no-FPRs.
9187
9188 2014-11-03  Richard Biener  <rguenther@suse.de>
9189
9190         * match.pd: Add two abs patterns.  Announce tree_expr_nonnegative_p.
9191         Also drop bogus FLOAT_EXPR and FIX_TRUNC_EXPR.
9192         * fold-const.c (fold_unary_loc): Remove them here.
9193         (tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
9194         * gimple-fold.c (fold_gimple_assign): Remove now obsolete
9195         GIMPLE_UNARY_RHS case.
9196         (gimple_fold_stmt_to_constant_1): Likewise.
9197         (replace_stmt_with_simplification): Fix inverted comparison.
9198
9199 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9200
9201         PR tree-optimization/60770
9202         * tree-into-ssa.c (rewrite_update_stmt): Return whether the
9203         statement should be removed.
9204         (maybe_register_def): Likewise. Replace clobbers with default
9205         definitions.
9206         (rewrite_dom_walker::before_dom_children): Remove statement if
9207         rewrite_update_stmt says so.
9208         * tree-ssa-live.c: Include tree-ssa.h.
9209         (set_var_live_on_entry): Do not mark undefined variables as live.
9210         (verify_live_on_entry): Do not check undefined variables.
9211         * tree-ssa.h (ssa_undefined_value_p): New parameter for the case
9212         of partially undefined variables.
9213         * tree-ssa.c (ssa_undefined_value_p): Likewise.
9214         (execute_update_addresses_taken): Do not drop clobbers.
9215
9216 2014-11-03  Marc Glisse  <marc.glisse@inria.fr>
9217
9218         PR tree-optimization/63666
9219         * fold-const.c: Include "optabs.h".
9220         (fold_ternary_loc) <VEC_PERM_EXPR>: Avoid canonicalizing a
9221         can_vec_perm_p permutation to one that is not.
9222
9223 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9224
9225         * ifcvt.c (noce_try_store_flag_mask): Check rtx cost.
9226
9227 2014-11-03  Andrew Pinski  <apinski@cavium.com>
9228
9229         * config/mips/mips-cpus.def (octeon3): New cpu.
9230         * config/mips/mips.c (mips_rtx_cost_data): Add octeon3.
9231         (mips_print_operand <case 'T', case 't'>): Fix a bug as the mode
9232         of the comparison no longer matches mode of the operands.
9233         (mips_issue_rate): Handle PROCESSOR_OCTEON3.
9234         * config/mips/mips.h (TARGET_OCTEON):  Add Octeon3.
9235         (TARGET_OCTEON2): Likewise.
9236         (TUNE_OCTEON): Add Octeon3.
9237         * config/mips/mips.md (processor): Add octeon3.
9238         * config/mips/octeon.md (octeon_fpu): New automaton and cpu_unit.
9239         (octeon_arith): Add octeon3.
9240         (octeon_condmove): Remove.
9241         (octeon_condmove_o1): New reservation.
9242         (octeon_condmove_o2): New reservation.
9243         (octeon_condmove_o3_int_on_cc): New reservation.
9244         (octeon_load_o2): Add octeon3.
9245         (octeon_cop_o2): Likewise.
9246         (octeon_store): Likewise.
9247         (octeon_brj_o2): Likewise.
9248         (octeon_imul3_o2): Likewise.
9249         (octeon_imul_o2): Likewise.
9250         (octeon_mfhilo_o2): Likewise.
9251         (octeon_imadd_o2): Likewise.
9252         (octeon_idiv_o2_si): Likewise.
9253         (octeon_idiv_o2_di): Likewise.
9254         (octeon_fpu): Add to the automaton.
9255         (octeon_fpu): New cpu unit.
9256         (octeon_condmove_o2): Check for non floating point modes.
9257         (octeon_load_o2): Add prefetchx.
9258         (octeon_cop_o2): Don't check for octeon3.
9259         (octeon3_faddsubcvt): New reservation.
9260         (octeon3_fmul): Likewise.
9261         (octeon3_fmadd): Likewise.
9262         (octeon3_div_sf): Likewise.
9263         (octeon3_div_df): Likewise.
9264         (octeon3_sqrt_sf): Likewise.
9265         (octeon3_sqrt_df): Likewise.
9266         (octeon3_rsqrt_sf): Likewise.
9267         (octeon3_rsqrt_df): Likewise.
9268         (octeon3_fabsnegmov): Likewise.
9269         (octeon_fcond): Likewise.
9270         (octeon_fcondmov): Likewise.
9271         (octeon_fpmtc1): Likewise.
9272         (octeon_fpmfc1): Likewise.
9273         (octeon_fpload): Likewise.
9274         (octeon_fpstore): Likewise.
9275         * config/mips/mips-tables.opt: Regenerate.
9276         * doc/invoke.texi (-march=@var{arch}): Add octeon3.
9277
9278 2014-11-03  Zhenqiang Chen  <zhenqiang.chen@arm.com>
9279
9280         * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
9281         Allow CC mode if HAVE_cbranchcc4.
9282
9283 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9284
9285         * config/arc/arc.c (write_ext_corereg_1): Delete.
9286         (arc_write_ext_corereg): Use FOR_EACH_SUBRTX.
9287
9288 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9289
9290         * config/arc/arc.c (arc600_corereg_hazard_1): Delete.
9291         (arc600_corereg_hazard): Use FOR_EACH_SUBRTX.
9292
9293 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9294
9295         * config/arc/arc.c (arc_rewrite_small_data_p): Constify argument.
9296         (small_data_pattern_1): Delete.
9297         (small_data_pattern): Use FOR_EACH_SUBRTX.
9298
9299 2014-11-02  Richard Sandiford  <richard.sandiford@arm.com>
9300
9301         * config/arc/arc.c: Include rtl-iter.h.
9302         (arc_rewrite_small_data_1): Delete.
9303         (arc_rewrite_small_data): Use FOR_EACH_SUBRTX_PTR.
9304
9305 2014-11-02  Michael Collison  <michael.collison@linaro.org>
9306
9307         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
9308         to support vector modes.
9309         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
9310
9311 2014-11-01  Andrew MacLeod  <amacleod@redhat,com>
9312
9313         * optabs.h: Flatten insn-codes.h to source files.  Move some prototypes
9314         and structs to genopinit.c.  Adjust protyoptypes to match optabs.c.
9315         * genopinit.c (main): Emit prototypes and structs into insn-opinit.h.
9316         * optabs.c: (gen_move_insn): Move to expr.c.
9317         * expr.h: Move protypes and enums to optabs.h.
9318         * expr.c: (gen_move_insn): Relocate from optabs.c.
9319         * genemit.c (main): Include insn-codes.h.
9320         * gengtype.c (open_base_files): Include insn-codes.h.
9321         * asan.c: Include insn-codes.h.
9322         * bb-reorder.c: Ditto.
9323         * builtins.c: Ditto.
9324         * calls.c: Ditto.
9325         * cfgexpand.c: Ditto.
9326         * cilk-common.c: Ditto.
9327         * combine.c: Ditto.
9328         * dojump.c: Ditto.
9329         * dse.c: Ditto.
9330         * except.c: Ditto.
9331         * explow.c: Ditto.
9332         * expmed.c: Ditto.
9333         * function.c: Ditto.
9334         * ifcvt.c: Ditto.
9335         * internal-fn.c: Ditto.
9336         * loop-unroll.c: Ditto.
9337         * lra.c: Ditto.
9338         * modulo-sched.c: Ditto.
9339         * omp-low.c: Ditto.
9340         * postreload.c: Ditto.
9341         * ree.c: Ditto.
9342         * reload.c: Ditto.
9343         * reload1.c: Ditto.
9344         * shrink-wrap.c: Ditto.
9345         * simplify-rtx.c: Ditto.
9346         * stmt.c: Ditto.
9347         * target-globals.c: Ditto.
9348         * targhooks.c: Ditto.
9349         * toplev.c: Ditto.
9350         * tree-if-conv.c: Ditto.
9351         * tree-ssa-forwprop.c: Ditto.
9352         * tree-ssa-loop-prefetch.c: Ditto.
9353         * tree-ssa-math-opts.c: Ditto.
9354         * tree-ssa-phiopt.c: Ditto.
9355         * tree-ssa-reassoc.c: Ditto.
9356         * tree-switch-conversion.c: Ditto.
9357         * tree-vect-data-refs.c: Ditto.
9358         * tree-vect-generic.c: Ditto.
9359         * tree-vect-loop.c: Ditto.
9360         * tree-vect-patterns.c: Ditto.
9361         * tree-vect-slp.c: Ditto.
9362         * tree-vect-stmts.c: Ditto.
9363         * tree-vrp.c: Ditto.
9364         * value-prof.c: Ditto.
9365         * config/aarch64/aarch64-builtins.c: Ditto.
9366         * config/alpha/alpha.c: Ditto.
9367         * config/arm/arm.c: Ditto.
9368         * config/cris/cris.c: Ditto.
9369         * config/epiphany/epiphany.c: Ditto.
9370         * config/frv/frv.c: Ditto.
9371         * config/h8300/h8300.c: Ditto.
9372         * config/ia64/ia64.c: Ditto.
9373         * config/iq2000/iq2000.c: Ditto.
9374         * config/m32c/m32c.c: Ditto.
9375         * config/mep/mep.c: Ditto.
9376         * config/microblaze/microblaze.c: Ditto.
9377         * config/mips/mips.c: Ditto.
9378         * config/mn10300/mn10300.c: Ditto.
9379         * config/moxie/moxie.c: Ditto.
9380         * config/msp430/msp430.c: Ditto.
9381         * config/nios2/nios2.c: Ditto.
9382         * config/pa/pa.c: Ditto.
9383         * config/rl78/rl78.c: Ditto.
9384         * config/rs6000/rs6000.c: Ditto.
9385         * config/rx/rx.c: Ditto.
9386         * config/s390/s390.c: Ditto.
9387         * config/sh/sh.c: Ditto.
9388         * config/sh/sh_treg_combine.cc: Ditto.
9389         * config/spu/spu.c: Ditto.
9390         * config/stormy16/stormy16.c: Ditto.
9391         * config/tilegx/mul-tables.c: Ditto.
9392         * config/tilegx/tilegx.c: Ditto.
9393         * config/tilepro/mul-tables.c: Ditto.
9394         * config/tilepro/tilepro.c: Ditto.
9395         * config/vax/vax.c: Ditto.
9396
9397 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9398
9399         * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
9400         (CLEAR_BY_PIECES_P): Likewise.
9401         (SET_BY_PIECES_P): Likewise.
9402         (STORE_BY_PIECES_P): Likewise.
9403         * doc/tm.texi: Regenerate.
9404         * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
9405         SET_BY_PIECES_P, STORE_BY_PIECES_P.
9406         * expr.c (MOVE_BY_PIECES_P): Remove.
9407         (CLEAR_BY_PIECES_P): Likewise.
9408         (SET_BY_PIECES_P): Likewise.
9409         (STORE_BY_PIECES_P): Likewise.
9410         (can_move_by_pieces): Rewrite in terms of
9411         targetm.use_by_pieces_infrastructure_p.
9412         (emit_block_move_hints): Likewise.
9413         (can_store_by_pieces): Likewise.
9414         (store_by_pieces): Likewise.
9415         (clear_storage_hints): Likewise.
9416         (emit_push_insn): Likewise.
9417         (expand_constructor): Likewise.
9418
9419 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9420
9421         * config/aarch64/aarch64.c
9422         (aarch64_use_by_pieces_infrastructre_p): New.
9423         (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
9424         * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
9425
9426 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9427
9428         * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
9429         (STORE_BY_PIECES_P): Likewise.
9430         * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9431         (mips_move_by_pieces_p): Rename to...
9432         (mips_use_by_pieces_infrastructure_p): ...this, use new hook
9433         parameters, use the default hook implementation as a
9434         fall-back.
9435
9436 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9437
9438         * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9439         (sh_use_by_pieces_infrastructure_p): Likewise.
9440         * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
9441         (STORE_BY_PIECES_P): Likewise.
9442         (SET_BY_PIECES_P): Likewise.
9443
9444 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9445
9446         * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
9447         (arc_use_by_pieces_infrastructure_p): Likewise.
9448         * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
9449         (CAN_MOVE_BY_PIECES): Likewise.
9450
9451 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9452
9453         * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
9454         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
9455         * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
9456         (CLEAR_BY_PIECES): Likewise.
9457         (SET_BY_PIECES): Likewise.
9458         (STORE_BY_PIECES): Likewise.
9459
9460 2014-11-01  James Greenhalgh  <james.greenhalgh@arm.com>
9461
9462         * target.def (use_by_pieces_infrastructure_p): New.
9463         * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
9464         is deprecated.
9465         (STORE_BY_PIECES_P): Likewise.
9466         (CLEAR_BY_PIECES_P): Likewise.
9467         (SET_BY_PIECES_P): Likewise.
9468         (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
9469         * doc/tm.texi: Regenerate.
9470         * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
9471         TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
9472         (STORE_BY_PIECES_P): Likewise.
9473         (CLEAR_BY_PIECES_P): Likewise.
9474         (SET_BY_PIECES_P): Likewise.
9475         (STORE_MAX_PIECES): Move to...
9476         * defaults.h (STORE_MAX_PIECES): ...here.
9477         * targhooks.c (get_move_ratio): New.
9478         (default_use_by_pieces_infrastructure_p): Likewise.
9479         * targhooks.h (default_use_by_pieces_infrastructure_p): New.
9480         * target.h (by_pieces_operation): New.
9481
9482 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9483
9484         PR target/63702
9485         * config/i386/i386.c (ix86_expand_args_builtin): Remove extra
9486         assignment to 'nargs' variable.
9487
9488 2014-10-31  Uros Bizjak  <ubizjak@gmail.com>
9489
9490         PR target/63620
9491         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): Declare.
9492         * config/i386/i386.c (ix86_use_pseudo_pic_reg): Export.
9493         * config/i386/i386.md (*pushtf): Allow only CONST_DOUBLEs that won't
9494         be reloaded through memory.
9495         (*pushxf): Ditto.
9496         (*pushdf): Ditto.
9497
9498 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9499
9500         PR rtl-optimization/63659
9501         * ree.c (update_reg_equal_equiv_notes): New function.
9502         (combine_set_extension, transform_ifelse): Use it.
9503
9504 2014-10-31  Jeff Law  <law@redhat.com>
9505
9506         * doc/contrib.texi: Add contribution notes for Balaji Iyer (Cilk+)
9507         and Jonny Grant (collect2).
9508
9509 2014-10-31  Richard Biener  <rguenther@suse.de>
9510
9511         * builtins.c (fold_builtin_atomic_always_lock_free): Use
9512         CONVERT_EXPR_P, CONVERT_EXPR_CODE_P and CASE_CONVERT where
9513         approprate.
9514         (fold_builtin_expect): Likewise.
9515         (integer_valued_real_p): Likewise.
9516         * cfgexpand.c (expand_debug_expr): Likewise.
9517         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Likewise.
9518         (find_foldable_builtin_expect): Likewise.
9519         * trans-mem.c (thread_private_new_memory): Likewise.
9520         * tree-affine.c (aff_combination_expand): Likewise.
9521         * tree-data-ref.c (initialize_matrix_A): Likewise.
9522         * tree-inline.c (copy_bb): Likewise.
9523         * tree-pretty-print.c (dump_function_name): Likewise.
9524         (print_call_name): Likewise.
9525         * tree-ssa-forwprop.c (constant_pointer_difference): Likewise.
9526         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise.
9527         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
9528         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Likewise.
9529         (vect_recog_widen_mult_pattern): Likewise.
9530         (vect_operation_fits_smaller_type): Likewise.
9531         * tree-vrp.c (find_assert_locations_1): Likewise.
9532         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9533         converts to NOP_EXPR.
9534
9535 2014-10-31  Richard Biener  <rguenther@suse.de>
9536
9537         * genmatch.c (expr::gen_transform): Use NOP_EXPRs instead of
9538         CONVERT_EXPRs in generated code.
9539         (dt_simplify::gen): Likewise.
9540
9541 2014-10-31  Evgeny Stupachenko  <evstupac@gmail.com>
9542
9543         PR target/63534
9544         * config/i386/i386.c (ix86_init_pic_reg): Emit SET_GOT to
9545         REAL_PIC_OFFSET_TABLE_REGNUM for mcount profiling.
9546         (ix86_save_reg): Save REAL_PIC_OFFSET_TABLE_REGNUM when profiling
9547         using mcount in 32bit PIC mode.
9548         (ix86_elim_entry_set_got): New.
9549         (ix86_expand_prologue): For the mcount profiling emit new SET_GOT
9550         in PROLOGUE, delete initial if possible.
9551
9552 2014-10-31  Eric Botcazou  <ebotcazou@adacore.com>
9553
9554         * ipa-inline.c (want_inline_small_function_p): Fix typo and formatting.
9555         (want_inline_function_to_all_callers_p): Fix formatting and simplify.
9556
9557 2014-10-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9558
9559         PR tree-optimization/63259
9560         * tree-ssa-math-opts.c (bswap_replace): Replace expression by a
9561         rotation left if it is a 16 bit byte swap.
9562         (pass_optimize_bswap::execute): Also consider bswap in LROTATE_EXPR
9563         and RROTATE_EXPR statements if it is a byte rotation.
9564
9565 2014-10-31  Jakub Jelinek  <jakub@redhat.com>
9566
9567         PR sanitizer/63697
9568         * tree-vrp.c (simplify_internal_call_using_ranges): For subcode ==
9569         MINUS_EXPR, check overflow on vr0.min - vr1.max and vr0.max - vr1.min
9570         instead of vr0.min - vr1.min and vr0.max - vr1.max.
9571
9572 2014-10-31  Max Ostapenko  <m.ostapenko@partner.samsung.com>
9573
9574         PR ipa/63696
9575         * ipa-icf.c (sem_function::~sem_function): Change free to delete to avoid
9576         alloc-dealloc mismatch with new, called in ipa_icf::sem_function::init.
9577
9578 2014-10-30  Felix Yang  <felix.yang@huawei.com>
9579
9580         * config/xtensa/xtensa.h (TARGET_LOOPS): New Macro.
9581         * config/xtensa/xtensa.c: Include dumpfile.h and hw-doloop.h.
9582         (xtensa_reorg, xtensa_reorg_loops): New.
9583         (xtensa_can_use_doloop_p, xtensa_invalid_within_doloop): New.
9584         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg): New.
9585         (xtensa_emit_loop_end): Emit the zero-overhead loop end label.
9586         (xtensa_doloop_hooks): Define.
9587         * config/xtensa/xtensa.md (doloop_end, loop_end): New
9588         (zero_cost_loop_start): Rewritten.
9589         (zero_cost_loop_end): Likewise.
9590
9591 2014-10-30  Steve Ellcey  <sellcey@imgtec.com>
9592
9593         * config.gcc (mips*-*-linux*): Combine 32 and 64 bit cases.
9594
9595 2014-10-30  Richard Biener  <rguenther@suse.de>
9596
9597         * genmatch.c: Remove <map>, <utility> and <string> includes.
9598         Include ggc.h and hash-map.h.
9599         (ggc_internal_cleared_alloc): Provide stub definition.
9600         (ggc_free): Likewise.
9601         (struct capture_id_map_hasher): New traits for hash_map.
9602         (cid_map_t): New typedef.
9603         (everywhere else): Replace std::map use with cid_map_t.
9604         * hash-map.h (hash_map::elements): New member function.
9605         * Makefile.in (build/genmatch.o): Add $(HASH_TABLE_H),
9606         hash-map.h and $(GGC_H) as dependency.
9607
9608 2014-10-30  Richard Biener  <rguenther@suse.de>
9609
9610         * genmatch.c (capture_info::walk_c_expr): Ignore capture
9611         uses inside TREE_TYPE ().
9612         * gimple-ssa-strength-reduction.c (stmt_cost): Use CASE_CONVERT.
9613         (find_candidates_dom_walker::before_dom_children): Likewise.
9614         (replace_mult_candidate): Use CONVERT_EXPR_CODE_P.
9615         (replace_profitable_candidates): Likewise.
9616         * tree-ssa-dom.c (initialize_hash_element): Canonicalize
9617         CONVERT_EXPR_CODE_P to CONVERT_EXPR.
9618         * convert.c (convert_to_integer): Use CASE_CONVERT.
9619
9620 2014-10-30  Richard Biener  <rguenther@suse.de>
9621
9622         * match.pd: Implement more patterns that simplify to a single value.
9623         * fold-const.c (fold_binary_loc): Remove them here.
9624         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise.
9625         (fwprop_ssa_val): Remove restriction on single uses.
9626
9627 2014-10-30  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9628
9629         * config/avr/driver-avr.c (avr_set_current_device): Remove.
9630
9631 2014-10-30  Martin Liska  <mliska@suse.cz>
9632
9633         PR ipa/63574
9634         PR ipa/63664
9635         * ipa-icf-gimple.c (func_checker::parse_labels): Missing comment added.
9636         (func_checker::compare_gimple_label): Simlified comparison introduced.
9637         * ipa-icf-gimple.h: Missing comment added.
9638
9639 2014-10-30  Jeff Law  <law@redhat.com>
9640
9641         * config/pa/pa-protos.h (pa_output_arg_descriptor): Strengthen
9642         argument from rtx to rtx_insn *.
9643         (compute_movmem_length, compute_clrmem_length): Likewise.
9644         (copy_fp_args, length_fp_args): Likewise.
9645         * config/pa/pa.c (legitimize_pic_address): Promote local variable
9646         "insn" from rtx to rtx_insn *.
9647         (legitimize_tls_address, pa_emit_move_sequence): Likewise.
9648         (pa_output_block_move, store_reg, store_reg_modify): Likewise.
9649         (set_reg_plus_d, pa_expand_prologue, hppa_profile_hook): Likewise.
9650         (branch_to_delay_slot_p, branch_needs_nop_p, use_skip_p): Likewise.
9651         (pa_output_arg_descriptor): Strengthen argument to an rtx_insn *.
9652         (compute_movmem_length, compute_clrmem_length): Likewise.
9653         (copy_fp-args, length_fp_args): Likewise.
9654
9655 2014-10-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9656
9657         * config/arm/arm.h (MACHMODE): Treat machine_mode as a
9658         scalar typedef.
9659         (CUMULATIVE_ARGS): Guard against target includes.
9660         (machine_function): Likewise.
9661
9662 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9663
9664         * config/aarch64/aarch64.c (aarch64_madd_needs_nop): Restore
9665         recog state after aarch64_prev_real_insn call.
9666
9667 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9668
9669         * config/aarch64/aarch64.h (MACHMODE): Add 'enum' to machine_mode.
9670
9671 2014-10-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9672
9673         * config/arm/arm.h (MACHMODE): Add 'enum' to machine_mode.
9674         (struct machine_function): Gate definition on
9675         !defined(USED_FOR_TARGET).
9676
9677 2014-10-29  DJ Delorie  <dj@redhat.com>
9678
9679         * expmed.c (strict_volatile_bitfield_p): Fix off-by-one error.
9680
9681 2014-10-29  Martin Liska  <mliska@suse.cz>
9682
9683         PR ipa/63587
9684         * cgraphunit.c (cgraph_node::expand_thunk): Only VAR_DECLs are put
9685         to local declarations.
9686         * function.c (add_local_decl): Implementation moved from header
9687         file, assert introduced for tree type.
9688         * function.h: Likewise.
9689
9690 2014-10-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9691
9692         * godump.c (go_format_type): Represent "float _Complex" and
9693         "double _Complex" as complex64 or complex128 in Go, as appropriate.
9694
9695 2014-10-29  Richard Biener  <rguenther@suse.de>
9696
9697         * match.pd: Implement a first set of conversion patterns.
9698         * fold-const.c (fold_unary_loc): Remove them here.
9699         * tree-ssa-forwprop.c (simplify_vce): Remove.
9700         (pass_forwprop::execute): Do not call simplify_vce.
9701
9702 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9703
9704         * addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
9705         builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
9706         cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
9707         config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
9708         config/aarch64/aarch64.c, config/aarch64/aarch64.h,
9709         config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
9710         config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
9711         config/arc/arc.h, config/arc/predicates.md,
9712         config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
9713         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9714         config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
9715         config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
9716         config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
9717         config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
9718         config/cr16/cr16-protos.h, config/cr16/cr16.c,
9719         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
9720         config/darwin-protos.h, config/darwin.c,
9721         config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
9722         config/epiphany/epiphany.md, config/fr30/fr30.c,
9723         config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
9724         config/h8300/h8300-protos.h, config/h8300/h8300.c,
9725         config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
9726         config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
9727         config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
9728         config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
9729         config/iq2000/iq2000.c, config/iq2000/iq2000.md,
9730         config/lm32/lm32-protos.h, config/lm32/lm32.c,
9731         config/m32c/m32c-protos.h, config/m32c/m32c.c,
9732         config/m32r/m32r-protos.h, config/m32r/m32r.c,
9733         config/m68k/m68k-protos.h, config/m68k/m68k.c,
9734         config/mcore/mcore-protos.h, config/mcore/mcore.c,
9735         config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
9736         config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
9737         config/mips/mips-protos.h, config/mips/mips.c,
9738         config/mmix/mmix-protos.h, config/mmix/mmix.c,
9739         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
9740         config/moxie/moxie.c, config/msp430/msp430-protos.h,
9741         config/msp430/msp430.c, config/nds32/nds32-cost.c,
9742         config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
9743         config/nds32/nds32-protos.h, config/nds32/nds32.c,
9744         config/nios2/nios2-protos.h, config/nios2/nios2.c,
9745         config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
9746         config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
9747         config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
9748         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
9749         config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
9750         config/s390/predicates.md, config/s390/s390-protos.h,
9751         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9752         config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
9753         config/sh/sh.md, config/sparc/predicates.md,
9754         config/sparc/sparc-protos.h, config/sparc/sparc.c,
9755         config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
9756         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
9757         config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
9758         config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
9759         config/tilepro/tilepro.c, config/v850/v850-protos.h,
9760         config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
9761         config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
9762         config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
9763         dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
9764         doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
9765         dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
9766         except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
9767         fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
9768         fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
9769         genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
9770         graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
9771         internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
9772         ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
9773         libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
9774         loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
9775         lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
9776         lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
9777         output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
9778         recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
9779         regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
9780         rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
9781         sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
9782         simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
9783         targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
9784         tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
9785         tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
9786         tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
9787         tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
9788         tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
9789         tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
9790         tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
9791         tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
9792         tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
9793         var-tracking.c, varasm.c: Remove redundant enum from
9794         machine_mode.
9795         * gengtype.c (main): Treat machine_mode as a scalar typedef.
9796         * genmodes.c (emit_insn_modes_h): Hide inline functions if
9797         USED_FOR_TARGET.
9798
9799 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9800
9801         PR rtl-optimization/63340 (part 2)
9802         * rtl.h (invalid_mode_change_p): Delete.
9803         (valid_mode_changes_for_regno): New function.
9804         * reginfo.c (invalid_mode_change_p): Delete.
9805         (valid_mode_changes_for_regno): New function.
9806         * ira-costs.c (setup_regno_cost_classes_by_aclass): Restrict the
9807         classes to registers that are allowed by valid_mode_changes_for_regno.
9808         (setup_regno_cost_classes_by_mode): Likewise.
9809         (print_allocno_costs): Remove invalid_mode_change_p test.
9810         (print_pseudo_costs, find_costs_and_classes): Likewise.
9811
9812 2014-10-29  Richard Sandiford  <richard.sandiford@arm.com>
9813
9814         PR rtl-optimization/63340 (part 1)
9815         * ira-costs.c (all_cost_classes): New variable.
9816         (complete_cost_classes): New function, split out from...
9817         (setup_cost_classes): ...here.
9818         (initiate_regno_cost_classes): Set up all_cost_classes.
9819         (restrict_cost_classes): New function.
9820         (setup_regno_cost_classes_by_aclass): Restrict the cost classes to
9821         registers that are valid for the register's mode.
9822         (setup_regno_cost_classes_by_mode): Model the mode cache as a
9823         restriction of all_cost_classes to a particular mode.
9824         (print_allocno_costs): Remove contains_reg_of_mode check.
9825         (print_pseudo_costs, find_costs_and_classes): Likewise.
9826
9827 2014-10-29  Richard Biener  <rguenther@suse.de>
9828
9829         PR tree-optimization/63666
9830         * tree-vect-slp.c (vect_get_mask_element): Properly handle
9831         accessing out-of-bound elements.
9832
9833 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9834             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9835             Anna Tikhonova  <anna.tikhonova@intel.com>
9836             Ilya Tocar  <ilya.tocar@intel.com>
9837             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9838             Ilya Verbin  <ilya.verbin@intel.com>
9839             Kirill Yukhin  <kirill.yukhin@intel.com>
9840             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9841
9842         * config/i386/i386.md
9843         (movhi_internal): Always detect maskmov.
9844         (movqi_internal): Fix target check.
9845
9846 2014-10-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
9847             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
9848             Anna Tikhonova  <anna.tikhonova@intel.com>
9849             Ilya Tocar  <ilya.tocar@intel.com>
9850             Andrey Turetskiy  <andrey.turetskiy@intel.com>
9851             Ilya Verbin  <ilya.verbin@intel.com>
9852             Kirill Yukhin  <kirill.yukhin@intel.com>
9853             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
9854
9855         * config/i386/avx512bwintrin.h: Add new intrinsics.
9856         * config/i386/avx512vlbwintrin.h: Ditto.
9857         * config/i386/avx512vlintrin.h: Ditto.
9858
9859 2014-10-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9860
9861         * godump.c (precision_to_units): New helper function.
9862         (go_append_artificial_name): Ditto.
9863         (go_append_decl_name): Ditto.
9864         (go_append_bitfield): Ditto.
9865         (go_get_uinttype_for_precision): Ditto.
9866         (go_append_padding): Ditto.
9867         (go_force_record_alignment): Ditto.
9868         (go_format_type): Represent unions with an array of uints of the size
9869         of the alignment in go.  This fixes the 'random' size of the union's
9870         representation using just the first field.
9871         (go_format_type): Add argument that indicates whether a record is
9872         nested (used for generation of artificial go names).
9873         (go_output_fndecl): Adapt to new go_format_type signature.
9874         (go_output_typedef): Ditto.
9875         (go_output_var): Ditto.
9876         (go_output_var): Prefer to output type as alias (typedef).
9877         (go_format_type): Bitfields in records are simulated as arrays of bytes
9878         in go.
9879
9880         * godump.c (go_format_type): Fix handling of arrays with zero elements.
9881
9882 2014-10-28  Andrew MacLeod  <amacleod@redhat.com>
9883
9884         * cgraph.h: Flatten.  Remove all include files.
9885         (symbol_table::initialize): Move to cgraph.c.
9886         * cgraph.c: Adjust include files.
9887         (symbol_table::initialize): Relocate from cgraph.h.
9888         * gengtype.c (open_base_files): Adjust include files.
9889         * gccplugin.h: Add hash-map.h, is-a.h, plugin-api.h, and ipa-ref.h to
9890         included files.
9891         * ipa-inline.h: Remove all include files.
9892         * ipa-prop.h: Ditto.
9893         * ipa-reference.h: Ditto.
9894         * ipa-utils.h: Ditto:
9895         * lto-streamer.h: Remove cgraph.h from include list.
9896         * asan.c: Adjust include files.
9897         * auto-profile.c: Ditto.
9898         * bb-reorder.c: Ditto.
9899         * calls.c: Ditto.
9900         * cfgexpand.c: Ditto.
9901         * cgraphbuild.c: Ditto.
9902         * cgraphclones.c: Ditto.
9903         * cgraphunit.c: Ditto.
9904         * combine.c: Ditto.
9905         * coverage.c: Ditto.
9906         * data-streamer.c: Ditto.
9907         * data-streamer-in.c: Ditto.
9908         * data-streamer-out.c: Ditto.
9909         * dbxout.c: Ditto.
9910         * dwarf2out.c: Ditto.
9911         * except.c: Ditto.
9912         * expr.c: Ditto.
9913         * final.c: Ditto.
9914         * fold-const.c: Ditto.
9915         * ggc-page.c: Ditto.
9916         * gimple-fold.c: Ditto.
9917         * gimple-iterator.c: Ditto.
9918         * gimple-pretty-print.c: Ditto.
9919         * gimple-streamer-in.c: Ditto.
9920         * gimple-streamer-out.c: Ditto.
9921         * gimplify.c: Ditto.
9922         * ipa.c: Ditto.
9923         * ipa-comdats.c: Ditto.
9924         * ipa-cp.c: Ditto.
9925         * ipa-devirt.c: Ditto.
9926         * ipa-icf.c: Ditto.
9927         * ipa-icf-gimple.c: Ditto.
9928         * ipa-inline-analysis.c: Ditto.
9929         * ipa-inline.c: Ditto.
9930         * ipa-inline-transform.c: Ditto.
9931         * ipa-polymorphic-call.c: Ditto.
9932         * ipa-profile.c: Ditto.
9933         * ipa-prop.c: Ditto.
9934         * ipa-pure-const.c: Ditto.
9935         * ipa-ref.c: Ditto.
9936         * ipa-reference.c: Ditto.
9937         * ipa-split.c: Ditto.
9938         * ipa-utils.c: Ditto.
9939         * ipa-visibility.c: Ditto.
9940         * langhooks.c: Ditto.
9941         * lto-cgraph.c: Ditto.
9942         * lto-compress.c: Ditto.
9943         * lto-opts.c: Ditto.
9944         * lto-section-in.c: Ditto.
9945         * lto-section-out.c: Ditto.
9946         * lto-streamer.c: Ditto.
9947         * lto-streamer-in.c: Ditto.
9948         * lto-streamer-out.c: Ditto.
9949         * omp-low.c: Ditto.
9950         * opts-global.c: Ditto.
9951         * passes.c: Ditto.
9952         * predict.c: Ditto.
9953         * print-tree.c: Ditto.
9954         * profile.c: Ditto.
9955         * ree.c: Ditto.
9956         * stor-layout.c: Ditto.
9957         * symtab.c: Ditto.
9958         * toplev.c: Ditto.
9959         * trans-mem.c: Ditto.
9960         * tree.c: Ditto.
9961         * tree-cfg.c: Ditto.
9962         * tree-eh.c: Ditto.
9963         * tree-emutls.c: Ditto.
9964         * tree-inline.c: Ditto.
9965         * tree-nested.c: Ditto.
9966         * tree-pretty-print.c: Ditto.
9967         * tree-profile.c: Ditto.
9968         * tree-sra.c: Ditto.
9969         * tree-ssa-alias.c: Ditto.
9970         * tree-ssa-loop-ivcanon.c: Ditto.
9971         * tree-ssa-loop-ivopts.c: Ditto.
9972         * tree-ssa-pre.c: Ditto.
9973         * tree-ssa-structalias.c: Ditto.
9974         * tree-streamer.c: Ditto.
9975         * tree-streamer-in.c: Ditto.
9976         * tree-streamer-out.c: Ditto.
9977         * tree-switch-conversion.c: Ditto.
9978         * tree-tailcall.c: Ditto.
9979         * tree-vect-data-refs.c: Ditto.
9980         * tree-vectorizer.c: Ditto.
9981         * tree-vect-stmts.c: Ditto.
9982         * tsan.c: Ditto.
9983         * ubsan.c: Ditto.
9984         * value-prof.c: Ditto.
9985         * varasm.c: Ditto.
9986         * varpool.c: Ditto.
9987         * config/arm/arm.c: Ditto.
9988         * config/bfin/bfin.c: Ditto.
9989         * config/c6x/c6x.c: Ditto.
9990         * config/cris/cris.c: Ditto.
9991         * config/darwin.c: Ditto.
9992         * config/darwin-c.c: Ditto.
9993         * config/i386/i386.c: Ditto.
9994         * config/i386/winnt.c: Ditto.
9995         * config/microblaze/microblaze.c: Ditto.
9996         * config/mips/mips.c: Ditto.
9997         * config/rs6000/rs6000.c: Ditto.
9998         * config/rx/rx.c: Ditto.
9999
10000 2014-10-28  Richard Biener  <rguenther@suse.de>
10001
10002         * gimple-fold.h (follow_single_use_edges): Declare.
10003         * gimple-fold.c (follow_single_use_edges): New function.
10004         (gimple_fold_stmt_to_constant_1): Dispatch to gimple_simplify.
10005         * tree-ssa-propagate.c
10006         (substitute_and_fold_dom_walker::before_dom_children): Allow
10007         following single-use edges when folding stmts we propagated into.
10008
10009 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10010             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10011             Anna Tikhonova  <anna.tikhonova@intel.com>
10012             Ilya Tocar  <ilya.tocar@intel.com>
10013             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10014             Ilya Verbin  <ilya.verbin@intel.com>
10015             Kirill Yukhin  <kirill.yukhin@intel.com>
10016             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10017
10018         * config/i386/avx512bwintrin.h: New.
10019         * config/i386/avx512dqintrin.h: Ditto.
10020         * config/i386/avx512vlbwintrin.h: Ditto.
10021         * config/i386/avx512vldqintrin.h: Ditto.
10022         * config/i386/avx512vlintrin.h: Ditto.
10023         * config/i386/immintrin.h: Include avx512vlintrin.h, avx512bwintrin.h,
10024         avx512dqintrin.h, avx512vlbwintrin.h, avx512vldqintrin.h.
10025
10026 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10027             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10028             Anna Tikhonova  <anna.tikhonova@intel.com>
10029             Ilya Tocar  <ilya.tocar@intel.com>
10030             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10031             Ilya Verbin  <ilya.verbin@intel.com>
10032             Kirill Yukhin  <kirill.yukhin@intel.com>
10033             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10034
10035         * config/i386/i386.c
10036         (ix86_expand_args_builtin): Handle avx_vpermilv4df_mask,
10037         avx_shufpd256_mask, avx_vpermilv2df_mask.
10038
10039 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10040             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10041             Anna Tikhonova  <anna.tikhonova@intel.com>
10042             Ilya Tocar  <ilya.tocar@intel.com>
10043             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10044             Ilya Verbin  <ilya.verbin@intel.com>
10045             Kirill Yukhin  <kirill.yukhin@intel.com>
10046             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10047
10048         * config/i386/i386.c
10049         (ix86_init_mmx_sse_builtins):
10050         Define __builtin_ia32_gather3siv2df, __builtin_ia32_gather3siv4df,
10051         __builtin_ia32_gather3div2df, __builtin_ia32_gather3div4df,
10052         __builtin_ia32_gather3siv4sf, __builtin_ia32_gather3siv8sf,
10053         __builtin_ia32_gather3div4sf, __builtin_ia32_gather3div8sf,
10054         __builtin_ia32_gather3siv2di, __builtin_ia32_gather3siv4di,
10055         __builtin_ia32_gather3div2di, __builtin_ia32_gather3div4di,
10056         __builtin_ia32_gather3siv4si, __builtin_ia32_gather3siv8si,
10057         __builtin_ia32_gather3div4si, __builtin_ia32_gather3div8si,
10058         __builtin_ia32_gather3altsiv4df, __builtin_ia32_gather3altdiv8sf,
10059         __builtin_ia32_gather3altsiv4di, __builtin_ia32_gather3altdiv8si,
10060         __builtin_ia32_scattersiv8sf, __builtin_ia32_scattersiv4sf,
10061         __builtin_ia32_scattersiv4df, __builtin_ia32_scattersiv2df,
10062         __builtin_ia32_scatterdiv8sf, __builtin_ia32_scatterdiv4sf,
10063         __builtin_ia32_scatterdiv4df, __builtin_ia32_scatterdiv2df,
10064         __builtin_ia32_scattersiv8si, __builtin_ia32_scattersiv4si,
10065         __builtin_ia32_scattersiv4di, __builtin_ia32_scattersiv2di,
10066         __builtin_ia32_scatterdiv8si, __builtin_ia32_scatterdiv4si,
10067         __builtin_ia32_scatterdiv4di, __builtin_ia32_scatterdiv2di.
10068
10069 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10070             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10071             Anna Tikhonova  <anna.tikhonova@intel.com>
10072             Ilya Tocar  <ilya.tocar@intel.com>
10073             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10074             Ilya Verbin  <ilya.verbin@intel.com>
10075             Kirill Yukhin  <kirill.yukhin@intel.com>
10076             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10077
10078         * config/i386/i386.c
10079         (ix86_builtins): Add IX86_BUILTIN_GATHER3ALTSIV4DF,
10080         IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTSIV4DI,
10081         IX86_BUILTIN_GATHER3ALTDIV8SI.
10082         (ix86_expand_builtin):
10083         Handle IX86_BUILTIN_GATHER3ALTDIV8SF, IX86_BUILTIN_GATHER3ALTDIV8SI,
10084         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV4DI,
10085         IX86_BUILTIN_SCATTERDIV2DF, IX86_BUILTIN_SCATTERDIV4DF,
10086         IX86_BUILTIN_GATHER3ALTSIV4DI, IX86_BUILTIN_GATHER3ALTSIV4DF,
10087         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10088         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3DIV8SI,
10089         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV4DI,
10090         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3SIV8SF,
10091         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10092         IX86_BUILTIN_GATHER3DIV2DI, IX86_BUILTIN_GATHER3DIV4DI,
10093         IX86_BUILTIN_SCATTERDIV4SF, IX86_BUILTIN_SCATTERSIV2DI,
10094         IX86_BUILTIN_GATHER3SIV2DI, IX86_BUILTIN_GATHER3SIV4SI,
10095         IX86_BUILTIN_GATHER3SIV4SF, IX86_BUILTIN_GATHER3SIV2DF,
10096         IX86_BUILTIN_SCATTERSIV2DF, IX86_BUILTIN_SCATTERDIV4SI,
10097         IX86_BUILTIN_SCATTERSIV4SF, IX86_BUILTIN_SCATTERSIV4SI,
10098         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10099         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV8SF,
10100         IX86_BUILTIN_GATHER3DIV4SF, IX86_BUILTIN_SCATTERDIV8SF.
10101         (ix86_vectorize_builtin_gather): Update V2DFmode, V4DFmode, V2DImode,
10102         V4DImode, V4SFmode, V8SFmode, V4SImode, V8SImode.
10103
10104 2014-10-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
10105             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
10106             Anna Tikhonova  <anna.tikhonova@intel.com>
10107             Ilya Tocar  <ilya.tocar@intel.com>
10108             Andrey Turetskiy  <andrey.turetskiy@intel.com>
10109             Ilya Verbin  <ilya.verbin@intel.com>
10110             Kirill Yukhin  <kirill.yukhin@intel.com>
10111             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
10112
10113         * config/i386/i386-builtin-types.def
10114         (SHORT): New.
10115         (V32HI): Ditto.
10116         (V12QI): Ditto.
10117         (V14QI): Ditto.
10118         (V32SI): Ditto.
10119         (V8UDI): Ditto.
10120         (V16USI): Ditto.
10121         (V32UHI): Ditto.
10122         (PSHORT): Ditto.
10123         (PV32QI): Ditto.
10124         (PV32HI): Ditto.
10125         (PV64QI): Ditto.
10126         (PCV8HI): Ditto.
10127         (PCV16QI): Ditto.
10128         (PCV16HI): Ditto.
10129         (PCV32QI): Ditto.
10130         (PCV32HI): Ditto.
10131         (PCV64QI): Ditto.
10132         (V4SF_FTYPE_V2DF_V4SF_QI): Ditto.
10133         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10134         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10135         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10136         (V16SF_FTYPE_V16HI): Ditto.
10137         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10138         (V16SF_FTYPE_V16SI): Ditto.
10139         (V4DI_FTYPE_V4DI): Ditto.
10140         (V16SI_FTYPE_V16SF): Ditto.
10141         (V8DI_FTYPE_PV2DI): Ditto.
10142         (V8DF_FTYPE_PV2DF): Ditto.
10143         (V4DI_FTYPE_PV2DI): Ditto.
10144         (V4DF_FTYPE_PV2DF): Ditto.
10145         (V16SI_FTYPE_PV2SI): Ditto.
10146         (V16SF_FTYPE_PV2SF): Ditto.
10147         (V8SF_FTYPE_FLOAT): Ditto.
10148         (V4SF_FTYPE_FLOAT): Ditto.
10149         (V4DF_FTYPE_DOUBLE): Ditto.
10150         (V8SF_FTYPE_PV4SF): Ditto.
10151         (V8SI_FTYPE_PV4SI): Ditto.
10152         (V4SI_FTYPE_PV2SI): Ditto.
10153         (V8SF_FTYPE_PV2SF): Ditto.
10154         (V8SI_FTYPE_PV2SI): Ditto.
10155         (V16SF_FTYPE_PV8SF): Ditto.
10156         (V16SI_FTYPE_PV8SI): Ditto.
10157         (V8DI_FTYPE_V8SF): Ditto.
10158         (V4DI_FTYPE_V4SF): Ditto.
10159         (V2DI_FTYPE_V4SF): Ditto.
10160         (V64QI_FTYPE_QI): Ditto.
10161         (V32HI_FTYPE_HI): Ditto.
10162         (V16UHI_FTYPE_V16UHI): Ditto.
10163         (V32UHI_FTYPE_V32UHI): Ditto.
10164         (V2UDI_FTYPE_V2UDI): Ditto.
10165         (V4UDI_FTYPE_V4UDI): Ditto.
10166         (V8UDI_FTYPE_V8UDI): Ditto.
10167         (V4USI_FTYPE_V4USI): Ditto.
10168         (V16USI_FTYPE_V16USI): Ditto.
10169         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10170         (V2DF_FTYPE_V8DF_INT): Ditto.
10171         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10172         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10173         (V8DF_FTYPE_V8DF_INT): Ditto.
10174         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10175         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10176         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10177         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10178         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10179         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10180         (V8DI_FTYPE_V8DI_INT): Ditto.
10181         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10182         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10183         (V8SF_FTYPE_V16SF_INT): Ditto.
10184         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10185         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10186         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10187         (V8DF_FTYPE_V8DF_V2DF_INT): Ditto.
10188         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10189         (V8DF_FTYPE_V8DF_V8DF_INT): Ditto.
10190         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT): Ditto.
10191         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT): Ditto.
10192         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10193         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10194         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10195         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT): Ditto.
10196         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10197         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10198         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10199         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10200         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10201         (V32HI_FTYPE_V32HI_V32HI): Ditto.
10202         (V32HI_FTYPE_V32HI_INT): Ditto.
10203         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10204         (V16SI_FTYPE_V32HI_V32HI): Ditto.
10205         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10206         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10207         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10208         (V8SI_FTYPE_V16SI_INT): Ditto.
10209         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10210         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10211         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10212         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10213         (V8DI_FTYPE_V8DI_V4DI_INT): Ditto.
10214         (V8DI_FTYPE_V8DI_V2DI_INT): Ditto.
10215         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10216         (V8DI_FTYPE_V16SI_V16SI): Ditto.
10217         (V8DI_FTYPE_V64QI_V64QI): Ditto.
10218         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10219         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10220         (V2DI_FTYPE_V8DI_INT): Ditto.
10221         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10222         (QI_FTYPE_QI): Ditto.
10223         (SI_FTYPE_SI): Ditto.
10224         (DI_FTYPE_DI): Ditto.
10225         (HI_FTYPE_V16QI): Ditto.
10226         (SI_FTYPE_V32QI): Ditto.
10227         (DI_FTYPE_V64QI): Ditto.
10228         (QI_FTYPE_V8HI): Ditto.
10229         (HI_FTYPE_V16HI): Ditto.
10230         (SI_FTYPE_V32HI): Ditto.
10231         (QI_FTYPE_V4SI): Ditto.
10232         (QI_FTYPE_V8SI): Ditto.
10233         (HI_FTYPE_V16SI): Ditto.
10234         (QI_FTYPE_V2DI): Ditto.
10235         (QI_FTYPE_V4DI): Ditto.
10236         (QI_FTYPE_V8DI): Ditto.
10237         (V16QI_FTYPE_HI): Ditto.
10238         (V32QI_FTYPE_SI): Ditto.
10239         (V64QI_FTYPE_DI): Ditto.
10240         (V8HI_FTYPE_QI): Ditto.
10241         (V16HI_FTYPE_HI): Ditto.
10242         (V32HI_FTYPE_SI): Ditto.
10243         (V4SI_FTYPE_QI): Ditto.
10244         (V4SI_FTYPE_HI): Ditto.
10245         (V8SI_FTYPE_QI): Ditto.
10246         (V8SI_FTYPE_HI): Ditto.
10247         (V2DI_FTYPE_QI): Ditto.
10248         (V4DI_FTYPE_QI): Ditto.
10249         (QI_FTYPE_QI_QI): Ditto.
10250         (SI_FTYPE_SI_SI): Ditto.
10251         (DI_FTYPE_DI_DI): Ditto.
10252         (QI_FTYPE_QI_INT): Ditto.
10253         (SI_FTYPE_SI_INT): Ditto.
10254         (DI_FTYPE_DI_INT): Ditto.
10255         (HI_FTYPE_V16QI_V16QI): Ditto.
10256         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10257         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10258         (SI_FTYPE_V32QI_V32QI): Ditto.
10259         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10260         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10261         (DI_FTYPE_V64QI_V64QI): Ditto.
10262         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10263         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10264         (QI_FTYPE_V8HI_V8HI): Ditto.
10265         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10266         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10267         (HI_FTYPE_V16HI_V16HI): Ditto.
10268         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10269         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10270         (SI_FTYPE_V32HI_V32HI): Ditto.
10271         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10272         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10273         (QI_FTYPE_V4SI_V4SI): Ditto.
10274         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10275         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10276         (QI_FTYPE_V8SI_V8SI): Ditto.
10277         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10278         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10279         (QI_FTYPE_V2DI_V2DI): Ditto.
10280         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10281         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10282         (QI_FTYPE_V4DI_V4DI): Ditto.
10283         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10284         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10285         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10286         (V4DF_FTYPE_V4DF_V4DI_INT): Ditto.
10287         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10288         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10289         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10290         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10291         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10292         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10293         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10294         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10295         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10296         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10297         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10298         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10299         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10300         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10301         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10302         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10303         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10304         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10305         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10306         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10307         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10308         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10309         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10310         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10311         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10312         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10313         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10314         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10315         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10316         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10317         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10318         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10319         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10320         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10321         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10322         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10323         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10324         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10325         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10326         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10327         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10328         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10329         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10330         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10331         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10332         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10333         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10334         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10335         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10336         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10337         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10338         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10339         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10340         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10341         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10342         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10343         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10344         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10345         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10346         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10347         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10348         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10349         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10350         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10351         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10352         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10353         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10354         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10355         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10356         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10357         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10358         (V32HI_FTYPE_V64QI_V64QI_INT): Ditto.
10359         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10360         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10361         (V16HI_FTYPE_V32QI_V32QI_INT): Ditto.
10362         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10363         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10364         (V8HI_FTYPE_V16QI_V16QI_INT): Ditto.
10365         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10366         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10367         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10368         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10369         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10370         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10371         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10372         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10373         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10374         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10375         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10376         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10377         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10378         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10379         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10380         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10381         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10382         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10383         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10384         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10385         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10386         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10387         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10388         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10389         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10390         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10391         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10392         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10393         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10394         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10395         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10396         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10397         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10398         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10399         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10400         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10401         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10402         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10403         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10404         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10405         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10406         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10407         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10408         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10409         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10410         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10411         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10412         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10413         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10414         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10415         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10416         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10417         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10418         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10419         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10420         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10421         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10422         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10423         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10424         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10425         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10426         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10427         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10428         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10429         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10430         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10431         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10432         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10433         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10434         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10435         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10436         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10437         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10438         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10439         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10440         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10441         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10442         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10443         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10444         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10445         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10446         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10447         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10448         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10449         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10450         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10451         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10452         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10453         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10454         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10455         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10456         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10457         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10458         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10459         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10460         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10461         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10462         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10463         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10464         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10465         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10466         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10467         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10468         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10469         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10470         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10471         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10472         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10473         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10474         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10475         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10476         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10477         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10478         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10479         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10480         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10481         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10482         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10483         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10484         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10485         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10486         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10487         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10488         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10489         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10490         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10491         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10492         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10493         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10494         (QI_FTYPE_V8DF_INT): Ditto.
10495         (QI_FTYPE_V4DF_INT): Ditto.
10496         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10497         (QI_FTYPE_V2DF_INT): Ditto.
10498         (HI_FTYPE_V16SF_INT): Ditto.
10499         (QI_FTYPE_V8SF_INT): Ditto.
10500         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10501         (QI_FTYPE_V4SF_INT): Ditto.
10502         (QI_FTYPE_V8DF_INT_QI): Ditto.
10503         (QI_FTYPE_V4DF_INT_QI): Ditto.
10504         (QI_FTYPE_V2DF_INT_QI): Ditto.
10505         (HI_FTYPE_V16SF_INT_HI): Ditto.
10506         (QI_FTYPE_V8SF_INT_QI): Ditto.
10507         (QI_FTYPE_V4SF_INT_QI): Ditto.
10508         (V8DI_FTYPE_V8DF_V8DI_QI_INT): Ditto.
10509         (V8DI_FTYPE_V8SF_V8DI_QI_INT): Ditto.
10510         (V8DF_FTYPE_V8DI_V8DF_QI_INT): Ditto.
10511         (V8SF_FTYPE_V8DI_V8SF_QI_INT): Ditto.
10512         (V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10513         (V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_QI_INT): Ditto.
10514         (V4DF_FTYPE_V4DF_PCDOUBLE_V8SI_QI_INT): Ditto.
10515         (V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_QI_INT): Ditto.
10516         (V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_QI_INT): Ditto.
10517         (V4SF_FTYPE_V4SF_PCFLOAT_V4SI_QI_INT): Ditto.
10518         (V8SF_FTYPE_V8SF_PCFLOAT_V8SI_QI_INT): Ditto.
10519         (V4SF_FTYPE_V4SF_PCFLOAT_V2DI_QI_INT): Ditto.
10520         (V4SF_FTYPE_V4SF_PCFLOAT_V4DI_QI_INT): Ditto.
10521         (V8SF_FTYPE_V8SF_PCFLOAT_V4DI_QI_INT): Ditto.
10522         (V2DI_FTYPE_V2DI_PCINT64_V4SI_QI_INT): Ditto.
10523         (V4DI_FTYPE_V4DI_PCINT64_V4SI_QI_INT): Ditto.
10524         (V4DI_FTYPE_V4DI_PCINT64_V8SI_QI_INT): Ditto.
10525         (V2DI_FTYPE_V2DI_PCINT64_V2DI_QI_INT): Ditto.
10526         (V4DI_FTYPE_V4DI_PCINT64_V4DI_QI_INT): Ditto.
10527         (V4SI_FTYPE_V4SI_PCINT_V4SI_QI_INT): Ditto.
10528         (V8SI_FTYPE_V8SI_PCINT_V8SI_QI_INT): Ditto.
10529         (V4SI_FTYPE_V4SI_PCINT_V2DI_QI_INT): Ditto.
10530         (V4SI_FTYPE_V4SI_PCINT_V4DI_QI_INT): Ditto.
10531         (V8SI_FTYPE_V8SI_PCINT_V4DI_QI_INT): Ditto.
10532         (VOID_FTYPE_PFLOAT_QI_V8SI_V8SF_INT): Ditto.
10533         (VOID_FTYPE_PFLOAT_QI_V4SI_V4SF_INT): Ditto.
10534         (VOID_FTYPE_PDOUBLE_QI_V4SI_V4DF_INT): Ditto.
10535         (VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT): Ditto.
10536         (VOID_FTYPE_PFLOAT_QI_V4DI_V4SF_INT): Ditto.
10537         (VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT): Ditto.
10538         (VOID_FTYPE_PDOUBLE_QI_V4DI_V4DF_INT): Ditto.
10539         (VOID_FTYPE_PDOUBLE_QI_V2DI_V2DF_INT): Ditto.
10540         (VOID_FTYPE_PINT_QI_V8SI_V8SI_INT): Ditto.
10541         (VOID_FTYPE_PINT_QI_V4SI_V4SI_INT): Ditto.
10542         (VOID_FTYPE_PLONGLONG_QI_V4SI_V4DI_INT): Ditto.
10543         (VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT): Ditto.
10544         (VOID_FTYPE_PINT_QI_V4DI_V4SI_INT): Ditto.
10545         (VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): Ditto.
10546         (VOID_FTYPE_PLONGLONG_QI_V4DI_V4DI_INT): Ditto.
10547         (VOID_FTYPE_PLONGLONG_QI_V2DI_V2DI_INT): Ditto.
10548         (V8DI_FTYPE_V8DI_INT): Ditto.
10549         (V8DI_FTYPE_V8DI_V8DI_INT): Ditto.
10550         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10551         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10552         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10553         (V2DF_FTYPE_ V2DF_ V2DF_ V2DI_ INT_ QI): Remove.
10554         (V4SF_FTYPE_ V4SF_ V2DF_ V4SF_ QI): Ditto.
10555         (V4SF_FTYPE_ V4SF_ V4SF_ V4SF_ QI): Ditto.
10556         (V2DF_FTYPE_ PCDOUBLE_ V2DF_ QI): Ditto.
10557         (V4SF_FTYPE_ PCFLOAT_ V4SF_ QI): Ditto.
10558         (V16QI_FTYPE_ V16SI_ V16QI_ HI): Ditto.
10559         (V16QI_FTYPE_ V8DI_ V16QI_ QI): Ditto.
10560         (V4SF_FTYPE_ V4SF_ V4SF_ INT_ V4SF_ QI): Ditto.
10561         (V2DF_FTYPE_ V2DF_ V2DF_ INT_ V2DF_ QI): Ditto.
10562         (V8DI_FTYPE_ V16SI_ V16SI_ V8DI_ QI): Ditto.
10563         * config/i386/i386.c (ix86_builtins):
10564         Add IX86_BUILTIN_PMOVUSQD256_MEM, IX86_BUILTIN_PMOVUSQD128_MEM,
10565         IX86_BUILTIN_PMOVSQD256_MEM, IX86_BUILTIN_PMOVSQD128_MEM,
10566         IX86_BUILTIN_PMOVQD256_MEM, IX86_BUILTIN_PMOVQD128_MEM,
10567         IX86_BUILTIN_PMOVUSQW256_MEM, IX86_BUILTIN_PMOVUSQW128_MEM,
10568         IX86_BUILTIN_PMOVSQW256_MEM, IX86_BUILTIN_PMOVSQW128_MEM,
10569         IX86_BUILTIN_PMOVQW256_MEM, IX86_BUILTIN_PMOVQW128_MEM,
10570         IX86_BUILTIN_PMOVUSQB256_MEM, IX86_BUILTIN_PMOVUSQB128_MEM,
10571         IX86_BUILTIN_PMOVSQB256_MEM, IX86_BUILTIN_PMOVSQB128_MEM,
10572         IX86_BUILTIN_PMOVQB256_MEM, IX86_BUILTIN_PMOVQB128_MEM,
10573         IX86_BUILTIN_PMOVUSDW256_MEM, IX86_BUILTIN_PMOVUSDW128_MEM,
10574         IX86_BUILTIN_PMOVSDW256_MEM, IX86_BUILTIN_PMOVSDW128_MEM,
10575         IX86_BUILTIN_PMOVDW256_MEM, IX86_BUILTIN_PMOVDW128_MEM,
10576         IX86_BUILTIN_PMOVUSDB256_MEM, IX86_BUILTIN_PMOVUSDB128_MEM,
10577         IX86_BUILTIN_PMOVSDB256_MEM, IX86_BUILTIN_PMOVSDB128_MEM,
10578         IX86_BUILTIN_PMOVDB256_MEM, IX86_BUILTIN_PMOVDB128_MEM,
10579         IX86_BUILTIN_MOVDQA64LOAD256_MASK, IX86_BUILTIN_MOVDQA64LOAD128_MASK,
10580         IX86_BUILTIN_MOVDQA32LOAD256_MASK, IX86_BUILTIN_MOVDQA32LOAD128_MASK,
10581         IX86_BUILTIN_MOVDQA64STORE256_MASK, IX86_BUILTIN_MOVDQA64STORE128_MASK,
10582         IX86_BUILTIN_MOVDQA32STORE256_MASK, IX86_BUILTIN_MOVDQA32STORE128_MASK,
10583         IX86_BUILTIN_LOADAPD256_MASK, IX86_BUILTIN_LOADAPD128_MASK,
10584         IX86_BUILTIN_LOADAPS256_MASK, IX86_BUILTIN_LOADAPS128_MASK,
10585         IX86_BUILTIN_STOREAPD256_MASK, IX86_BUILTIN_STOREAPD128_MASK,
10586         IX86_BUILTIN_STOREAPS256_MASK, IX86_BUILTIN_STOREAPS128_MASK,
10587         IX86_BUILTIN_LOADUPD256_MASK, IX86_BUILTIN_LOADUPD128_MASK,
10588         IX86_BUILTIN_LOADUPS256_MASK, IX86_BUILTIN_LOADUPS128_MASK,
10589         IX86_BUILTIN_STOREUPD256_MASK, IX86_BUILTIN_STOREUPD128_MASK,
10590         IX86_BUILTIN_STOREUPS256_MASK, IX86_BUILTIN_STOREUPS128_MASK,
10591         IX86_BUILTIN_LOADDQUDI256_MASK, IX86_BUILTIN_LOADDQUDI128_MASK,
10592         IX86_BUILTIN_LOADDQUSI256_MASK, IX86_BUILTIN_LOADDQUSI128_MASK,
10593         IX86_BUILTIN_LOADDQUHI256_MASK, IX86_BUILTIN_LOADDQUHI128_MASK,
10594         IX86_BUILTIN_LOADDQUQI256_MASK, IX86_BUILTIN_LOADDQUQI128_MASK,
10595         IX86_BUILTIN_STOREDQUDI256_MASK, IX86_BUILTIN_STOREDQUDI128_MASK,
10596         IX86_BUILTIN_STOREDQUSI256_MASK, IX86_BUILTIN_STOREDQUSI128_MASK,
10597         IX86_BUILTIN_STOREDQUHI256_MASK, IX86_BUILTIN_STOREDQUHI128_MASK,
10598         IX86_BUILTIN_STOREDQUQI256_MASK, IX86_BUILTIN_STOREDQUQI128_MASK,
10599         IX86_BUILTIN_COMPRESSPDSTORE256, IX86_BUILTIN_COMPRESSPDSTORE128,
10600         IX86_BUILTIN_COMPRESSPSSTORE256, IX86_BUILTIN_COMPRESSPSSTORE128,
10601         IX86_BUILTIN_PCOMPRESSQSTORE256, IX86_BUILTIN_PCOMPRESSQSTORE128,
10602         IX86_BUILTIN_PCOMPRESSDSTORE256, IX86_BUILTIN_PCOMPRESSDSTORE128,
10603         IX86_BUILTIN_EXPANDPDLOAD256, IX86_BUILTIN_EXPANDPDLOAD128,
10604         IX86_BUILTIN_EXPANDPSLOAD256, IX86_BUILTIN_EXPANDPSLOAD128,
10605         IX86_BUILTIN_PEXPANDQLOAD256, IX86_BUILTIN_PEXPANDQLOAD128,
10606         IX86_BUILTIN_PEXPANDDLOAD256, IX86_BUILTIN_PEXPANDDLOAD128,
10607         IX86_BUILTIN_EXPANDPDLOAD256Z, IX86_BUILTIN_EXPANDPDLOAD128Z,
10608         IX86_BUILTIN_EXPANDPSLOAD256Z, IX86_BUILTIN_EXPANDPSLOAD128Z,
10609         IX86_BUILTIN_PEXPANDQLOAD256Z, IX86_BUILTIN_PEXPANDQLOAD128Z,
10610         IX86_BUILTIN_PEXPANDDLOAD256Z, IX86_BUILTIN_PEXPANDDLOAD128Z,
10611         IX86_BUILTIN_PALIGNR256_MASK, IX86_BUILTIN_PALIGNR128_MASK,
10612         IX86_BUILTIN_MOVDQA64_256_MASK, IX86_BUILTIN_MOVDQA64_128_MASK,
10613         IX86_BUILTIN_MOVDQA32_256_MASK, IX86_BUILTIN_MOVDQA32_128_MASK,
10614         IX86_BUILTIN_MOVAPD256_MASK, IX86_BUILTIN_MOVAPD128_MASK,
10615         IX86_BUILTIN_MOVAPS256_MASK, IX86_BUILTIN_MOVAPS128_MASK,
10616         IX86_BUILTIN_MOVDQUHI256_MASK, IX86_BUILTIN_MOVDQUHI128_MASK,
10617         IX86_BUILTIN_MOVDQUQI256_MASK, IX86_BUILTIN_MOVDQUQI128_MASK,
10618         IX86_BUILTIN_MINPS128_MASK, IX86_BUILTIN_MAXPS128_MASK,
10619         IX86_BUILTIN_MINPD128_MASK, IX86_BUILTIN_MAXPD128_MASK,
10620         IX86_BUILTIN_MAXPD256_MASK, IX86_BUILTIN_MAXPS256_MASK,
10621         IX86_BUILTIN_MINPD256_MASK, IX86_BUILTIN_MINPS256_MASK,
10622         IX86_BUILTIN_MULPS128_MASK, IX86_BUILTIN_DIVPS128_MASK,
10623         IX86_BUILTIN_MULPD128_MASK, IX86_BUILTIN_DIVPD128_MASK,
10624         IX86_BUILTIN_DIVPD256_MASK, IX86_BUILTIN_DIVPS256_MASK,
10625         IX86_BUILTIN_MULPD256_MASK, IX86_BUILTIN_MULPS256_MASK,
10626         IX86_BUILTIN_ADDPD128_MASK, IX86_BUILTIN_ADDPD256_MASK,
10627         IX86_BUILTIN_ADDPS128_MASK, IX86_BUILTIN_ADDPS256_MASK,
10628         IX86_BUILTIN_SUBPD128_MASK, IX86_BUILTIN_SUBPD256_MASK,
10629         IX86_BUILTIN_SUBPS128_MASK, IX86_BUILTIN_SUBPS256_MASK,
10630         IX86_BUILTIN_XORPD256_MASK, IX86_BUILTIN_XORPD128_MASK,
10631         IX86_BUILTIN_XORPS256_MASK, IX86_BUILTIN_XORPS128_MASK,
10632         IX86_BUILTIN_ORPD256_MASK, IX86_BUILTIN_ORPD128_MASK,
10633         IX86_BUILTIN_ORPS256_MASK, IX86_BUILTIN_ORPS128_MASK,
10634         IX86_BUILTIN_BROADCASTF32x2_256, IX86_BUILTIN_BROADCASTI32x2_256,
10635         IX86_BUILTIN_BROADCASTI32x2_128, IX86_BUILTIN_BROADCASTF64X2_256,
10636         IX86_BUILTIN_BROADCASTI64X2_256, IX86_BUILTIN_BROADCASTF32X4_256,
10637         IX86_BUILTIN_BROADCASTI32X4_256, IX86_BUILTIN_EXTRACTF32X4_256,
10638         IX86_BUILTIN_EXTRACTI32X4_256, IX86_BUILTIN_DBPSADBW256,
10639         IX86_BUILTIN_DBPSADBW128, IX86_BUILTIN_CVTTPD2QQ256,
10640         IX86_BUILTIN_CVTTPD2QQ128, IX86_BUILTIN_CVTTPD2UQQ256,
10641         IX86_BUILTIN_CVTTPD2UQQ128, IX86_BUILTIN_CVTPD2QQ256,
10642         IX86_BUILTIN_CVTPD2QQ128, IX86_BUILTIN_CVTPD2UQQ256,
10643         IX86_BUILTIN_CVTPD2UQQ128, IX86_BUILTIN_CVTPD2UDQ256_MASK,
10644         IX86_BUILTIN_CVTPD2UDQ128_MASK, IX86_BUILTIN_CVTTPS2QQ256,
10645         IX86_BUILTIN_CVTTPS2QQ128, IX86_BUILTIN_CVTTPS2UQQ256,
10646         IX86_BUILTIN_CVTTPS2UQQ128, IX86_BUILTIN_CVTTPS2DQ256_MASK,
10647         IX86_BUILTIN_CVTTPS2DQ128_MASK, IX86_BUILTIN_CVTTPS2UDQ256,
10648         IX86_BUILTIN_CVTTPS2UDQ128, IX86_BUILTIN_CVTTPD2DQ256_MASK,
10649         IX86_BUILTIN_CVTTPD2DQ128_MASK, IX86_BUILTIN_CVTTPD2UDQ256_MASK,
10650         IX86_BUILTIN_CVTTPD2UDQ128_MASK, IX86_BUILTIN_CVTPD2DQ256_MASK,
10651         IX86_BUILTIN_CVTPD2DQ128_MASK, IX86_BUILTIN_CVTDQ2PD256_MASK,
10652         IX86_BUILTIN_CVTDQ2PD128_MASK, IX86_BUILTIN_CVTUDQ2PD256_MASK,
10653         IX86_BUILTIN_CVTUDQ2PD128_MASK, IX86_BUILTIN_CVTDQ2PS256_MASK,
10654         IX86_BUILTIN_CVTDQ2PS128_MASK, IX86_BUILTIN_CVTUDQ2PS256_MASK,
10655         IX86_BUILTIN_CVTUDQ2PS128_MASK, IX86_BUILTIN_CVTPS2PD256_MASK,
10656         IX86_BUILTIN_CVTPS2PD128_MASK, IX86_BUILTIN_PBROADCASTB256_MASK,
10657         IX86_BUILTIN_PBROADCASTB256_GPR_MASK, IX86_BUILTIN_PBROADCASTB128_MASK,
10658         IX86_BUILTIN_PBROADCASTB128_GPR_MASK, IX86_BUILTIN_PBROADCASTW256_MASK,
10659         IX86_BUILTIN_PBROADCASTW256_GPR_MASK, IX86_BUILTIN_PBROADCASTW128_MASK,
10660         IX86_BUILTIN_PBROADCASTW128_GPR_MASK, IX86_BUILTIN_PBROADCASTD256_MASK,
10661         IX86_BUILTIN_PBROADCASTD256_GPR_MASK, IX86_BUILTIN_PBROADCASTD128_MASK,
10662         IX86_BUILTIN_PBROADCASTD128_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MASK,
10663         IX86_BUILTIN_PBROADCASTQ256_GPR_MASK, IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
10664         IX86_BUILTIN_PBROADCASTQ128_MASK, IX86_BUILTIN_PBROADCASTQ128_GPR_MASK,
10665         IX86_BUILTIN_PBROADCASTQ128_MEM_MASK, IX86_BUILTIN_BROADCASTSS256,
10666         IX86_BUILTIN_BROADCASTSS128, IX86_BUILTIN_BROADCASTSD256,
10667         IX86_BUILTIN_EXTRACTF64X2_256, IX86_BUILTIN_EXTRACTI64X2_256,
10668         IX86_BUILTIN_INSERTF32X4_256, IX86_BUILTIN_INSERTI32X4_256,
10669         IX86_BUILTIN_PMOVSXBW256_MASK, IX86_BUILTIN_PMOVSXBW128_MASK,
10670         IX86_BUILTIN_PMOVSXBD256_MASK, IX86_BUILTIN_PMOVSXBD128_MASK,
10671         IX86_BUILTIN_PMOVSXBQ256_MASK, IX86_BUILTIN_PMOVSXBQ128_MASK,
10672         IX86_BUILTIN_PMOVSXWD256_MASK, IX86_BUILTIN_PMOVSXWD128_MASK,
10673         IX86_BUILTIN_PMOVSXWQ256_MASK, IX86_BUILTIN_PMOVSXWQ128_MASK,
10674         IX86_BUILTIN_PMOVSXDQ256_MASK, IX86_BUILTIN_PMOVSXDQ128_MASK,
10675         IX86_BUILTIN_PMOVZXBW256_MASK, IX86_BUILTIN_PMOVZXBW128_MASK,
10676         IX86_BUILTIN_PMOVZXBD256_MASK, IX86_BUILTIN_PMOVZXBD128_MASK,
10677         IX86_BUILTIN_PMOVZXBQ256_MASK, IX86_BUILTIN_PMOVZXBQ128_MASK,
10678         IX86_BUILTIN_PMOVZXWD256_MASK, IX86_BUILTIN_PMOVZXWD128_MASK,
10679         IX86_BUILTIN_PMOVZXWQ256_MASK, IX86_BUILTIN_PMOVZXWQ128_MASK,
10680         IX86_BUILTIN_PMOVZXDQ256_MASK, IX86_BUILTIN_PMOVZXDQ128_MASK,
10681         IX86_BUILTIN_REDUCEPD256_MASK, IX86_BUILTIN_REDUCEPD128_MASK,
10682         IX86_BUILTIN_REDUCEPS256_MASK, IX86_BUILTIN_REDUCEPS128_MASK,
10683         IX86_BUILTIN_REDUCESD_MASK, IX86_BUILTIN_REDUCESS_MASK,
10684         IX86_BUILTIN_VPERMVARHI256_MASK, IX86_BUILTIN_VPERMVARHI128_MASK,
10685         IX86_BUILTIN_VPERMT2VARHI256, IX86_BUILTIN_VPERMT2VARHI256_MASKZ,
10686         IX86_BUILTIN_VPERMT2VARHI128, IX86_BUILTIN_VPERMT2VARHI128_MASKZ,
10687         IX86_BUILTIN_VPERMI2VARHI256, IX86_BUILTIN_VPERMI2VARHI128,
10688         IX86_BUILTIN_RCP14PD256, IX86_BUILTIN_RCP14PD128,
10689         IX86_BUILTIN_RCP14PS256, IX86_BUILTIN_RCP14PS128,
10690         IX86_BUILTIN_RSQRT14PD256_MASK, IX86_BUILTIN_RSQRT14PD128_MASK,
10691         IX86_BUILTIN_RSQRT14PS256_MASK, IX86_BUILTIN_RSQRT14PS128_MASK,
10692         IX86_BUILTIN_SQRTPD256_MASK, IX86_BUILTIN_SQRTPD128_MASK,
10693         IX86_BUILTIN_SQRTPS256_MASK, IX86_BUILTIN_SQRTPS128_MASK,
10694         IX86_BUILTIN_PADDB128_MASK, IX86_BUILTIN_PADDW128_MASK,
10695         IX86_BUILTIN_PADDD128_MASK, IX86_BUILTIN_PADDQ128_MASK,
10696         IX86_BUILTIN_PSUBB128_MASK, IX86_BUILTIN_PSUBW128_MASK,
10697         IX86_BUILTIN_PSUBD128_MASK, IX86_BUILTIN_PSUBQ128_MASK,
10698         IX86_BUILTIN_PADDSB128_MASK, IX86_BUILTIN_PADDSW128_MASK,
10699         IX86_BUILTIN_PSUBSB128_MASK, IX86_BUILTIN_PSUBSW128_MASK,
10700         IX86_BUILTIN_PADDUSB128_MASK, IX86_BUILTIN_PADDUSW128_MASK,
10701         IX86_BUILTIN_PSUBUSB128_MASK, IX86_BUILTIN_PSUBUSW128_MASK,
10702         IX86_BUILTIN_PADDB256_MASK, IX86_BUILTIN_PADDW256_MASK,
10703         IX86_BUILTIN_PADDD256_MASK, IX86_BUILTIN_PADDQ256_MASK,
10704         IX86_BUILTIN_PADDSB256_MASK, IX86_BUILTIN_PADDSW256_MASK,
10705         IX86_BUILTIN_PADDUSB256_MASK, IX86_BUILTIN_PADDUSW256_MASK,
10706         IX86_BUILTIN_PSUBB256_MASK, IX86_BUILTIN_PSUBW256_MASK,
10707         IX86_BUILTIN_PSUBD256_MASK, IX86_BUILTIN_PSUBQ256_MASK,
10708         IX86_BUILTIN_PSUBSB256_MASK, IX86_BUILTIN_PSUBSW256_MASK,
10709         IX86_BUILTIN_PSUBUSB256_MASK, IX86_BUILTIN_PSUBUSW256_MASK,
10710         IX86_BUILTIN_SHUF_F64x2_256, IX86_BUILTIN_SHUF_I64x2_256,
10711         IX86_BUILTIN_SHUF_I32x4_256, IX86_BUILTIN_SHUF_F32x4_256,
10712         IX86_BUILTIN_PMOVWB128, IX86_BUILTIN_PMOVWB256,
10713         IX86_BUILTIN_PMOVSWB128, IX86_BUILTIN_PMOVSWB256,
10714         IX86_BUILTIN_PMOVUSWB128, IX86_BUILTIN_PMOVUSWB256,
10715         IX86_BUILTIN_PMOVDB128, IX86_BUILTIN_PMOVDB256,
10716         IX86_BUILTIN_PMOVSDB128, IX86_BUILTIN_PMOVSDB256,
10717         IX86_BUILTIN_PMOVUSDB128, IX86_BUILTIN_PMOVUSDB256,
10718         IX86_BUILTIN_PMOVDW128, IX86_BUILTIN_PMOVDW256,
10719         IX86_BUILTIN_PMOVSDW128, IX86_BUILTIN_PMOVSDW256,
10720         IX86_BUILTIN_PMOVUSDW128, IX86_BUILTIN_PMOVUSDW256,
10721         IX86_BUILTIN_PMOVQB128, IX86_BUILTIN_PMOVQB256,
10722         IX86_BUILTIN_PMOVSQB128, IX86_BUILTIN_PMOVSQB256,
10723         IX86_BUILTIN_PMOVUSQB128, IX86_BUILTIN_PMOVUSQB256,
10724         IX86_BUILTIN_PMOVQW128, IX86_BUILTIN_PMOVQW256,
10725         IX86_BUILTIN_PMOVSQW128, IX86_BUILTIN_PMOVSQW256,
10726         IX86_BUILTIN_PMOVUSQW128, IX86_BUILTIN_PMOVUSQW256,
10727         IX86_BUILTIN_PMOVQD128, IX86_BUILTIN_PMOVQD256,
10728         IX86_BUILTIN_PMOVSQD128, IX86_BUILTIN_PMOVSQD256,
10729         IX86_BUILTIN_PMOVUSQD128, IX86_BUILTIN_PMOVUSQD256,
10730         IX86_BUILTIN_RANGEPD256, IX86_BUILTIN_RANGEPD128,
10731         IX86_BUILTIN_RANGEPS256, IX86_BUILTIN_RANGEPS128,
10732         IX86_BUILTIN_GETEXPPS256, IX86_BUILTIN_GETEXPPD256,
10733         IX86_BUILTIN_GETEXPPS128, IX86_BUILTIN_GETEXPPD128,
10734         IX86_BUILTIN_FIXUPIMMPD256_MASK, IX86_BUILTIN_FIXUPIMMPD256_MASKZ,
10735         IX86_BUILTIN_FIXUPIMMPS256_MASK, IX86_BUILTIN_FIXUPIMMPS256_MASKZ,
10736         IX86_BUILTIN_FIXUPIMMPD128_MASK, IX86_BUILTIN_FIXUPIMMPD128_MASKZ,
10737         IX86_BUILTIN_FIXUPIMMPS128_MASK, IX86_BUILTIN_FIXUPIMMPS128_MASKZ,
10738         IX86_BUILTIN_PABSQ256, IX86_BUILTIN_PABSQ128,
10739         IX86_BUILTIN_PABSD256_MASK, IX86_BUILTIN_PABSD128_MASK,
10740         IX86_BUILTIN_PMULHRSW256_MASK, IX86_BUILTIN_PMULHRSW128_MASK,
10741         IX86_BUILTIN_PMULHUW128_MASK, IX86_BUILTIN_PMULHUW256_MASK,
10742         IX86_BUILTIN_PMULHW256_MASK, IX86_BUILTIN_PMULHW128_MASK,
10743         IX86_BUILTIN_PMULLW256_MASK, IX86_BUILTIN_PMULLW128_MASK,
10744         IX86_BUILTIN_PMULLQ256, IX86_BUILTIN_PMULLQ128,
10745         IX86_BUILTIN_ANDPD256_MASK, IX86_BUILTIN_ANDPD128_MASK,
10746         IX86_BUILTIN_ANDPS256_MASK, IX86_BUILTIN_ANDPS128_MASK,
10747         IX86_BUILTIN_ANDNPD256_MASK, IX86_BUILTIN_ANDNPD128_MASK,
10748         IX86_BUILTIN_ANDNPS256_MASK, IX86_BUILTIN_ANDNPS128_MASK,
10749         IX86_BUILTIN_PSLLWI128_MASK, IX86_BUILTIN_PSLLDI128_MASK,
10750         IX86_BUILTIN_PSLLQI128_MASK, IX86_BUILTIN_PSLLW128_MASK,
10751         IX86_BUILTIN_PSLLD128_MASK, IX86_BUILTIN_PSLLQ128_MASK,
10752         IX86_BUILTIN_PSLLWI256_MASK , IX86_BUILTIN_PSLLW256_MASK,
10753         IX86_BUILTIN_PSLLDI256_MASK, IX86_BUILTIN_PSLLD256_MASK,
10754         IX86_BUILTIN_PSLLQI256_MASK, IX86_BUILTIN_PSLLQ256_MASK,
10755         IX86_BUILTIN_PSRADI128_MASK, IX86_BUILTIN_PSRAD128_MASK,
10756         IX86_BUILTIN_PSRADI256_MASK, IX86_BUILTIN_PSRAD256_MASK,
10757         IX86_BUILTIN_PSRAQI128_MASK, IX86_BUILTIN_PSRAQ128_MASK,
10758         IX86_BUILTIN_PSRAQI256_MASK, IX86_BUILTIN_PSRAQ256_MASK,
10759         IX86_BUILTIN_PANDD256, IX86_BUILTIN_PANDD128,
10760         IX86_BUILTIN_PSRLDI128_MASK, IX86_BUILTIN_PSRLD128_MASK,
10761         IX86_BUILTIN_PSRLDI256_MASK, IX86_BUILTIN_PSRLD256_MASK,
10762         IX86_BUILTIN_PSRLQI128_MASK, IX86_BUILTIN_PSRLQ128_MASK,
10763         IX86_BUILTIN_PSRLQI256_MASK, IX86_BUILTIN_PSRLQ256_MASK,
10764         IX86_BUILTIN_PANDQ256, IX86_BUILTIN_PANDQ128,
10765         IX86_BUILTIN_PANDND256, IX86_BUILTIN_PANDND128,
10766         IX86_BUILTIN_PANDNQ256, IX86_BUILTIN_PANDNQ128,
10767         IX86_BUILTIN_PORD256, IX86_BUILTIN_PORD128,
10768         IX86_BUILTIN_PORQ256, IX86_BUILTIN_PORQ128,
10769         IX86_BUILTIN_PXORD256, IX86_BUILTIN_PXORD128,
10770         IX86_BUILTIN_PXORQ256, IX86_BUILTIN_PXORQ128,
10771         IX86_BUILTIN_PACKSSWB256_MASK, IX86_BUILTIN_PACKSSWB128_MASK,
10772         IX86_BUILTIN_PACKUSWB256_MASK, IX86_BUILTIN_PACKUSWB128_MASK,
10773         IX86_BUILTIN_RNDSCALEPS256, IX86_BUILTIN_RNDSCALEPD256,
10774         IX86_BUILTIN_RNDSCALEPS128, IX86_BUILTIN_RNDSCALEPD128,
10775         IX86_BUILTIN_VTERNLOGQ256_MASK, IX86_BUILTIN_VTERNLOGQ256_MASKZ,
10776         IX86_BUILTIN_VTERNLOGD256_MASK, IX86_BUILTIN_VTERNLOGD256_MASKZ,
10777         IX86_BUILTIN_VTERNLOGQ128_MASK, IX86_BUILTIN_VTERNLOGQ128_MASKZ,
10778         IX86_BUILTIN_VTERNLOGD128_MASK, IX86_BUILTIN_VTERNLOGD128_MASKZ,
10779         IX86_BUILTIN_SCALEFPD256, IX86_BUILTIN_SCALEFPS256,
10780         IX86_BUILTIN_SCALEFPD128, IX86_BUILTIN_SCALEFPS128,
10781         IX86_BUILTIN_VFMADDPD256_MASK, IX86_BUILTIN_VFMADDPD256_MASK3,
10782         IX86_BUILTIN_VFMADDPD256_MASKZ, IX86_BUILTIN_VFMADDPD128_MASK,
10783         IX86_BUILTIN_VFMADDPD128_MASK3, IX86_BUILTIN_VFMADDPD128_MASKZ,
10784         IX86_BUILTIN_VFMADDPS256_MASK, IX86_BUILTIN_VFMADDPS256_MASK3,
10785         IX86_BUILTIN_VFMADDPS256_MASKZ, IX86_BUILTIN_VFMADDPS128_MASK,
10786         IX86_BUILTIN_VFMADDPS128_MASK3, IX86_BUILTIN_VFMADDPS128_MASKZ,
10787         IX86_BUILTIN_VFMSUBPD256_MASK3, IX86_BUILTIN_VFMSUBPD128_MASK3,
10788         IX86_BUILTIN_VFMSUBPS256_MASK3, IX86_BUILTIN_VFMSUBPS128_MASK3,
10789         IX86_BUILTIN_VFNMADDPD256_MASK, IX86_BUILTIN_VFNMADDPD128_MASK,
10790         IX86_BUILTIN_VFNMADDPS256_MASK, IX86_BUILTIN_VFNMADDPS128_MASK,
10791         IX86_BUILTIN_VFNMSUBPD256_MASK, IX86_BUILTIN_VFNMSUBPD256_MASK3,
10792         IX86_BUILTIN_VFNMSUBPD128_MASK, IX86_BUILTIN_VFNMSUBPD128_MASK3,
10793         IX86_BUILTIN_VFNMSUBPS256_MASK, IX86_BUILTIN_VFNMSUBPS256_MASK3,
10794         IX86_BUILTIN_VFNMSUBPS128_MASK, IX86_BUILTIN_VFNMSUBPS128_MASK3,
10795         IX86_BUILTIN_VFMADDSUBPD256_MASK, IX86_BUILTIN_VFMADDSUBPD256_MASK3,
10796         IX86_BUILTIN_VFMADDSUBPD256_MASKZ, IX86_BUILTIN_VFMADDSUBPD128_MASK,
10797         IX86_BUILTIN_VFMADDSUBPD128_MASK3, IX86_BUILTIN_VFMADDSUBPD128_MASKZ,
10798         IX86_BUILTIN_VFMADDSUBPS256_MASK, IX86_BUILTIN_VFMADDSUBPS256_MASK3,
10799         IX86_BUILTIN_VFMADDSUBPS256_MASKZ, IX86_BUILTIN_VFMADDSUBPS128_MASK,
10800         IX86_BUILTIN_VFMADDSUBPS128_MASK3, IX86_BUILTIN_VFMADDSUBPS128_MASKZ,
10801         IX86_BUILTIN_VFMSUBADDPD256_MASK3, IX86_BUILTIN_VFMSUBADDPD128_MASK3,
10802         IX86_BUILTIN_VFMSUBADDPS256_MASK3, IX86_BUILTIN_VFMSUBADDPS128_MASK3,
10803         IX86_BUILTIN_INSERTF64X2_256, IX86_BUILTIN_INSERTI64X2_256,
10804         IX86_BUILTIN_PSRAVV16HI, IX86_BUILTIN_PSRAVV8HI,
10805         IX86_BUILTIN_PMADDUBSW256_MASK, IX86_BUILTIN_PMADDUBSW128_MASK,
10806         IX86_BUILTIN_PMADDWD256_MASK, IX86_BUILTIN_PMADDWD128_MASK,
10807         IX86_BUILTIN_PSRLVV16HI, IX86_BUILTIN_PSRLVV8HI,
10808         IX86_BUILTIN_CVTPS2DQ256_MASK, IX86_BUILTIN_CVTPS2DQ128_MASK,
10809         IX86_BUILTIN_CVTPS2UDQ256, IX86_BUILTIN_CVTPS2UDQ128,
10810         IX86_BUILTIN_CVTPS2QQ256, IX86_BUILTIN_CVTPS2QQ128,
10811         IX86_BUILTIN_CVTPS2UQQ256, IX86_BUILTIN_CVTPS2UQQ128,
10812         IX86_BUILTIN_GETMANTPS256, IX86_BUILTIN_GETMANTPS128,
10813         IX86_BUILTIN_GETMANTPD256, IX86_BUILTIN_GETMANTPD128,
10814         IX86_BUILTIN_MOVDDUP256_MASK, IX86_BUILTIN_MOVDDUP128_MASK,
10815         IX86_BUILTIN_MOVSHDUP256_MASK, IX86_BUILTIN_MOVSHDUP128_MASK,
10816         IX86_BUILTIN_MOVSLDUP256_MASK, IX86_BUILTIN_MOVSLDUP128_MASK,
10817         IX86_BUILTIN_CVTQQ2PS256, IX86_BUILTIN_CVTQQ2PS128,
10818         IX86_BUILTIN_CVTUQQ2PS256, IX86_BUILTIN_CVTUQQ2PS128,
10819         IX86_BUILTIN_CVTQQ2PD256, IX86_BUILTIN_CVTQQ2PD128,
10820         IX86_BUILTIN_CVTUQQ2PD256, IX86_BUILTIN_CVTUQQ2PD128,
10821         IX86_BUILTIN_VPERMT2VARQ256, IX86_BUILTIN_VPERMT2VARQ256_MASKZ,
10822         IX86_BUILTIN_VPERMT2VARD256, IX86_BUILTIN_VPERMT2VARD256_MASKZ,
10823         IX86_BUILTIN_VPERMI2VARQ256, IX86_BUILTIN_VPERMI2VARD256,
10824         IX86_BUILTIN_VPERMT2VARPD256, IX86_BUILTIN_VPERMT2VARPD256_MASKZ,
10825         IX86_BUILTIN_VPERMT2VARPS256, IX86_BUILTIN_VPERMT2VARPS256_MASKZ,
10826         IX86_BUILTIN_VPERMI2VARPD256, IX86_BUILTIN_VPERMI2VARPS256,
10827         IX86_BUILTIN_VPERMT2VARQ128, IX86_BUILTIN_VPERMT2VARQ128_MASKZ,
10828         IX86_BUILTIN_VPERMT2VARD128, IX86_BUILTIN_VPERMT2VARD128_MASKZ,
10829         IX86_BUILTIN_VPERMI2VARQ128, IX86_BUILTIN_VPERMI2VARD128,
10830         IX86_BUILTIN_VPERMT2VARPD128, IX86_BUILTIN_VPERMT2VARPD128_MASKZ,
10831         IX86_BUILTIN_VPERMT2VARPS128, IX86_BUILTIN_VPERMT2VARPS128_MASKZ,
10832         IX86_BUILTIN_VPERMI2VARPD128, IX86_BUILTIN_VPERMI2VARPS128,
10833         IX86_BUILTIN_PSHUFB256_MASK, IX86_BUILTIN_PSHUFB128_MASK,
10834         IX86_BUILTIN_PSHUFHW256_MASK, IX86_BUILTIN_PSHUFHW128_MASK,
10835         IX86_BUILTIN_PSHUFLW256_MASK, IX86_BUILTIN_PSHUFLW128_MASK,
10836         IX86_BUILTIN_PSHUFD256_MASK, IX86_BUILTIN_PSHUFD128_MASK,
10837         IX86_BUILTIN_SHUFPD256_MASK, IX86_BUILTIN_SHUFPD128_MASK,
10838         IX86_BUILTIN_SHUFPS256_MASK, IX86_BUILTIN_SHUFPS128_MASK,
10839         IX86_BUILTIN_PROLVQ256, IX86_BUILTIN_PROLVQ128,
10840         IX86_BUILTIN_PROLQ256, IX86_BUILTIN_PROLQ128,
10841         IX86_BUILTIN_PRORVQ256, IX86_BUILTIN_PRORVQ128,
10842         IX86_BUILTIN_PRORQ256, IX86_BUILTIN_PRORQ128,
10843         IX86_BUILTIN_PSRAVQ128, IX86_BUILTIN_PSRAVQ256,
10844         IX86_BUILTIN_PSLLVV4DI_MASK, IX86_BUILTIN_PSLLVV2DI_MASK,
10845         IX86_BUILTIN_PSLLVV8SI_MASK, IX86_BUILTIN_PSLLVV4SI_MASK,
10846         IX86_BUILTIN_PSRAVV8SI_MASK, IX86_BUILTIN_PSRAVV4SI_MASK,
10847         IX86_BUILTIN_PSRLVV4DI_MASK, IX86_BUILTIN_PSRLVV2DI_MASK,
10848         IX86_BUILTIN_PSRLVV8SI_MASK, IX86_BUILTIN_PSRLVV4SI_MASK,
10849         IX86_BUILTIN_PSRAWI256_MASK, IX86_BUILTIN_PSRAW256_MASK,
10850         IX86_BUILTIN_PSRAWI128_MASK, IX86_BUILTIN_PSRAW128_MASK,
10851         IX86_BUILTIN_PSRLWI256_MASK, IX86_BUILTIN_PSRLW256_MASK,
10852         IX86_BUILTIN_PSRLWI128_MASK, IX86_BUILTIN_PSRLW128_MASK,
10853         IX86_BUILTIN_PRORVD256, IX86_BUILTIN_PROLVD256,
10854         IX86_BUILTIN_PRORD256, IX86_BUILTIN_PROLD256,
10855         IX86_BUILTIN_PRORVD128, IX86_BUILTIN_PROLVD128,
10856         IX86_BUILTIN_PRORD128, IX86_BUILTIN_PROLD128,
10857         IX86_BUILTIN_FPCLASSPD256, IX86_BUILTIN_FPCLASSPD128,
10858         IX86_BUILTIN_FPCLASSSD, IX86_BUILTIN_FPCLASSPS256,
10859         IX86_BUILTIN_FPCLASSPS128, IX86_BUILTIN_FPCLASSSS,
10860         IX86_BUILTIN_CVTB2MASK128, IX86_BUILTIN_CVTB2MASK256,
10861         IX86_BUILTIN_CVTW2MASK128, IX86_BUILTIN_CVTW2MASK256,
10862         IX86_BUILTIN_CVTD2MASK128, IX86_BUILTIN_CVTD2MASK256,
10863         IX86_BUILTIN_CVTQ2MASK128, IX86_BUILTIN_CVTQ2MASK256,
10864         IX86_BUILTIN_CVTMASK2B128, IX86_BUILTIN_CVTMASK2B256,
10865         IX86_BUILTIN_CVTMASK2W128, IX86_BUILTIN_CVTMASK2W256,
10866         IX86_BUILTIN_CVTMASK2D128, IX86_BUILTIN_CVTMASK2D256,
10867         IX86_BUILTIN_CVTMASK2Q128, IX86_BUILTIN_CVTMASK2Q256,
10868         IX86_BUILTIN_PCMPEQB128_MASK, IX86_BUILTIN_PCMPEQB256_MASK,
10869         IX86_BUILTIN_PCMPEQW128_MASK, IX86_BUILTIN_PCMPEQW256_MASK,
10870         IX86_BUILTIN_PCMPEQD128_MASK, IX86_BUILTIN_PCMPEQD256_MASK,
10871         IX86_BUILTIN_PCMPEQQ128_MASK, IX86_BUILTIN_PCMPEQQ256_MASK,
10872         IX86_BUILTIN_PCMPGTB128_MASK, IX86_BUILTIN_PCMPGTB256_MASK,
10873         IX86_BUILTIN_PCMPGTW128_MASK, IX86_BUILTIN_PCMPGTW256_MASK,
10874         IX86_BUILTIN_PCMPGTD128_MASK, IX86_BUILTIN_PCMPGTD256_MASK,
10875         IX86_BUILTIN_PCMPGTQ128_MASK, IX86_BUILTIN_PCMPGTQ256_MASK,
10876         IX86_BUILTIN_PTESTMB128, IX86_BUILTIN_PTESTMB256,
10877         IX86_BUILTIN_PTESTMW128, IX86_BUILTIN_PTESTMW256,
10878         IX86_BUILTIN_PTESTMD128, IX86_BUILTIN_PTESTMD256,
10879         IX86_BUILTIN_PTESTMQ128, IX86_BUILTIN_PTESTMQ256,
10880         IX86_BUILTIN_PTESTNMB128, IX86_BUILTIN_PTESTNMB256,
10881         IX86_BUILTIN_PTESTNMW128, IX86_BUILTIN_PTESTNMW256,
10882         IX86_BUILTIN_PTESTNMD128, IX86_BUILTIN_PTESTNMD256,
10883         IX86_BUILTIN_PTESTNMQ128, IX86_BUILTIN_PTESTNMQ256,
10884         IX86_BUILTIN_PBROADCASTMB128, IX86_BUILTIN_PBROADCASTMB256,
10885         IX86_BUILTIN_PBROADCASTMW128, IX86_BUILTIN_PBROADCASTMW256,
10886         IX86_BUILTIN_COMPRESSPD256, IX86_BUILTIN_COMPRESSPD128,
10887         IX86_BUILTIN_COMPRESSPS256, IX86_BUILTIN_COMPRESSPS128,
10888         IX86_BUILTIN_PCOMPRESSQ256, IX86_BUILTIN_PCOMPRESSQ128,
10889         IX86_BUILTIN_PCOMPRESSD256, IX86_BUILTIN_PCOMPRESSD128,
10890         IX86_BUILTIN_EXPANDPD256, IX86_BUILTIN_EXPANDPD128,
10891         IX86_BUILTIN_EXPANDPS256, IX86_BUILTIN_EXPANDPS128,
10892         IX86_BUILTIN_PEXPANDQ256, IX86_BUILTIN_PEXPANDQ128,
10893         IX86_BUILTIN_PEXPANDD256, IX86_BUILTIN_PEXPANDD128,
10894         IX86_BUILTIN_EXPANDPD256Z, IX86_BUILTIN_EXPANDPD128Z,
10895         IX86_BUILTIN_EXPANDPS256Z, IX86_BUILTIN_EXPANDPS128Z,
10896         IX86_BUILTIN_PEXPANDQ256Z, IX86_BUILTIN_PEXPANDQ128Z,
10897         IX86_BUILTIN_PEXPANDD256Z, IX86_BUILTIN_PEXPANDD128Z,
10898         IX86_BUILTIN_PMAXSD256_MASK, IX86_BUILTIN_PMINSD256_MASK,
10899         IX86_BUILTIN_PMAXUD256_MASK, IX86_BUILTIN_PMINUD256_MASK,
10900         IX86_BUILTIN_PMAXSD128_MASK, IX86_BUILTIN_PMINSD128_MASK,
10901         IX86_BUILTIN_PMAXUD128_MASK, IX86_BUILTIN_PMINUD128_MASK,
10902         IX86_BUILTIN_PMAXSQ256_MASK, IX86_BUILTIN_PMINSQ256_MASK,
10903         IX86_BUILTIN_PMAXUQ256_MASK, IX86_BUILTIN_PMINUQ256_MASK,
10904         IX86_BUILTIN_PMAXSQ128_MASK, IX86_BUILTIN_PMINSQ128_MASK,
10905         IX86_BUILTIN_PMAXUQ128_MASK, IX86_BUILTIN_PMINUQ128_MASK,
10906         IX86_BUILTIN_PMINSB256_MASK, IX86_BUILTIN_PMINUB256_MASK,
10907         IX86_BUILTIN_PMAXSB256_MASK, IX86_BUILTIN_PMAXUB256_MASK,
10908         IX86_BUILTIN_PMINSB128_MASK, IX86_BUILTIN_PMINUB128_MASK,
10909         IX86_BUILTIN_PMAXSB128_MASK, IX86_BUILTIN_PMAXUB128_MASK,
10910         IX86_BUILTIN_PMINSW256_MASK, IX86_BUILTIN_PMINUW256_MASK,
10911         IX86_BUILTIN_PMAXSW256_MASK, IX86_BUILTIN_PMAXUW256_MASK,
10912         IX86_BUILTIN_PMINSW128_MASK, IX86_BUILTIN_PMINUW128_MASK,
10913         IX86_BUILTIN_PMAXSW128_MASK, IX86_BUILTIN_PMAXUW128_MASK,
10914         IX86_BUILTIN_VPCONFLICTQ256, IX86_BUILTIN_VPCONFLICTD256,
10915         IX86_BUILTIN_VPCLZCNTQ256, IX86_BUILTIN_VPCLZCNTD256,
10916         IX86_BUILTIN_UNPCKHPD256_MASK, IX86_BUILTIN_UNPCKHPD128_MASK,
10917         IX86_BUILTIN_UNPCKHPS256_MASK, IX86_BUILTIN_UNPCKHPS128_MASK,
10918         IX86_BUILTIN_UNPCKLPD256_MASK, IX86_BUILTIN_UNPCKLPD128_MASK,
10919         IX86_BUILTIN_UNPCKLPS256_MASK, IX86_BUILTIN_VPCONFLICTQ128,
10920         IX86_BUILTIN_VPCONFLICTD128, IX86_BUILTIN_VPCLZCNTQ128,
10921         IX86_BUILTIN_VPCLZCNTD128, IX86_BUILTIN_UNPCKLPS128_MASK,
10922         IX86_BUILTIN_ALIGND256, IX86_BUILTIN_ALIGNQ256,
10923         IX86_BUILTIN_ALIGND128, IX86_BUILTIN_ALIGNQ128,
10924         IX86_BUILTIN_CVTPS2PH256_MASK, IX86_BUILTIN_CVTPS2PH_MASK,
10925         IX86_BUILTIN_CVTPH2PS_MASK, IX86_BUILTIN_CVTPH2PS256_MASK,
10926         IX86_BUILTIN_PUNPCKHDQ128_MASK, IX86_BUILTIN_PUNPCKHDQ256_MASK,
10927         IX86_BUILTIN_PUNPCKHQDQ128_MASK, IX86_BUILTIN_PUNPCKHQDQ256_MASK,
10928         IX86_BUILTIN_PUNPCKLDQ128_MASK, IX86_BUILTIN_PUNPCKLDQ256_MASK,
10929         IX86_BUILTIN_PUNPCKLQDQ128_MASK, IX86_BUILTIN_PUNPCKLQDQ256_MASK,
10930         IX86_BUILTIN_PUNPCKHBW128_MASK, IX86_BUILTIN_PUNPCKHBW256_MASK,
10931         IX86_BUILTIN_PUNPCKHWD128_MASK, IX86_BUILTIN_PUNPCKHWD256_MASK,
10932         IX86_BUILTIN_PUNPCKLBW128_MASK, IX86_BUILTIN_PUNPCKLBW256_MASK,
10933         IX86_BUILTIN_PUNPCKLWD128_MASK, IX86_BUILTIN_PUNPCKLWD256_MASK,
10934         IX86_BUILTIN_PSLLVV16HI, IX86_BUILTIN_PSLLVV8HI,
10935         IX86_BUILTIN_PACKSSDW256_MASK, IX86_BUILTIN_PACKSSDW128_MASK,
10936         IX86_BUILTIN_PACKUSDW256_MASK, IX86_BUILTIN_PACKUSDW128_MASK,
10937         IX86_BUILTIN_PAVGB256_MASK, IX86_BUILTIN_PAVGW256_MASK,
10938         IX86_BUILTIN_PAVGB128_MASK, IX86_BUILTIN_PAVGW128_MASK,
10939         IX86_BUILTIN_VPERMVARSF256_MASK, IX86_BUILTIN_VPERMVARDF256_MASK,
10940         IX86_BUILTIN_VPERMDF256_MASK, IX86_BUILTIN_PABSB256_MASK,
10941         IX86_BUILTIN_PABSB128_MASK, IX86_BUILTIN_PABSW256_MASK,
10942         IX86_BUILTIN_PABSW128_MASK, IX86_BUILTIN_VPERMILVARPD_MASK,
10943         IX86_BUILTIN_VPERMILVARPS_MASK, IX86_BUILTIN_VPERMILVARPD256_MASK,
10944         IX86_BUILTIN_VPERMILVARPS256_MASK, IX86_BUILTIN_VPERMILPD_MASK,
10945         IX86_BUILTIN_VPERMILPS_MASK, IX86_BUILTIN_VPERMILPD256_MASK,
10946         IX86_BUILTIN_VPERMILPS256_MASK, IX86_BUILTIN_BLENDMQ256,
10947         IX86_BUILTIN_BLENDMD256, IX86_BUILTIN_BLENDMPD256,
10948         IX86_BUILTIN_BLENDMPS256, IX86_BUILTIN_BLENDMQ128,
10949         IX86_BUILTIN_BLENDMD128, IX86_BUILTIN_BLENDMPD128,
10950         IX86_BUILTIN_BLENDMPS128, IX86_BUILTIN_BLENDMW256,
10951         IX86_BUILTIN_BLENDMB256, IX86_BUILTIN_BLENDMW128,
10952         IX86_BUILTIN_BLENDMB128, IX86_BUILTIN_PMULLD256_MASK,
10953         IX86_BUILTIN_PMULLD128_MASK, IX86_BUILTIN_PMULUDQ256_MASK,
10954         IX86_BUILTIN_PMULDQ256_MASK, IX86_BUILTIN_PMULDQ128_MASK,
10955         IX86_BUILTIN_PMULUDQ128_MASK, IX86_BUILTIN_CVTPD2PS256_MASK,
10956         IX86_BUILTIN_CVTPD2PS_MASK, IX86_BUILTIN_VPERMVARSI256_MASK,
10957         IX86_BUILTIN_VPERMVARDI256_MASK, IX86_BUILTIN_VPERMDI256_MASK,
10958         IX86_BUILTIN_CMPQ256, IX86_BUILTIN_CMPD256,
10959         IX86_BUILTIN_UCMPQ256, IX86_BUILTIN_UCMPD256,
10960         IX86_BUILTIN_CMPB256, IX86_BUILTIN_CMPW256,
10961         IX86_BUILTIN_UCMPB256, IX86_BUILTIN_UCMPW256,
10962         IX86_BUILTIN_CMPPD256_MASK, IX86_BUILTIN_CMPPS256_MASK,
10963         IX86_BUILTIN_CMPQ128, IX86_BUILTIN_CMPD128,
10964         IX86_BUILTIN_UCMPQ128, IX86_BUILTIN_UCMPD128,
10965         IX86_BUILTIN_CMPB128, IX86_BUILTIN_CMPW128,
10966         IX86_BUILTIN_UCMPB128, IX86_BUILTIN_UCMPW128,
10967         IX86_BUILTIN_CMPPD128_MASK, IX86_BUILTIN_CMPPS128_MASK,
10968         IX86_BUILTIN_GATHER3SIV8SF, IX86_BUILTIN_GATHER3SIV4SF,
10969         IX86_BUILTIN_GATHER3SIV4DF, IX86_BUILTIN_GATHER3SIV2DF,
10970         IX86_BUILTIN_GATHER3DIV8SF, IX86_BUILTIN_GATHER3DIV4SF,
10971         IX86_BUILTIN_GATHER3DIV4DF, IX86_BUILTIN_GATHER3DIV2DF,
10972         IX86_BUILTIN_GATHER3SIV8SI, IX86_BUILTIN_GATHER3SIV4SI,
10973         IX86_BUILTIN_GATHER3SIV4DI, IX86_BUILTIN_GATHER3SIV2DI,
10974         IX86_BUILTIN_GATHER3DIV8SI, IX86_BUILTIN_GATHER3DIV4SI,
10975         IX86_BUILTIN_GATHER3DIV4DI, IX86_BUILTIN_GATHER3DIV2DI,
10976         IX86_BUILTIN_SCATTERSIV8SF, IX86_BUILTIN_SCATTERSIV4SF,
10977         IX86_BUILTIN_SCATTERSIV4DF, IX86_BUILTIN_SCATTERSIV2DF,
10978         IX86_BUILTIN_SCATTERDIV8SF, IX86_BUILTIN_SCATTERDIV4SF,
10979         IX86_BUILTIN_SCATTERDIV4DF, IX86_BUILTIN_SCATTERDIV2DF,
10980         IX86_BUILTIN_SCATTERSIV8SI, IX86_BUILTIN_SCATTERSIV4SI,
10981         IX86_BUILTIN_SCATTERSIV4DI, IX86_BUILTIN_SCATTERSIV2DI,
10982         IX86_BUILTIN_SCATTERDIV8SI, IX86_BUILTIN_SCATTERDIV4SI,
10983         IX86_BUILTIN_SCATTERDIV4DI, IX86_BUILTIN_SCATTERDIV2DI,
10984         IX86_BUILTIN_RANGESD128, IX86_BUILTIN_RANGESS128,
10985         IX86_BUILTIN_KUNPCKWD, IX86_BUILTIN_KUNPCKDQ,
10986         IX86_BUILTIN_BROADCASTF32x2_512, IX86_BUILTIN_BROADCASTI32x2_512,
10987         IX86_BUILTIN_BROADCASTF64X2_512, IX86_BUILTIN_BROADCASTI64X2_512,
10988         IX86_BUILTIN_BROADCASTF32X8_512, IX86_BUILTIN_BROADCASTI32X8_512,
10989         IX86_BUILTIN_EXTRACTF64X2_512, IX86_BUILTIN_EXTRACTF32X8,
10990         IX86_BUILTIN_EXTRACTI64X2_512, IX86_BUILTIN_EXTRACTI32X8,
10991         IX86_BUILTIN_REDUCEPD512_MASK, IX86_BUILTIN_REDUCEPS512_MASK,
10992         IX86_BUILTIN_PMULLQ512, IX86_BUILTIN_XORPD512,
10993         IX86_BUILTIN_XORPS512, IX86_BUILTIN_ORPD512,
10994         IX86_BUILTIN_ORPS512, IX86_BUILTIN_ANDPD512,
10995         IX86_BUILTIN_ANDPS512, IX86_BUILTIN_ANDNPD512,
10996         IX86_BUILTIN_ANDNPS512, IX86_BUILTIN_INSERTF32X8,
10997         IX86_BUILTIN_INSERTI32X8, IX86_BUILTIN_INSERTF64X2_512,
10998         IX86_BUILTIN_INSERTI64X2_512, IX86_BUILTIN_FPCLASSPD512,
10999         IX86_BUILTIN_FPCLASSPS512, IX86_BUILTIN_CVTD2MASK512,
11000         IX86_BUILTIN_CVTQ2MASK512, IX86_BUILTIN_CVTMASK2D512,
11001         IX86_BUILTIN_CVTMASK2Q512, IX86_BUILTIN_CVTPD2QQ512,
11002         IX86_BUILTIN_CVTPS2QQ512, IX86_BUILTIN_CVTPD2UQQ512,
11003         IX86_BUILTIN_CVTPS2UQQ512, IX86_BUILTIN_CVTQQ2PS512,
11004         IX86_BUILTIN_CVTUQQ2PS512, IX86_BUILTIN_CVTQQ2PD512,
11005         IX86_BUILTIN_CVTUQQ2PD512, IX86_BUILTIN_CVTTPS2QQ512,
11006         IX86_BUILTIN_CVTTPS2UQQ512, IX86_BUILTIN_CVTTPD2QQ512,
11007         IX86_BUILTIN_CVTTPD2UQQ512, IX86_BUILTIN_RANGEPS512,
11008         IX86_BUILTIN_RANGEPD512, IX86_BUILTIN_PACKUSDW512,
11009         IX86_BUILTIN_PACKSSDW512, IX86_BUILTIN_LOADDQUHI512_MASK,
11010         IX86_BUILTIN_LOADDQUQI512_MASK, IX86_BUILTIN_PSLLDQ512,
11011         IX86_BUILTIN_PSRLDQ512, IX86_BUILTIN_STOREDQUHI512_MASK,
11012         IX86_BUILTIN_STOREDQUQI512_MASK, IX86_BUILTIN_PALIGNR512,
11013         IX86_BUILTIN_PALIGNR512_MASK, IX86_BUILTIN_MOVDQUHI512_MASK,
11014         IX86_BUILTIN_MOVDQUQI512_MASK, IX86_BUILTIN_PSADBW512,
11015         IX86_BUILTIN_DBPSADBW512, IX86_BUILTIN_PBROADCASTB512,
11016         IX86_BUILTIN_PBROADCASTB512_GPR, IX86_BUILTIN_PBROADCASTW512,
11017         IX86_BUILTIN_PBROADCASTW512_GPR, IX86_BUILTIN_PMOVSXBW512_MASK,
11018         IX86_BUILTIN_PMOVZXBW512_MASK, IX86_BUILTIN_VPERMVARHI512_MASK,
11019         IX86_BUILTIN_VPERMT2VARHI512, IX86_BUILTIN_VPERMT2VARHI512_MASKZ,
11020         IX86_BUILTIN_VPERMI2VARHI512, IX86_BUILTIN_PAVGB512,
11021         IX86_BUILTIN_PAVGW512, IX86_BUILTIN_PADDB512,
11022         IX86_BUILTIN_PSUBB512, IX86_BUILTIN_PSUBSB512,
11023         IX86_BUILTIN_PADDSB512, IX86_BUILTIN_PSUBUSB512,
11024         IX86_BUILTIN_PADDUSB512, IX86_BUILTIN_PSUBW512,
11025         IX86_BUILTIN_PADDW512, IX86_BUILTIN_PSUBSW512,
11026         IX86_BUILTIN_PADDSW512, IX86_BUILTIN_PSUBUSW512,
11027         IX86_BUILTIN_PADDUSW512, IX86_BUILTIN_PMAXUW512,
11028         IX86_BUILTIN_PMAXSW512, IX86_BUILTIN_PMINUW512,
11029         IX86_BUILTIN_PMINSW512, IX86_BUILTIN_PMAXUB512,
11030         IX86_BUILTIN_PMAXSB512, IX86_BUILTIN_PMINUB512,
11031         IX86_BUILTIN_PMINSB512, IX86_BUILTIN_PMOVWB512,
11032         IX86_BUILTIN_PMOVSWB512, IX86_BUILTIN_PMOVUSWB512,
11033         IX86_BUILTIN_PMULHRSW512_MASK, IX86_BUILTIN_PMULHUW512_MASK,
11034         IX86_BUILTIN_PMULHW512_MASK, IX86_BUILTIN_PMULLW512_MASK,
11035         IX86_BUILTIN_PSLLWI512_MASK, IX86_BUILTIN_PSLLW512_MASK,
11036         IX86_BUILTIN_PACKSSWB512, IX86_BUILTIN_PACKUSWB512,
11037         IX86_BUILTIN_PSRAVV32HI, IX86_BUILTIN_PMADDUBSW512_MASK,
11038         IX86_BUILTIN_PMADDWD512_MASK, IX86_BUILTIN_PSRLVV32HI,
11039         IX86_BUILTIN_PUNPCKHBW512, IX86_BUILTIN_PUNPCKHWD512,
11040         IX86_BUILTIN_PUNPCKLBW512, IX86_BUILTIN_PUNPCKLWD512,
11041         IX86_BUILTIN_PSHUFB512, IX86_BUILTIN_PSHUFHW512,
11042         IX86_BUILTIN_PSHUFLW512, IX86_BUILTIN_PSRAWI512,
11043         IX86_BUILTIN_PSRAW512, IX86_BUILTIN_PSRLWI512,
11044         IX86_BUILTIN_PSRLW512, IX86_BUILTIN_CVTB2MASK512,
11045         IX86_BUILTIN_CVTW2MASK512, IX86_BUILTIN_CVTMASK2B512,
11046         IX86_BUILTIN_CVTMASK2W512, IX86_BUILTIN_PCMPEQB512_MASK,
11047         IX86_BUILTIN_PCMPEQW512_MASK, IX86_BUILTIN_PCMPGTB512_MASK,
11048         IX86_BUILTIN_PCMPGTW512_MASK, IX86_BUILTIN_PTESTMB512,
11049         IX86_BUILTIN_PTESTMW512, IX86_BUILTIN_PTESTNMB512,
11050         IX86_BUILTIN_PTESTNMW512, IX86_BUILTIN_PSLLVV32HI,
11051         IX86_BUILTIN_PABSB512, IX86_BUILTIN_PABSW512,
11052         IX86_BUILTIN_BLENDMW512, IX86_BUILTIN_BLENDMB512,
11053         IX86_BUILTIN_CMPB512, IX86_BUILTIN_CMPW512,
11054         IX86_BUILTIN_UCMPB512, IX86_BUILTIN_UCMPW512.
11055         (bdesc_special_args):
11056         Add __builtin_ia32_loaddquhi512_mask, __builtin_ia32_loaddquqi512_mask,
11057         __builtin_ia32_storedquhi512_mask, __builtin_ia32_storedquqi512_mask,
11058         __builtin_ia32_loaddquhi256_mask, __builtin_ia32_loaddquhi128_mask,
11059         __builtin_ia32_loaddquqi256_mask, __builtin_ia32_loaddquqi128_mask,
11060         __builtin_ia32_movdqa64load256_mask, __builtin_ia32_movdqa64load128_mask,
11061         __builtin_ia32_movdqa32load256_mask, __builtin_ia32_movdqa32load128_mask,
11062         __builtin_ia32_movdqa64store256_mask, __builtin_ia32_movdqa64store128_mask,
11063         __builtin_ia32_movdqa32store256_mask, __builtin_ia32_movdqa32store128_mask,
11064         __builtin_ia32_loadapd256_mask, __builtin_ia32_loadapd128_mask,
11065         __builtin_ia32_loadaps256_mask, __builtin_ia32_loadaps128_mask,
11066         __builtin_ia32_storeapd256_mask, __builtin_ia32_storeapd128_mask,
11067         __builtin_ia32_storeaps256_mask, __builtin_ia32_storeaps128_mask,
11068         __builtin_ia32_loadupd256_mask, __builtin_ia32_loadupd128_mask,
11069         __builtin_ia32_loadups256_mask, __builtin_ia32_loadups128_mask,
11070         __builtin_ia32_storeupd256_mask, __builtin_ia32_storeupd128_mask,
11071         __builtin_ia32_storeups256_mask, __builtin_ia32_storeups128_mask,
11072         __builtin_ia32_loaddqudi256_mask, __builtin_ia32_loaddqudi128_mask,
11073         __builtin_ia32_loaddqusi256_mask, __builtin_ia32_loaddqusi128_mask,
11074         __builtin_ia32_storedqudi256_mask, __builtin_ia32_storedqudi128_mask,
11075         __builtin_ia32_storedqusi256_mask, __builtin_ia32_storedqusi128_mask,
11076         __builtin_ia32_storedquhi256_mask, __builtin_ia32_storedquhi128_mask,
11077         __builtin_ia32_storedquqi256_mask, __builtin_ia32_storedquqi128_mask,
11078         __builtin_ia32_compressstoredf256_mask, __builtin_ia32_compressstoredf128_mask,
11079         __builtin_ia32_compressstoresf256_mask, __builtin_ia32_compressstoresf128_mask,
11080         __builtin_ia32_compressstoredi256_mask, __builtin_ia32_compressstoredi128_mask,
11081         __builtin_ia32_compressstoresi256_mask, __builtin_ia32_compressstoresi128_mask,
11082         __builtin_ia32_expandloaddf256_mask, __builtin_ia32_expandloaddf128_mask,
11083         __builtin_ia32_expandloadsf256_mask, __builtin_ia32_expandloadsf128_mask,
11084         __builtin_ia32_expandloaddi256_mask, __builtin_ia32_expandloaddi128_mask,
11085         __builtin_ia32_expandloadsi256_mask, __builtin_ia32_expandloadsi128_mask,
11086         __builtin_ia32_expandloaddf256_maskz, __builtin_ia32_expandloaddf128_maskz,
11087         __builtin_ia32_expandloadsf256_maskz, __builtin_ia32_expandloadsf128_maskz,
11088         __builtin_ia32_expandloaddi256_maskz, __builtin_ia32_expandloaddi128_maskz,
11089         __builtin_ia32_expandloadsi256_maskz, __builtin_ia32_expandloadsi128_maskz,
11090         __builtin_ia32_pmovqd256mem_mask, __builtin_ia32_pmovqd128mem_mask,
11091         __builtin_ia32_pmovsqd256mem_mask, __builtin_ia32_pmovsqd128mem_mask,
11092         __builtin_ia32_pmovusqd256mem_mask, __builtin_ia32_pmovusqd128mem_mask,
11093         __builtin_ia32_pmovqw256mem_mask, __builtin_ia32_pmovqw128mem_mask,
11094         __builtin_ia32_pmovsqw256mem_mask, __builtin_ia32_pmovsqw128mem_mask,
11095         __builtin_ia32_pmovusqw256mem_mask, __builtin_ia32_pmovusqw128mem_mask,
11096         __builtin_ia32_pmovqb256mem_mask, __builtin_ia32_pmovqb128mem_mask,
11097         __builtin_ia32_pmovsqb256mem_mask, __builtin_ia32_pmovsqb128mem_mask,
11098         __builtin_ia32_pmovusqb256mem_mask, __builtin_ia32_pmovusqb128mem_mask,
11099         __builtin_ia32_pmovdb256mem_mask, __builtin_ia32_pmovdb128mem_mask,
11100         __builtin_ia32_pmovsdb256mem_mask, __builtin_ia32_pmovsdb128mem_mask,
11101         __builtin_ia32_pmovusdb256mem_mask, __builtin_ia32_pmovusdb128mem_mask,
11102         __builtin_ia32_pmovdw256mem_mask, __builtin_ia32_pmovdw128mem_mask,
11103         __builtin_ia32_pmovsdw256mem_mask, __builtin_ia32_pmovsdw128mem_mask,
11104         __builtin_ia32_pmovusdw256mem_mask, __builtin_ia32_pmovusdw128mem_mask,
11105         __builtin_ia32_palignr256_mask, __builtin_ia32_palignr128_mask,
11106         __builtin_ia32_movdqa64_256_mask, __builtin_ia32_movdqa64_128_mask,
11107         __builtin_ia32_movdqa32_256_mask, __builtin_ia32_movdqa32_128_mask,
11108         __builtin_ia32_movapd256_mask, __builtin_ia32_movapd128_mask,
11109         __builtin_ia32_movaps256_mask, __builtin_ia32_movaps128_mask,
11110         __builtin_ia32_movdquhi256_mask, __builtin_ia32_movdquhi128_mask,
11111         __builtin_ia32_movdquqi256_mask, __builtin_ia32_movdquqi128_mask,
11112         __builtin_ia32_minps_mask, __builtin_ia32_maxps_mask,
11113         __builtin_ia32_minpd_mask, __builtin_ia32_maxpd_mask,
11114         __builtin_ia32_maxpd256_mask, __builtin_ia32_maxps256_mask,
11115         __builtin_ia32_minpd256_mask, __builtin_ia32_minps256_mask,
11116         __builtin_ia32_mulps_mask, __builtin_ia32_divps_mask,
11117         __builtin_ia32_mulpd_mask, __builtin_ia32_divpd_mask,
11118         __builtin_ia32_divpd256_mask, __builtin_ia32_divps256_mask,
11119         __builtin_ia32_mulpd256_mask, __builtin_ia32_mulps256_mask,
11120         __builtin_ia32_addpd128_mask, __builtin_ia32_addpd256_mask,
11121         __builtin_ia32_addps128_mask, __builtin_ia32_addps256_mask,
11122         __builtin_ia32_subpd128_mask, __builtin_ia32_subpd256_mask,
11123         __builtin_ia32_subps128_mask, __builtin_ia32_subps256_mask,
11124         __builtin_ia32_xorpd256_mask, __builtin_ia32_xorpd128_mask,
11125         __builtin_ia32_xorps256_mask, __builtin_ia32_xorps128_mask,
11126         __builtin_ia32_orpd256_mask, __builtin_ia32_orpd128_mask,
11127         __builtin_ia32_orps256_mask, __builtin_ia32_orps128_mask,
11128         __builtin_ia32_broadcastf32x2_256_mask, __builtin_ia32_broadcasti32x2_256_mask,
11129         __builtin_ia32_broadcasti32x2_128_mask, __builtin_ia32_broadcastf64x2_256_mask,
11130         __builtin_ia32_broadcasti64x2_256_mask, __builtin_ia32_broadcastf32x4_256_mask,
11131         __builtin_ia32_broadcasti32x4_256_mask, __builtin_ia32_extractf32x4_256_mask,
11132         __builtin_ia32_extracti32x4_256_mask, __builtin_ia32_dbpsadbw256_mask,
11133         __builtin_ia32_dbpsadbw128_mask, __builtin_ia32_cvttpd2qq256_mask,
11134         __builtin_ia32_cvttpd2qq128_mask, __builtin_ia32_cvttpd2uqq256_mask,
11135         __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvtpd2qq256_mask,
11136         __builtin_ia32_cvtpd2qq128_mask, __builtin_ia32_cvtpd2uqq256_mask,
11137         __builtin_ia32_cvtpd2uqq128_mask, __builtin_ia32_cvtpd2udq256_mask,
11138         __builtin_ia32_cvtpd2udq128_mask, __builtin_ia32_cvttps2qq256_mask,
11139         __builtin_ia32_cvttps2qq128_mask, __builtin_ia32_cvttps2uqq256_mask,
11140         __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvttps2dq256_mask,
11141         __builtin_ia32_cvttps2dq128_mask, __builtin_ia32_cvttps2udq256_mask,
11142         __builtin_ia32_cvttps2udq128_mask, __builtin_ia32_cvttpd2dq256_mask,
11143         __builtin_ia32_cvttpd2dq128_mask, __builtin_ia32_cvttpd2udq256_mask,
11144         __builtin_ia32_cvttpd2udq128_mask, __builtin_ia32_cvtpd2dq256_mask,
11145         __builtin_ia32_cvtpd2dq128_mask, __builtin_ia32_cvtdq2pd256_mask,
11146         __builtin_ia32_cvtdq2pd128_mask, __builtin_ia32_cvtudq2pd256_mask,
11147         __builtin_ia32_cvtudq2pd128_mask, __builtin_ia32_cvtdq2ps256_mask,
11148         __builtin_ia32_cvtdq2ps128_mask, __builtin_ia32_cvtudq2ps256_mask,
11149         __builtin_ia32_cvtudq2ps128_mask, __builtin_ia32_cvtps2pd256_mask,
11150         __builtin_ia32_cvtps2pd128_mask, __builtin_ia32_pbroadcastb256_mask,
11151         __builtin_ia32_pbroadcastb256_gpr_mask, __builtin_ia32_pbroadcastb128_mask,
11152         __builtin_ia32_pbroadcastb128_gpr_mask, __builtin_ia32_pbroadcastw256_mask,
11153         __builtin_ia32_pbroadcastw256_gpr_mask, __builtin_ia32_pbroadcastw128_mask,
11154         __builtin_ia32_pbroadcastw128_gpr_mask, __builtin_ia32_pbroadcastd256_mask,
11155         __builtin_ia32_pbroadcastd256_gpr_mask, __builtin_ia32_pbroadcastd128_mask,
11156         __builtin_ia32_pbroadcastd128_gpr_mask, __builtin_ia32_pbroadcastq256_mask,
11157         __builtin_ia32_pbroadcastq256_gpr_mask, __builtin_ia32_pbroadcastq256_mem_mask,
11158         __builtin_ia32_pbroadcastq128_mask, __builtin_ia32_pbroadcastq128_gpr_mask,
11159         __builtin_ia32_pbroadcastq128_mem_mask, __builtin_ia32_broadcastss256_mask,
11160         __builtin_ia32_broadcastss128_mask, __builtin_ia32_broadcastsd256_mask,
11161         __builtin_ia32_extractf64x2_256_mask, __builtin_ia32_extracti64x2_256_mask,
11162         __builtin_ia32_insertf32x4_256_mask, __builtin_ia32_inserti32x4_256_mask,
11163         __builtin_ia32_pmovsxbw256_mask, __builtin_ia32_pmovsxbw128_mask,
11164         __builtin_ia32_pmovsxbd256_mask, __builtin_ia32_pmovsxbd128_mask,
11165         __builtin_ia32_pmovsxbq256_mask, __builtin_ia32_pmovsxbq128_mask,
11166         __builtin_ia32_pmovsxwd256_mask, __builtin_ia32_pmovsxwd128_mask,
11167         __builtin_ia32_pmovsxwq256_mask, __builtin_ia32_pmovsxwq128_mask,
11168         __builtin_ia32_pmovsxdq256_mask, __builtin_ia32_pmovsxdq128_mask,
11169         __builtin_ia32_pmovzxbw256_mask, __builtin_ia32_pmovzxbw128_mask,
11170         __builtin_ia32_pmovzxbd256_mask, __builtin_ia32_pmovzxbd128_mask,
11171         __builtin_ia32_pmovzxbq256_mask, __builtin_ia32_pmovzxbq128_mask,
11172         __builtin_ia32_pmovzxwd256_mask, __builtin_ia32_pmovzxwd128_mask,
11173         __builtin_ia32_pmovzxwq256_mask, __builtin_ia32_pmovzxwq128_mask,
11174         __builtin_ia32_pmovzxdq256_mask, __builtin_ia32_pmovzxdq128_mask,
11175         __builtin_ia32_reducepd256_mask, __builtin_ia32_reducepd128_mask,
11176         __builtin_ia32_reduceps256_mask, __builtin_ia32_reduceps128_mask,
11177         __builtin_ia32_reducesd, __builtin_ia32_reducess,
11178         __builtin_ia32_permvarhi256_mask, __builtin_ia32_permvarhi128_mask,
11179         __builtin_ia32_vpermt2varhi256_mask, __builtin_ia32_vpermt2varhi256_maskz,
11180         __builtin_ia32_vpermt2varhi128_mask, __builtin_ia32_vpermt2varhi128_maskz,
11181         __builtin_ia32_vpermi2varhi256_mask, __builtin_ia32_vpermi2varhi128_mask,
11182         __builtin_ia32_rcp14pd256_mask, __builtin_ia32_rcp14pd128_mask,
11183         __builtin_ia32_rcp14ps256_mask, __builtin_ia32_rcp14ps128_mask,
11184         __builtin_ia32_rsqrt14pd256_mask, __builtin_ia32_rsqrt14pd128_mask,
11185         __builtin_ia32_rsqrt14ps256_mask, __builtin_ia32_rsqrt14ps128_mask,
11186         __builtin_ia32_sqrtpd256_mask, __builtin_ia32_sqrtpd128_mask,
11187         __builtin_ia32_sqrtps256_mask, __builtin_ia32_sqrtps128_mask,
11188         __builtin_ia32_paddb128_mask, __builtin_ia32_paddw128_mask,
11189         __builtin_ia32_paddd128_mask, __builtin_ia32_paddq128_mask,
11190         __builtin_ia32_psubb128_mask, __builtin_ia32_psubw128_mask,
11191         __builtin_ia32_psubd128_mask, __builtin_ia32_psubq128_mask,
11192         __builtin_ia32_paddsb128_mask, __builtin_ia32_paddsw128_mask,
11193         __builtin_ia32_psubsb128_mask, __builtin_ia32_psubsw128_mask,
11194         __builtin_ia32_paddusb128_mask, __builtin_ia32_paddusw128_mask,
11195         __builtin_ia32_psubusb128_mask, __builtin_ia32_psubusw128_mask,
11196         __builtin_ia32_paddb256_mask, __builtin_ia32_paddw256_mask,
11197         __builtin_ia32_paddd256_mask, __builtin_ia32_paddq256_mask,
11198         __builtin_ia32_paddsb256_mask, __builtin_ia32_paddsw256_mask,
11199         __builtin_ia32_paddusb256_mask, __builtin_ia32_paddusw256_mask,
11200         __builtin_ia32_psubb256_mask, __builtin_ia32_psubw256_mask,
11201         __builtin_ia32_psubd256_mask, __builtin_ia32_psubq256_mask,
11202         __builtin_ia32_psubsb256_mask, __builtin_ia32_psubsw256_mask,
11203         __builtin_ia32_psubusb256_mask, __builtin_ia32_psubusw256_mask,
11204         __builtin_ia32_shuf_f64x2_256_mask, __builtin_ia32_shuf_i64x2_256_mask,
11205         __builtin_ia32_shuf_i32x4_256_mask, __builtin_ia32_shuf_f32x4_256_mask,
11206         __builtin_ia32_pmovwb128_mask, __builtin_ia32_pmovwb256_mask,
11207         __builtin_ia32_pmovswb128_mask, __builtin_ia32_pmovswb256_mask,
11208         __builtin_ia32_pmovuswb128_mask, __builtin_ia32_pmovuswb256_mask,
11209         __builtin_ia32_pmovdb128_mask, __builtin_ia32_pmovdb256_mask,
11210         __builtin_ia32_pmovsdb128_mask, __builtin_ia32_pmovsdb256_mask,
11211         __builtin_ia32_pmovusdb128_mask, __builtin_ia32_pmovusdb256_mask,
11212         __builtin_ia32_pmovdw128_mask, __builtin_ia32_pmovdw256_mask,
11213         __builtin_ia32_pmovsdw128_mask, __builtin_ia32_pmovsdw256_mask,
11214         __builtin_ia32_pmovusdw128_mask, __builtin_ia32_pmovusdw256_mask,
11215         __builtin_ia32_pmovqb128_mask, __builtin_ia32_pmovqb256_mask,
11216         __builtin_ia32_pmovsqb128_mask, __builtin_ia32_pmovsqb256_mask,
11217         __builtin_ia32_pmovusqb128_mask, __builtin_ia32_pmovusqb256_mask,
11218         __builtin_ia32_pmovqw128_mask, __builtin_ia32_pmovqw256_mask,
11219         __builtin_ia32_pmovsqw128_mask, __builtin_ia32_pmovsqw256_mask,
11220         __builtin_ia32_pmovusqw128_mask, __builtin_ia32_pmovusqw256_mask,
11221         __builtin_ia32_pmovqd128_mask, __builtin_ia32_pmovqd256_mask,
11222         __builtin_ia32_pmovsqd128_mask, __builtin_ia32_pmovsqd256_mask,
11223         __builtin_ia32_pmovusqd128_mask, __builtin_ia32_pmovusqd256_mask,
11224         __builtin_ia32_rangepd256_mask, __builtin_ia32_rangepd128_mask,
11225         __builtin_ia32_rangeps256_mask, __builtin_ia32_rangeps128_mask,
11226         __builtin_ia32_getexpps256_mask, __builtin_ia32_getexppd256_mask,
11227         __builtin_ia32_getexpps128_mask, __builtin_ia32_getexppd128_mask,
11228         __builtin_ia32_fixupimmpd256, __builtin_ia32_fixupimmpd256_mask,
11229         __builtin_ia32_fixupimmpd256_maskz, __builtin_ia32_fixupimmps256,
11230         __builtin_ia32_fixupimmps256_mask, __builtin_ia32_fixupimmps256_maskz,
11231         __builtin_ia32_fixupimmpd128, __builtin_ia32_fixupimmpd128_mask,
11232         __builtin_ia32_fixupimmpd128_maskz, __builtin_ia32_fixupimmps128,
11233         __builtin_ia32_fixupimmps128_mask, __builtin_ia32_fixupimmps128_maskz,
11234         __builtin_ia32_pabsq256_mask, __builtin_ia32_pabsq128_mask,
11235         __builtin_ia32_pabsd256_mask, __builtin_ia32_pabsd128_mask,
11236         __builtin_ia32_pmulhrsw256_mask, __builtin_ia32_pmulhrsw128_mask,
11237         __builtin_ia32_pmulhuw128_mask, __builtin_ia32_pmulhuw256_mask,
11238         __builtin_ia32_pmulhw256_mask, __builtin_ia32_pmulhw128_mask,
11239         __builtin_ia32_pmullw256_mask, __builtin_ia32_pmullw128_mask,
11240         __builtin_ia32_pmullq256_mask, __builtin_ia32_pmullq128_mask,
11241         __builtin_ia32_andpd256_mask, __builtin_ia32_andpd128_mask,
11242         __builtin_ia32_andps256_mask, __builtin_ia32_andps128_mask,
11243         __builtin_ia32_andnpd256_mask, __builtin_ia32_andnpd128_mask,
11244         __builtin_ia32_andnps256_mask, __builtin_ia32_andnps128_mask,
11245         __builtin_ia32_psllwi128_mask, __builtin_ia32_pslldi128_mask,
11246         __builtin_ia32_psllqi128_mask, __builtin_ia32_psllw128_mask,
11247         __builtin_ia32_pslld128_mask, __builtin_ia32_psllq128_mask,
11248         __builtin_ia32_psllwi256_mask, __builtin_ia32_psllw256_mask,
11249         __builtin_ia32_pslldi256_mask, __builtin_ia32_pslld256_mask,
11250         __builtin_ia32_psllqi256_mask, __builtin_ia32_psllq256_mask,
11251         __builtin_ia32_psradi128_mask, __builtin_ia32_psrad128_mask,
11252         __builtin_ia32_psradi256_mask, __builtin_ia32_psrad256_mask,
11253         __builtin_ia32_psraqi128_mask, __builtin_ia32_psraq128_mask,
11254         __builtin_ia32_psraqi256_mask, __builtin_ia32_psraq256_mask,
11255         __builtin_ia32_pandd256_mask, __builtin_ia32_pandd128_mask,
11256         __builtin_ia32_psrldi128_mask, __builtin_ia32_psrld128_mask,
11257         __builtin_ia32_psrldi256_mask, __builtin_ia32_psrld256_mask,
11258         __builtin_ia32_psrlqi128_mask, __builtin_ia32_psrlq128_mask,
11259         __builtin_ia32_psrlqi256_mask, __builtin_ia32_psrlq256_mask,
11260         __builtin_ia32_pandq256_mask, __builtin_ia32_pandq128_mask,
11261         __builtin_ia32_pandnd256_mask, __builtin_ia32_pandnd128_mask,
11262         __builtin_ia32_pandnq256_mask, __builtin_ia32_pandnq128_mask,
11263         __builtin_ia32_pord256_mask, __builtin_ia32_pord128_mask,
11264         __builtin_ia32_porq256_mask, __builtin_ia32_porq128_mask,
11265         __builtin_ia32_pxord256_mask, __builtin_ia32_pxord128_mask,
11266         __builtin_ia32_pxorq256_mask, __builtin_ia32_pxorq128_mask,
11267         __builtin_ia32_packsswb256_mask, __builtin_ia32_packsswb128_mask,
11268         __builtin_ia32_packuswb256_mask, __builtin_ia32_packuswb128_mask,
11269         __builtin_ia32_rndscaleps_256_mask, __builtin_ia32_rndscalepd_256_mask,
11270         __builtin_ia32_rndscaleps_128_mask, __builtin_ia32_rndscalepd_128_mask,
11271         __builtin_ia32_pternlogq256_mask, __builtin_ia32_pternlogq256_maskz,
11272         __builtin_ia32_pternlogd256_mask, __builtin_ia32_pternlogd256_maskz,
11273         __builtin_ia32_pternlogq128_mask, __builtin_ia32_pternlogq128_maskz,
11274         __builtin_ia32_pternlogd128_mask, __builtin_ia32_pternlogd128_maskz,
11275         __builtin_ia32_scalefpd256_mask, __builtin_ia32_scalefps256_mask,
11276         __builtin_ia32_scalefpd128_mask, __builtin_ia32_scalefps128_mask,
11277         __builtin_ia32_vfmaddpd256_mask, __builtin_ia32_vfmaddpd256_mask3,
11278         __builtin_ia32_vfmaddpd256_maskz, __builtin_ia32_vfmaddpd128_mask,
11279         __builtin_ia32_vfmaddpd128_mask3, __builtin_ia32_vfmaddpd128_maskz,
11280         __builtin_ia32_vfmaddps256_mask, __builtin_ia32_vfmaddps256_mask3,
11281         __builtin_ia32_vfmaddps256_maskz, __builtin_ia32_vfmaddps128_mask,
11282         __builtin_ia32_vfmaddps128_mask3, __builtin_ia32_vfmaddps128_maskz,
11283         __builtin_ia32_vfmsubpd256_mask3, __builtin_ia32_vfmsubpd128_mask3,
11284         __builtin_ia32_vfmsubps256_mask3, __builtin_ia32_vfmsubps128_mask3,
11285         __builtin_ia32_vfnmaddpd256_mask, __builtin_ia32_vfnmaddpd128_mask,
11286         __builtin_ia32_vfnmaddps256_mask, __builtin_ia32_vfnmaddps128_mask,
11287         __builtin_ia32_vfnmsubpd256_mask, __builtin_ia32_vfnmsubpd256_mask3,
11288         __builtin_ia32_vfnmsubpd128_mask, __builtin_ia32_vfnmsubpd128_mask3,
11289         __builtin_ia32_vfnmsubps256_mask, __builtin_ia32_vfnmsubps256_mask3,
11290         __builtin_ia32_vfnmsubps128_mask, __builtin_ia32_vfnmsubps128_mask3,
11291         __builtin_ia32_vfmaddsubpd256_mask, __builtin_ia32_vfmaddsubpd256_mask3,
11292         __builtin_ia32_vfmaddsubpd256_maskz, __builtin_ia32_vfmaddsubpd128_mask,
11293         __builtin_ia32_vfmaddsubpd128_mask3, __builtin_ia32_vfmaddsubpd128_maskz,
11294         __builtin_ia32_vfmaddsubps256_mask, __builtin_ia32_vfmaddsubps256_mask3,
11295         __builtin_ia32_vfmaddsubps256_maskz, __builtin_ia32_vfmaddsubps128_mask,
11296         __builtin_ia32_vfmaddsubps128_mask3, __builtin_ia32_vfmaddsubps128_maskz,
11297         __builtin_ia32_vfmsubaddpd256_mask3, __builtin_ia32_vfmsubaddpd128_mask3,
11298         __builtin_ia32_vfmsubaddps256_mask3, __builtin_ia32_vfmsubaddps128_mask3,
11299         __builtin_ia32_insertf64x2_256_mask, __builtin_ia32_inserti64x2_256_mask,
11300         __builtin_ia32_psrav16hi_mask, __builtin_ia32_psrav8hi_mask,
11301         __builtin_ia32_pmaddubsw256_mask, __builtin_ia32_pmaddubsw128_mask,
11302         __builtin_ia32_pmaddwd256_mask, __builtin_ia32_pmaddwd128_mask,
11303         __builtin_ia32_psrlv16hi_mask, __builtin_ia32_psrlv8hi_mask,
11304         __builtin_ia32_cvtps2dq256_mask, __builtin_ia32_cvtps2dq128_mask,
11305         __builtin_ia32_cvtps2udq256_mask, __builtin_ia32_cvtps2udq128_mask,
11306         __builtin_ia32_cvtps2qq256_mask, __builtin_ia32_cvtps2qq128_mask,
11307         __builtin_ia32_cvtps2uqq256_mask, __builtin_ia32_cvtps2uqq128_mask,
11308         __builtin_ia32_getmantps256_mask, __builtin_ia32_getmantps128_mask,
11309         __builtin_ia32_getmantpd256_mask, __builtin_ia32_getmantpd128_mask,
11310         __builtin_ia32_movddup256_mask, __builtin_ia32_movddup128_mask,
11311         __builtin_ia32_movshdup256_mask, __builtin_ia32_movshdup128_mask,
11312         __builtin_ia32_movsldup256_mask, __builtin_ia32_movsldup128_mask,
11313         __builtin_ia32_cvtqq2ps256_mask, __builtin_ia32_cvtqq2ps128_mask,
11314         __builtin_ia32_cvtuqq2ps256_mask, __builtin_ia32_cvtuqq2ps128_mask,
11315         __builtin_ia32_cvtqq2pd256_mask, __builtin_ia32_cvtqq2pd128_mask,
11316         __builtin_ia32_cvtuqq2pd256_mask, __builtin_ia32_cvtuqq2pd128_mask,
11317         __builtin_ia32_vpermt2varq256_mask, __builtin_ia32_vpermt2varq256_maskz,
11318         __builtin_ia32_vpermt2vard256_mask, __builtin_ia32_vpermt2vard256_maskz,
11319         __builtin_ia32_vpermi2varq256_mask, __builtin_ia32_vpermi2vard256_mask,
11320         __builtin_ia32_vpermt2varpd256_mask, __builtin_ia32_vpermt2varpd256_maskz,
11321         __builtin_ia32_vpermt2varps256_mask, __builtin_ia32_vpermt2varps256_maskz,
11322         __builtin_ia32_vpermi2varpd256_mask, __builtin_ia32_vpermi2varps256_mask,
11323         __builtin_ia32_vpermt2varq128_mask, __builtin_ia32_vpermt2varq128_maskz,
11324         __builtin_ia32_vpermt2vard128_mask, __builtin_ia32_vpermt2vard128_maskz,
11325         __builtin_ia32_vpermi2varq128_mask, __builtin_ia32_vpermi2vard128_mask,
11326         __builtin_ia32_vpermt2varpd128_mask, __builtin_ia32_vpermt2varpd128_maskz,
11327         __builtin_ia32_vpermt2varps128_mask, __builtin_ia32_vpermt2varps128_maskz,
11328         __builtin_ia32_vpermi2varpd128_mask, __builtin_ia32_vpermi2varps128_mask,
11329         __builtin_ia32_pshufb256_mask, __builtin_ia32_pshufb128_mask,
11330         __builtin_ia32_pshufhw256_mask, __builtin_ia32_pshufhw128_mask,
11331         __builtin_ia32_pshuflw256_mask, __builtin_ia32_pshuflw128_mask,
11332         __builtin_ia32_pshufd256_mask, __builtin_ia32_pshufd128_mask,
11333         __builtin_ia32_shufpd256_mask, __builtin_ia32_shufpd128_mask,
11334         __builtin_ia32_shufps256_mask, __builtin_ia32_shufps128_mask,
11335         __builtin_ia32_prolvq256_mask, __builtin_ia32_prolvq128_mask,
11336         __builtin_ia32_prolq256_mask, __builtin_ia32_prolq128_mask,
11337         __builtin_ia32_prorvq256_mask, __builtin_ia32_prorvq128_mask,
11338         __builtin_ia32_prorq256_mask, __builtin_ia32_prorq128_mask,
11339         __builtin_ia32_psravq128_mask, __builtin_ia32_psravq256_mask,
11340         __builtin_ia32_psllv4di_mask, __builtin_ia32_psllv2di_mask,
11341         __builtin_ia32_psllv8si_mask, __builtin_ia32_psllv4si_mask,
11342         __builtin_ia32_psrav8si_mask, __builtin_ia32_psrav4si_mask,
11343         __builtin_ia32_psrlv4di_mask, __builtin_ia32_psrlv2di_mask,
11344         __builtin_ia32_psrlv8si_mask, __builtin_ia32_psrlv4si_mask,
11345         __builtin_ia32_psrawi256_mask, __builtin_ia32_psraw256_mask,
11346         __builtin_ia32_psrawi128_mask, __builtin_ia32_psraw128_mask,
11347         __builtin_ia32_psrlwi256_mask, __builtin_ia32_psrlw256_mask,
11348         __builtin_ia32_psrlwi128_mask, __builtin_ia32_psrlw128_mask,
11349         __builtin_ia32_prorvd256_mask, __builtin_ia32_prolvd256_mask,
11350         __builtin_ia32_prord256_mask, __builtin_ia32_prold256_mask,
11351         __builtin_ia32_prorvd128_mask, __builtin_ia32_prolvd128_mask,
11352         __builtin_ia32_prord128_mask, __builtin_ia32_prold128_mask,
11353         __builtin_ia32_fpclasspd256_mask, __builtin_ia32_fpclasspd128_mask,
11354         __builtin_ia32_fpclasssd, __builtin_ia32_fpclassps256_mask,
11355         __builtin_ia32_fpclassps128_mask, __builtin_ia32_fpclassss,
11356         __builtin_ia32_cvtb2mask128, __builtin_ia32_cvtb2mask256,
11357         __builtin_ia32_cvtw2mask128, __builtin_ia32_cvtw2mask256,
11358         __builtin_ia32_cvtd2mask128, __builtin_ia32_cvtd2mask256,
11359         __builtin_ia32_cvtq2mask128, __builtin_ia32_cvtq2mask256,
11360         __builtin_ia32_cvtmask2b128, __builtin_ia32_cvtmask2b256,
11361         __builtin_ia32_cvtmask2w128, __builtin_ia32_cvtmask2w256,
11362         __builtin_ia32_cvtmask2d128, __builtin_ia32_cvtmask2d256,
11363         __builtin_ia32_cvtmask2q128, __builtin_ia32_cvtmask2q256,
11364         __builtin_ia32_pcmpeqb128_mask, __builtin_ia32_pcmpeqb256_mask,
11365         __builtin_ia32_pcmpeqw128_mask, __builtin_ia32_pcmpeqw256_mask,
11366         __builtin_ia32_pcmpeqd128_mask, __builtin_ia32_pcmpeqd256_mask,
11367         __builtin_ia32_pcmpeqq128_mask, __builtin_ia32_pcmpeqq256_mask,
11368         __builtin_ia32_pcmpgtb128_mask, __builtin_ia32_pcmpgtb256_mask,
11369         __builtin_ia32_pcmpgtw128_mask, __builtin_ia32_pcmpgtw256_mask,
11370         __builtin_ia32_pcmpgtd128_mask, __builtin_ia32_pcmpgtd256_mask,
11371         __builtin_ia32_pcmpgtq128_mask, __builtin_ia32_pcmpgtq256_mask,
11372         __builtin_ia32_ptestmb128, __builtin_ia32_ptestmb256,
11373         __builtin_ia32_ptestmw128, __builtin_ia32_ptestmw256,
11374         __builtin_ia32_ptestmd128, __builtin_ia32_ptestmd256,
11375         __builtin_ia32_ptestmq128, __builtin_ia32_ptestmq256,
11376         __builtin_ia32_ptestnmb128, __builtin_ia32_ptestnmb256,
11377         __builtin_ia32_ptestnmw128, __builtin_ia32_ptestnmw256,
11378         __builtin_ia32_ptestnmd128, __builtin_ia32_ptestnmd256,
11379         __builtin_ia32_ptestnmq128, __builtin_ia32_ptestnmq256,
11380         __builtin_ia32_broadcastmb128, __builtin_ia32_broadcastmb256,
11381         __builtin_ia32_broadcastmw128, __builtin_ia32_broadcastmw256,
11382         __builtin_ia32_compressdf256_mask, __builtin_ia32_compressdf128_mask,
11383         __builtin_ia32_compresssf256_mask, __builtin_ia32_compresssf128_mask,
11384         __builtin_ia32_compressdi256_mask, __builtin_ia32_compressdi128_mask,
11385         __builtin_ia32_compresssi256_mask, __builtin_ia32_compresssi128_mask,
11386         __builtin_ia32_expanddf256_mask, __builtin_ia32_expanddf128_mask,
11387         __builtin_ia32_expandsf256_mask, __builtin_ia32_expandsf128_mask,
11388         __builtin_ia32_expanddi256_mask, __builtin_ia32_expanddi128_mask,
11389         __builtin_ia32_expandsi256_mask, __builtin_ia32_expandsi128_mask,
11390         __builtin_ia32_expanddf256_maskz, __builtin_ia32_expanddf128_maskz,
11391         __builtin_ia32_expandsf256_maskz, __builtin_ia32_expandsf128_maskz,
11392         __builtin_ia32_expanddi256_maskz, __builtin_ia32_expanddi128_maskz,
11393         __builtin_ia32_expandsi256_maskz, __builtin_ia32_expandsi128_maskz,
11394         __builtin_ia32_pmaxsd256_mask, __builtin_ia32_pminsd256_mask,
11395         __builtin_ia32_pmaxud256_mask, __builtin_ia32_pminud256_mask,
11396         __builtin_ia32_pmaxsd128_mask, __builtin_ia32_pminsd128_mask,
11397         __builtin_ia32_pmaxud128_mask, __builtin_ia32_pminud128_mask,
11398         __builtin_ia32_pmaxsq256_mask, __builtin_ia32_pminsq256_mask,
11399         __builtin_ia32_pmaxuq256_mask, __builtin_ia32_pminuq256_mask,
11400         __builtin_ia32_pmaxsq128_mask, __builtin_ia32_pminsq128_mask,
11401         __builtin_ia32_pmaxuq128_mask, __builtin_ia32_pminuq128_mask,
11402         __builtin_ia32_pminsb256_mask, __builtin_ia32_pminub256_mask,
11403         __builtin_ia32_pmaxsb256_mask, __builtin_ia32_pmaxub256_mask,
11404         __builtin_ia32_pminsb128_mask, __builtin_ia32_pminub128_mask,
11405         __builtin_ia32_pmaxsb128_mask, __builtin_ia32_pmaxub128_mask,
11406         __builtin_ia32_pminsw256_mask, __builtin_ia32_pminuw256_mask,
11407         __builtin_ia32_pmaxsw256_mask, __builtin_ia32_pmaxuw256_mask,
11408         __builtin_ia32_pminsw128_mask, __builtin_ia32_pminuw128_mask,
11409         __builtin_ia32_pmaxsw128_mask, __builtin_ia32_pmaxuw128_mask,
11410         __builtin_ia32_vpconflictdi_256_mask, __builtin_ia32_vpconflictsi_256_mask,
11411         __builtin_ia32_vplzcntq_256_mask, __builtin_ia32_vplzcntd_256_mask,
11412         __builtin_ia32_unpckhpd256_mask, __builtin_ia32_unpckhpd128_mask,
11413         __builtin_ia32_unpckhps256_mask, __builtin_ia32_unpckhps128_mask,
11414         __builtin_ia32_unpcklpd256_mask, __builtin_ia32_unpcklpd128_mask,
11415         __builtin_ia32_unpcklps256_mask, __builtin_ia32_vpconflictdi_128_mask,
11416         __builtin_ia32_vpconflictsi_128_mask, __builtin_ia32_vplzcntq_128_mask,
11417         __builtin_ia32_vplzcntd_128_mask, __builtin_ia32_unpcklps128_mask,
11418         __builtin_ia32_alignd256_mask, __builtin_ia32_alignq256_mask,
11419         __builtin_ia32_alignd128_mask, __builtin_ia32_alignq128_mask,
11420         __builtin_ia32_vcvtps2ph256_mask, __builtin_ia32_vcvtps2ph_mask,
11421         __builtin_ia32_vcvtph2ps_mask, __builtin_ia32_vcvtph2ps256_mask,
11422         __builtin_ia32_punpckhdq128_mask, __builtin_ia32_punpckhdq256_mask,
11423         __builtin_ia32_punpckhqdq128_mask, __builtin_ia32_punpckhqdq256_mask,
11424         __builtin_ia32_punpckldq128_mask, __builtin_ia32_punpckldq256_mask,
11425         __builtin_ia32_punpcklqdq128_mask, __builtin_ia32_punpcklqdq256_mask,
11426         __builtin_ia32_punpckhbw128_mask, __builtin_ia32_punpckhbw256_mask,
11427         __builtin_ia32_punpckhwd128_mask, __builtin_ia32_punpckhwd256_mask,
11428         __builtin_ia32_punpcklbw128_mask, __builtin_ia32_punpcklbw256_mask,
11429         __builtin_ia32_punpcklwd128_mask, __builtin_ia32_punpcklwd256_mask,
11430         __builtin_ia32_psllv16hi_mask, __builtin_ia32_psllv8hi_mask,
11431         __builtin_ia32_packssdw256_mask, __builtin_ia32_packssdw128_mask,
11432         __builtin_ia32_packusdw256_mask, __builtin_ia32_packusdw128_mask,
11433         __builtin_ia32_pavgb256_mask, __builtin_ia32_pavgw256_mask,
11434         __builtin_ia32_pavgb128_mask, __builtin_ia32_pavgw128_mask,
11435         __builtin_ia32_permvarsf256_mask, __builtin_ia32_permvardf256_mask,
11436         __builtin_ia32_permdf256_mask, __builtin_ia32_pabsb256_mask,
11437         __builtin_ia32_pabsb128_mask, __builtin_ia32_pabsw256_mask,
11438         __builtin_ia32_pabsw128_mask, __builtin_ia32_vpermilvarpd_mask,
11439         __builtin_ia32_vpermilvarps_mask, __builtin_ia32_vpermilvarpd256_mask,
11440         __builtin_ia32_vpermilvarps256_mask, __builtin_ia32_vpermilpd_mask,
11441         __builtin_ia32_vpermilps_mask, __builtin_ia32_vpermilpd256_mask,
11442         __builtin_ia32_vpermilps256_mask, __builtin_ia32_blendmq_256_mask,
11443         __builtin_ia32_blendmd_256_mask, __builtin_ia32_blendmpd_256_mask,
11444         __builtin_ia32_blendmps_256_mask, __builtin_ia32_blendmq_128_mask,
11445         __builtin_ia32_blendmd_128_mask, __builtin_ia32_blendmpd_128_mask,
11446         __builtin_ia32_blendmps_128_mask, __builtin_ia32_blendmw_256_mask,
11447         __builtin_ia32_blendmb_256_mask, __builtin_ia32_blendmw_128_mask,
11448         __builtin_ia32_blendmb_128_mask, __builtin_ia32_pmulld256_mask,
11449         __builtin_ia32_pmulld128_mask, __builtin_ia32_pmuludq256_mask,
11450         __builtin_ia32_pmuldq256_mask, __builtin_ia32_pmuldq128_mask,
11451         __builtin_ia32_pmuludq128_mask, __builtin_ia32_cvtpd2ps256_mask,
11452         __builtin_ia32_cvtpd2ps_mask, __builtin_ia32_permvarsi256_mask,
11453         __builtin_ia32_permvardi256_mask, __builtin_ia32_permdi256_mask,
11454         __builtin_ia32_cmpq256_mask, __builtin_ia32_cmpd256_mask,
11455         __builtin_ia32_ucmpq256_mask, __builtin_ia32_ucmpd256_mask,
11456         __builtin_ia32_cmpb256_mask, __builtin_ia32_cmpw256_mask,
11457         __builtin_ia32_ucmpb256_mask, __builtin_ia32_ucmpw256_mask,
11458         __builtin_ia32_cmppd256_mask, __builtin_ia32_cmpps256_mask,
11459         __builtin_ia32_cmpq128_mask, __builtin_ia32_cmpd128_mask,
11460         __builtin_ia32_ucmpq128_mask, __builtin_ia32_ucmpd128_mask,
11461         __builtin_ia32_cmpb128_mask, __builtin_ia32_cmpw128_mask,
11462         __builtin_ia32_ucmpb128_mask, __builtin_ia32_ucmpw128_mask,
11463         __builtin_ia32_cmppd128_mask, __builtin_ia32_cmpps128_mask,
11464         __builtin_ia32_broadcastf32x2_512_mask, __builtin_ia32_broadcasti32x2_512_mask,
11465         __builtin_ia32_broadcastf64x2_512_mask, __builtin_ia32_broadcasti64x2_512_mask,
11466         __builtin_ia32_broadcastf32x8_512_mask, __builtin_ia32_broadcasti32x8_512_mask,
11467         __builtin_ia32_extractf64x2_512_mask, __builtin_ia32_extractf32x8_mask,
11468         __builtin_ia32_extracti64x2_512_mask, __builtin_ia32_extracti32x8_mask,
11469         __builtin_ia32_reducepd512_mask, __builtin_ia32_reduceps512_mask,
11470         __builtin_ia32_pmullq512_mask, __builtin_ia32_xorpd512_mask,
11471         __builtin_ia32_xorps512_mask, __builtin_ia32_orpd512_mask,
11472         __builtin_ia32_orps512_mask, __builtin_ia32_andpd512_mask,
11473         __builtin_ia32_andps512_mask, __builtin_ia32_andnpd512_mask,
11474         __builtin_ia32_andnps512_mask, __builtin_ia32_insertf32x8_mask,
11475         __builtin_ia32_inserti32x8_mask, __builtin_ia32_insertf64x2_512_mask,
11476         __builtin_ia32_inserti64x2_512_mask, __builtin_ia32_fpclasspd512_mask,
11477         __builtin_ia32_fpclassps512_mask, __builtin_ia32_cvtd2mask512,
11478         __builtin_ia32_cvtq2mask512, __builtin_ia32_cvtmask2d512,
11479         __builtin_ia32_cvtmask2q512, __builtin_ia32_kunpcksi,
11480         __builtin_ia32_kunpckdi, __builtin_ia32_packusdw512_mask,
11481         __builtin_ia32_pslldq512, __builtin_ia32_psrldq512,
11482         __builtin_ia32_packssdw512_mask, __builtin_ia32_palignr512,
11483         __builtin_ia32_palignr512_mask, __builtin_ia32_movdquhi512_mask,
11484         __builtin_ia32_movdquqi512_mask, __builtin_ia32_psadbw512,
11485         __builtin_ia32_dbpsadbw512_mask, __builtin_ia32_pbroadcastb512_mask,
11486         __builtin_ia32_pbroadcastb512_gpr_mask, __builtin_ia32_pbroadcastw512_mask,
11487         __builtin_ia32_pbroadcastw512_gpr_mask, __builtin_ia32_pmovsxbw512_mask,
11488         __builtin_ia32_pmovzxbw512_mask, __builtin_ia32_permvarhi512_mask,
11489         __builtin_ia32_vpermt2varhi512_mask, __builtin_ia32_vpermt2varhi512_maskz,
11490         __builtin_ia32_vpermi2varhi512_mask, __builtin_ia32_pavgb512_mask,
11491         __builtin_ia32_pavgw512_mask, __builtin_ia32_paddb512_mask,
11492         __builtin_ia32_psubb512_mask, __builtin_ia32_psubsb512_mask,
11493         __builtin_ia32_paddsb512_mask, __builtin_ia32_psubusb512_mask,
11494         __builtin_ia32_paddusb512_mask, __builtin_ia32_psubw512_mask,
11495         __builtin_ia32_paddw512_mask, __builtin_ia32_psubsw512_mask,
11496         __builtin_ia32_paddsw512_mask, __builtin_ia32_psubusw512_mask,
11497         __builtin_ia32_paddusw512_mask, __builtin_ia32_pmaxuw512_mask,
11498         __builtin_ia32_pmaxsw512_mask, __builtin_ia32_pminuw512_mask,
11499         __builtin_ia32_pminsw512_mask, __builtin_ia32_pmaxub512_mask,
11500         __builtin_ia32_pmaxsb512_mask, __builtin_ia32_pminub512_mask,
11501         __builtin_ia32_pminsb512_mask, __builtin_ia32_pmovwb512_mask,
11502         __builtin_ia32_pmovswb512_mask, __builtin_ia32_pmovuswb512_mask,
11503         __builtin_ia32_pmulhrsw512_mask, __builtin_ia32_pmulhuw512_mask,
11504         __builtin_ia32_pmulhw512_mask, __builtin_ia32_pmullw512_mask,
11505         __builtin_ia32_psllwi512_mask, __builtin_ia32_psllw512_mask,
11506         __builtin_ia32_packsswb512_mask, __builtin_ia32_packuswb512_mask,
11507         __builtin_ia32_psrav32hi_mask, __builtin_ia32_pmaddubsw512_mask,
11508         __builtin_ia32_pmaddwd512_mask, __builtin_ia32_psrlv32hi_mask,
11509         __builtin_ia32_punpckhbw512_mask, __builtin_ia32_punpckhwd512_mask,
11510         __builtin_ia32_punpcklbw512_mask, __builtin_ia32_punpcklwd512_mask,
11511         __builtin_ia32_pshufb512_mask, __builtin_ia32_pshufhw512_mask,
11512         __builtin_ia32_pshuflw512_mask, __builtin_ia32_psrawi512_mask,
11513         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11514         __builtin_ia32_psrlw512_mask, __builtin_ia32_cvtb2mask512,
11515         __builtin_ia32_cvtw2mask512, __builtin_ia32_cvtmask2b512,
11516         __builtin_ia32_cvtmask2w512, __builtin_ia32_pcmpeqb512_mask,
11517         __builtin_ia32_pcmpeqw512_mask, __builtin_ia32_pcmpgtb512_mask,
11518         __builtin_ia32_pcmpgtw512_mask, __builtin_ia32_ptestmb512,
11519         __builtin_ia32_ptestmw512, __builtin_ia32_ptestnmb512,
11520         __builtin_ia32_ptestnmw512, __builtin_ia32_psllv32hi_mask,
11521         __builtin_ia32_pabsb512_mask, __builtin_ia32_pabsw512_mask,
11522         __builtin_ia32_blendmw_512_mask, __builtin_ia32_blendmb_512_mask,
11523         __builtin_ia32_cmpb512_mask, __builtin_ia32_cmpw512_mask,
11524         __builtin_ia32_ucmpb512_mask, __builtin_ia32_ucmpw512_mask,
11525         __builtin_ia32_rangesd128_round, __builtin_ia32_rangess128_round,
11526         __builtin_ia32_cvtpd2qq512_mask, __builtin_ia32_cvtps2qq512_mask,
11527         __builtin_ia32_cvtpd2uqq512_mask, __builtin_ia32_cvtps2uqq512_mask,
11528         __builtin_ia32_cvtqq2ps512_mask, __builtin_ia32_cvtuqq2ps512_mask,
11529         __builtin_ia32_cvtqq2pd512_mask, __builtin_ia32_cvtuqq2pd512_mask,
11530         __builtin_ia32_cvttps2qq512_mask, __builtin_ia32_cvttps2uqq512_mask,
11531         __builtin_ia32_cvttpd2qq512_mask, __builtin_ia32_cvttpd2uqq512_mask,
11532         __builtin_ia32_rangeps512_mask, __builtin_ia32_rangepd512_mask.
11533         (ix86_expand_args_builtin): Handle HI_FTYPE_V16QI, SI_FTYPE_V32QI,
11534         DI_FTYPE_V64QI, V16QI_FTYPE_HI, V32QI_FTYPE_SI, V64QI_FTYPE_DI,
11535         V8HI_FTYPE_QI, V16HI_FTYPE_HI, V32HI_FTYPE_SI, V4SI_FTYPE_QI,
11536         V8SI_FTYPE_QI, V4SI_FTYPE_HI, V8SI_FTYPE_HI, QI_FTYPE_V8HI,
11537         HI_FTYPE_V16HI, SI_FTYPE_V32HI, QI_FTYPE_V4SI, QI_FTYPE_V8SI,
11538         HI_FTYPE_V16SI, QI_FTYPE_V2DI, QI_FTYPE_V4DI, QI_FTYPE_V8DI,
11539         V2DI_FTYPE_QI, V4DI_FTYPE_QI, V8DI_FTYPE_V64QI_V64QI,
11540         SI_FTYPE_SI_SI,DI_FTYPE_DI_DI, V8DI_FTYPE_V8DI_INT_CONVERT,
11541         QI_FTYPE_V4SF_INT, QI_FTYPE_V2DF_INT,
11542         V8SF_FTYPE_V4SF_V8SF_QI, V4DF_FTYPE_V2DF_V4DF_QI,
11543         V8SI_FTYPE_V4SI_V8SI_QI, V8SI_FTYPE_SI_V8SI_QI,
11544         V4SI_FTYPE_V4SI_V4SI_QI, V4SI_FTYPE_SI_V4SI_QI,
11545         V4DI_FTYPE_V2DI_V4DI_QI, V4DI_FTYPE_DI_V4DI_QI,
11546         V2DI_FTYPE_V2DI_V2DI_QI, V2DI_FTYPE_DI_V2DI_QI,
11547         V64QI_FTYPE_V64QI_V64QI_DI, V64QI_FTYPE_V16QI_V64QI_DI,
11548         V64QI_FTYPE_QI_V64QI_DI, V32QI_FTYPE_V32QI_V32QI_SI,
11549         V32QI_FTYPE_V16QI_V32QI_SI, V32QI_FTYPE_QI_V32QI_SI,
11550         V16QI_FTYPE_V16QI_V16QI_HI, V16QI_FTYPE_QI_V16QI_HI,
11551         V32HI_FTYPE_V8HI_V32HI_SI, V32HI_FTYPE_HI_V32HI_SI,
11552         V16HI_FTYPE_V8HI_V16HI_HI, V16HI_FTYPE_HI_V16HI_HI,
11553         V8HI_FTYPE_V8HI_V8HI_QI, V8HI_FTYPE_HI_V8HI_QI,
11554         V8SF_FTYPE_V8HI_V8SF_QI, V4SF_FTYPE_V8HI_V4SF_QI,
11555         V8SI_FTYPE_V8SF_V8SI_QI, V4SI_FTYPE_V4SF_V4SI_QI,
11556         V8DI_FTYPE_V8SF_V8DI_QI, V4DI_FTYPE_V4SF_V4DI_QI,
11557         V2DI_FTYPE_V4SF_V2DI_QI, V8SF_FTYPE_V8DI_V8SF_QI,
11558         V4SF_FTYPE_V4DI_V4SF_QI, V4SF_FTYPE_V2DI_V4SF_QI,
11559         V8DF_FTYPE_V8DI_V8DF_QI, V4DF_FTYPE_V4DI_V4DF_QI,
11560         V2DF_FTYPE_V2DI_V2DF_QI, V16QI_FTYPE_V8HI_V16QI_QI,
11561         V16QI_FTYPE_V16HI_V16QI_HI, V16QI_FTYPE_V4SI_V16QI_QI,
11562         V16QI_FTYPE_V8SI_V16QI_QI, V8HI_FTYPE_V4SI_V8HI_QI,
11563         V8HI_FTYPE_V8SI_V8HI_QI, V16QI_FTYPE_V2DI_V16QI_QI,
11564         V16QI_FTYPE_V4DI_V16QI_QI, V8HI_FTYPE_V2DI_V8HI_QI,
11565         V8HI_FTYPE_V4DI_V8HI_QI, V4SI_FTYPE_V2DI_V4SI_QI,
11566         V4SI_FTYPE_V4DI_V4SI_QI, V32QI_FTYPE_V32HI_V32QI_SI,
11567         HI_FTYPE_V16QI_V16QI_HI, SI_FTYPE_V32QI_V32QI_SI,
11568         DI_FTYPE_V64QI_V64QI_DI, QI_FTYPE_V8HI_V8HI_QI,
11569         HI_FTYPE_V16HI_V16HI_HI, SI_FTYPE_V32HI_V32HI_SI,
11570         QI_FTYPE_V4SI_V4SI_QI, QI_FTYPE_V8SI_V8SI_QI,
11571         QI_FTYPE_V2DI_V2DI_QI, QI_FTYPE_V4DI_V4DI_QI,
11572         V4SF_FTYPE_V2DF_V4SF_QI, V4SF_FTYPE_V4DF_V4SF_QI,
11573         V2DI_FTYPE_V4SI_V2DI_QI, V2DI_FTYPE_V8HI_V2DI_QI,
11574         V2DI_FTYPE_V16QI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_QI,
11575         V4DI_FTYPE_V4SI_V4DI_QI, V4DI_FTYPE_V8HI_V4DI_QI,
11576         V4DI_FTYPE_V16QI_V4DI_QI, V8DI_FTYPE_V8DF_V8DI_QI,
11577         V4DI_FTYPE_V4DF_V4DI_QI, V2DI_FTYPE_V2DF_V2DI_QI,
11578         V4SI_FTYPE_V4DF_V4SI_QI, V4SI_FTYPE_V2DF_V4SI_QI,
11579         V4SI_FTYPE_V8HI_V4SI_QI, V4SI_FTYPE_V16QI_V4SI_QI,
11580         V8SI_FTYPE_V8SI_V8SI_V8SI, V8SF_FTYPE_V8SF_V8SF_QI,
11581         V8SF_FTYPE_V8SI_V8SF_QI, V4DF_FTYPE_V4DF_V4DF_QI,
11582         V4SF_FTYPE_V4SF_V4SF_QI, V2DF_FTYPE_V2DF_V2DF_QI,
11583         V2DF_FTYPE_V4SF_V2DF_QI, V2DF_FTYPE_V4SI_V2DF_QI,
11584         V4SF_FTYPE_V4SI_V4SF_QI, V4DF_FTYPE_V4SF_V4DF_QI,
11585         V4DF_FTYPE_V4SI_V4DF_QI, V8SI_FTYPE_V8SI_V8SI_QI,
11586         V8SI_FTYPE_V8HI_V8SI_QI, V8SI_FTYPE_V16QI_V8SI_QI,
11587         V16SF_FTYPE_V8SF_V16SF_HI, V16SI_FTYPE_V8SI_V16SI_HI,
11588         V16HI_FTYPE_V16HI_V16HI_HI, V8HI_FTYPE_V16QI_V8HI_QI,
11589         V16HI_FTYPE_V16QI_V16HI_HI, V32HI_FTYPE_V32HI_V32HI_SI,
11590         V32HI_FTYPE_V32QI_V32HI_SI, V8DI_FTYPE_V8DI_V8DI_INT_CONVERT,
11591         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI_CONVERT, QI_FTYPE_V8DF_INT_QI,
11592         QI_FTYPE_V4DF_INT_QI, QI_FTYPE_V2DF_INT_QI,
11593         HI_FTYPE_V16SF_INT_HI, QI_FTYPE_V8SF_INT_QI,
11594         QI_FTYPE_V4SF_INT_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI_CONVERT,
11595         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI_CONVERT, V32QI_FTYPE_V32QI_V32QI_V32QI_SI,
11596         V32HI_FTYPE_V32HI_V32HI_V32HI_SI, V32HI_FTYPE_V64QI_V64QI_V32HI_SI,
11597         V16SI_FTYPE_V32HI_V32HI_V16SI_HI, V64QI_FTYPE_V64QI_V64QI_V64QI_DI,
11598         V32HI_FTYPE_V32HI_V8HI_V32HI_SI, V16HI_FTYPE_V16HI_V8HI_V16HI_HI,
11599         V8SI_FTYPE_V8SI_V4SI_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_V4DI_QI,
11600         V64QI_FTYPE_V32HI_V32HI_V64QI_DI, V32QI_FTYPE_V16HI_V16HI_V32QI_SI,
11601         V16QI_FTYPE_V8HI_V8HI_V16QI_HI, V32HI_FTYPE_V16SI_V16SI_V32HI_SI,
11602         V16HI_FTYPE_V8SI_V8SI_V16HI_HI, V8HI_FTYPE_V4SI_V4SI_V8HI_QI,
11603         V4DF_FTYPE_V4DF_V4DI_V4DF_QI, V8SF_FTYPE_V8SF_V8SI_V8SF_QI,
11604         V4SF_FTYPE_V4SF_V4SI_V4SF_QI, V2DF_FTYPE_V2DF_V2DI_V2DF_QI,
11605         V2DI_FTYPE_V4SI_V4SI_V2DI_QI, V4DI_FTYPE_V8SI_V8SI_V4DI_QI,
11606         V4DF_FTYPE_V4DI_V4DF_V4DF_QI, V8SF_FTYPE_V8SI_V8SF_V8SF_QI,
11607         V2DF_FTYPE_V2DI_V2DF_V2DF_QI, V4SF_FTYPE_V4SI_V4SF_V4SF_QI,
11608         V8HI_FTYPE_V8HI_V8HI_V8HI_QI, V8SI_FTYPE_V8SI_V8SI_V8SI_QI,
11609         V4SI_FTYPE_V4SI_V4SI_V4SI_QI, V8SF_FTYPE_V8SF_V8SF_V8SF_QI,
11610         V16QI_FTYPE_V16QI_V16QI_V16QI_HI, V16HI_FTYPE_V16HI_V16HI_V16HI_HI,
11611         V2DI_FTYPE_V2DI_V2DI_V2DI_QI, V4DI_FTYPE_V4DI_V4DI_V4DI_QI,
11612         V4DF_FTYPE_V4DF_V4DF_V4DF_QI, V8HI_FTYPE_V16QI_V16QI_V8HI_QI,
11613         V16HI_FTYPE_V32QI_V32QI_V16HI_HI, V8SI_FTYPE_V16HI_V16HI_V8SI_QI,
11614         V4SI_FTYPE_V8HI_V8HI_V4SI_QI, QI_FTYPE_V4DI_V4DI_INT_QI,
11615         QI_FTYPE_V8SI_V8SI_INT_QI, QI_FTYPE_V4DF_V4DF_INT_QI,
11616         QI_FTYPE_V8SF_V8SF_INT_QI, QI_FTYPE_V2DI_V2DI_INT_QI,
11617         QI_FTYPE_V4SI_V4SI_INT_QI, DI_FTYPE_V64QI_V64QI_INT_DI,
11618         SI_FTYPE_V32QI_V32QI_INT_SI, HI_FTYPE_V16QI_V16QI_INT_HI,
11619         SI_FTYPE_V32HI_V32HI_INT_SI, HI_FTYPE_V16HI_V16HI_INT_HI,
11620         QI_FTYPE_V8HI_V8HI_INT_QI, V8SF_FTYPE_V8SF_INT_V8SF_QI,
11621         V4SF_FTYPE_V4SF_INT_V4SF_QI, V2DF_FTYPE_V4DF_INT_V2DF_QI,
11622         V2DI_FTYPE_V4DI_INT_V2DI_QI, V8SF_FTYPE_V16SF_INT_V8SF_QI,
11623         V8SI_FTYPE_V16SI_INT_V8SI_QI, V2DF_FTYPE_V8DF_INT_V2DF_QI,
11624         V2DI_FTYPE_V8DI_INT_V2DI_QI, V4SF_FTYPE_V8SF_INT_V4SF_QI,
11625         V4SI_FTYPE_V8SI_INT_V4SI_QI, V8HI_FTYPE_V8SF_INT_V8HI_QI,
11626         V8HI_FTYPE_V4SF_INT_V8HI_QI, V32HI_FTYPE_V32HI_INT_V32HI_SI,
11627         V16HI_FTYPE_V16HI_INT_V16HI_HI, V8HI_FTYPE_V8HI_INT_V8HI_QI,
11628         V4DI_FTYPE_V4DI_INT_V4DI_QI, V2DI_FTYPE_V2DI_INT_V2DI_QI,
11629         V8SI_FTYPE_V8SI_INT_V8SI_QI, V4SI_FTYPE_V4SI_INT_V4SI_QI,
11630         V4DF_FTYPE_V4DF_INT_V4DF_QI, V2DF_FTYPE_V2DF_INT_V2DF_QI,
11631         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI,
11632         V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI, V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI,
11633         V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI,
11634         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI, V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI,
11635         V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI, V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI,
11636         V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI, V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI,
11637         V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI, V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI,
11638         V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI, V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI,
11639         V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI, V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI,
11640         V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI, V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI,
11641         V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI, V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI,
11642         V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI, V8DI_FTYPE_V8DF_V8DI_QI_INT,
11643         V8SF_FTYPE_V8DI_V8SF_QI_INT, V8DF_FTYPE_V8DI_V8DF_QI_INT,
11644         V8DI_FTYPE_V8SF_V8DI_QI_INT, V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI_INT,
11645         V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI_INT, VOID_FTYPE_PV4DI_V4DI_QI,
11646         VOID_FTYPE_PV2DI_V2DI_QI, VOID_FTYPE_PV8SI_V8SI_QI,
11647         VOID_FTYPE_PV4SI_V4SI_QI, VOID_FTYPE_PV4SI_V4DI_QI,
11648         VOID_FTYPE_PV4SI_V2DI_QI, VOID_FTYPE_PV8HI_V4DI_QI,
11649         VOID_FTYPE_PV8HI_V2DI_QI, VOID_FTYPE_PV8HI_V8SI_QI,
11650         VOID_FTYPE_PV8HI_V4SI_QI, VOID_FTYPE_PV16QI_V4DI_QI,
11651         VOID_FTYPE_PV16QI_V2DI_QI, VOID_FTYPE_PV16QI_V8SI_QI,
11652         VOID_FTYPE_PV16QI_V4SI_QI, VOID_FTYPE_PV8HI_V8HI_QI,
11653         VOID_FTYPE_PV16HI_V16HI_HI, VOID_FTYPE_PV32HI_V32HI_SI,
11654         VOID_FTYPE_PV16QI_V16QI_HI, VOID_FTYPE_PV32QI_V32QI_SI,
11655         VOID_FTYPE_PV64QI_V64QI_DI, VOID_FTYPE_PV4DF_V4DF_QI,
11656         VOID_FTYPE_PV2DF_V2DF_QI, VOID_FTYPE_PV8SF_V8SF_QI,
11657         VOID_FTYPE_PV4SF_V4SF_QI, V4SF_FTYPE_PCV4SF_V4SF_QI,
11658         V8SF_FTYPE_PCV8SF_V8SF_QI, V4SI_FTYPE_PCV4SI_V4SI_QI,
11659         V8SI_FTYPE_PCV8SI_V8SI_QI, V2DF_FTYPE_PCV2DF_V2DF_QI,
11660         V4DF_FTYPE_PCV4DF_V4DF_QI, V2DI_FTYPE_PCV2DI_V2DI_QI,
11661         V4DI_FTYPE_PCV4DI_V4DI_QI, V8HI_FTYPE_PCV8HI_V8HI_QI,
11662         V16HI_FTYPE_PCV16HI_V16HI_HI, V32HI_FTYPE_PCV32HI_V32HI_SI,
11663         V16QI_FTYPE_PCV16QI_V16QI_HI, V32QI_FTYPE_PCV32QI_V32QI_SI,
11664         V64QI_FTYPE_PCV64QI_V64QI_DI, do not handle V8USI_FTYPE_V8USI.
11665
11666 2014-10-28  Jakub Jelinek  <jakub@redhat.com>
11667
11668         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Use uint64_t
11669         type for the left shift in CASE_CONVERT case.
11670
11671 2014-10-28  Max Ostapenko  <m.ostapenko@partner.samsung.com>
11672
11673         * asan.h (asan_intercepted_p): New function.
11674         * asan.c (asan_mem_ref_hasher::hash): Remove MEM_REF access size from
11675         hash value construction.  Call iterative_hash_expr instead of explicit
11676         hash building.
11677         (asan_mem_ref_hasher::equal): Change condition.
11678         (has_mem_ref_been_instrumented): Likewise.
11679         (update_mem_ref_hash_table): Likewise.
11680         (maybe_update_mem_ref_hash_table): New function.
11681         (instrument_strlen_call): Removed.
11682         (get_mem_refs_of_builtin_call): Handle new parameter.
11683         (instrument_builtin_call): Call maybe_update_mem_ref_hash_table instead
11684         of instrument_mem_region_access if intercepted_p is true.
11685         (instrument_mem_region_access): Instrument only base with len instead of
11686         base and end with 1.
11687         (build_check_stmt): Remove start_instrumented and end_instrumented
11688         parameters.
11689         (enum asan_check_flags): Remove ASAN_CHECK_START_INSTRUMENTED and
11690         ASAN_CHECK_END_INSTRUMENTED.  Change ASAN_CHECK_LAST.
11691         (asan_expand_check_ifn): Remove start_instrumented and end_instrumented.
11692         * builtins.c (expand_builtin): Include asan.h.  Don't expand string/memory
11693         builtin functions that have interceptors if ASan is enabled.
11694
11695 2014-10-28  Richard Biener  <rguenther@suse.de>
11696
11697         PR middle-end/63665
11698         * fold-const.c (fold_comparison): Properly guard simplifying
11699         against INT_MAX/INT_MIN with !TYPE_OVERFLOW_WRAPS.
11700
11701 2014-10-28  Alan Lawrence  <alan.lawrence@arm.com>
11702
11703         * expr.c (expand_expr_real_2): Remove code handling VEC_LSHIFT_EXPR.
11704         * fold-const.c (const_binop): Likewise.
11705         * cfgexpand.c (expand_debug_expr): Likewise.
11706         * tree-inline.c (estimate_operator_cost): Likewise.
11707         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
11708         * optabs.c (optab_for_tree_code): Likewise.
11709         (expand_vec_shift_expr): Likewise, update comment.
11710         * tree.def: Delete VEC_LSHIFT_EXPR, remove comment.
11711         * optabs.h (expand_vec_shift_expr): Remove comment re. VEC_LSHIFT_EXPR.
11712         * optabs.def: Remove vec_shl_optab.
11713         * doc/md.texi: Remove references to vec_shr_m.
11714
11715 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11716
11717         * asan.c (report_error_func): Add noabort path.
11718         (check_func): Ditto.  Formatting.
11719         (asan_expand_check_ifn): Handle noabort path.
11720         * common.opt (flag_sanitize_recover): Add SANITIZE_KERNEL_ADDRESS
11721         to default value.
11722         * doc/invoke.texi (-fsanitize-recover=): Mention KASan.
11723         * opts.c (finish_options): Reword comment.
11724         * sanitizer.def: Add noabort ASan builtins.
11725
11726 2014-10-28  Yury Gribov  <y.gribov@samsung.com>
11727
11728         * asan.c (set_asan_shadow_offset): New function.
11729         (asan_shadow_offset): Likewise.
11730         (asan_emit_stack_protection): Call asan_shadow_offset.
11731         (build_shadow_mem_access): Likewise.
11732         * asan.h (set_asan_shadow_offset): Declare.
11733         * common.opt (fasan-shadow-offset): New option.
11734         (frandom-seed): Fixed parameter name.
11735         * doc/invoke.texi (fasan-shadow-offset): Describe new option.
11736         (frandom-seed): Fixed parameter name.
11737         * opts-global.c (handle_common_deferred_options): Handle
11738         -fasan-shadow-offset.
11739         * opts.c (common_handle_option): Likewise.
11740
11741 2014-10-27  Jiong Wang <jiong.wang@arm.com>
11742
11743         PR target/63442
11744         * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
11745
11746 2014-10-27  DJ Delorie  <dj@redhat.com>
11747
11748         * tree.c (build_common_tree_nodes): Don't even store the
11749         __int128 types if they're not supported.
11750
11751 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11752
11753         * config/i386/i386.c (ix86_loop_memcount): Delete.
11754         (ix86_loop_unroll_adjust): Use FOR_EACH_SUBRTX.
11755
11756 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11757
11758         * config/i386/i386.c (find_constant_1): Delete.
11759         (find_constant): Use FOR_EACH_SUBRTX.
11760
11761 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11762
11763         * config/i386/i386.c (extended_reg_mentioned_1): Delete.
11764         (x86_extended_reg_mentioned_p): Use FOR_EACH_SUBRTX.
11765
11766 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11767
11768         * config/i386/i386.c: Include rtl-iter.h
11769         (ix86_check_avx256_register): Take a const_rtx and return a bool.
11770         (ix86_check_avx256_stores): Update call accordingly.
11771         (ix86_avx_u128_mode_entry, ix86_avx_u128_mode_exit): Likewise.
11772         (ix86_avx_u128_mode_needed): Likewise.  Use FOR_EACH_SUBRTX.
11773
11774 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11775
11776         * config/alpha/alpha-protos.h (some_small_symbolic_operand_int):
11777         Take an rtx and return a bool.
11778         * config/alpha/alpha.c (some_small_symbolic_operand_int): Likewise.
11779         Use FOR_EACH_SUBRTX_VAR.
11780         * config/alpha/predicates.md (some_small_symbolic_operand): Update
11781         accordingly.
11782
11783 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11784
11785         * config/alpha/alpha-protos.h (alpha_find_lo_sum_using_gp): Return
11786         a bool.
11787         * config/alpha/alpha.c (find_lo_sum_using_gp): Delete.
11788         (alpha_find_lo_sum_using_gp): Use FOR_EACH_SUBRTX.  Return a bool.
11789
11790 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11791
11792         * config/alpha/alpha.c (alpha_set_memflags_1): Delete.
11793         (alpha_set_memflags): Use FOR_EACH_SUBRTX_VAR.
11794
11795 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11796
11797         * config/alpha/alpha.c: Include rtl-iter.h.
11798         (split_small_symbolic_operand_1): Delete.
11799         (split_small_symbolic_operand): Use FOR_EACH_SUBRTX_PTR.
11800
11801 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11802
11803         * config/s390/s390.c: Include rtl-iter.h.
11804         (check_dpu): Delete.
11805         (s390_loop_unroll_adjust): Only iterate over patterns.
11806         Use FOR_EACH_SUBRTX.
11807
11808 2014-10-27  Richard Sandiford  <richard.sandiford@arm.com>
11809
11810         * config/spu/spu.c: Include rtl-iter.h
11811         (ea_symbol_ref): Replace with...
11812         (ea_symbol_ref_p): ...this new function.
11813         (spu_legitimate_address_p): Update call accordingly.
11814         (spu_legitimate_constant_p): Likewise.  Use FOR_EACH_SUBRTX.
11815
11816 2014-10-27  Phil Muldoon  <pmuldoon@redhat.com>
11817             Tom Tromey  <tromey@redhat.com>
11818
11819         * aclocal.m4, configure: Rebuild.
11820         * Makefile.in (aclocal_deps): Add gcc-plugin.m4.
11821         * configure.ac: Use GCC_ENABLE_PLUGINS.
11822         * stor-layout.c (finish_bitfield_layout): Now public.  Change
11823         argument type to 'tree'.
11824         (finish_record_layout): Update.
11825         * stor-layout.h (finish_bitfield_layout): Declare.
11826
11827 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11828
11829         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define again.
11830         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
11831         Restore, enable for bigendian, update to use __builtin..._scal...
11832
11833 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11834
11835         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_, reduc_smin_,
11836         reduc_umax_, reduc_umin_, reduc_smax_nan_, reduc_smin_nan_): Remove.
11837         (reduc_smax_scal_, reduc_smin_scal_, reduc_umax_scal_,
11838         reduc_umin_scal_, reduc_smax_nan_scal_, reduc_smin_nan_scal_): New.
11839
11840         * config/aarch64/aarch64-simd.md
11841         (reduc_<maxmin_uns>_<mode>): Rename VDQV_S variant to...
11842         (reduc_<maxmin_uns>_internal<mode>): ...this.
11843         (reduc_<maxmin_uns>_<mode>): New (VDQ_BHSI).
11844         (reduc_<maxmin_uns>_scal_<mode>): New (*2).
11845
11846         (reduc_<maxmin_uns>_v2si): Combine with below, renaming...
11847         (reduc_<maxmin_uns>_<mode>): Combine V2F with above, renaming...
11848         (reduc_<maxmin_uns>_internal_<mode>): ...to this (VDQF).
11849
11850         * config/aarch64/arm_neon.h (vmaxv_f32, vmaxv_s8, vmaxv_s16,
11851         vmaxv_s32, vmaxv_u8, vmaxv_u16, vmaxv_u32, vmaxvq_f32, vmaxvq_f64,
11852         vmaxvq_s8, vmaxvq_s16, vmaxvq_s32, vmaxvq_u8, vmaxvq_u16, vmaxvq_u32,
11853         vmaxnmv_f32, vmaxnmvq_f32, vmaxnmvq_f64, vminv_f32, vminv_s8,
11854         vminv_s16, vminv_s32, vminv_u8, vminv_u16, vminv_u32, vminvq_f32,
11855         vminvq_f64, vminvq_s8, vminvq_s16, vminvq_s32, vminvq_u8, vminvq_u16,
11856         vminvq_u32, vminnmv_f32, vminnmvq_f32, vminnmvq_f64): Update to use
11857         __builtin_aarch64_reduc_..._scal; remove vget_lane wrapper.
11858
11859 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11860
11861         * config/aarch64/aarch64-simd-builtins.def
11862         (reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
11863         Remove.
11864         (reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.
11865
11866         * config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
11867         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.
11868
11869         (reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
11870         (aarch64_reduc_plus_internal<mode>): ...this.
11871
11872         (reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
11873         (aarch64_reduc_plus_internalv2si): ...this.
11874
11875         (reduc_splus_<mode>/V2F): Rename to...
11876         (aarch64_reduc_plus_internal<mode>): ...this.
11877
11878         * config/aarch64/iterators.md
11879         (UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
11880         (UNSPEC_ADDV): New.
11881         (sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.
11882
11883         * config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
11884         vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
11885         vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
11886         vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
11887         __builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.
11888
11889 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11890
11891         PR tree-optimization/61114
11892         * doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
11893         optabs, and note in reduc_[us](plus|min|max) to prefer the former.
11894
11895         * expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
11896         back to old reduc_... + BIT_FIELD_REF only if not.
11897
11898         * optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
11899         return the reduce-to-scalar (reduc_..._scal) optab.
11900         (scalar_reduc_to_vector): New.
11901
11902         * optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
11903         reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
11904         New.
11905
11906         * optabs.h (scalar_reduc_to_vector): Declare.
11907
11908         * tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
11909         to either scalar or vector.
11910
11911 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
11912
11913         PR tree-optimization/61114
11914         * expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
11915         extract_bit_field around optab result.
11916
11917         * fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
11918         scalar not vector.
11919
11920         * tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
11921         for REDUC_{MIN,MAX,PLUS}_EXPR.
11922
11923         * tree-vect-loop.c (vect_analyze_loop): Update comment.
11924         (vect_create_epilog_for_reduction): For direct vector reduction, use
11925         result of tree code directly without extract_bit_field.
11926
11927         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
11928         comment.
11929
11930 2014-10-27  Andrew MacLeod  <amacleod@redhat.com>
11931
11932         * basic-block.h: Remove all includes.
11933         (enum profile_status_d, struct control_flow_graph): Move to cfg.h
11934         * cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
11935         * Makefile.in (GTFILES): Add cfg.h to list.
11936         * cgraph.h (symbol_table::create_empty): Move to cgraph.c.
11937         * cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
11938         * genconditions.c (write_header): Add predict.h and basic-block.h to
11939         lits of includes.
11940         * genemit.c (main): Ditto.
11941         * genpreds.c (write_insn_preds_c): Ditto.
11942         * genrecog.c (write_header): Ditto.
11943         * gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
11944         to list of includes.
11945         * alias.c: Adjust include files.
11946         * asan.c: Ditto.
11947         * auto-inc-dec.c: Ditto.
11948         * auto-profile.c: Ditto.
11949         * bb-reorder.c: Ditto.
11950         * bt-load.c: Ditto.
11951         * builtins.c: Ditto.
11952         * caller-save.c: Ditto.
11953         * calls.c: Ditto.
11954         * cfg.c: Ditto.
11955         * cfganal.c: Ditto.
11956         * cfgbuild.c: Ditto.
11957         * cfgcleanup.c: Ditto.
11958         * cfgexpand.c: Ditto.
11959         * cfghooks.c: Ditto.
11960         * cfgloop.c: Ditto.
11961         * cfgloopanal.c: Ditto.
11962         * cfgloopmanip.c: Ditto.
11963         * cfgrtl.c: Ditto.
11964         * cgraphbuild.c: Ditto.
11965         * cgraphclones.c: Ditto.
11966         * cgraphunit.c: Ditto.
11967         * combine-stack-adj.c: Ditto.
11968         * combine.c: Ditto.
11969         * compare-elim.c: Ditto.
11970         * coverage.c: Ditto.
11971         * cprop.c: Ditto.
11972         * cse.c: Ditto.
11973         * cselib.c: Ditto.
11974         * data-streamer-in.c: Ditto.
11975         * data-streamer-out.c: Ditto.
11976         * data-streamer.c: Ditto.
11977         * dce.c: Ditto.
11978         * ddg.c: Ditto.
11979         * ddg.h: Ditto.
11980         * df-core.c: Ditto.
11981         * df-problems.c: Ditto.
11982         * df-scan.c: Ditto.
11983         * df.h: Ditto.
11984         * dojump.c: Ditto.
11985         * dominance.c: Ditto.
11986         * domwalk.c: Ditto.
11987         * dse.c: Ditto.
11988         * dwarf2cfi.c: Ditto.
11989         * emit-rtl.c: Ditto.
11990         * et-forest.c: Ditto.
11991         * except.c: Ditto.
11992         * expmed.c: Ditto.
11993         * expr.c: Ditto.
11994         * final.c: Ditto.
11995         * fold-const.c: Ditto.
11996         * function.c: Ditto.
11997         * fwprop.c: Ditto.
11998         * gcc-plugin.h: Ditto.
11999         * gcse.c: Ditto.
12000         * generic-match-head.c: Ditto.
12001         * ggc-page.c: Ditto.
12002         * gimple-builder.c: Ditto.
12003         * gimple-expr.c: Ditto.
12004         * gimple-fold.c: Ditto.
12005         * gimple-iterator.c: Ditto.
12006         * gimple-low.c: Ditto.
12007         * gimple-match-head.c: Ditto.
12008         * gimple-pretty-print.c: Ditto.
12009         * gimple-ssa-isolate-paths.c: Ditto.
12010         * gimple-ssa-strength-reduction.c: Ditto.
12011         * gimple-streamer-in.c: Ditto.
12012         * gimple-streamer-out.c: Ditto.
12013         * gimple-streamer.h: Ditto.
12014         * gimple-walk.c: Ditto.
12015         * gimple.c: Ditto.
12016         * gimplify-me.c: Ditto.
12017         * gimplify.c: Ditto.
12018         * graph.c: Ditto.
12019         * graphite-blocking.c: Ditto.
12020         * graphite-clast-to-gimple.c: Ditto.
12021         * graphite-dependences.c: Ditto.
12022         * graphite-interchange.c: Ditto.
12023         * graphite-isl-ast-to-gimple.c: Ditto.
12024         * graphite-optimize-isl.c: Ditto.
12025         * graphite-poly.c: Ditto.
12026         * graphite-scop-detection.c: Ditto.
12027         * graphite-sese-to-poly.c: Ditto.
12028         * graphite.c: Ditto.
12029         * haifa-sched.c: Ditto.
12030         * hw-doloop.c: Ditto.
12031         * ifcvt.c: Ditto.
12032         * init-regs.c: Ditto.
12033         * internal-fn.c: Ditto.
12034         * ipa-cp.c: Ditto.
12035         * ipa-devirt.c: Ditto.
12036         * ipa-icf-gimple.c: Ditto.
12037         * ipa-icf.c: Ditto.
12038         * ipa-inline-analysis.c: Ditto.
12039         * ipa-inline.c: Ditto.
12040         * ipa-polymorphic-call.c: Ditto.
12041         * ipa-profile.c: Ditto.
12042         * ipa-prop.c: Ditto.
12043         * ipa-pure-const.c: Ditto.
12044         * ipa-reference.c: Ditto.
12045         * ipa-split.c: Ditto.
12046         * ipa-utils.c: Ditto.
12047         * ipa.c: Ditto.
12048         * ira-build.c: Ditto.
12049         * ira-color.c: Ditto.
12050         * ira-conflicts.c: Ditto.
12051         * ira-costs.c: Ditto.
12052         * ira-emit.c: Ditto.
12053         * ira-lives.c: Ditto.
12054         * ira.c: Ditto.
12055         * jump.c: Ditto.
12056         * lcm.c: Ditto.
12057         * loop-doloop.c: Ditto.
12058         * loop-init.c: Ditto.
12059         * loop-invariant.c: Ditto.
12060         * loop-iv.c: Ditto.
12061         * loop-unroll.c: Ditto.
12062         * lower-subreg.c: Ditto.
12063         * lra-assigns.c: Ditto.
12064         * lra-coalesce.c: Ditto.
12065         * lra-constraints.c: Ditto.
12066         * lra-eliminations.c: Ditto.
12067         * lra-lives.c: Ditto.
12068         * lra-spills.c: Ditto.
12069         * lra.c: Ditto.
12070         * lto-cgraph.c: Ditto.
12071         * lto-compress.c: Ditto.
12072         * lto-opts.c: Ditto.
12073         * lto-section-in.c: Ditto.
12074         * lto-section-out.c: Ditto.
12075         * lto-streamer-in.c: Ditto.
12076         * lto-streamer-out.c: Ditto.
12077         * lto-streamer.c: Ditto.
12078         * mcf.c: Ditto.
12079         * mode-switching.c: Ditto.
12080         * modulo-sched.c: Ditto.
12081         * omp-low.c: Ditto.
12082         * optabs.c: Ditto.
12083         * opts-global.c: Ditto.
12084         * passes.c: Ditto.
12085         * postreload-gcse.c: Ditto.
12086         * postreload.c: Ditto.
12087         * predict.c: Ditto.
12088         * print-rtl.c: Ditto.
12089         * profile.c: Ditto.
12090         * recog.c: Ditto.
12091         * ree.c: Ditto.
12092         * reg-stack.c: Ditto.
12093         * regcprop.c: Ditto.
12094         * regcprop.h: Ditto.
12095         * reginfo.c: Ditto.
12096         * regrename.c: Ditto.
12097         * regstat.c: Ditto.
12098         * reload.c: Ditto.
12099         * reload1.c: Ditto.
12100         * reorg.c: Ditto.
12101         * resource.c: Ditto.
12102         * rtlanal.c: Ditto.
12103         * sched-deps.c: Ditto.
12104         * sched-ebb.c: Ditto.
12105         * sched-int.h: Ditto.
12106         * sched-rgn.c: Ditto.
12107         * sched-vis.c: Ditto.
12108         * sel-sched-dump.c: Ditto.
12109         * sel-sched-ir.c: Ditto.
12110         * sel-sched-ir.h: Ditto.
12111         * sel-sched.c: Ditto.
12112         * sese.c: Ditto.
12113         * shrink-wrap.c: Ditto.
12114         * stack-ptr-mod.c: Ditto.
12115         * stmt.c: Ditto.
12116         * store-motion.c: Ditto.
12117         * symtab.c: Ditto.
12118         * toplev.c: Ditto.
12119         * tracer.c: Ditto.
12120         * trans-mem.c: Ditto.
12121         * tree-affine.c: Ditto.
12122         * tree-call-cdce.c: Ditto.
12123         * tree-cfg.c: Ditto.
12124         * tree-cfgcleanup.c: Ditto.
12125         * tree-chrec.c: Ditto.
12126         * tree-complex.c: Ditto.
12127         * tree-data-ref.c: Ditto.
12128         * tree-dfa.c: Ditto.
12129         * tree-eh.c: Ditto.
12130         * tree-emutls.c: Ditto.
12131         * tree-if-conv.c: Ditto.
12132         * tree-inline.c: Ditto.
12133         * tree-into-ssa.c: Ditto.
12134         * tree-loop-distribution.c: Ditto.
12135         * tree-nested.c: Ditto.
12136         * tree-nrv.c: Ditto.
12137         * tree-object-size.c: Ditto.
12138         * tree-outof-ssa.c: Ditto.
12139         * tree-parloops.c: Ditto.
12140         * tree-phinodes.c: Ditto.
12141         * tree-predcom.c: Ditto.
12142         * tree-pretty-print.c: Ditto.
12143         * tree-profile.c: Ditto.
12144         * tree-scalar-evolution.c: Ditto.
12145         * tree-sra.c: Ditto.
12146         * tree-ssa-address.c: Ditto.
12147         * tree-ssa-alias.c: Ditto.
12148         * tree-ssa-ccp.c: Ditto.
12149         * tree-ssa-coalesce.c: Ditto.
12150         * tree-ssa-copy.c: Ditto.
12151         * tree-ssa-copyrename.c: Ditto.
12152         * tree-ssa-dce.c: Ditto.
12153         * tree-ssa-dom.c: Ditto.
12154         * tree-ssa-dse.c: Ditto.
12155         * tree-ssa-forwprop.c: Ditto.
12156         * tree-ssa-ifcombine.c: Ditto.
12157         * tree-ssa-live.c: Ditto.
12158         * tree-ssa-loop-ch.c: Ditto.
12159         * tree-ssa-loop-im.c: Ditto.
12160         * tree-ssa-loop-ivcanon.c: Ditto.
12161         * tree-ssa-loop-ivopts.c: Ditto.
12162         * tree-ssa-loop-manip.c: Ditto.
12163         * tree-ssa-loop-niter.c: Ditto.
12164         * tree-ssa-loop-prefetch.c: Ditto.
12165         * tree-ssa-loop-unswitch.c: Ditto.
12166         * tree-ssa-loop.c: Ditto.
12167         * tree-ssa-math-opts.c: Ditto.
12168         * tree-ssa-operands.c: Ditto.
12169         * tree-ssa-phiopt.c: Ditto.
12170         * tree-ssa-phiprop.c: Ditto.
12171         * tree-ssa-pre.c: Ditto.
12172         * tree-ssa-propagate.c: Ditto.
12173         * tree-ssa-reassoc.c: Ditto.
12174         * tree-ssa-sccvn.c: Ditto.
12175         * tree-ssa-sink.c: Ditto.
12176         * tree-ssa-strlen.c: Ditto.
12177         * tree-ssa-structalias.c: Ditto.
12178         * tree-ssa-tail-merge.c: Ditto.
12179         * tree-ssa-ter.c: Ditto.
12180         * tree-ssa-threadedge.c: Ditto.
12181         * tree-ssa-threadupdate.c: Ditto.
12182         * tree-ssa-uncprop.c: Ditto.
12183         * tree-ssa-uninit.c: Ditto.
12184         * tree-ssa.c: Ditto.
12185         * tree-ssanames.c: Ditto.
12186         * tree-stdarg.c: Ditto.
12187         * tree-streamer-in.c: Ditto.
12188         * tree-streamer-out.c: Ditto.
12189         * tree-streamer.c: Ditto.
12190         * tree-switch-conversion.c: Ditto.
12191         * tree-tailcall.c: Ditto.
12192         * tree-vect-data-refs.c: Ditto.
12193         * tree-vect-generic.c: Ditto.
12194         * tree-vect-loop-manip.c: Ditto.
12195         * tree-vect-loop.c: Ditto.
12196         * tree-vect-patterns.c: Ditto.
12197         * tree-vect-slp.c: Ditto.
12198         * tree-vect-stmts.c: Ditto.
12199         * tree-vectorizer.c: Ditto.
12200         * tree-vrp.c: Ditto.
12201         * tree.c: Ditto.
12202         * tsan.c: Ditto.
12203         * ubsan.c: Ditto.
12204         * valtrack.c: Ditto.
12205         * valtrack.h: Ditto.
12206         * value-prof.c: Ditto.
12207         * var-tracking.c: Ditto.
12208         * varasm.c: Ditto.
12209         * varpool.c: Ditto.
12210         * vtable-verify.c: Ditto.
12211         * web.c: Ditto.
12212         * config/aarch64/aarch64-builtins.c: Ditto.
12213         * config/aarch64/aarch64.c: Ditto.
12214         * config/alpha/alpha.c: Ditto.
12215         * config/arc/arc.c: Ditto.
12216         * config/arm/arm.c: Ditto.
12217         * config/avr/avr.c: Ditto.
12218         * config/bfin/bfin.c: Ditto.
12219         * config/c6x/c6x.c: Ditto.
12220         * config/cr16/cr16.c: Ditto.
12221         * config/cris/cris.c: Ditto.
12222         * config/darwin-c.c: Ditto.
12223         * config/darwin.c: Ditto.
12224         * config/epiphany/epiphany.c: Ditto.
12225         * config/epiphany/mode-switch-use.c: Ditto.
12226         * config/epiphany/resolve-sw-modes.c: Ditto.
12227         * config/fr30/fr30.c: Ditto.
12228         * config/frv/frv.c: Ditto.
12229         * config/h8300/h8300.c: Ditto.
12230         * config/i386/i386.c: Ditto.
12231         * config/i386/winnt.c: Ditto.
12232         * config/ia64/ia64.c: Ditto.
12233         * config/iq2000/iq2000.c: Ditto.
12234         * config/lm32/lm32.c: Ditto.
12235         * config/m32c/m32c.c: Ditto.
12236         * config/m32r/m32r.c: Ditto.
12237         * config/m68k/m68k.c: Ditto.
12238         * config/mcore/mcore.c: Ditto.
12239         * config/mep/mep.c: Ditto.
12240         * config/microblaze/microblaze.c: Ditto.
12241         * config/mips/mips.c: Ditto.
12242         * config/mmix/mmix.c: Ditto.
12243         * config/mn10300/mn10300.c: Ditto.
12244         * config/moxie/moxie.c: Ditto.
12245         * config/msp430/msp430.c: Ditto.
12246         * config/nds32/nds32-cost.c: Ditto.
12247         * config/nds32/nds32-fp-as-gp.c: Ditto.
12248         * config/nds32/nds32-intrinsic.c: Ditto.
12249         * config/nds32/nds32-isr.c: Ditto.
12250         * config/nds32/nds32-md-auxiliary.c: Ditto.
12251         * config/nds32/nds32-memory-manipulation.c: Ditto.
12252         * config/nds32/nds32-pipelines-auxiliary.c: Ditto.
12253         * config/nds32/nds32-predicates.c: Ditto.
12254         * config/nds32/nds32.c: Ditto.
12255         * config/nios2/nios2.c: Ditto.
12256         * config/pa/pa.c: Ditto.
12257         * config/pdp11/pdp11.c: Ditto.
12258         * config/rl78/rl78.c: Ditto.
12259         * config/rs6000/rs6000.c: Ditto.
12260         * config/rx/rx.c: Ditto.
12261         * config/s390/s390.c: Ditto.
12262         * config/sh/sh-mem.cc: Ditto.
12263         * config/sh/sh.c: Ditto.
12264         * config/sh/sh_optimize_sett_clrt.cc: Ditto.
12265         * config/sh/sh_treg_combine.cc: Ditto.
12266         * config/sparc/sparc.c: Ditto.
12267         * config/spu/spu.c: Ditto.
12268         * config/stormy16/stormy16.c: Ditto.
12269         * config/tilegx/tilegx.c: Ditto.
12270         * config/tilepro/tilepro.c: Ditto.
12271         * config/v850/v850.c: Ditto.
12272         * config/vax/vax.c: Ditto.
12273         * config/xtensa/xtensa.c: Ditto.
12274
12275 2014-10-27  Alan Lawrence  <alan.lawrence@arm.com>
12276
12277         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
12278         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
12279         Remove using preprocessor directives.
12280
12281 2014-10-27  Richard Biener  <rguenther@suse.de>
12282
12283         * match.pd (0 % X): Properly use the iterator iterating over
12284         all modulo operators.
12285         (X % 1): Likewise.
12286
12287 2014-10-27  Richard Biener  <rguenther@suse.de>
12288
12289         * tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
12290         (lattice): New global.
12291         (fwprop_ssa_val): New function.
12292         (fold_all_stmts): Likewise.
12293         (pass_forwprop::execute): Finally fold all stmts.
12294
12295 2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12296
12297         PR c++/53061
12298         * doc/invoke.texi (fmessage-length): Update text to match reality.
12299
12300 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12301
12302         * config/microblaze/microblaze.c: Include rtl-iter.h.
12303         (microblaze_tls_referenced_p_1): Delete.
12304         (microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.
12305
12306 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12307
12308         * config/mips/mips.c (mips_at_reg_p): Delete.
12309         (mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.
12310
12311 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12312
12313         * config/mips/mips.c (mips_record_lo_sum): Replace with...
12314         (mips_record_lo_sums): ...this new function.
12315         (mips_reorg_process_insns): Update accordingly.
12316
12317 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12318
12319         * config/mips/mips.c (mips_sim_insn): Update comment.
12320         (mips_sim_wait_regs_2): Delete.
12321         (mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.
12322
12323 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12324
12325         * config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
12326         and return a bool.  Iterate over all subrtxes here.
12327         (r10k_needs_protection_p): Update accordingly.
12328
12329 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12330
12331         * config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
12332         rather than an rtx pointer.  Change type of insn from "void *"
12333         to its real type.  Return bool rather than int.  Iterate over
12334         all subrtxes here.
12335         (r10k_needs_protection_p_store): Update accordingly.
12336         (r10k_needs_protection_p): Likewise.
12337
12338 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12339
12340         * config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
12341         (mips16_rewrite_pool_refs): Take the insn and constant pool as
12342         parameters.  Iterate over the instruction's pattern and return void.
12343         (mips16_lay_out_constants): Update accordingly.
12344
12345 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12346
12347         * config/mips/mips.c (mips_kernel_reg_p): Replace with...
12348         (mips_refers_to_kernel_reg_p): ...this new function.
12349         (mips_expand_prologue): Update accordingly.
12350
12351 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12352
12353         * config/mips/mips.c (mips_rewrite_small_data_1): Take the context
12354         as a parameter instead of the containing MEM.  Iterate over all
12355         subrtxes.  Don't return a value.
12356         (mips_rewrite_small_data): Update call accordingly.
12357
12358 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12359
12360         * config/mips/mips.c: Include rtl-iter.h.
12361         (mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
12362         Take the context as a parameter instead of the containing MEM.
12363         Iterate over all subrtxes.
12364         (mips_small_data_pattern_p): Update call accordingly.
12365
12366 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12367
12368         * config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
12369         (mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.
12370
12371 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12372
12373         * config/mep/mep.c (mep_store_find_set): Take a const_rtx and
12374         return a bool.  Replace "void *" with specific type.  Iterate
12375         over all subrtxes.
12376         (mep_store_data_bypass_1): Update calls accordingly.
12377
12378 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12379
12380         * config/mep/mep.c: Include rtl-iter.h.
12381         (global_reg_mentioned_p_1): Take a const_rtx and return a bool.
12382         (xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.
12383
12384 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12385
12386         * config/xtensa/xtensa.c: Include rtl-iter.h.
12387         (xtensa_tls_referenced_p_1): Delete.
12388         (xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.
12389
12390 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12391
12392         * config/sh/sh.c (sh_contains_memref_p_1): Delete.
12393         (sh_contains_memref_p): Use FOR_EACH_SUBRTX.
12394
12395 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12396
12397         * config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
12398         rtx as argument and return the number of changes.
12399         * config/sh/sh.c: Include rtl-iter.h.
12400         (shmedia_cleanup_truncate): Take an rtx as argument and iterate
12401         over all subrtxes.  Return the number of changes made.
12402         * config/sh/sh.md: Update caller accordingly.
12403
12404 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12405
12406         * config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
12407         (m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.
12408
12409 2014-10-26  Richard Sandiford  <richard.sandiford@arm.com>
12410
12411         * config/m68k/m68k.c: Include rtl-iter.h.
12412         (m68k_final_prescan_insn_1): Delete.
12413         (m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.
12414
12415 2014-10-25  Jakub Jelinek  <jakub@redhat.com>
12416
12417         PR tree-optimization/63641
12418         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
12419         to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).
12420
12421 2014-10-25  Alan Modra  <amodra@gmail.com>
12422
12423         PR rtl-optimization/63615
12424         * simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
12425         decomposing PLUS or MINUS if operands are not placed adjacent
12426         in the "ops" array.
12427
12428 2014-10-25  Joseph Myers  <joseph@codesourcery.com>
12429
12430         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
12431         not allow e500 double in registers not satisyfing
12432         SPE_SIMD_REGNO_P.
12433
12434 2014-10-24  Aldy Hernandez  <aldyh@redhat.com>
12435
12436         * dwarf2out.c (declare_in_namespace): Only emit external
12437         declarations in the local scope once.
12438
12439 2014-10-24  Jonathan Wakely  <jwakely@redhat.com>
12440
12441         * ginclude/stdbool.h: Do not define bool, true or false in C++11.
12442
12443 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12444
12445         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
12446         update uses to use new macro arguments.
12447         (__LD3_LANE_FUNC): Likewise.
12448         (__LD4_LANE_FUNC): Likewise.
12449
12450 2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
12451
12452         * config/aarch64/aarch64-builtins.c
12453         (aarch64_types_loadstruct_lane_qualifiers): Define.
12454         * config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
12455         ld4_lane): New builtins.
12456         * config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
12457         New pattern.
12458         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
12459         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
12460         (aarch64_ld2_lane<mode>): New expand.
12461         (aarch64_ld3_lane<mode>): Likewise.
12462         (aarch64_ld4_lane<mode>): Likewise.
12463         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12464         UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.
12465
12466 2014-10-24  Georg-Johann Lay  <avr@gjlay.de>
12467
12468         * avr-protos.h (avr_out_sign_extend): New.
12469         * avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
12470         (avr_out_sign_extend): New function.
12471         * avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
12472         (extendhisi2, extendpsisi2): Use it.
12473         (adjust_len) [sext]: New.
12474
12475 2014-10-24  Martin Liska  <mliska@suse.cz>
12476
12477         * ipa-icf.c (sem_function::compare_phi_node): PHI result comparison
12478         added.
12479
12480 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12481
12482         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
12483         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12484         * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
12485         (LINK_SPEC): Include CA53_ERR_835769_SPEC.
12486
12487 2014-10-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12488
12489         * config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
12490         do while (0).
12491         * config/aarch64/aarch64.c (is_mem_p): Delete.
12492         (is_memory_op): Rename to...
12493         (has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
12494         (dep_between_memop_and_curr): Assert that the input is a SET.
12495         (aarch64_madd_needs_nop): Add comment.  Do not call
12496         dep_between_memop_and_curr on NULL body.
12497         (aarch64_final_prescan_insn): Add comment.
12498         Include rtl-iter.h.
12499
12500 2014-10-24  Richard Biener  <rguenther@suse.de>
12501
12502         * Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
12503         to genmatch BUILD_LIBS instead.
12504
12505 2014-10-24  Richard Biener  <rguenther@suse.de>
12506
12507         * genmatch.c (expr::gen_transform): Use fold_buildN_loc
12508         and build_call_expr_loc.
12509         (dt_simplify::gen): Drop non_lvalue for GIMPLE, use
12510         non_lvalue_loc to build it for GENERIC.
12511         (decision_tree::gen_generic): Add location argument to
12512         generic_simplify prototype.
12513         (capture_info): New class.
12514         (capture_info::capture_info): New constructor.
12515         (capture_info::walk_match): New method.
12516         (capture_info::walk_result): New method.
12517         (capture_info::walk_c_expr): New method.
12518         (dt_simplify::gen): Handle preserving side-effects for
12519         GENERIC code generation.
12520         (decision_tree::gen_generic): Do not reject operands
12521         with TREE_SIDE_EFFECTS.
12522         * generic-match.h: New file.
12523         * generic-match-head.c: Include generic-match.h, not gimple-match.h.
12524         * match.pd: Add some constant folding patterns from fold-const.c.
12525         * fold-const.c: Include generic-match.h.
12526         (fold_unary_loc): Dispatch to generic_simplify.
12527         (fold_ternary_loc): Likewise.
12528         (fold_binary_loc): Likewise.  Remove patterns now implemented
12529         by generic_simplify.
12530         * gimple-fold.c (replace_stmt_with_simplification): New function.
12531         (fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
12532         (no_follow_ssa_edges): New function.
12533         (fold_stmt): New overload with valueization hook.  Use
12534         no_follow_ssa_edges for the overload without hook.
12535         (fold_stmt_inplace): Likewise.
12536         * gimple-fold.h (no_follow_ssa_edges): Declare.
12537
12538 2014-10-24  Felix Yang  <felix.yang@huawei.com>
12539         Jiji Jiang  <jiangjiji@huawei.com>
12540
12541         PR target/63173
12542         * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
12543         (__LD3R_FUNC): Ditto.
12544         (__LD4R_FUNC): Ditto.
12545         (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
12546          vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
12547          vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
12548          vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
12549          vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
12550          vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
12551         (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
12552          vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
12553          vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
12554          vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
12555          vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
12556          vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
12557         (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
12558          vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
12559          vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
12560          vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
12561          vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
12562          vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
12563         * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
12564         UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
12565         * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
12566         builtins.
12567         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
12568         (aarch64_simd_ld3r<mode>): Likewise.
12569         (aarch64_simd_ld4r<mode>): Likewise.
12570         (aarch64_ld2r<mode>): New expand.
12571         (aarch64_ld3r<mode>): Likewise.
12572         (aarch64_ld4r<mode>): Likewise.
12573
12574 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12575
12576         * rtlanal.c (get_base_term): Handle SCRATCH.
12577
12578 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12579
12580         * haifa-sched.c (sched_init): Disable max_issue when scheduling for
12581         register pressure.
12582
12583 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12584
12585         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
12586         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
12587         (max_issue, choose_ready, sched_init): Update.
12588
12589 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12590
12591         * sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
12592         * haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
12593         (rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
12594         (rank_for_schedule): Update calls to rfs_result to pass new parameters.
12595         (print_rank_for_schedule_stats): Print out elements of ready list that
12596         ended up on their respective places due to each of the sorting
12597         heuristics.
12598         (ready_sort): Update.
12599         (debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
12600         (schedule_block): Update.
12601
12602 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
12603
12604         * haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
12605         arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
12606         (print_curr_reg_pressure, setup_insn_reg_pressure_info,)
12607         (model_update_pressure, model_spill_cost): Use sched_class_regs_num.
12608         (model_start_schedule): Update.
12609         (sched_pressure_start_bb): New static function.  Calculate
12610         sched_class_regs_num.
12611         (schedule_block): Use it.
12612         (alloc_global_sched_pressure_data): Calculate call_used_regs_num.
12613
12614 2014-10-24  Richard Biener  <rguenther@suse.de>
12615
12616         * Makefile.in (BUILD_CPPLIB): When in stage2+ use the
12617         host library and make sure to pull in the required libintl
12618         and libiconv dependencies.
12619
12620 2014-10-24  Richard Biener  <rguenther@suse.de>
12621
12622         * fold-const.c (fold_binary_loc): Fix copy-and-pasto.
12623
12624 2014-10-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
12625
12626         PR bootstrap/63632
12627         * collect2.c (main): Filter out -fno-lto.
12628
12629 2014-10-24  Martin Liska  <mliska@suse.cz>
12630
12631         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
12632         division by zero in dumps.
12633         (sem_item_optimizer::merge_classes): Ditto.
12634
12635 2014-10-23  John David Anglin  <danglin@gcc.gnu.org>
12636
12637         * config/pa/pa.c (pa_can_combine_p): Fix typo in last change.
12638
12639 2014-10-23  Ian Lance Taylor  <iant@google.com>
12640
12641         * tree-vrp.c (extract_range_from_assert): Fix typo in comment.
12642
12643 2014-10-23  Ian Lance Taylor  <iant@google.com>
12644
12645         * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't undefine.
12646
12647 2014-10-23  Jakub Jelinek  <jakub@redhat.com>
12648
12649         PR debug/63623
12650         * var-tracking.c (stack_adjust_offset_pre_post_cb): New function.
12651         (stack_adjust_offset_pre_post): Use it through for_each_inc_dec,
12652         instead of only handling autoinc in dest if it is a MEM.
12653         (vt_stack_adjustments): Fix up formatting.
12654
12655 2014-10-23  DJ Delorie  <dj@redhat.com>
12656
12657         * config/msp430/msp430.c (msp430_print_operand): 'x' modifier is
12658         independend of -mlarge.
12659         * config/msp430/constraints.md (Ys): Update comment.
12660
12661 2014-10-23  Evgeny Stupachenko  <evstupac@gmail.com>
12662
12663         PR target/63534
12664         PR target/63618
12665         * cse.c (delete_trivially_dead_insns): Consider PIC register is used
12666         while it is pseudo.
12667         * dse.c (deletable_insn_p): Likewise.
12668
12669 2014-10-23  Georg-Johann Lay  <avr@gjlay.de>
12670
12671         * config/avr/avr.c: Fix GNU coding rules and typos.
12672         * config/avr/avr.h: Dito.
12673         * config/avr/avr-c.c: Dito.
12674         * config/avr/avr.md: Dito.
12675
12676 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12677
12678         * config/i386/sse.md (define_mode_iterator VI1248_AVX512VL_AVX512BW):
12679         New.
12680         (define_insn "*abs<mode>2"): Use VI1248_AVX512VL_AVX512BW mode
12681         iterator.
12682         (define_expand "abs<mode>2"): Ditto.
12683
12684 2014-10-23  Kirill Yukhin  <kirill.yukhin@intel.com>
12685
12686         * tree-core.h (tree_var_decl): Extend `function_code' field
12687         by one bit, move `regdecl_flag' field to ...
12688         (tree_decl_with_vis): Here.
12689         * tree.h (DECL_STATIC_CHAIN): Update struct name.
12690
12691 2014-10-23  Richard Biener  <rguenther@suse.de>
12692
12693         * Makefile.in (BUILD_CPPLIB): Add.
12694         (build/genmatch$(build_exeext)): Use BUILD_CPPLIB, not CPPLIB.
12695         Drop LIBIBERTY.
12696
12697 2014-10-23  Richard Biener  <rguenther@suse.de>
12698
12699         * fold-const.c (fold_binary_loc): Preserve side-effects of
12700         X - X when simplifying to 0.
12701         * stor-layout.c (finish_bitfield_representative): Strip
12702         side-effects of evaluating the difference of two DECL_FIELD_OFFSET.
12703
12704 2014-10-22  Richard Biener  <rguenther@suse.de>
12705             Tobias Burnus <burnus@net-b.de>
12706
12707         PR lto/63603
12708         * gcc.c (LINK_COMMAND_SPEC): Add %{fno-lto}.
12709
12710 2014-10-22  Dehao Chen  <dehao@google.com>
12711
12712         * auto-profile.c: Change order of header files.
12713
12714 2014-10-22  Guozhi Wei  <carrot@google.com>
12715
12716         PR tree-optimization/63530
12717         tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Set
12718         pointer alignment according to DR_MISALIGNMENT.
12719
12720 2014-10-22  David Malcolm  <dmalcolm@redhat.com>
12721
12722         * ipa-icf.c (ipa_icf_driver): Set optimizer to NULL when done.
12723
12724 2014-10-22  Andrew MacLeod  <amacleod@redhat.com>
12725
12726         * cfgbuild.h: New.  Add prototypes for cfgbuild.c.
12727         * cfgcleanup.h: New.  Add prototypes for cfgcleanup.c.
12728         * cfgloopmanip.h: New.  Add prototypes for cfgloopmanip.c.
12729         * dominance.h: New.  Add prototypes for dominance.c.
12730         * cfgloop.h: Move some prototypes/enum to cfgloopmanip.h and include it.
12731         * cfghooks.h: (struct profile_record) Relocate here.
12732         Relocate 2 prototypes from basic-block.h.
12733         * basic-block.h: Move prototypes and struct to new header files.
12734         Include cfgbuild.h, cfgcleanup.h, and dominance.h.
12735         * rtl.h: Move a few prototypes to new header files.
12736         * cfgcleanup.c (merge_memattrs): Make static.
12737         * genopinit.c (main): Add predict.h to list of includes.
12738         * predict.h: Update prototype list to match predict.c.
12739         * predict.c (maybe_hot_count_p): Export.
12740         (cgraph_edge::maybe_hot_p): Move to cgraph.c.
12741         (cgraph_node::optimize_for_size_p): Move to cgraph.h.
12742         * cgraph.h (cgraph_node::optimize_for_size_p): Relocate here.
12743         * cgraph.c (cgraph_edge::maybe_hot_p): Relocate here.
12744         * profile.h: Adjust prototypes.
12745         * ifcvt.h: New.  Relocate struct ce_if_block here.
12746         * ifcvt.c: Include ifcvt.h.
12747         * config/frv/frv.c: Include ifcvt.h.
12748         * config/frv/frv-protos.h: Add 'struct' to ce_if_block * parameters.
12749
12750 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12751
12752         * lra.c (lra): Remove call to recog_init.
12753         * config/i386/i386.md (preferred_for_speed): New attribute
12754         (*float<SWI48:mode><MODEF:mode>2_sse): Override it instead of
12755         "enabled".  Remove check for sched1.
12756
12757 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12758
12759         * recog.h (recog_data_d): Remove enabled_alternatives.
12760         * recog.c (extract_insn): Don't set it.
12761         * reload.c (find_reloads): Call get_enabled_alternatives.
12762
12763 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12764
12765         * recog.h (constrain_operands): Add an alternative_mask parameter.
12766         (constrain_operands_cached): Likewise.
12767         (get_preferred_alternatives): Declare new form.
12768         * recog.c (get_preferred_alternatives): New bb-taking instance.
12769         (constrain_operands): Take the set of available alternatives as
12770         a parameter.
12771         (check_asm_operands, insn_invalid_p, extract_constrain_insn)
12772         (extract_constrain_insn_cached): Update calls to constrain_operands.
12773         * caller-save.c (reg_save_code): Likewise.
12774         * ira.c (setup_prohibited_mode_move_regs): Likewise.
12775         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
12776         * ree.c (combine_reaching_defs): Likewise.
12777         * reload.c (can_reload_into): Likewise.
12778         * reload1.c (reload, reload_as_needed, inc_for_reload): Likewise.
12779         (gen_reload_chain_without_interm_reg_p, emit_input_reload_insns)
12780         (emit_insn_if_valid_for_reload): Likewise.
12781         * reorg.c (fill_slots_from_thread): Likewise.
12782         * config/i386/i386.c (ix86_attr_length_address_default): Likewise.
12783         * config/pa/pa.c (pa_can_combine_p): Likewise.
12784         * config/rl78/rl78.c (insn_ok_now): Likewise.
12785         * config/sh/sh.md (define_peephole2): Likewise.
12786         * final.c (final_scan_insn): Update call to constrain_operands_cached.
12787
12788 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12789
12790         * doc/md.texi: Document "preferred_for_size" and "preferred_for_speed"
12791         attributes.
12792         * genattr.c (main): Handle "preferred_for_size" and
12793         "preferred_for_speed" in the same way as "enabled".
12794         * recog.h (bool_attr): New enum.
12795         (target_recog): Replace x_enabled_alternatives with x_bool_attr_masks.
12796         (get_preferred_alternatives, check_bool_attrs): Declare.
12797         * recog.c (have_bool_attr, get_bool_attr, get_bool_attr_mask_uncached)
12798         (get_bool_attr_mask, get_preferred_alternatives, check_bool_attrs):
12799         New functions.
12800         (get_enabled_alternatives): Use get_bool_attr_mask.
12801         * ira-costs.c (record_reg_classes): Use get_preferred_alternatives
12802         instead of recog_data.enabled_alternatives.
12803         * ira.c (ira_setup_alts): Likewise.
12804         * postreload.c (reload_cse_simplify_operands): Likewise.
12805         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
12806         * ira-lives.c (preferred_alternatives): New variable.
12807         (process_bb_node_lives): Set it.
12808         (check_and_make_def_conflict, make_early_clobber_and_input_conflicts)
12809         (single_reg_class, ira_implicitly_set_insn_hard_regs): Use it instead
12810         of recog_data.enabled_alternatives.
12811         * lra-int.h (lra_insn_recog_data): Replace enabled_alternatives
12812         to preferred_alternatives.
12813         * lra-constraints.c (process_alt_operands): Update accordingly.
12814         * lra.c (lra_set_insn_recog_data): Likewise.
12815         (lra_update_insn_recog_data): Assert check_bool_attrs.
12816
12817 2014-10-22  Richard Sandiford  <richard.sandiford@arm.com>
12818
12819         * recog.h (extract_constrain_insn): Declare.
12820         * recog.c (extract_constrain_insn): New function.
12821         * lra.c (check_rtl): Use it.
12822         * postreload.c (reload_cse_simplify_operands): Likewise.
12823         * reg-stack.c (check_asm_stack_operands): Likewise.
12824         (subst_asm_stack_regs): Likewise.
12825         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
12826         * regrename.c (build_def_use): Likewise.
12827         * sel-sched.c (get_reg_class): Likewise.
12828         * config/arm/arm.c (note_invalid_constants): Likewise.
12829         * config/s390/predicates.md (execute_operation): Likewise.
12830
12831 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
12832             Yury Gribov  <y.gribov@samsung.com>
12833
12834         * common.opt (flag_sanitize_recover): New variable.
12835         (fsanitize-recover): Remove Var/Init, deprecate.
12836         (fsanitize-recover=): New option.
12837         * doc/invoke.texi (fsanitize-recover): Update docs.
12838         * opts.c (finish_options): Use opts->x_flag_sanitize
12839         instead of flag_sanitize.  Prohibit -fsanitize-recover
12840         for anything besides UBSan.  Formatting.
12841         (common_handle_option): Handle OPT_fsanitize_recover_
12842         and OPT_fsanitize_recover.  Use opts->x_flag_sanitize
12843         instead of flag_sanitize.
12844         * asan.c (pass_sanopt::execute): Fix up formatting.
12845         * ubsan.c (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
12846         ubsan_expand_objsize_ifn, ubsan_build_overflow_builtin,
12847         instrument_bool_enum_load, ubsan_instrument_float_cast,
12848         instrument_nonnull_arg, instrument_nonnull_return): Check
12849         bits in flag_sanitize_recover bitmask instead of
12850         flag_sanitize_recover as bool flag.
12851
12852 2014-10-22  Jiong Wang <jiong.wang@arm.com>
12853
12854         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add missing '\'.
12855
12856 2014-10-22  Renlin Li <renlin.li@arm.com>
12857
12858         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define
12859         __ARM_FEATURE_IDIV__.
12860
12861 2014-10-22  Richard Biener  <rguenther@suse.de>
12862
12863         * Makefile.in (s-match): Adjust dependencies to only catch
12864         match.pd.
12865
12866 2014-10-22  Richard Biener  <rguenther@suse.de>
12867         Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>
12868
12869         * Makefile.in (OBJS): Add gimple-match.o and generic-match.o.
12870         (MOSTLYCLEANFILES): Add gimple-match.c and generic-match.c.
12871         (gimple-match.c): Generate by triggering s-match.
12872         (generic-match.c): Likewise.
12873         (s-match): Rule to build gimple-match.c and generic-match.c
12874         by running the genmatch generator program.
12875         (build/hash-table.o): Dependencies to build hash-table.c for the host.
12876         (build/genmatch.o): Dependencies to build genmatch.
12877         (genprog): Add match.
12878         (build/genmatch): Likewise.
12879         (TEXI_GCCINT_FILES): Add match-and-simplify.texi.
12880         * generic-match-head.c: New file.
12881         * gimple-match-head.c: Likewise.
12882         * gimple-match.h: Likewise.
12883         * genmatch.c: Likewise.
12884         * match.pd: Likewise.
12885         * builtins.h (fold_builtin_n): Export.
12886         * builtins.c (fold_builtin_n): Likewise.
12887         * gimple-fold.h (gimple_build): Declare various overloads.
12888         (gimple_simplify): Likewise.
12889         (gimple_convert): Re-implement in terms of gimple_build.
12890         * gimple-fold.c (gimple_convert): Remove.
12891         (gimple_build): New functions.
12892         * doc/match-and-simplify.texi: New file.
12893         * doc/gccint.texi: Add menu item Match and Simplify and include
12894         match-and-simplify.texi.
12895
12896 2014-10-22  Jakub Jelinek  <jakub@redhat.com>
12897
12898         PR target/63594
12899         * config/i386/i386.c (ix86_expand_vector_init_duplicate): For
12900         V{8HI,16QI,16HI,32QI}mode call ix86_vector_duplicate_value
12901         even for just TARGET_AVX2, not only for
12902         TARGET_AVX512VL && TARGET_AVX512BW.  For V{32HI,64QI}mode,
12903         call ix86_vector_duplicate_value only if TARGET_AVX512BW,
12904         otherwise build it using concatenation of 256-bit
12905         broadcast.
12906         * config/i386/sse.md (AVX_VEC_DUP_MODE): Moved after
12907         avx512 broadcast patterns.
12908         (vec_dup<mode>): Likewise.  For avx2 use
12909         v<sseintprefix>broadcast<bcstscalarsuff> instead of
12910         vbroadcast<ssescalarmodesuffix>.
12911         (AVX2_VEC_DUP_MODE): New mode iterator.
12912         (*vec_dup<mode>): New TARGET_AVX2 define_insn with
12913         AVX2_VEC_DUP_MODE iterator, add a splitter for that.
12914
12915         PR target/63542
12916         * config/i386/i386.c (ix86_pic_register_p): Also return
12917         true if x is a hard register with ORIGINAL_REGNO equal to
12918         pic_offset_table_rtx pseudo REGNO.
12919         (ix86_delegitimize_address): For ix86_use_pseudo_pic_reg ()
12920         after reload, subtract GOT_SYMBOL_NAME symbol if possible.
12921
12922 2014-10-22  Alan Modra  <amodra@gmail.com>
12923
12924         * gengtype.h (obstack_chunk_alloc, obstack_chunk_free): Remove cast.
12925         * coretypes.h (obstack_chunk_alloc, obstack_chunk_free): Likewise.
12926         (gcc_obstack_init): Use obstack_specify_allocation in place of
12927         _obstack_begin.
12928         * genautomata.c (next_sep_el): Cast result of obstack_base to (char *).
12929         (regexp_representation): Likewise.
12930         * godump.c (go_output_type): Likewise.
12931
12932 2014-10-21  John David Anglin  <danglin@gcc.gnu.org>
12933
12934         * config.gcc: Remove MASK_JUMP_IN_DELAY from target_cpu_default2.
12935         * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_JUMP_IN_DELAY.
12936         * config/pa/pa.opt (mjump-in-delay): Ignore option.  Update comment.
12937
12938 2014-10-21 Manuel López-Ibáñez  <manu@gcc.gnu.org>
12939
12940         * doc/invoke.texi (pedantic-errors): Explain better.
12941
12942 2014-10-21  Joern Rennecke  <joern.rennecke@embecosm.com>
12943             Vidya Praveen <vidya.praveen@atmel.com>
12944             Praveen Kumar Kaushik <Praveen_Kumar.Kaushik@atmel.com>
12945             Senthil Kumar Selvaraj <Senthil_Kumar.Selvaraj@atmel.com>
12946             Pitchumani Sivanupandi <Pitchumani.S@atmel.com>
12947
12948         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Don't define
12949         __MEMX for avrtiny.
12950         * config/avr/avr.c (avr_insert_attributes): Reject __memx for avrtiny.
12951         (avr_nonconst_pointer_addrspace): Likewise.
12952         * config/avr/avr.h (AVR_HAVE_LPM): Define.
12953
12954         Added AVRTINY architecture to avr target.
12955         * config/avr/avr-arch.h (avr_arch): Added AVRTINY architecture.
12956         (base_arch_s): member added for AVRTINY architecture.
12957         * config/avr/avr.c: Added TINY_ADIW, TINY_SBIW macros as AVRTINY
12958         alternate for adiw/sbiw instructions. Added AVR_TMP_REGNO and
12959         AVR_ZERO_REGNO macros for tmp and zero registers. Replaced TMP_REGNO
12960         and ZERO_REGNO occurrences by AVR_TMP_REGNO and AVR_ZERO_REGNO
12961         respectively. LAST_CALLEE_SAVED_REG macro added for the last register
12962         in callee saved register list.
12963         (avr_option_override): CCP address updated for AVRTINY.
12964         (avr_init_expanders): tmp and zero rtx initialized as per arch.
12965         Reset avr_have_dimode if AVRTINY.
12966         (sequent_regs_live): Use LAST_CALLEE_SAVED_REG instead magic number.
12967         (emit_push_sfr): Use AVR_TMP_REGNO for tmp register number.
12968         (avr_prologue_setup_frame): Don't minimize prologue if AVRTINY.
12969         Use LAST_CALLEE_SAVED_REG to refer last callee saved register.
12970         (expand_epilogue): Likewise.
12971         (avr_print_operand): Print CCP address in case of AVRTINY also.
12972         <TBD>bad address
12973         (function_arg_regno_p): Check different register list for arguments
12974         if AVRTINY.
12975         (init_cumulative_args): Check for AVRTINY to update number of argument
12976         registers.
12977         (tiny_valid_direct_memory_access_range): New function. Return false if
12978         direct memory access range is not in accepted range for AVRTINY.
12979         (avr_out_movqi_r_mr_reg_disp_tiny): New function to handle register
12980         indirect load (with displacement) for AVRTINY.
12981         (out_movqi_r_mr): Updated instruction length for AVRTINY. Call
12982         avr_out_movqi_r_mr_reg_disp_tiny for load from reg+displacement.
12983         (avr_out_movhi_r_mr_reg_no_disp_tiny): New function to handle register
12984         indirect load (no displacement) for AVRTINY.
12985         (avr_out_movhi_r_mr_reg_disp_tiny): New function to handle register
12986         indirect load (with displacement) for AVRTINY.
12987         (avr_out_movhi_r_mr_pre_dec_tiny): New function to handle register
12988         indirect load for pre-decrement address.
12989         (out_movhi_r_mr): In case of AVRTINY, call tiny register indirect load
12990         functions. Update instruction length for AVRTINY.
12991         (avr_out_movsi_r_mr_reg_no_disp_tiny): New function. Likewise, for
12992         SImode.
12993         (avr_out_movsi_r_mr_reg_disp_tiny): New function. Likewise, for SImode.
12994         (out_movsi_r_mr): Likewise, for SImode.
12995         (avr_out_movsi_mr_r_reg_no_disp_tiny): New function to handle register
12996         indirect store (no displacement) for AVRTINY.
12997         (avr_out_movsi_mr_r_reg_disp_tiny): New function to handle register
12998         indirect store (with displacement) for AVRTINY.
12999         (out_movsi_mr_r): Emit out insn for IO address store. Update store
13000         instruction's size for AVRTINY. For AVRTINY, call tiny SImode indirect
13001         store functions.
13002         (avr_out_load_psi_reg_no_disp_tiny): New function to handle register
13003         indirect load (no displacement) for PSImode in AVRTINY.
13004         (avr_out_load_psi_reg_disp_tiny): New function to handle register
13005         indirect load (with displacement) for PSImode in AVRTINY.
13006         (avr_out_load_psi): Call PSImode register indirect load functions for
13007         AVRTINY. Update instruction length for AVRTINY.
13008         (avr_out_store_psi_reg_no_disp_tiny): New function to handle register
13009         indirect store (no displacement) for PSImode in AVRTINY.
13010         (avr_out_store_psi_reg_disp_tiny): New function to handle register
13011         indirect store (with displacement) for PSImode in AVRTINY.
13012         (avr_out_store_psi): Update instruction length for AVRTINY. Call tiny
13013         register indirect store functions for AVRTINY.
13014         (avr_out_movqi_mr_r_reg_disp_tiny): New function to handle QImode
13015         register indirect store (with displacement) for AVRTINY.
13016         (out_movqi_mr_r): Update instruction length for AVRTINY. Call tiny
13017         register indirect store function for QImode in AVRTINY.
13018         (avr_out_movhi_mr_r_xmega): Update instruction length for AVRTINY.
13019         (avr_out_movhi_mr_r_reg_no_disp_tiny): New function to handle register
13020         indirect store (no displacement) for HImode in AVRTINY.
13021         (avr_out_movhi_mr_r_reg_disp_tiny): New function to handle register
13022         indirect store (with displacement) for HImode in AVRTINY.
13023         (avr_out_movhi_mr_r_post_inc_tiny): New function to handle register
13024         indirect store for post-increment address in HImode.
13025         (out_movhi_mr_r): Update instruction length for AVRTINY. Call tiny
13026         register indirect store function for HImode in AVRTINY.
13027         (avr_out_compare): Use TINY_SBIW/ TINY_ADIW in place of sbiw/adiw
13028         in case of AVRTINY.
13029         (order_regs_for_local_alloc): Updated register allocation order for
13030         AVRTINY.
13031         (avr_conditional_register_usage): New function. It is a target hook
13032         (TARGET_CONDITIONAL_REGISTER_USAGE) function which updates fixed, call
13033         used registers list and register allocation order for AVRTINY.
13034         (avr_return_in_memory): Update return value size for AVRTINY.
13035         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Added builtin macros
13036         for AVRTINY arch and tiny program memory base address.
13037         * config/avr/avr-devices.c (avr_arch_types): Added AVRTINY arch.
13038         (avr_texinfo): Added description for AVRTINY arch.
13039         * config/avr/avr.h: Added macro to identify AVRTINY arch. Updated
13040         STATIC_CHAIN_REGNUM for AVRTINY.
13041         * config/avr/avr-mcus.def: Added AVRTINY arch devices.
13042         * config/avr/avr.md: Added constants for tmp/ zero registers in
13043         AVRTINY. Attributes for AVRTINY added.
13044         (mov<mode>): Move src/ dest address to register if it is not in AVRTINY
13045         memory access range.
13046         (mov<mode>_insn): Avoid QImode direct load for AVRTINY if address not
13047         in AVRTINY memory access range.
13048         (*mov<mode>): Likewise for HImode and SImode.
13049         (*movsf): Likewise for SFmode.
13050         (delay_cycles_2): Updated instructions to be emitted as AVRTINY does
13051         not have sbiw.
13052         * config/avr/avr-protos.h: Added function prototype for
13053         tiny_valid_direct_memory_access_range.
13054         * config/avr/avr-tables.opt: Regenerate.
13055         * gcc/config/avr/t-multilib: Regenerate.
13056         * doc/avr-mmcu.texi: Regenerate.
13057
13058 2014-10-21  Andrew Pinski  <apinski@cavium.com>
13059
13060         * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
13061         available option also.
13062         * config/aarch64/aarch64-cost-tables.h: New file.
13063         * config/aarch64/aarch64-cores.def (thunderx): New core.
13064         * config/aarch64/aarch64-tune.md: Regenerate.
13065         * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
13066         of config/arm/aarch-cost-tables.h.
13067         (thunderx_regmove_cost): New variable.
13068         (thunderx_tunings): New variable.
13069
13070 2014-10-21  Dehao Chen  <dehao@google.com>
13071
13072         * auto-profile.c: New file.
13073         * auto-profile.h: New file.
13074         * basic-block.h (maybe_hot_count_p): New export func.
13075         (add_working_set): New export func.
13076         * gcov-io.h (GCOV_TAG_AFDO_FILE_NAMES): New tag.
13077         (GCOV_TAG_AFDO_FUNCTION): Likewise.
13078         (GCOV_TAG_AFDO_WORKING_SET): Likewise.
13079         * opts.c (enable_fdo_optimizations): New func.
13080         (common_handle_option): Handle -fauto-profile flag.
13081         * ipa-inline.c (want_early_inline_function_p): Iterative-einline.
13082         (class pass_early_inline): Export early_inliner.
13083         (early_inliner): Likewise.
13084         (pass_early_inline::execute): Likewise.
13085         * ipa-inline.h (early_inliner): Likewise.
13086         * predict.c (maybe_hot_count_p): New export func.
13087         (counts_to_freqs): AutoFDO logic.
13088         (rebuild_frequencies): Likewise.
13089         * tree-profile.c (pass_ipa_tree_profile::gate): Likewise.
13090         * profile.c (add_working_set): New func.
13091         * Makefile.in (auto-profile.o): New object file.
13092         * passes.def (pass_ipa_auto_profile): New pass.
13093         * tree-ssa-live.c (remove_unused_scope_block_p): AutoFDO logic.
13094         * tree-pass.h (make_pass_ipa_auto_profile): New pass.
13095         * toplev.c (compile_file): AutoFDO logic.
13096         * doc/invoke.texi (-fauto-profile): New doc.
13097         * coverage.c (coverage_init): AutoFDO logic.
13098         * common.opt (-fauto-profile): New flag.
13099         * timevar.def (TV_IPA_AUTOFDO): New tag.
13100         * value-prof.c (gimple_alloc_histogram_value): New export func.
13101         (check_ic_target): Likewise.
13102         * value-prof.h (gimple_alloc_histogram_value): Likewise.
13103         (check_ic_target): Likewise.
13104
13105 2014-10-21  David Malcolm  <dmalcolm@redhat.com>
13106
13107         * cgraph.c (cgraph_c_finalize): New function.
13108         * cgraph.h (cgraph_c_finalize): New prototype.
13109         (cgraphunit_c_finalize): New prototype.
13110         * cgraphunit.c (first_analyzed): Move from analyze_functions
13111         to file-scope.
13112         (first_analyzed_var): Likewise.
13113         (analyze_functions): Move static variables into file-scope.
13114         (cgraphunit_c_finalize): New function.
13115         * diagnostic.c (diagnostic_finish): Free the memory for
13116         context->classify_diagnostic and context->printer, running the
13117         destructor for the latter.
13118         (bt_stop): Use toplev::main.
13119         * dwarf2out.c (dwarf2out_finalize): New function.
13120         * dwarf2out.h (dwarf2out_c_finalize): New prototype.
13121         * gcse.c (gcse_c_finalize): New function.
13122         * gcse.h (gcse_c_finalize): New prototype.
13123         * ggc-page.c (init_ggc): Make idempotent.
13124         * input.c (input_location): Initialize to UNKNOWN_LOCATION.
13125         * ipa-cp.c (ipa_cp_c_finalize): New function.
13126         * ipa-prop.h (ipa_cp_c_finalize): New prototype.
13127         * ipa-pure-const.c (function_insertion_hook_holder): Move to be
13128         a field of class pass_ipa_pure_const.
13129         (node_duplication_hook_holder): Likewise.
13130         (node_removal_hook_holder): Likewise.
13131         (register_hooks): Convert to method...
13132         (pass_ipa_pure_const::register_hooks): ...here, converting
13133         static variable init_p into...
13134         (pass_ipa_pure_const::init_p): ...new field.
13135         (pure_const_generate_summary): Update invocation of
13136         register_hooks to invoke as a method of current_pass.
13137         (pure_const_read_summary): Likewise.
13138         (propagate): Convert to...
13139         (pass_ipa_pure_const::execute): ...method.
13140         * ipa-reference.c (ipa_init): Move static bool init_p from here
13141         to...
13142         (ipa_init_p): New file-scope variable, so that it can be reset
13143         when repeatedly invoking the compiler within one process by...
13144         (ipa_reference_c_finalize): New function.
13145         * ipa-reference.h (ipa_reference_c_finalize): New.
13146         * main.c (main): Replace invocation of toplev_main with
13147         construction of a toplev instance, and call its "main" method.
13148         * params.c (global_init_params): Add an assert that
13149         params_finished is false.
13150         (params_c_finalize): New.
13151         * params.h (params_c_finalize): New.
13152         * passes.c (execute_ipa_summary_passes): Set "current_pass" before
13153         invoking generate_summary, for the benefit of pass_ipa_pure_const.
13154         (ipa_write_summaries_2): Assign "pass" to "current_pass" global
13155         before calling write_summary hook.
13156         (ipa_write_optimization_summaries_1): Likewise when calling
13157         write_optimization_summary hook.
13158         (ipa_read_summaries_1): Likewise for read_summary hook.
13159         (ipa_read_optimization_summaries_1): Likewise for
13160         read_optimization_summary hook.
13161         (execute_ipa_stmt_fixups): Likewise.
13162         * stringpool.c (init_stringpool): Clean up if we're called more
13163         than once.
13164         * timevar.c (timevar_init): Ignore repeated calls.
13165         * toplev.c: Include "dwarf2out.h", "ipa-reference.h", "gcse.h",
13166         "ipa-prop.h".
13167         (general_init): Reset "input_location" to UNKNOWN_LOCATION.
13168         (initialize_rtl): Move static local "initialized_once"
13169         into file scope, and rename to...
13170         (rtl_initialized): New variable.
13171         (do_compile): Move timevar initialization from here to
13172         toplev::start_timevars.
13173         (toplev::toplev, toplev::~toplev, toplev::start_timevars,
13174         toplev::finalize): New functions.
13175         (toplev_main): Rename to...
13176         (toplev::main): ...this.
13177         * toplev.h (class toplev): New class.
13178
13179 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13180
13181         * loop-doloop.c: Include loop-unroll.h.
13182
13183 2014-10-21  Andrew MacLeod  <amacleod@redhat.com>
13184
13185         * cfg.h: New.  Header file for cfg.c.
13186         * cfganal.h: New.  Header file for cfganal.c.
13187         * lcm.h: New.  Header file for lcm.c.
13188         * loop-unroll.h: New.  Header file for loop-unroll.h.
13189         * cfgloop.h: (unroll_loops): Remove prototype.
13190         * basic-block.h: Move prototypes and structs to new header files.
13191         Include cfg.h, cfganal.h, and lcm.h.
13192         * loop-init.c: Include loop-unroll.h.
13193         * loop-unroll.c: (referenced_in_one_insn_in_loop_p): Make static.
13194         * modulo-sched.c: Include loop-unroll.h.
13195
13196 2014-10-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13197
13198         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Fix creation of
13199         MARKER_BYTE_UNKNOWN markers when handling casts.
13200
13201 2014-10-21  Richard Biener  <rguenther@suse.de>
13202
13203         * tree-ssa-phiopt.c (value_replacement): Properly verify we
13204         are the non-singleton PHI.
13205
13206 2014-10-21  Jakub Jelinek  <jakub@redhat.com>
13207
13208         PR tree-optimization/63563
13209         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Bail out
13210         if either dra or drb stmts are not normal loads/stores.
13211
13212 2014-10-21  Ilya Tocar  <ilya.tocar@intel.com>
13213
13214         * config/i386/i386.c (expand_vec_perm_1): Fix
13215         expand_vec_perm_palignr case.
13216         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>_mask): Use
13217         VI1_AVX512.
13218
13219 2014-10-21  Zhenqiang Chen  <zhenqiang.chen@arm.com>
13220
13221         * cfgloopanal.c (seq_cost): Delete.
13222         * rtl.h (seq_cost): New prototype.
13223         * rtlanal.c (seq_cost): New function.
13224         * tree-ssa-loop-ivopts.c (seq_cost): Delete.
13225
13226 2014-10-20  Andrew MacLeod  <amacleod@redhat.com>
13227
13228         * cfgrtl.h: New.  Add prototypes for cfgrtl.c.
13229         * basic-block.h: Remove prototypes for cfgrtl.c.
13230         * cfghooks.h (cfg_layout_initialize, cfg_layout_finalize): Move
13231         prototypes to cfgrtl.h.
13232         * profile.h (profile_info): Add extern export declaration.
13233         * rtl.h: Remove prototypes for cfgrtl.h.
13234         * tree-cfg.h (gt_ggc_mx, gt_pch_nx): Move prototypes to here.
13235         * ipa-inline.c: Include profile.h.
13236         * loop-unroll.c: Ditto.
13237         * modulo-sched.c: Ditto.
13238         * postreload-gcse.c: Ditto.
13239         * predict.c: Ditto.
13240         * sched-ebb.c: Ditto.
13241         * sched-rgn.c: Ditto.
13242         * tracer.c: Ditto.
13243         * tree-ssa-loop-ivcanon.c: Ditto.
13244
13245 2014-10-20  Richard Biener  <rguenther@suse.de>
13246
13247         * tree-vect-slp.c (vect_get_and_check_slp_defs): Try swapping
13248         operands to get a def operand kind match.  Signal mismatches
13249         to the parent so we can try swapping its operands.
13250         (vect_build_slp_tree): Try swapping operands if they have
13251         a mismatched operand kind.
13252
13253 2014-10-20  Alan Modra  <amodra@gmail.com>
13254
13255         PR debug/60655
13256         * simplify-rtx.c (simplify_plus_minus): Delete unused "input_ops".
13257         Increase "ops" array size.  Correct array size tests.  Init
13258         n_constants in loop.  Break out of innermost loop when finding
13259         a trivial CONST expression.
13260
13261 2014-10-20  Martin Liska  <mliska@suse.cz>
13262
13263         PR ipa/63583
13264         * ipa-icf-gimple.c (func_checker::compare_gimple_asm):
13265         Gimple tempate string is compared.
13266
13267 2014-10-20  Uros Bizjak  <ubizjak@gmail.com>
13268
13269         * varasm.c (const_alias_set): Remove.
13270         (init_varasm_once): Remove initialization of const_alias_set.
13271         (build_constant_desc): Do not set alias set to const_alias_set.
13272
13273 2014-10-19  Ilya Verbin  <ilya.verbin@intel.com>
13274
13275         * configure: Regenerate.
13276         * configure.ac: Move the test for section attribute specifier "e" in GAS
13277         out to all i[34567]86-*-* | x86_64-*-* targets and add --fatal-warnings.
13278         * langhooks.c (lhd_begin_section): Set SECTION_EXCLUDE flag.
13279         * varasm.c (default_elf_asm_named_section): Guard SECTION_EXCLUDE with
13280         ifdef HAVE_GAS_SECTION_EXCLUDE.
13281
13282 2014-10-19  Andreas Schwab  <schwab@linux-m68k.org>
13283
13284         * doc/md.texi (RTL Template) [match_scratch]: Correct equivalent
13285         match_operand expression.
13286
13287 2014-10-19  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
13288             David Edelsohn  <dje.gcc@gmail.com>
13289
13290         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): New
13291         function.
13292         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
13293
13294 2014-10-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13295
13296         * doc/invoke.texi (Options to Request or Suppress Warnings):
13297         Explain options precedence.
13298         (Wtrampolines): Do not indent paragraph.
13299
13300 2014-10-18  John David Anglin  <danglin@gcc.gnu.org>
13301
13302         * doc/invoke.texi: Update documentation of hppa -mjump-in-delay option.
13303         * config/pa/pa-protos.h (pa_following_call): Delete declaration.
13304         (pa_jump_in_call_delay): Likewise.
13305         * config/pa/pa.c (pa_option_override): Remove jump in call delay
13306         override.
13307         (pa_output_millicode_call): Remove support for jump in call delay.
13308         (pa_output_call): Likewise.
13309         (pa_jump_in_call_delay): Delete.
13310         (pa_following_call): Likewise.
13311         * config/pa/pa.md (in_call_delay): Remove jump in delay check.
13312         (uncond_branch): Remove following call check from attribute length.
13313
13314 2014-10-18  Oleg Endo  <olegendo@gcc.gnu.org>
13315
13316         PR target/53513
13317         * config/sh/sh-modes.def (PSI): Remove.
13318         * config/sh/sh-protos.h (get_fpscr_rtx): Remove.
13319         * config/sh/sh.c (fpscr_rtx, get_fpscr_rtx): Remove.
13320         (sh_reorg): Remove commented out FPSCR code.
13321         (fpscr_set_from_mem): Use SImode instead of PSImode.  Emit lds_fpscr
13322         insn instead of move insn.
13323         (sh_hard_regno_mode_ok): Return SImode for FPSCR.
13324         (sh_legitimate_address_p, sh_legitimize_reload_address): Remove PSImode
13325         handling.
13326         (sh_emit_mode_set): Emit lds_fpscr and sts_fpscr insns.
13327         (sh1_builtin_p): Uncomment.
13328         (SH_BLTIN_UV 25, SH_BLTIN_VU 26): New macros.
13329         (bdesc): Add __builtin_sh_get_fpscr and __builtin_sh_set_fpscr.
13330         * config/sh/sh/predicates.md (fpscr_operand): Simplify.
13331         (fpscr_movsrc_operand, fpscr_movdst_operand): New predicates.
13332         (general_movsrc_operand, general_movdst_operand): Disallow
13333         fpscr_operand.
13334         * config/sh/sh.md (FPSCR_FR): New constant.
13335         (push_fpscr): Emit sts_fpscr insn.
13336         (pop_fpscr): Emit lds_fpscr_insn.
13337         (movsi_ie): Disallow FPSCR operands.
13338         (fpu_switch, unnamed related split, extend_psi_si,
13339         truncate_si_psi): Remove insns.
13340         (lds_fpscr, sts_fpscr): New insns.
13341         (toggle_sz, toggle_pr): Use SImode for FPSCR_REG instead of PSImode.
13342
13343 >>>>>>> .r217525
13344 2014-10-17  Eric Botcazou  <ebotcazou@adacore.com>
13345
13346         * ipa-inline-transform.c (master_clone_with_noninline_clones_p): New.
13347         (clone_inlined_nodes): Do not overwrite the clone if above predicate
13348         returns true.
13349
13350 2014-10-17  Ilya Tocar  <ilya.tocar@intel.com>
13351
13352         * config/i386/i386.c (MAX_VECT_LEN): Move earlier.
13353         (expand_vec_perm_d): Ditto.
13354         (ix86_expand_vec_perm_vpermi2): Handle V8HImode, V16HImode, V32HImode,
13355         V32HImode, V4SImode, V8SImode, V4SFmode, V8SFmode, V2DImode, V4DImode,
13356         V4DFmode.
13357         (ix86_expand_vec_perm): Update call to ix86_expand_vec_perm_vpermi2.
13358         (ix86_expand_sse_unpack): Handle V64QImode.
13359         (expand_vec_perm_blend): Update conditions for TARGET, handle
13360         V8DFmode, V16SFmode, V32HImode, V64QImode, V16SImode, V8DImode.
13361         (expand_vec_perm_pshufb): Handle V64QImode.
13362         (expand_vec_perm_1): Handle V64QImode, V32HImode, V16SImode, V16SFmode,
13363         V8DFmode, V8DImode, V4DFmode, V2DFmode, V8SFmode, V4SFmode.
13364         (ix86_expand_vec_perm_const_1): Call  ix86_expand_vec_perm_vpermi2.
13365         (ix86_vectorize_vec_perm_const_ok): Handle V32HImode, V64QImode.
13366         (ix86_expand_vecop_qihi): Handle V64QImode.
13367         * config/i386/sse.md (define_mode_iterator VI1_AVX512): New.
13368         (define_mode_iterator VEC_PERM_AVX2): Add V32HI.
13369         (define_mode_iterator VEC_PERM_CONST): Add V32HI.
13370         (define_insn "<ssse3_avx2>_pshufb<mode>3<mask_name>"): Add masking.
13371         (mul<mode>3): Use VI1_AVX512.
13372         (<sse2_avx2>_packsswb): Ditto.
13373         (<sse2_avx2>_packuswb): Ditto.
13374         (<ssse3_avx2>_pshufb<mode>3): Ditto.
13375         (<shift_insn><mode>3): Ditto.
13376
13377 2014-10-17  Kirill Yukhin  <kirill.yukhin@intel.com>
13378
13379         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Refactor
13380         conditions to fix bootstrap.
13381
13382 2014-10-17  Andrew MacLeod  <amacleod@redhat.com>
13383
13384         gcc-plugin.h:  Add tm.h and flattened includes from function.h.
13385
13386 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13387             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13388             Anna Tikhonova  <anna.tikhonova@intel.com>
13389             Ilya Tocar  <ilya.tocar@intel.com>
13390             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13391             Ilya Verbin  <ilya.verbin@intel.com>
13392             Kirill Yukhin  <kirill.yukhin@intel.com>
13393             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13394
13395         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Handle V64QI
13396         and V32HI modes, update V8HI, V16QI, V32QI modes handling.
13397         (ix86_expand_vector_init_general): Handle V64QI and V32HI modes.
13398         * config/i386/sse.md (define_mode_iterator VI48F_512): Rename to ...
13399         (define_mode_iterator VF48_I1248): ... this. Extend to AVX-512 modes.
13400         (define_expand "vec_init<mode>"): Use VF48_I1248.
13401
13402 2014-10-17  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13403             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13404             Anna Tikhonova  <anna.tikhonova@intel.com>
13405             Ilya Tocar  <ilya.tocar@intel.com>
13406             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13407             Ilya Verbin  <ilya.verbin@intel.com>
13408             Kirill Yukhin  <kirill.yukhin@intel.com>
13409             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13410
13411         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Extend
13412         expand_sse2_mulvxdi3.
13413
13414 2014-10-17  Richard Biener  <rguenther@suse.de>
13415
13416         * fold-const.c (fold_comparison): Remove redundant constant
13417         folding and operand swapping.
13418         (fold_binary_loc): Do comparison operand swapping here.
13419         (fold_ternary_loc): Canonicalize operand order for
13420         commutative ternary operations.
13421         * tree.c (commutative_ternary_tree_code): Add DOT_PROD_EXPR
13422         and FMA_EXPR.
13423
13424 2014-10-17  Jakub Jelinek  <jakub@redhat.com>
13425
13426         PR tree-optimization/63464
13427         * gimple.h (gimple_seq_discard): New prototype.
13428         * gimple.c: Include stringpool.h and tree-ssanames.h.
13429         (gimple_seq_discard): New function.
13430         * optabs.h (lshift_cheap_p): New prototype.
13431         * optabs.c (lshift_cheap_p): New function, moved from...
13432         * tree-switch-conversion.c (lshift_cheap_p): ... here.
13433         * tree-ssa-reassoc.c: Include gimplify.h and optabs.h.
13434         (reassoc_branch_fixups): New variable.
13435         (update_range_test): Add otherrangep and seq arguments.
13436         Unshare exp.  If otherrange is NULL, use for other ranges
13437         array of pointers pointed by otherrangep instead.
13438         Emit seq before gimplified statements for tem.
13439         (optimize_range_tests_diff): Adjust update_range_test
13440         caller.
13441         (optimize_range_tests_xor): Likewise.  Fix up comment.
13442         (extract_bit_test_mask, optimize_range_tests_to_bit_test): New
13443         functions.
13444         (optimize_range_tests): Adjust update_range_test caller.
13445         Call optimize_range_tests_to_bit_test.
13446         (branch_fixup): New function.
13447         (execute_reassoc): Call branch_fixup.
13448
13449         PR tree-optimization/63302
13450         * tree-ssa-reassoc.c (optimize_range_tests_xor,
13451         optimize_range_tests_diff): Use !integer_pow2p () instead of
13452         tree_log2 () < 0.
13453
13454 2014-10-17  Martin Liska  <mliska@suse.cz>
13455
13456         * ipa-icf.c (sem_function::merge): Local flags are set to false
13457         to enforce equal calling convention to be used.
13458         * opts.c (common_handle_option): Indentation fix.
13459
13460 2014-10-17  Marc Glisse  <marc.glisse@inria.fr>
13461
13462         * tree-into-ssa.c (is_old_name): Replace "new" with "old".
13463
13464 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13465
13466         PR rtl-optimization/61605
13467         * regcprop.c (copyprop_hardreg_forward_1): Use
13468         regs_invalidated_by_this_call instead of regs_invalidated_by_call.
13469
13470 2014-10-17  Tom de Vries  <tom@codesourcery.com>
13471
13472         PR rtl-optimization/61605
13473         * regcprop.c (copyprop_hardreg_forward_1): Add copy_p and noop_p.  Don't
13474         notice stores for noops.  Don't regard noops as copies.
13475
13476 2014-10-17  Uros Bizjak  <ubizjak@gmail.com>
13477
13478         * config/i386/cpuid.h (__cpuid): Remove definitions that handle %ebx
13479         register in a special way.
13480         (__cpuid_count): Ditto.
13481         * config/i386/driver-i386.h: Protect with
13482         "#if defined(__GNUC__) && (__GNUC__ >= 5 || !defined(__PIC__))".
13483         (host_detect_local_cpu): Mention that GCC with non-fixed %ebx
13484         is required to compile the function.
13485
13486 2014-10-16  DJ Delorie  <dj@redhat.com>
13487
13488         * flag-types.h (sanitize_code): Don't assume targets have 32-bit
13489         integers.
13490
13491         * config/rs6000/rs6000-c.c (rid_int128): New.
13492         (rs6000_macro_to_expand): Use instead of RID_INT128.
13493
13494 2014-10-16  Andrew MacLeod  <amacleod@redhat.com>
13495
13496         * function.h: Flatten file.  Remove includes, adjust prototypes to
13497         reflect only what is in function.h.
13498         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13499         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Relocate
13500         from expr.h.
13501         (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Relocate from rtl.h.
13502         (optimize_function_for_size_p, optimize_function_for_speed_p): Move
13503         prototypes to predict.h.
13504         (init_varasm_status): Move prototype to varasm.h.
13505         * expr.h: Adjust include files.
13506         (enum direction, struct args_size, struct locate_and_pad_arg_data,
13507         ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE, ARGS_SIZE_RTX): Move
13508         to function.h.
13509         (locate_and_pad_parm): Move prototype to function.h.
13510         * rtl.h: (assign_stack_local, ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD,
13511         assign_stack_local_1, assign_stack_temp, assign_stack_temp_for_type,
13512         assign_temp, reposition_prologue_and_epilogue_notes,
13513         prologue_epilogue_contains, sibcall_epilogue_contains,
13514         update_temp_slot_address, maybe_copy_prologue_epilogue_insn,
13515         set_return_jump_label): Move prototypes to function.h.
13516         * predict.h (optimize_function_for_size_p,
13517         optimize_function_for_speed_p): Relocate prototypes from function.h.
13518         * shrink-wrap.h (emit_return_into_block, active_insn_between,
13519         convert_jumps_to_returns, emit_return_for_exit): Move prototypes to
13520         function.h.
13521         * varasm.h (init_varasm_status): Relocate prototype from function.h.
13522         * genattrtab.c (write_header): Add predict.h to include list.
13523         * genconditions.c (write_header): Add predict.h to include list.
13524         * genemit.c (main): Adjust header file includes.
13525         * gengtype.c (ifiles): Add flattened function.h header files.
13526         * genoutput.c (output_prologue): Add predict.h to include list.
13527         * genpreds.c (write_insn_preds_c): Adjust header file includes.
13528         * genrecog.c (write_header): Add flattened function.h header files.
13529         * alias.c: Adjust include files.
13530         * auto-inc-dec.c: Likewise.
13531         * basic-block.h: Likewise.
13532         * bb-reorder.c: Likewise.
13533         * bt-load.c: Likewise.
13534         * builtins.c: Likewise.
13535         * caller-save.c: Likewise.
13536         * calls.c: Likewise.
13537         * cfgbuild.c: Likewise.
13538         * cfgcleanup.c: Likewise.
13539         * cfgexpand.c: Likewise.
13540         * cfgloop.c: Likewise.
13541         * cfgloop.h: Likewise.
13542         * cfgrtl.c: Likewise.
13543         * cgraph.h: Likewise.
13544         * cgraphclones.c: Likewise.
13545         * cgraphunit.c: Likewise.
13546         * combine-stack-adj.c: Likewise.
13547         * combine.c: Likewise.
13548         * coverage.c: Likewise.
13549         * cprop.c: Likewise.
13550         * cse.c: Likewise.
13551         * cselib.c: Likewise.
13552         * dbxout.c: Likewise.
13553         * ddg.c: Likewise.
13554         * df-core.c: Likewise.
13555         * df-problems.c: Likewise.
13556         * df-scan.c: Likewise.
13557         * dojump.c: Likewise.
13558         * dwarf2cfi.c: Likewise.
13559         * dwarf2out.c: Likewise.
13560         * emit-rtl.c: Likewise.
13561         * except.c: Likewise.
13562         * explow.c: Likewise.
13563         * expr.c: Likewise.
13564         * final.c: Likewise.
13565         * function.c: Likewise.
13566         * gcse.c: Likewise.
13567         * gimple-fold.c: Likewise.
13568         * gimple-low.c: Likewise.
13569         * gimple-streamer.h: Likewise.
13570         * haifa-sched.c: Likewise.
13571         * ifcvt.c: Likewise.
13572         * ira.c: Likewise.
13573         * jump.c: Likewise.
13574         * lcm.c: Likewise.
13575         * loop-invariant.c: Likewise.
13576         * lra-assigns.c: Likewise.
13577         * lra-coalesce.c: Likewise.
13578         * lra-constraints.c: Likewise.
13579         * lra-eliminations.c: Likewise.
13580         * lra-lives.c: Likewise.
13581         * lra-spills.c: Likewise.
13582         * lra.c: Likewise.
13583         * lto-cgraph.c: Likewise.
13584         * lto-section-in.c: Likewise.
13585         * lto-section-out.c: Likewise.
13586         * lto-streamer-in.c: Likewise.
13587         * lto-streamer-out.c: Likewise.
13588         * mode-switching.c: Likewise.
13589         * modulo-sched.c: Likewise.
13590         * omp-low.c: Likewise.
13591         * optabs.c: Likewise.
13592         * passes.c: Likewise.
13593         * postreload-gcse.c: Likewise.
13594         * postreload.c: Likewise.
13595         * predict.c: Likewise.
13596         * profile.c: Likewise.
13597         * recog.c: Likewise.
13598         * ree.c: Likewise.
13599         * reg-stack.c: Likewise.
13600         * regcprop.c: Likewise.
13601         * reginfo.c: Likewise.
13602         * regrename.c: Likewise.
13603         * reload.c: Likewise.
13604         * reload1.c: Likewise.
13605         * reorg.c: Likewise.
13606         * resource.c: Likewise.
13607         * rtlanal.c: Likewise.
13608         * sched-deps.c: Likewise.
13609         * sched-ebb.c: Likewise.
13610         * sched-rgn.c: Likewise.
13611         * sel-sched-dump.c: Likewise.
13612         * sel-sched-ir.c: Likewise.
13613         * sel-sched.c: Likewise.
13614         * shrink-wrap.c: Likewise.
13615         * simplify-rtx.c: Likewise.
13616         * statistics.c: Likewise.
13617         * stmt.c: Likewise.
13618         * stor-layout.c: Likewise.
13619         * store-motion.c: Likewise.
13620         * symtab.c: Likewise.
13621         * targhooks.c: Likewise.
13622         * toplev.c: Likewise.
13623         * trans-mem.c: Likewise.
13624         * tree-cfg.c: Likewise.
13625         * tree-cfgcleanup.c: Likewise.
13626         * tree-dfa.c: Likewise.
13627         * tree-eh.c: Likewise.
13628         * tree-inline.c: Likewise.
13629         * tree-into-ssa.c: Likewise.
13630         * tree-nested.c: Likewise.
13631         * tree-nrv.c: Likewise.
13632         * tree-profile.c: Likewise.
13633         * tree-ssa-alias.c: Likewise.
13634         * tree-ssa-ccp.c: Likewise.
13635         * tree-ssa-copy.c: Likewise.
13636         * tree-ssa-copyrename.c: Likewise.
13637         * tree-ssa-dom.c: Likewise.
13638         * tree-ssa-operands.c: Likewise.
13639         * tree-ssa-propagate.c: Likewise.
13640         * tree-ssa-structalias.c: Likewise.
13641         * tree-ssa-tail-merge.c: Likewise.
13642         * tree-ssa-threadedge.c: Likewise.
13643         * tree-ssa-threadupdate.c: Likewise.
13644         * tree-ssa-uncprop.c: Likewise.
13645         * tree-ssa-uninit.c: Likewise.
13646         * tree-ssa.c: Likewise.
13647         * tree-stdarg.c: Likewise.
13648         * tree-tailcall.c: Likewise.
13649         * tree.c: Likewise.
13650         * tsan.c: Likewise.
13651         * valtrack.c: Likewise.
13652         * varasm.c: Likewise.
13653         * vmsdbgout.c: Likewise.
13654         * web.c: Likewise.
13655         * config/aarch64/aarch64.c: Add flattened includes from function.h.
13656         * config/alpha/alpha.c: Likewise.
13657         * config/arc/arc.c: Likewise.
13658         * config/arm/arm.c: Likewise.
13659         * config/avr/avr-log.c: Likewise.
13660         * config/avr/avr.c: Likewise.
13661         * config/bfin/bfin.c: Likewise.
13662         * config/c6x/c6x.c: Likewise.
13663         * config/cr16/cr16.c: Likewise.
13664         * config/cris/cris.c: Likewise.
13665         * config/darwin.c: Likewise.
13666         * config/epiphany/epiphany.c: Likewise.
13667         * config/epiphany/mode-switch-use.c: Likewise.
13668         * config/epiphany/resolve-sw-modes.c: Likewise.
13669         * config/fr30/fr30.c: Likewise.
13670         * config/frv/frv.c: Likewise.
13671         * config/h8300/h8300.c: Likewise.
13672         * config/i386/i386.c: Likewise.
13673         * config/ia64/ia64.c: Likewise.
13674         * config/iq2000/iq2000.c: Likewise.
13675         * config/lm32/lm32.c: Likewise.
13676         * config/m32c/m32c.c: Likewise.
13677         * config/m32r/m32r.c: Likewise.
13678         * config/m68k/m68k.c: Likewise.
13679         * config/mcore/mcore.c: Likewise.
13680         * config/mep/mep-pragma.c: Likewise.
13681         * config/mep/mep.c: Likewise.
13682         * config/microblaze/microblaze.c: Likewise.
13683         * config/mips/mips.c: Likewise.
13684         * config/mmix/mmix.c: Likewise.
13685         * config/mn10300/mn10300.c: Likewise.
13686         * config/moxie/moxie.c: Likewise.
13687         * config/msp430/msp430.c: Likewise.
13688         * config/nds32/nds32-cost.c: Likewise.
13689         * config/nds32/nds32-fp-as-gp.c: Likewise.
13690         * config/nds32/nds32-intrinsic.c: Likewise.
13691         * config/nds32/nds32-isr.c: Likewise.
13692         * config/nds32/nds32-md-auxiliary.c: Likewise.
13693         * config/nds32/nds32-memory-manipulation.c: Likewise.
13694         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13695         * config/nds32/nds32-predicates.c: Likewise.
13696         * config/nds32/nds32.c: Likewise.
13697         * config/nios2/nios2.c: Likewise.
13698         * config/pa/pa.c: Likewise.
13699         * config/pdp11/pdp11.c: Likewise.
13700         * config/rl78/rl78.c: Likewise.
13701         * config/rs6000/rs6000.c: Likewise.
13702         * config/rx/rx.c: Likewise.
13703         * config/s390/s390.c: Likewise.
13704         * config/score/score.c: Likewise.
13705         * config/sh/sh.c: Likewise.
13706         * config/sparc/sparc.c: Likewise.
13707         * config/spu/spu.c: Likewise.
13708         * config/stormy16/stormy16.c: Likewise.
13709         * config/tilegx/tilegx.c: Likewise.
13710         * config/tilepro/tilepro.c: Likewise.
13711         * config/v850/v850.c: Likewise.
13712         * config/vax/vax.c: Likewise.
13713         * config/xtensa/xtensa.c: Likewise.
13714
13715 2014-10-16  Richard Earnshaw  <rearnsha@arm.com>
13716
13717         * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
13718         (TARGET_LEGITIMIZE_ADDRESS): Redefine.
13719
13720 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13721
13722         * config/sh/sh-protos.h (fldi_ok): Remove.
13723         * config/sh/sh.c (fldi_ok): Likewise.
13724         (sh_secondary_reload): Don't use fldi_ok.
13725         * config/sh/constraints.md (G constraint, H constraint): Don't use
13726         fldi_ok.
13727
13728 2014-10-16  Martin Liska  <mliska@suse.cz>
13729
13730         * ipa-icf.c (sem_item_optimizer::process_cong_reduction):
13731         Cast to unsigned long.
13732         (sem_item_optimizer::dump_cong_classes): Likewise.
13733
13734 2014-10-16  Tom de Vries  <tom@codesourcery.com>
13735
13736         * tree-into-ssa.c (update_ssa): Assert that there's no ssa use operand
13737         with SSA_NAME_IN_FREELIST.
13738
13739 2014-10-16  Richard Biener  <rguenther@suse.de>
13740
13741         PR middle-end/63554
13742         * builtins.c (fold_builtin_4): Do not call fold_builtin_strncat_chk.
13743         (fold_builtin_strncat_chk): Move ...
13744         * gimple-fold.c (gimple_fold_builtin_strncat_chk): ... here.
13745         (gimple_fold_builtin): Call gimple_fold_builtin_strncat_chk.
13746
13747 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13748
13749         PR target/59401
13750         * config/sh/sh.h (CALL_REALLY_USED_REGISTERS): Expand macro and set
13751         GBR to 0.
13752
13753 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13754             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13755             Anna Tikhonova  <anna.tikhonova@intel.com>
13756             Ilya Tocar  <ilya.tocar@intel.com>
13757             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13758             Ilya Verbin  <ilya.verbin@intel.com>
13759             Kirill Yukhin  <kirill.yukhin@intel.com>
13760             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13761
13762         * config/i386/i386.c (ix86_expand_mul_widen_hilo): Handle V32HI, V16SI,
13763         V64QI modes.
13764
13765 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13766             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13767             Anna Tikhonova  <anna.tikhonova@intel.com>
13768             Ilya Tocar  <ilya.tocar@intel.com>
13769             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13770             Ilya Verbin  <ilya.verbin@intel.com>
13771             Kirill Yukhin  <kirill.yukhin@intel.com>
13772             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13773
13774         * config/i386/i386.c (ix86_expand_vector_set): Handle V8DF, V8DI, V16SF,
13775         V16SI, V32HI, V64QI modes.
13776
13777 2014-10-16  Oleg Endo  <olegendo@gcc.gnu.org>
13778
13779         PR target/53513
13780         * config/sh/sh-protos.h (emit_sf_insn, emit_df_insn, expand_sf_unop,
13781         expand_sf_binop, expand_df_unop, expand_df_binop): Remove.
13782
13783         * config/sh/sh.c (sh_emit_set_t_insn): Adjust generated insn pattern
13784         to match fp insn patterns.
13785         (calc_live_regs): Add FPSCR_MODES_REG and FPSCR_STAT_REG to the ignore
13786         list.
13787         (emit_sf_insn, emit_df_insn, expand_sf_unop, expand_sf_binop,
13788         expand_df_unop, expand_df_binop): Remove.
13789         (sh_conditional_register_usage): Mark FPSCR_MODES_REG and
13790         FPSCR_STAT_REG as not call clobbered.
13791         (sh_emit_mode_set): Emit fpscr store-modify-load sequence instead of
13792         invoking fpscr_set_from_mem.
13793
13794         * config/sh/sh.h (MAX_REGISTER_NAME_LENGTH): Increase to 6.
13795         (SH_REGISTER_NAMES_INITIALIZER): Add names for FPSCR_MODES_REG and
13796         FPSCR_STAT_REG.
13797         (REGISTER_NAMES): Adjust.
13798         (SPECIAL_REGISTER_P): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13799         (FIRST_PSEUDO_REGISTER): Increase to 156.
13800         (DWARF_FRAME_REGISTERS): Define as 153 to keep the original value.
13801         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add FPSCR_MODES_REG and
13802         FPSCR_STAT_REG.
13803         (REG_CLASS_CONTENTS): Adjust ALL_REGS bit mask to include
13804         FPSCR_MODES_REG and FPSCR_STAT_REG.
13805         (REG_ALLOC_ORDER): Add FPSCR_MODES_REG and FPSCR_STAT_REG.
13806
13807         * config/sh/sh.md (FPSCR_MODES_REG, FPSCR_STAT_REG, FPSCR_PR,
13808         FPSCR_SZ): Add new constants.
13809         (UNSPECV_FPSCR_MODES, UNSPECV_FPSCR_STAT): Add new unspecv constants.
13810
13811         (movpsi): Use TARGET_FPU_ANY condition, invoke gen_fpu_switch.
13812         (fpu_switch): Add use and set of FPSCR_STAT_REG and FPSCR_MODES_REG.
13813         Use TARGET_FPU_ANY condition.
13814         (fpu_switch peephole2): Remove.
13815         (fpu_switch split): Use simple_mem_operand to capture the mem and
13816         adjust split implementation.
13817         (extend_psi_si, truncate_si_psi): New insns.
13818         (toggle_sz, toggle_pr): Use FPSCR_SZ, FPSCR_PR constants.  Add
13819         set of FPSCR_MODES_REG.
13820
13821         (push_e, push_4, pop_e, pop_4, movdf_i4, reload_indf__frn, movsf_ie,
13822         reload_insf__frn, force_mode_for_call, calli, calli_tbr_rel,
13823         calli_pcrel, call_pcrel, call_compact, call_compact_rettramp,
13824         call_valuei, call_valuei_tbr_rel, call_valuei_pcrel, call_value_pcrel,
13825         call_value_compact, call_value_compact_rettramp, call,
13826         call_pop_compact, call_pop_compact_rettramp, call_value, sibcalli,
13827         sibcalli_pcrel, sibcalli_thunk, sibcall_pcrel, sibcall_compact,
13828         sibcall, sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
13829         sibcall_value_compact, sibcall_value, call_value_pop_compact,
13830         call_value_pop_compact_rettramp, various unnamed splits):
13831         Replace use of FPSCR_REG with use of FPSCR_MODES_REG.  Adjust gen_*
13832         function uses.
13833
13834         (floatsisf2_i4, *floatsisf2_ie): Merge into floatsisf2_i4.
13835         (fix_truncsfsi2_i4, *fixsfsi): Merge into fix_truncsfsi2_i4.
13836         (cmpgtsf_t, cmpgtsf_t_i4): Merge into cmpgtsf_t.
13837         (cmpeqsf_t, cmpeqsf_t_i4): Merge into cmpeqsf_t.
13838         (ieee_ccmpeqsf_t, *ieee_ccmpeqsf_t_4): Merge into ieee_ccmpeqsf_t.
13839
13840         (udivsi3_i4, divsi3_i4, addsf3_i, subsf3_i, mulsf3_i, fmasf4_i,
13841         *fmasf4, divsf3_i, floatsisf2_i4, fix_truncsfsi2_i4, cmpgtsf_t,
13842         cmpeqsf_t, ieee_ccmpeqsf_t, sqrtsf2_i, rsqrtsf2, fsca, adddf3_i,
13843         subdf3_i, muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i,
13844         cmpgtdf_t, cmpeqdf_t, *ieee_ccmpeqdf_t, sqrtdf2_i, extendsfdf2_i4,
13845         truncdfsf2_i4): Replace use of FPSCR_REG with clobber of FPSCR_STAT_REG
13846         and use of FPSCR_MODES_REG.  Adjust gen_* function uses.
13847
13848 2014-10-16  Martin Liska  <mliska@suse.cz>
13849             Jan Hubicka  <hubicka@ucw.cz>
13850
13851         * Makefile.in: New object files included.
13852         * cgraph.c (cgraph_node::dump): New cgraph_node flag icf_merged
13853         is printed.
13854         (verify_edge_corresponds_to_fndecl): More sensitive verification
13855         of nodes that are merged by IPA ICF.
13856         * cgraph.h (cgraph_node::num_references): New function.
13857         * cgraphunit.c (cgraph_node::expand_thunk): White space fixed.
13858         * common.opt: New options ipa-icf, ipa-icf-functions and
13859         ipa-icf-variables introduced.
13860         * doc/invoke.texi: Documentation of new options introduced.
13861         * ipa-icf-gimple.c: New file.
13862         * ipa-icf-gimple.h: New file.
13863         * ipa-icf.c: New file.
13864         * ipa-icf.h: New file.
13865         * lto-cgraph.c (lto_output_node): Streaming of icf_merged flag added.
13866         (input_overwrite_node): Likewise.
13867         * lto-section-in.c: New icf section added.
13868         * lto-streamer.h (enum lto_section_type): Likewise.
13869         * opts.c (common_handle_option): New option added.
13870         * passes.def: New pass included.
13871         * timevar.def: Time variable for IPA ICF added.
13872         * tree-pass.h: New IPA ICF pass entry point added.
13873
13874 2014-10-16  Richard Biener  <rguenther@suse.de>
13875
13876         PR tree-optimization/63168
13877         * tree-cfg.c (gimple_can_merge_blocks_p): Only protect
13878         latches if after merging they are no longer simple.
13879         * cfghooks.c (merge_blocks): Handle merging a latch block
13880         into another block.
13881
13882 2014-10-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13883             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13884             Anna Tikhonova  <anna.tikhonova@intel.com>
13885             Ilya Tocar  <ilya.tocar@intel.com>
13886             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13887             Ilya Verbin  <ilya.verbin@intel.com>
13888             Kirill Yukhin  <kirill.yukhin@intel.com>
13889             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13890
13891         * config/i386/sse.md
13892         (define_expand "floatuns<sseintvecmodelower><mode>2"): Extend to
13893         support AVX-512VL instructions.
13894
13895 2014-10-16  DJ Delorie  <dj@redhat.com>
13896
13897         * tree-core.h: Fix comment to not assume pointers are multiples of
13898         bytes.
13899
13900 2014-10-15  Tom Tromey  <tromey@redhat.com>
13901
13902         * timevar.h (class auto_timevar): New class.
13903
13904 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
13905
13906         PR go/59432
13907         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13908         Remove the second alternative.
13909         (regprefix): Remove mode attribute.
13910         (atomic_compare_and_swap<mode>): Do not fixup operand 2.
13911         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove.
13912
13913         Revert:
13914         2013-11-05  Ian Lance Taylor  <iant@google.com>
13915
13916         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
13917         If possible, add .cfi directives to record change to bx.
13918         * config/i386/i386.c (ix86_emit_cfi): New function.
13919         * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
13920
13921 2014-10-15  Jan Hubicka  <hubicka@ucw.cz>
13922
13923         PR lto/62026
13924         * cgraphclones.c (duplicate_thunk_for_node): Get body to have args
13925         to duplicate.
13926         * lto-streamer-out.c (lto_output): Handle correctly thunks that was born
13927         at WPA time.
13928
13929 2014-10-15  Vladimir Makarov  <vmakarov@redhat.com>
13930
13931         PR rtl-optimization/63448
13932         * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove.
13933         (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New.
13934         (LRA_MAX_INHERITANCE_PASSES): Use it.
13935         (lra_constraint_iter_after_spill): Remove.
13936         (lra_assignment_iter): New.
13937         (lra_assignment_iter_after_spill): New.
13938         * lra-assigns.c (lra_assignment_iter): New.
13939         (lra_assignment_iter_after_spill): New.
13940         (former_reload_pseudo_spill_p): New.
13941         (spill_for): Set up former_reload_pseudo_spill_p.
13942         (setup_live_pseudos_and_spill_after_risky): Ditto.
13943         (assign_by_spills): Ditto.
13944         (lra_assign): Increment lra_assignment_iter.  Print the iteration
13945         number.  Reset former_reload_pseudo_spill_p.  Check
13946         lra_assignment_iter_after_spill.
13947         * lra.c (lra): Remove lra_constraint_iter_after_spill.  Initialize
13948         lra_assignment_iter and lra_assignment_iter_after_spill.
13949         * lra-constraints.c (lra_constraint_iter_after_spill): Remove.
13950         (lra_constraints): Remove code with
13951         lra_assignment_iter_after_spill.
13952
13953 2014-10-15  Teresa Johnson  <tejohnson@google.com>
13954
13955         PR bootstrap/63432
13956         * tree-ssa-threadupdate.c (recompute_probabilities): Better
13957         overflow checking.
13958
13959 2014-10-15  Renlin Li <renlin.li@arm.com>
13960
13961         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
13962         __ARM_BIG_ENDIAN, __ARM_SIZEOF_MINIMAL_ENUM. Add __ARM_64BIT_STATE,
13963         __ARM_ARCH_ISA_A64, __ARM_FEATURE_CLZ, __ARM_FEATURE_IDIV,
13964         __ARM_FEATURE_UNALIGNED, __ARM_PCS_AAPCS64, __ARM_SIZEOF_WCHAR_T.
13965
13966 2014-10-15  Richard Biener  <rguenther@suse.de>
13967
13968         * gimple-fold.c (gimple_fold_call): Properly keep virtual
13969         SSA form up-to-date when devirtualizing a call to
13970         __builtin_unreachable and avoid fixing up EH info here.
13971
13972 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
13973             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
13974             Anna Tikhonova  <anna.tikhonova@intel.com>
13975             Ilya Tocar  <ilya.tocar@intel.com>
13976             Andrey Turetskiy  <andrey.turetskiy@intel.com>
13977             Ilya Verbin  <ilya.verbin@intel.com>
13978             Kirill Yukhin  <kirill.yukhin@intel.com>
13979             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
13980
13981         * config/i386/sse.md (define_mode_iterator VI_AVX2): Extend
13982         to support AVX-512BW.
13983         (define_mode_iterator VI124_AVX2_48_AVX512F): Remove.
13984         (define_expand "<plusminus_insn><mode>3"): Remove masking support.
13985         (define_insn "*<plusminus_insn><mode>3"): Ditto.
13986         (define_expand "<plusminus_insn><VI48_AVX512VL:mode>3_mask"): New.
13987         (define_expand "<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13988         (define_insn "*<plusminus_insn><VI48_AVX512VL:mode>3_mask"): Ditto.
13989         (define_insn "*<plusminus_insn><VI12_AVX512VL:mode>3_mask"): Ditto.
13990         (define_expand "<sse2_avx2>_andnot<mode>3"): Remove masking support.
13991         (define_insn "*andnot<mode>3"): Ditto.
13992         (define_expand "<sse2_avx2>_andnot<VI48_AVX512VL:mode>3_mask"): New.
13993         (define_expand "<sse2_avx2>_andnot<VI12_AVX512VL:mode>3_mask"): Ditto.
13994         (define_insn "*andnot<VI48_AVX512VL:mode>3<mask_name>"): Ditto.
13995         (define_insn "*andnot<VI12_AVX512VL:mode>3<mask_name>"): Ditto.
13996         (define_insn "*abs<mode>2"): Remove masking support.
13997         (define_insn "abs<VI48_AVX512VL:mode>2_mask"): New.
13998         (define_insn "abs<VI12_AVX512VL:mode>2_mask"): Ditto.
13999         (define_expand "abs<mode>2"): Use VI_AVX2 mode iterator.
14000
14001 2014-10-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14002             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14003             Anna Tikhonova  <anna.tikhonova@intel.com>
14004             Ilya Tocar  <ilya.tocar@intel.com>
14005             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14006             Ilya Verbin  <ilya.verbin@intel.com>
14007             Kirill Yukhin  <kirill.yukhin@intel.com>
14008             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14009
14010         * config/i386/predicates.md (define_predicate "constm1_operand"): New.
14011         * config/i386/sse.md
14012         (define_c_enum "unspec"): Add UNSPEC_CVTINT2MASK.
14013         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI12_AVX512VL:mode>"): New.
14014         (define_insn "<avx512>_cvt<ssemodesuffix>2mask<VI48_AVX512VL:mode>"): Ditto.
14015         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14016         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI12_AVX512VL:mode>"): Ditto.
14017         (define_expand "<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14018         (define_insn "*<avx512>_cvtmask2<ssemodesuffix><VI48_AVX512VL:mode>"): Ditto.
14019
14020 2014-10-15  Renlin Li <renlin.li@arm.com>
14021
14022         * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
14023
14024 2014-10-15  Jakub Jelinek  <jakub@redhat.com>
14025
14026         * tree-ssa-reassoc.c (optimize_range_tests_diff): Perform
14027         MINUS_EXPR in unsigned type to avoid undefined behavior.
14028
14029 2014-10-15  Eric Botcazou  <ebotcazou@adacore.com>
14030
14031         * stor-layout.c (self_referential_size): Do not promote arguments.
14032
14033 2014-10-15  Marek Polacek  <polacek@redhat.com>
14034
14035         * doc/invoke.texi: Update to reflect that GNU11 is the default
14036         mode for C.
14037         * c-common.h (c_language_kind): Update comment.
14038
14039 2014-10-15  Richard Biener  <rguenther@suse.de>
14040
14041         * hash-table.c: Include bconfig.h if building for the host.
14042         * hash-table.h: Do not include ggc.h on the host but just declare
14043         a few ggc allocation templates.
14044
14045 2014-10-15  Joern Rennecke  <joern.rennecke@embecosm.com>
14046             Jeff Law  <law@redhat.com>
14047
14048         * caller-save.c (replace_reg_with_saved_mem): If saved_mode covers
14049         multiple hard registers, use smaller mode derived from MODE.
14050
14051 2014-10-15  Andreas Schwab  <schwab@suse.de>
14052
14053         * explow.c (convert_memory_address_addr_space_1): Mark in_const
14054         as ATTRIBUTE_UNUSED.
14055
14056 2014-10-14  Jan Hubicka  <hubicka@ucw.cz>
14057
14058         * loop-unroll.c: (decide_unrolling_and_peeling): Rename to
14059         (decide_unrolling): ... this one.
14060         (peel_loops_completely): Remove.
14061         (decide_peel_simple): Remove.
14062         (decide_peel_once_rolling): Remove.
14063         (decide_peel_completely): Remove.
14064         (peel_loop_simple): Remove.
14065         (peel_loop_completely): Remove.
14066         (unroll_and_peel_loops): Rename to ...
14067         (unroll_loops): ... this one; handle only unrolling.
14068         * cfgloop.h (lpt_dec): Remove LPT_PEEL_COMPLETELY and
14069         LPT_PEEL_SIMPLE.
14070         (UAP_PEEL): Remove.
14071         (unroll_and_peel_loops): Remove.
14072         (unroll_loops): New.
14073         * passes.def: Replace
14074         pass_rtl_unroll_and_peel_loops by pass_rtl_unroll_loops.
14075         * loop-init.c (gate_rtl_unroll_and_peel_loops,
14076         rtl_unroll_and_peel_loops): Rename to ...
14077         (gate_rtl_unroll_loops, rtl_unroll_loops): ... these; update.
14078         (pass_rtl_unroll_and_peel_loops): Rename to ...
14079         (pass_rtl_unroll_loops): ... this one.
14080         * tree-pass.h (make_pass_rtl_unroll_and_peel_loops): Remove.
14081         (make_pass_rtl_unroll_loops): New.
14082         * tree-ssa-loop-ivcanon.c: (estimated_peeled_sequence_size, try_peel_loop): New.
14083         (canonicalize_loop_induction_variables): Update.
14084
14085 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14086
14087         * config/xtensa/xtensa.h (TARGET_HARD_FLOAT_POSTINC): new macro.
14088         * config/xtensa/xtensa.md (*lsiu, *ssiu): add dependency on
14089         !TARGET_HARD_FLOAT_POSTINC.
14090         (*lsip, *ssip): new instructions.
14091
14092 2014-10-14  Max Filippov  <jcmvbkbc@gmail.com>
14093
14094         * config/xtensa/xtensa.md (divsf3, *recipsf2, sqrtsf2, *rsqrtsf2):
14095         remove.
14096
14097 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14098
14099         * explow.c (convert_memory_address_addr_space): Rename to ...
14100         (convert_memory_address_addr_space_1): This.  Add in_const argument.
14101         Inside a CONST RTL, permute the conversion and addition of constant
14102         for zero and sign extended pointers.
14103         (convert_memory_address_addr_space): New function.
14104
14105 2014-10-14  Andrew Pinski  <apinski@cavium.com>
14106
14107         Revert:
14108         2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
14109
14110         PR middle-end/49721
14111         * explow.c (convert_memory_address_addr_space): Also permute the
14112         conversion and addition of constant for zero-extend.
14113
14114 2014-10-14  DJ Delorie  <dj@redhat.com>
14115
14116         * config/msp430/msp430-modes.def (PSI): Add.
14117
14118         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs_has_padding): New.
14119         (msp430_hard_regno_nregs_with_padding): New.
14120         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): New.
14121         (msp430_hard_regno_nregs_has_padding): New.
14122         (msp430_hard_regno_nregs_with_padding): New.
14123         (msp430_unwind_word_mode): Use PSImode instead of SImode.
14124         (msp430_addr_space_legitimate_address_p): New.
14125         (msp430_asm_integer): New.
14126         (msp430_init_dwarf_reg_sizes_extra): New.
14127         (msp430_print_operand): Use X suffix for PSImode even in small model.
14128         * config/msp430/msp430.h (POINTER_SIZE): Use 20 bits, not 32.
14129         (PTR_SIZE): ...but 4 bytes for EH.
14130         (SIZE_TYPE): Use __int20.
14131         (PTRDIFF_TYPE): Likewise.
14132         (INCOMING_FRAME_SP_OFFSET): Adjust.
14133         * config/msp430/msp430.md (movqi_topbyte): New.
14134         (movpsi): Use fixed suffixes.
14135         (movsipsi2): Enable for 430X, not large model.
14136         (extendhipsi2): Likewise.
14137         (zero_extendhisi2): Likewise.
14138         (zero_extendhisipsi2): Likewise.
14139         (extend_and_shift1_hipsi2): Likewise.
14140         (extendpsisi2): Likewise.
14141         (*bitbranch<mode>4_z): Fix suffix logic.
14142
14143 2014-10-14  Eric Botcazou  <ebotcazou@adacore.com>
14144
14145         PR ada/62019
14146         * tree-eh.c (tree_could_trap) <FUNCTION_DECL>: Revamp and really
14147         do not choke on null node.
14148         <VAR_DECL>: Likewise.
14149
14150 2014-10-14  DJ Delorie  <dj@redhat.com>
14151
14152         * machmode.h (int_n_data_t): New.
14153         (int_n_enabled_p): New.
14154         (int_n_data): New.
14155         * tree.c (int_n_enabled_p): New.
14156         (int_n_trees): New.
14157         (make_or_reuse_type): Check for all __intN types, not just
14158         __int128.
14159         (build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
14160         entries.
14161         * tree.h (int128_integer_type_node): Remove.
14162         (int128_unsigned_type_node): Remove.
14163         (int_n_trees_t): New.
14164         (int_n_enabled_p): New.
14165         (int_n_trees): New.
14166         * toplev.c (standard_type_bitsize): New.
14167         (do_compile): Check which __intN types are enabled for the current
14168         run.
14169         * builtin-types.def (BT_INT128): Remove.
14170         (BT_UINT128): Remove.
14171         * machmode.def: Add macro to create __int128 for all targets.
14172         * stor-layout.c (mode_for_size): Support __intN types.
14173         (smallest_mode_for_size): Likewise.
14174         (initialize_sizetypes): Support __intN types.
14175         * genmodes.c (struct mode_data): Add int_n field.
14176         (blank_mode): Likewise.
14177         (INT_N): New.
14178         (make_int_n): New.
14179         (emit_insn_modes_h): Count __intN entries and define
14180         NUM_INT_N_ENTS.
14181         (emit_mode_int_n): New.
14182         (emit_insn_modes_c): Call it.
14183         * gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
14184         types, not just __int128.
14185         * tree-core.h (integer_type_kind): Remove __int128-specific
14186         entries, reserve spots for __intN entries.
14187
14188         * config/msp430/msp430-modes.def (PSI): Add.
14189
14190 2014-10-14  Kito Cheng  <kito@0xlab.org>
14191
14192         * ira.c: Fix typo in comment.
14193         * ira.h: Ditto.
14194         * ira-build.c: Ditto.
14195         * ira-color.c: Ditto.
14196         * ira-emit.c: Ditto.
14197         * ira-int.h: Ditto.
14198         * ira-lives.c: Ditto.
14199
14200 2014-10-14  Uros Bizjak  <ubizjak@gmail.com>
14201
14202         PR rtl-optimization/63475
14203         * alias.c (true_dependence_1): Always use get_addr to extract
14204         true address operands from x_addr and mem_addr.  Use extracted
14205         address operands to check for references with alignment ANDs.
14206         Use extracted address operands with find_base_term and
14207         base_alias_check. For noncanonicalized operands call canon_rtx with
14208         extracted address operand.
14209         (write_dependence_1): Ditto.
14210         (may_alias_p): Ditto.  Remove unused calls to canon_rtx.
14211
14212 2014-10-14  Evgeny Stupachenko  <evstupac@gmail.com>
14213
14214         PR target/63534
14215         * config/i386/i386.c (ix86_expand_split_stack_prologue): Make
14216         __morestack local.
14217
14218 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14219             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14220             Anna Tikhonova  <anna.tikhonova@intel.com>
14221             Ilya Tocar  <ilya.tocar@intel.com>
14222             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14223             Ilya Verbin  <ilya.verbin@intel.com>
14224             Kirill Yukhin  <kirill.yukhin@intel.com>
14225             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14226
14227         * config/i386/i386.c
14228         (ix86_expand_sse_movcc): Handle V64QI and V32HI mode.
14229         (ix86_expand_int_vcond): Ditto.
14230
14231 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14232             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14233             Anna Tikhonova  <anna.tikhonova@intel.com>
14234             Ilya Tocar  <ilya.tocar@intel.com>
14235             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14236             Ilya Verbin  <ilya.verbin@intel.com>
14237             Kirill Yukhin  <kirill.yukhin@intel.com>
14238             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14239
14240         * config/i386/i386.c
14241         (emit_reduc_half): Handle V64QI and V32HI mode.
14242         * config/i386/sse.md
14243         (define_mode_iterator VI_AVX512BW): New.
14244         (define_expand "reduc_<code>_<mode>"): Use VI512_48F_12BW.
14245
14246 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14247             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14248             Anna Tikhonova  <anna.tikhonova@intel.com>
14249             Ilya Tocar  <ilya.tocar@intel.com>
14250             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14251             Ilya Verbin  <ilya.verbin@intel.com>
14252             Kirill Yukhin  <kirill.yukhin@intel.com>
14253             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14254
14255         * config/i386/sse.md
14256         (define_mode_iterator REDUC_SMINMAX_MODE): Add V64QI and V32HI modes.
14257
14258 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14259             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14260             Anna Tikhonova  <anna.tikhonova@intel.com>
14261             Ilya Tocar  <ilya.tocar@intel.com>
14262             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14263             Ilya Verbin  <ilya.verbin@intel.com>
14264             Kirill Yukhin  <kirill.yukhin@intel.com>
14265             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14266
14267         * config/i386/i386.c
14268         (ix86_expand_vector_logical_operator): Handle V16SF and V8DF modes.
14269         * config/i386/sse.md
14270         (define_mode_iterator VI): Add V64QI and V32HI modes.
14271
14272 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14273             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14274             Anna Tikhonova  <anna.tikhonova@intel.com>
14275             Ilya Tocar  <ilya.tocar@intel.com>
14276             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14277             Ilya Verbin  <ilya.verbin@intel.com>
14278             Kirill Yukhin  <kirill.yukhin@intel.com>
14279             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14280
14281         * config/i386/sse.md (define_mode_attr avx2_avx512f): Remove.
14282
14283 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14284             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14285             Anna Tikhonova  <anna.tikhonova@intel.com>
14286             Ilya Tocar  <ilya.tocar@intel.com>
14287             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14288             Ilya Verbin  <ilya.verbin@intel.com>
14289             Kirill Yukhin  <kirill.yukhin@intel.com>
14290             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14291
14292         * config/i386/sse.md
14293         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Add masking.
14294         (define_insn "*sse4_1_<code><mode>3<mask_name>"): Ditto.
14295
14296 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14297             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14298             Anna Tikhonova  <anna.tikhonova@intel.com>
14299             Ilya Tocar  <ilya.tocar@intel.com>
14300             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14301             Ilya Verbin  <ilya.verbin@intel.com>
14302             Kirill Yukhin  <kirill.yukhin@intel.com>
14303             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14304
14305         * config/i386/sse.md
14306         (define_insn "avx512bw_umulhrswv32hi3<mask_name>"): New.
14307         (define_expand "<ssse3_avx2>_pmulhrsw<mode>3_mask"): Ditto.
14308
14309 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14310             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14311             Anna Tikhonova  <anna.tikhonova@intel.com>
14312             Ilya Tocar  <ilya.tocar@intel.com>
14313             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14314             Ilya Verbin  <ilya.verbin@intel.com>
14315             Kirill Yukhin  <kirill.yukhin@intel.com>
14316             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14317
14318         * config/i386/sse.md
14319         (define_c_enum "unspec"): Add UNSPEC_PMADDWD512.
14320         (define_mode_iterator VI2_AVX2): Add V32HI mode.
14321         (define_expand "mul<mode>3<mask_name>"): Add masking.
14322         (define_insn "*mul<mode>3<mask_name>"): Ditto.
14323         (define_expand "<s>mul<mode>3_highpart<mask_name>"): Ditto.
14324         (define_insn "*<s>mul<mode>3_highpart<mask_name>"): Ditto.
14325         (define_insn "avx512bw_pmaddwd512<mode><mask_name>"): New.
14326         (define_mode_attr SDOT_PMADD_SUF): Ditto.
14327         (define_expand "sdot_prod<mode>"): Add <SDOT_PMADD_SUF>.
14328         (define_insn "<sse2_avx2>_packssdw<mask_name>"): Add masking.
14329         (define_insn "*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>"): Ditto.
14330         (define_insn "avx2_packusdw"): Delete.
14331         (define_insn "sse4_1_packusdw"): Ditto.
14332         (define_insn "<sse4_1_avx2>_packusdw<mask_name>"): New.
14333
14334 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14335             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14336             Anna Tikhonova  <anna.tikhonova@intel.com>
14337             Ilya Tocar  <ilya.tocar@intel.com>
14338             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14339             Ilya Verbin  <ilya.verbin@intel.com>
14340             Kirill Yukhin  <kirill.yukhin@intel.com>
14341             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14342
14343         * config/i386/sse.md
14344         (define_insn "vec_dup<mode>"): Update constraints.
14345
14346 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14347             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14348             Anna Tikhonova  <anna.tikhonova@intel.com>
14349             Ilya Tocar  <ilya.tocar@intel.com>
14350             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14351             Ilya Verbin  <ilya.verbin@intel.com>
14352             Kirill Yukhin  <kirill.yukhin@intel.com>
14353             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14354
14355         * config/i386/sse.md
14356         (define_mode_iterator SSESCALARMODE): Add V4TI mode.
14357         (define_insn "<ssse3_avx2>_palignr<mode>_mask"): New.
14358         (define_insn "<ssse3_avx2>_palignr<mode>"): Add EVEX version.
14359
14360 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14361             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14362             Anna Tikhonova  <anna.tikhonova@intel.com>
14363             Ilya Tocar  <ilya.tocar@intel.com>
14364             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14365             Ilya Verbin  <ilya.verbin@intel.com>
14366             Kirill Yukhin  <kirill.yukhin@intel.com>
14367             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14368
14369         * config/i386/sse.md
14370         (define_expand "mul<mode>3<mask_name>"): Add masking.
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/sse.md
14382         (define_insn "<sse2_avx2>_packsswb<mask_name>"): Add masking.
14383         (define_insn "<sse2_avx2>_packuswb<mask_name>"): Ditto.
14384
14385 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14386             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14387             Anna Tikhonova  <anna.tikhonova@intel.com>
14388             Ilya Tocar  <ilya.tocar@intel.com>
14389             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14390             Ilya Verbin  <ilya.verbin@intel.com>
14391             Kirill Yukhin  <kirill.yukhin@intel.com>
14392             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14393
14394         * config/i386/sse.md
14395         (define_c_enum "unspec"): Add UNSPEC_DBPSADBW, UNSPEC_PMADDUBSW512.
14396         (define_insn "avx512bw_pmaddubsw512<mode><mask_name>"): New.
14397         (define_insn "<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>"):
14398         Ditto.
14399
14400 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14401             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14402             Anna Tikhonova  <anna.tikhonova@intel.com>
14403             Ilya Tocar  <ilya.tocar@intel.com>
14404             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14405             Ilya Verbin  <ilya.verbin@intel.com>
14406             Kirill Yukhin  <kirill.yukhin@intel.com>
14407             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14408
14409         * config/i386/sse.md
14410         (define_insn "<sse>_andnot<VF_128_256:mode>3<mask_name>"): Add masking,
14411         use VF_128_256 mode iterator and update assembler emit code.
14412         (define_insn "<sse>_andnot<VF_512:mode>3<mask_name>"): New.
14413         (define_expand "<any_logic:code><VF_128_256:mode>3<mask_name>"):
14414         Add masking, use VF_128_256 mode iterator.
14415         (define_expand "<any_logic:code><VF_512:mode>3<mask_name>"): New.
14416         (define_insn "*<any_logic:code><VF_128_256:mode>3<mask_name>"):
14417         Add masking, use VF_128_256 mode iterator and update assembler emit
14418         code.
14419         (define_insn "*<any_logic:code><VF_512:mode>3<mask_name>"): New.
14420         (define_mode_attr avx512flogicsuff): Delete.
14421         (define_insn "avx512f_<logic><mode>"): Ditto.
14422         (define_insn "*andnot<mode>3<mask_name>"): Update MODE_XI, MODE_OI,
14423         MODE_TI.
14424         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
14425
14426 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14427             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14428             Anna Tikhonova  <anna.tikhonova@intel.com>
14429             Ilya Tocar  <ilya.tocar@intel.com>
14430             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14431             Ilya Verbin  <ilya.verbin@intel.com>
14432             Kirill Yukhin  <kirill.yukhin@intel.com>
14433             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14434
14435         * config/i386/sse.md
14436         (define_mode_iterator VI128_128 [V16QI V8HI V2DI]): Delete.
14437         (define_expand "vashr<mode>3<mask_name>"): Add masking,
14438         use VI12_128 mode iterator.
14439         (define_expand "ashrv2di3<mask_name>"): New.
14440
14441 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14442             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14443             Anna Tikhonova  <anna.tikhonova@intel.com>
14444             Ilya Tocar  <ilya.tocar@intel.com>
14445             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14446             Ilya Verbin  <ilya.verbin@intel.com>
14447             Kirill Yukhin  <kirill.yukhin@intel.com>
14448             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14449
14450         * config/i386/i386.c
14451         (ix86_expand_args_builtin): Handle CODE_FOR_avx512vl_cmpv4di3_mask,
14452         CODE_FOR_avx512vl_cmpv8si3_mask, CODE_FOR_avx512vl_ucmpv4di3_mask,
14453         CODE_FOR_avx512vl_ucmpv8si3_mask, CODE_FOR_avx512vl_cmpv2di3_mask,
14454         CODE_FOR_avx512vl_cmpv4si3_mask, CODE_FOR_avx512vl_ucmpv2di3_mask,
14455         CODE_FOR_avx512vl_ucmpv4si3_mask.
14456         * config/i386/sse.md
14457         (define_insn "avx512f_ucmp<mode>3<mask_scalar_merge_name>"): Delete.
14458         "<avx512>_ucmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name>"):New.
14459         (define_insn
14460         "<avx512>_ucmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name>"):Ditto.
14461         (define_expand "<avx512>_eq<mode>3<mask_scalar_merge_name>"): Ditto.
14462         (define_insn "<avx512>_eq<mode>3<mask_scalar_merge_name>_1"): Ditto.
14463         (define_insn "<avx512>_gt<mode>3<mask_scalar_merge_name>"): Ditto.
14464         (define_insn "<avx512>_testm<mode>3<mask_scalar_merge_name>"): Ditto.
14465         (define_insn "<avx512>_testnm<mode>3<mask_scalar_merge_name>"): Ditto.
14466
14467 2014-10-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
14468             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
14469             Anna Tikhonova  <anna.tikhonova@intel.com>
14470             Ilya Tocar  <ilya.tocar@intel.com>
14471             Andrey Turetskiy  <andrey.turetskiy@intel.com>
14472             Ilya Verbin  <ilya.verbin@intel.com>
14473             Kirill Yukhin  <kirill.yukhin@intel.com>
14474             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
14475
14476         * config/i386/sse.md
14477         (define_expand "vec_widen_umult_even_v8si<mask_name>"): Add masking.
14478         (define_insn "*vec_widen_umult_even_v8si<mask_name>"): Ditto.
14479         (define_expand "vec_widen_umult_even_v4si<mask_name>"): Ditto.
14480         (define_insn "*vec_widen_umult_even_v4si<mask_name>"): Ditto.
14481         (define_expand "vec_widen_smult_even_v8si<mask_name>"): Ditto.
14482         (define_insn "*vec_widen_smult_even_v8si<mask_name>"): Ditto.
14483         (define_expand "sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14484         (define_insn "*sse4_1_mulv2siv2di3<mask_name>"): Ditto.
14485         (define_insn "avx512dq_mul<mode>3<mask_name>"): New.
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_insn "avx512f_blendm<mode>"): Delete.
14498         (define_insn "<avx512>_blendm<VI48_AVX512VL:mode>"): New.
14499         (define_insn "<avx512>_blendm<VI12_AVX512VL:mode>"): Ditto..
14500         (define_mode_attr cmp_imm_predicate): Add V8SF, V4DF, V8SI, V4DI, V4SF,
14501         V2DF, V4SI, V2DI, V32HI, V64QI, V16HI, V32QI, V8HI, V16QI modes.
14502         (define_insn
14503         "avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14504         Remove.
14505         (define_insn
14506         "<avx512>_cmp<VI48_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14507         New.
14508         (define_insn
14509         "<avx512>_cmp<VI12_AVX512VL:mode>3<mask_scalar_merge_name><round_saeonly_name>"):
14510         Ditto.
14511         (define_insn "<mask_codefor>avx512f_vec_dup<mode><mask_name>"): Delete.
14512         (define_insn "<avx512>_vec_dup<V48_AVX512VL:mode><mask_name>"): New.
14513         (define_insn "<avx512>_vec_dup<V12_AVX512VL:mode><mask_name>"): Ditto.
14514         (define_insn "<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>"):
14515         Delete.
14516         (define_insn
14517         "<mask_codefor><avx512>_vec_dup_gpr<VI48_AVX512VL:mode><mask_name>"):
14518         New.
14519         (define_insn
14520         "<mask_codefor><avx512>_vec_dup_gpr<VI12_AVX512VL:mode><mask_name>"):
14521         Ditto.
14522         (define_insn·"<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>"):
14523         Delete.
14524         (define_insn
14525         "<mask_codefor><avx512>_vec_dup_mem<VI48_AVX512VL:mode><mask_name>"):
14526         New.
14527         (define_insn
14528         "<mask_codefor><avx512>_vec_dup_mem<VI12_AVX512VL:mode><mask_name>"):
14529         Ditto.
14530
14531 2014-10-14  Richard Biener  <rguenther@suse.de>
14532
14533         PR tree-optimization/63512
14534         * tree-ssa-pre.c (create_expression_by_pieces): Mark stmts
14535         modified.
14536
14537 2014-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
14538
14539         PR target/63260
14540         * config/sh/sh.md (negsf2, negsf2_i, negdf2, negdf2_i, abssf2,
14541         abssf2_i, absdf2, absdf2_i): Remove fp_mode attribute.  Remove use
14542         of FPSCR.
14543         (negsf2_i): Rename to *negsf2_i.
14544         (abssf2_i): Rename to *abssf2_i.
14545         (negdf2_i): Rename to *negdf2_i.
14546         (absdf2_i): Rename to *absdf2_i.
14547
14548 2014-10-14  Felix Yang  <felix.yang@huawei.com>
14549             Jeff Law  <law@redhat.com>
14550
14551         * ira.c (struct equivalence): Change member "is_arg_equivalence" and
14552         "replace" into boolean bitfields; turn member "loop_depth" into a short
14553         integer; add new member "no_equiv" and "reserved".
14554         (no_equiv): Set no_equiv of struct equivalence if register is marked
14555         as having no known equivalence.
14556         (update_equiv_regs): Check all definitions for a multiple-set
14557         register to make sure that the RHS have the same value.
14558
14559 2014-10-13  Richard Henderson  <rth@redhat.com>
14560
14561         * combine-stack-adj.c (no_unhandled_cfa): New.
14562         (maybe_merge_cfa_adjust): New.
14563         (combine_stack_adjustments_for_block): Use them.
14564
14565 2014-10-13  Aldy Hernandez  <aldyh@redhat.com>
14566
14567         * Makefile.in (TAGS): Tag ../include files.
14568
14569 2014-10-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14570
14571         * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Pass format argument
14572         to rs6000_dbx_register_number.
14573         (DWARF_FRAME_REGNUM): Redefine as identity map.
14574         (DWARF2_FRAME_REG_OUT): Call rs6000_dbx_register_number.
14575         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Update.
14576         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Add format
14577         argument to handle .debug_frame and .eh_frame directly.  Always
14578         translate SPE high register numbers.  Add special treatment for CR,
14579         but only in .debug_frame.  Respect RS6000_USE_DWARF_NUMBERING.
14580
14581         * config/rs6000/sysv.h (DBX_REGISTER_NUMBER): Do not undefine.
14582         * config/rs6000/freebsd.h (DBX_REGISTER_NUMBER): Remove.
14583         (RS6000_USE_DWARF_NUMBERING): Define.
14584         * config/rs6000/freebsd64.h (DBX_REGISTER_NUMBER): Remove.
14585         (RS6000_USE_DWARF_NUMBERING): Define.
14586         * config/rs6000/netbsd.h (DBX_REGISTER_NUMBER): Remove.
14587         (RS6000_USE_DWARF_NUMBERING): Define.
14588         * config/rs6000/lynx.h (DBX_REGISTER_NUMBER): Remove.
14589         (RS6000_USE_DWARF_NUMBERING): Define.
14590         * config/rs6000/aix.h (RS6000_USE_DWARF_NUMBERING): Define.
14591         * config/rs6000/darwin.h (RS6000_USE_DWARF_NUMBERING): Define.
14592
14593 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14594
14595         * config/i386/i386.c (ix86_address_cost): Lower cost for
14596         when address contains GOT register.
14597
14598 2014-10-13  Ilya Enkovich  <ilya.enkovich@intel.com>
14599             Vladimir Makarov  <vmakarov@redhat.com>
14600
14601         PR target/8340
14602         PR middle-end/47602
14603         PR rtl-optimization/55458
14604         * config/i386/i386.c (ix86_use_pseudo_pic_reg): New.
14605         (ix86_init_pic_reg): New.
14606         (ix86_select_alt_pic_regnum): Add check on pseudo register.
14607         (ix86_save_reg): Likewise.
14608         (ix86_expand_prologue): Remove PIC register initialization
14609         now performed in ix86_init_pic_reg.
14610         (ix86_output_function_epilogue): Add check on pseudo register.
14611         (set_pic_reg_ever_alive): New.
14612         (legitimize_pic_address): Replace df_set_regs_ever_live with new
14613         set_pic_reg_ever_alive.
14614         (legitimize_tls_address): Likewise.
14615         (ix86_pic_register_p): New check.
14616         (ix86_delegitimize_address): Add check on pseudo register.
14617         (ix86_expand_call): Insert move from pseudo PIC register to ABI
14618         defined REAL_PIC_OFFSET_TABLE_REGNUM.
14619         (TARGET_INIT_PIC_REG): New.
14620         (TARGET_USE_PSEUDO_PIC_REG): New.
14621         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Return INVALID_REGNUM
14622         if pic_offset_table_rtx exists.
14623         * doc/tm.texi.in (TARGET_USE_PSEUDO_PIC_REG, TARGET_INIT_PIC_REG):
14624         Document.
14625         * doc/tm.texi: Regenerate.
14626         * function.c (assign_parms): Generate pseudo register for PIC.
14627         * init-regs.c (initialize_uninitialized_regs): Ignor pseudo PIC
14628         register.
14629         * ira-color.c (color_pass): Add check on pseudo register.
14630         * ira-emit.c (change_loop): Don't create copies for PIC pseudo
14631         register.
14632         * ira.c (split_live_ranges_for_shrink_wrap): Add check on pseudo
14633         register.
14634         (ira): Add target specific PIC register initialization.
14635         (do_reload): Keep PIC pseudo register.
14636         * lra-assigns.c (spill_for): Add checks on pseudo register.
14637         * lra-constraints.c (contains_symbol_ref_p): New.
14638         (lra_constraints): Enable lra risky transformations when PIC is pseudo
14639         register.
14640         * shrink-wrap.c (try_shrink_wrapping): Add check on pseudo register.
14641         * target.def (use_pseudo_pic_reg): New.
14642         (init_pic_reg): New.
14643
14644 2014-10-13  Evgeny Stupachenko  <evstupac@gmail.com>
14645
14646         * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY):
14647         Remove m_SILVERMONT and m_INTEL from the tune.
14648
14649 2014-10-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14650
14651         PR libfortran/63471
14652         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
14653         when _HPUX_SOURCE is defined.
14654
14655 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14656
14657         PR tree-optimization/62127
14658         * tree.c (remap_type_1): When remapping array, remap
14659         also its type.
14660
14661 2014-10-13  Christophe Lyon  <christophe.lyon@linaro.org>
14662
14663         * Makefile.in: (check-%): Update comment, as RUNTESTFLAGS no
14664         longer impact parallelization.
14665
14666 2014-10-13  Jan Hubicka  <hubicka@ucw.cz>
14667
14668         PR bootstrap/63496
14669         * ipa-polymorphic-call.c (extr_type_from_vtbl_ptr_store): Fix pasto.
14670
14671 2014-10-13  Marat Zakirov  <m.zakirov@samsung.com>
14672
14673         * asan.c (instrument_derefs): BIT_FIELD_REF added.
14674
14675 2014-10-13  Richard Biener  <rguenther@suse.de>
14676
14677         PR tree-optimization/63419
14678         * gimple-fold.h (gimple_convert): New function.
14679         * gimple-fold.c (gimple_convert): Likewise.
14680         * tree-ssa-pre.c (create_expression_by_pieces): Use gimple_convert
14681         to split out required conversions early.
14682
14683 2014-10-13  Richard Sandiford  <richard.sandiford@arm.com>
14684
14685         * rtlanal.c (generic_subrtx_iterator <T>::add_subrtxes_to_queue):
14686         Add the parts of an insn in reverse order, with the pattern at
14687         the top of the queue.  Detect when we're iterating over a SEQUENCE
14688         pattern and in that case just consider patterns of subinstructions.
14689
14690 2014-10-12  Oleg Endo  <olegendo@gcc.gnu.org>
14691
14692         PR target/59401
14693         * config/sh/sh-protos (sh_find_equiv_gbr_addr): Use rtx_insn* instead
14694         of rtx.
14695         * config/sh/sh.c (sh_find_equiv_gbr_addr): Use def chains instead of
14696         insn walking.
14697         (sh_find_equiv_gbr_addr): Do nothing if input mem is already a GBR
14698         address.  Use def chains to handle GBR clobbering call insns.
14699
14700 2014-10-12  Trevor Saunders  <tsaunders@mozilla.com>
14701
14702         * asan.c, cfgloop.c, cfgloop.h, cgraph.c, cgraph.h,
14703         config/darwin.c, config/m32c/m32c.c, config/mep/mep.c,
14704         config/mips/mips.c, config/rs6000/rs6000.c, dwarf2out.c,
14705         function.c, function.h, gimple-ssa.h, libfuncs.h, optabs.c,
14706         output.h, rtl.h, sese.c, symtab.c, tree-cfg.c, tree-dfa.c,
14707         tree-ssa.c, varasm.c: Use hash-table instead of hashtab.
14708         * doc/gty.texi (for_user): Document new option.
14709         * gengtype.c (create_user_defined_type): Don't try to get a struct for
14710         char.
14711         (walk_type): Don't error out on for_user option.
14712         (write_func_for_structure): Emit user marking routines if requested by
14713         for_user option.
14714         (write_local_func_for_structure): Likewise.
14715         (main): Mark types with for_user option as used.
14716         * ggc.h (gt_pch_nx): Add overload for unsigned int.
14717         * hash-map.h (hash_map::hash_entry::pch_nx_helper): AddOverloads.
14718         * hash-table.h (ggc_hasher): New struct.
14719         (hash_table::create_ggc): New function.
14720         (gt_pch_nx): New overload for hash_table.
14721
14722 2014-10-11  Oleg Endo  <olegendo@gcc.gnu.org>
14723
14724         * config/sh/sh.h (TARGET_SH4A_ARCH): Remove macro.
14725         * config/sh/sh.h: Replace uses of TARGET_SH4A_ARCH with TARGET_SH4A.
14726         * config/sh/sh.c: Likewise.
14727         * config/sh/sh-mem.cc: Likewise.
14728         * config/sh/sh.md: Likewise.
14729         * config/sh/predicates.md: Likewise.
14730         * config/sh/sync.md: Likewise.
14731
14732 2014-10-11  Martin Liska  <mliska@suse.cz>
14733
14734         PR middle-end/63376
14735         * cgraphunit.c (symbol_table::process_new_functions): Missing call
14736         for call_cgraph_insertion_hooks added.
14737
14738 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
14739
14740         PR c/63495
14741         * stor-layout.c (min_align_of_type): Don't decrease alignment
14742         through BIGGEST_FIELD_ALIGNMENT or ADJUST_FIELD_ALIGN if
14743         TYPE_USER_ALIGN is set.
14744
14745 2014-10-10  Uros Bizjak  <ubizjak@gmail.com>
14746
14747         PR rtl-optimization/63483
14748         * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
14749         references when alignment ANDs are involved.
14750         (write_dependence_p): Ditto.
14751         (may_alias_p): Ditto.
14752
14753 2014-10-10  Marek Polacek  <polacek@redhat.com>
14754
14755         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_OBJECT_SIZE.
14756         * doc/invoke.texi: Document -fsanitize=object-size.
14757         * flag-types.h (enum sanitize_code): Add SANITIZE_OBJECT_SIZE and
14758         or it into SANITIZE_UNDEFINED.
14759         * gimple-fold.c (gimple_fold_call): Optimize IFN_UBSAN_OBJECT_SIZE.
14760         * internal-fn.c (expand_UBSAN_OBJECT_SIZE): New function.
14761         * internal-fn.def (UBSAN_OBJECT_SIZE): Define.
14762         * opts.c (common_handle_option): Handle -fsanitize=object-size.
14763         * ubsan.c: Include tree-object-size.h.
14764         (ubsan_type_descriptor): Call tree_to_uhwi instead of tree_to_shwi.
14765         (ubsan_expand_bounds_ifn): Use false instead of 0.
14766         (ubsan_expand_objsize_ifn): New function.
14767         (instrument_object_size): New function.
14768         (pass_ubsan::execute): Add object size instrumentation.
14769         * ubsan.h (ubsan_expand_objsize_ifn): Declare.
14770
14771 2014-10-10  Richard Henderson  <rth@redhat.com>
14772
14773         PR target/63404
14774         * shrink-wrap.c (move_insn_for_shrink_wrap): Don't use single_set.
14775         Restrict the set of expressions we're willing to move.
14776
14777 2014-10-10  Jeff Law  <law@redhat.com>
14778
14779         * ira.c (struct equivalence): Promote INIT_INSNs field to
14780         an rtx_insn_list.  Add comments.
14781         (no_equiv): Promote LIST to an rtx_insn_list.  Update
14782         testing for and creating the special marker.  Use methods
14783         to extract the insn and next pointers.  Promote INSN to an
14784         rtx_insn.
14785         (update_equiv_regs): Update test for special marker in the
14786         INIT_INSNs list.
14787
14788 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14789
14790         * configure.ac: Add --enable-fix-cortex-a53-835769 option.
14791         * configure: Regenerate.
14792         * config/aarch64/aarch64.c (aarch64_override_options): Handle
14793         TARGET_FIX_ERR_A53_835769_DEFAULT.
14794         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): Set Init
14795         value to 2.
14796         * doc/install.texi (aarch64*-*-*): Document
14797         new --enable-fix-cortex-a53-835769 option.
14798
14799 2014-10-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14800             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
14801
14802         * config/aarch64/aarch64.h (FINAL_PRESCAN_INSN): Define.
14803         (ADJUST_INSN_LENGTH): Define.
14804         * config/aarch64/aarch64.opt (mfix-cortex-a53-835769): New option.
14805         * config/aarch64/aarch64.c (is_mem_p): New function.
14806         (is_memory_op): Likewise.
14807         (aarch64_prev_real_insn): Likewise.
14808         (is_madd_op): Likewise.
14809         (dep_between_memop_and_curr): Likewise.
14810         (aarch64_madd_needs_nop): Likewise.
14811         (aarch64_final_prescan_insn): Likewise.
14812         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-835769
14813         and -mno-fix-cortex-a53-835769 options.
14814
14815 2014-10-10  Jakub Jelinek  <jakub@redhat.com>
14816
14817         PR tree-optimization/63464
14818         * tree-switch-conversion.c (struct case_bit_test): Remove
14819         hi and lo fields, add wide_int mask field.
14820         (emit_case_bit_tests): Add MAXVAL argument, rewrite uses of
14821         hi/lo fields into wide_int mask operations, optimize by pretending
14822         minval to be 0 if maxval is small enough.
14823         (process_switch): Adjust caller.
14824
14825 2014-10-10  Richard Biener  <rguenther@suse.de>
14826
14827         PR tree-optimization/63379
14828         * tree-vect-slp.c (vect_get_constant_vectors): Do not compute
14829         a neutral operand for min/max when it is not a reduction chain.
14830
14831 2014-10-10  Richard Biener  <rguenther@suse.de>
14832
14833         PR tree-optimization/63476
14834         * tree-ssa-pre.c (struct bb_bitmap_sets): Add vop_on_exit member.
14835         (BB_LIVE_VOP_ON_EXIT): New define.
14836         (create_expression_by_pieces): Assign VUSEs to stmts.
14837         (compute_avail): Track BB_LIVE_VOP_ON_EXIT.
14838         (pass_pre::execute): Assert virtual SSA form is up-to-date
14839         after insertion.
14840
14841 2014-10-10  Eric Botcazou  <ebotcazou@adacore.com>
14842
14843         * lra-assigns.c (assign_by_spills): Error out on spill failure.
14844
14845 2014-10-09  Markus Trippelsdorf  <markus@trippelsdorf.de>
14846
14847         * pa-polymorphic-call.c (check_stmt_for_type_change): Move
14848         assertion.
14849
14850 2014-10-09  Richard Biener  <rguenther@suse.de>
14851
14852         PR tree-optimization/63380
14853         * tree-ssa-tail-merge.c (stmt_local_def): Exclude stmts that
14854         may trap.
14855
14856 2014-10-09  Joern Rennecke  <joern.rennecke@embecosm.com>
14857
14858         * config/avr/avr.opt (mmcu=): Change to have a string value.
14859         (mn-flash=, mskip-bug, march=, mrmw): New options.
14860         (HeaderInclude): New.
14861         (mmcu=): Remove Var / Init clauses.
14862         * config/avr/avr.h (DRIVER_SELF_SPECS): Translate -mmcu into a
14863         -specs option.
14864         (SYMBOL_FLAG_IO, SYMBOL_FLAG_ADDRESS): Define.
14865         (ASM_OUTPUT_ALIGNED_BSS): Use avr_asm_asm_output_aligned_bss.
14866         (SYMBOL_FLAG_IO_LOW): Define.
14867         (avr_device_to_as, avr_device_to_ld): Don't declare.
14868         (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
14869         (avr_device_to_devicelib, avr_device_to_sp8): Likewise.
14870         (EXTRA_SPEC_FUNCTIONS): Don't define.
14871         (ASM_SPEC): Translate -arch= option to -mmcu= option.
14872         (LINK_SPEC): Translate -arch= option to -m= option.
14873         Don't use device_to_ld / device_to_data_start.
14874         (STARTFILE_SPEC): Now empty.
14875         (ASM_SPEC): Add -%{mrelax: --mlink-relax}.
14876         * config/avr/gen-avr-mmcu-specs.c: New file.
14877         * config/avr/t-avr (gen-avr-mmcu-specs$(build_exeext)): New rule.
14878         (s-device-specs): Likewise.
14879         (GCC_PASSES): Add s-device-specs.
14880         (install-driver): Depend on install-device-specs.
14881         (install-device-specs): New rule.
14882         * config/avr/avr.c (avr_option_override): Look up mcu arch by
14883         avr_arch_index and provide fallback initialization for avr_n_flash.
14884         (varasm.h): #include.
14885         (avr_print_operand) <i>: Allow SYMBOL_REF with SYMBOL_FLAG_IO;
14886         (avr_handle_addr_attribute, avr_eval_addr_attrib): New functions.
14887         (avr_attribute_table): Add "io", "address" and "io_low".
14888         (avr_asm_output_aligned_decl_common): Change type of decl to tree.
14889         Add special handling for symbols with "io" and/or "address" attributes.
14890         (avr_asm_asm_output_aligned_bss): New function.
14891         (avr_encode_section_info): Set SYMBOL_FLAG_IO and SYMBOL_FLAG_ADDRESS
14892         as appropriate.  Handle io_low attribute.
14893         (avr_out_sbxx_branch): Handle symbolic io addresses.
14894         (avr_xload_libgcc_p, avr_nonconst_pointer_addrspace): Use
14895         avr_n_flash instead of avr_current_device->n_flash.
14896         (avr_pgm_check_var_decl, avr_insert_attributes): Likewise.
14897         (avr_emit_movmemhi): Likewise.
14898         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Likewise.
14899         Use TARGET_RMW instead of avr_current_device->dev_attributes.
14900         Don't define avr_current_device->macro (that's the specfile's job).
14901         Use TARGET_SKIP_BUG instead of avr_current_device->errata_skip.
14902         * config/avr/avr.c (avr_2word_insn_p): Likewise.
14903         * config/avr/avr.md (*cpse.ne): Likewise.
14904         (mov<mode>): Use avr_eval_addr_attrib.
14905         (cbi): Change constraint for low_io_address_operand operand to "i".
14906         (sbi, sbix_branch, sbix_branch_bit7, insv.io, insv.not.io): Likewise.
14907         * config/avr/predicates.md (io_address_operand):
14908         Allow SYMBOL_REF with SYMBOL_FLAG_IO.
14909         (low_io_address_operand): Allow SYMBOL_REF with SYMBOL_FLAG_IO_LOW.
14910         * config/avr/avr-protos.h (avr_asm_output_aligned_decl_common):
14911         Update prototype.
14912         (avr_eval_addr_attrib, avr_asm_asm_output_aligned_bss): Prototype.
14913         * config/avr/genmultilib.awk: Use -march=.
14914         Remove Multilib matches processing.
14915         * config/avr/t-multilib, config/avr/avr-tables.opt: Regenerate.
14916         * config/avr/avr-arch.h: Add double include guard.
14917         (avr_mcu_t) <library_name>: Update comment.
14918         * config/avr/driver-avr.c (avr_device_to_as): Delete.
14919         (avr_device_to_ld, avr_device_to_data_start): Likewise.
14920         (avr_device_to_startfiles, avr_device_to_devicelib): Likewise.
14921         (avr_device_to_sp8): Likewise.
14922         * config/avr/genopt.sh:  Instead avr_mcu, emit an Enum for avr_arch.
14923
14924         * doc/extend.texi (io, address): Document new AVR variable attributes.
14925         (io_low): Likewise.
14926
14927 2014-10-09  Marek Polacek  <polacek@redhat.com>
14928
14929         * doc/invoke.texi: Document -fsanitize=bool and -fsanitize=enum.
14930
14931 2014-10-08  Richard Biener  <rguenther@suse.de>
14932
14933         PR tree-optimization/61969
14934         * tree-nrv.c (pass_nrv::execute): Properly test for automatic
14935         variables.
14936
14937 2014-10-09  Richard Biener  <rguenther@suse.de>
14938
14939         PR tree-optimization/63445
14940         * tree-vrp.c (simplify_cond_using_ranges): Only warn about
14941         overflow for non-equality compares.
14942
14943 2014-10-09  Uros Bizjak  <ubizjak@gmail.com>
14944
14945         PR rtl-optimization/57003
14946         * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14947         also check CALL_INSN_FUNCTION_USAGE for clobbers again after
14948         killing regs_invalidated_by_call.
14949
14950 2014-10-08  Teresa Johnson  <tejohnson@google.com>
14951
14952         PR bootstrap/63432.
14953         * tree-ssa-threadupdate.c (estimated_freqs_path): New function.
14954         (ssa_fix_duplicate_block_edges): Invoke it.
14955         (mark_threaded_blocks): Make two passes to avoid ordering dependences.
14956
14957 2014-10-08  Oleg Endo  <olegendo@gcc.gnu.org>
14958
14959         PR target/52941
14960         * config/sh/sync.md (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
14961         atomic_fetch_<fetchop_name>si_hard,
14962         atomic_fetch_<fetchop_name><mode>_hard, atomic_fetch_nandsi_hard,
14963         atomic_fetch_nand<mode>_hard, atomic_<fetchop_name>_fetchsi_hard,
14964         atomic_<fetchop_name>_fetch<mode>_hard, atomic_nand_fetchsi_hard,
14965         atomic_nand_fetch<mode>_hard): Add missing set of T_REG.
14966
14967 2014-10-08  Rong Xu  <xur@google.com>
14968
14969         * gcov-tool.c (profile_overlap): New driver function
14970         to compute profile overlap.
14971         (print_overlap_usage_message): New.
14972         (overlap_usage): New.
14973         (do_overlap): New.
14974         (print_usage): Add calls to overlap function.
14975         (main): Ditto.
14976         * doc/gcov-tool.texi: Add documentation.
14977
14978 2014-10-08  Steve Ellcey  <sellcey@mips.com>
14979
14980         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Change
14981         LINUX64_DRIVER_SELF_SPECS to LINUX_DRIVER_SELF_SPECS
14982
14983 2014-10-08  Jan Hubicka  <hubicka@ucw.cz>
14984
14985         * ipa-polymorphic-call.c (extr_type_from_vtbl_store): Do better
14986         pattern matching of MEM_REF.
14987         (check_stmt_for_type_change): Update.
14988
14989 2014-10-08  Steve Ellcey  <sellcey@mips.com>
14990
14991         * config/mips/linux64.h: Remove.
14992         * config/mips/gnu-user64.h: Remove.
14993         * gcc.config (mips*-*-*): Remove references to linux64.h and
14994         gnu-user64.h
14995         * config/mips/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Replace
14996         with modified version from gnu-user64.h.
14997         (LINUX_DRIVER_SELF_SPECS): Update parts from gnu-user64.h.
14998         (LOCAL_LABEL_PREFIX): Copy from gnu-user64.h.
14999         * config/mips/linux.h (GNU_USER_LINK_EMULATION32): Copy from
15000         linux64.h.
15001         (GNU_USER_LINK_EMULATION64): Ditto.
15002         (GNU_USER_LINK_EMULATIONN32): Ditto.
15003         (GLIBC_DYNAMIC_LINKER32): Ditto.
15004         (GLIBC_DYNAMIC_LINKER64): Ditto.
15005         (GLIBC_DYNAMIC_LINKERN32): Ditto.
15006         (UCLIBC_DYNAMIC_LINKER32): Ditto.
15007         (UCLIBC_DYNAMIC_LINKER64): Ditto.
15008         (UCLIBC_DYNAMIC_LINKERN32): Ditto.
15009         (BIONIC_DYNAMIC_LINKERN32): Ditto.
15010         (GNU_USER_DYNAMIC_LINKERN32): Ditto.
15011         (GLIBC_DYNAMIC_LINKER): Delete.
15012         (UCLIBC_DYNAMIC_LINKER): Delete.
15013
15014 2014-10-08  Joern Rennecke  <joern.rennecke@embecosm.com>
15015             Richard Biener  <rguenther@suse.de>
15016
15017         * cfgexpand.c (expand_debug_expr) <TARGET_MEM_REF>:
15018         Get address space from operand 0 (BASE).
15019
15020 2014-10-07  Iain Sandoe  <iain@codesourcery.com>
15021
15022         PR target/61387
15023         * config/i386/i386.c (x86_output_mi_thunk): Fix darwin fallout.
15024
15025 2014-10-07  Aldy Hernandez  <aldyh@redhat.com>
15026
15027         * dwarf2out.c: Remove current_function_has_inlines.
15028         (gen_subprogram_die): Same.
15029         (gen_inlined_subroutine_die): Same.
15030
15031 2014-10-07  Ilya Tocar  <ilya.tocar@intel.com>
15032
15033         * config/i386/adxintrin.h (_subborrow_u64): Use long long for param
15034         type.
15035         (_addcarry_u64): Ditto.
15036         (_addcarryx_u64): Ditto.
15037
15038 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15039
15040         * cgraph.h (cgraph_node::get_fun): Declare.
15041         * cgraph.c (cgraph_node::get_fun): New method.
15042         * ipa-inline.c (can_inline_edge_p): Use it.
15043
15044 2014-10-07  Eric Botcazou  <ebotcazou@adacore.com>
15045
15046         * lto-opts.c (lto_write_options): Handle -fmath-errno, -fsigned-zeros
15047         and -ftrapping-math.
15048         * lto-wrapper.c (merge_and_complain): Likewise.
15049         (run_gcc): Likewise.
15050
15051 2014-10-06  Rong Xu  <xur@google.com>
15052
15053         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): New param.
15054         * tree-profile.c: (params.h): New include.
15055         (init_ic_make_global_vars): Make __gcov_indirect_call_topn_callee
15056         and __gcov_indirect_call_topn_counters for
15057         indirect_call_topn_profile.
15058         (gimple_init_edge_profiler): New decls for
15059         __gcov_indirect_call_topn_profiler.
15060         (gimple_gen_ic_profiler): Generate the correct profiler call.
15061         (gimple_gen_ic_func_profiler): Fix format.
15062         * value-prof.c (params.h): New include.
15063         (dump_histogram_value): Hanlde indirect_call_topn counters.
15064         (stream_in_histogram_value): Ditto.
15065         (gimple_indirect_call_to_profile): Use indirect_call_topn
15066         profile when PARAM_INDIR_CALL_TOPN_PROFILE is set.
15067         (gimple_find_values_to_profile): Hanlde indirect_call_topn
15068         counters.
15069         * value-prof.h (enum hist_type): Histrogram type for
15070         indirect_call_topn counters.
15071         * profile.c (instrument_values): Instrument
15072         indirect_call_topn counters.
15073
15074 2014-10-06  Rong Xu  <xur@google.com>
15075
15076         * Makefile.in: Fix dependence.
15077         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Add
15078         indirect call topn profiler.
15079         * gcov-io.h: Ditto.
15080
15081 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15082
15083         * calls.c (expand_call): Do not use the target as the return slot if
15084         it is not sufficiently aligned.
15085
15086 2014-10-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15087
15088         * config/rs6000/rs6000.c (analyze_swaps commentary): Add
15089         discussion of permutes and why we don't handle them.
15090
15091 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15092
15093         * config/sparc/predicates.md (int_register_operand): Delete.
15094
15095 2014-10-06  Eric Botcazou  <ebotcazou@adacore.com>
15096
15097         * dwarf2cfi.c (create_pseudo_cfg): Fix trace numbering.
15098
15099 2014-10-06  Jakub Jelinek  <jakub@redhat.com>
15100
15101         * ubsan.h (ubsan_get_source_location): New prototype.
15102         * ubsan.c (ubsan_source_location_type): New variable.
15103         Function renamed to ...
15104         (ubsan_get_source_location_type): ... this.  Cache
15105         return value in ubsan_source_location_type variable.
15106         (ubsan_source_location, ubsan_create_data): Use
15107         ubsan_get_source_location_type instead of
15108         ubsan_source_location_type.
15109         * asan.c (asan_protect_global): Don't protect globals
15110         with ubsan_get_source_location_type () type.
15111         (asan_add_global): Provide global decl location info
15112         if possible.
15113
15114 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15115
15116         * ipa-prop.c (try_make_edge_direct_virtual_call): Remove overactive
15117         sanity check.
15118
15119 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15120
15121         * ipa-polymorphic-call.c (possible_placement_new): Fix condition
15122         on size.
15123         (ipa_polymorphic_call_context::restrict_to_inner_type): Do not walk
15124         into vptr pointer.
15125         (ipa_polymorphic_call_context::dump): Fix formating.
15126         (walk_ssa_copies): Add logic avoiding loops; update uses.
15127         * ipa-prop.c (ipa_analyze_call_uses): Compute vptr_changed.
15128
15129 2014-10-02  Mark Wielaard  <mjw@redhat.com>
15130
15131         PR debug/63239
15132         * dwarf2out.c (gen_subprogram_die): When a member function is
15133         explicitly deleted then add a DW_AT_GNU_deleted attribute.
15134         * langhooks.h (struct lang_hooks_for_decls): Add
15135         function_decl_deleted_p langhook.
15136         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Define.
15137         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_DELETED_P.
15138
15139 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15140
15141         * ipa-polymorphic-call.c (walk_ssa_copies): Recognize
15142         NULL pointer checks.
15143         (ipa_polymorphic_call_context::get_dynamic_type): Return true
15144         if type doesn't change.
15145         * cgraph.h (cgraph_indirect_call_info): New flag.
15146         * cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
15147         (cgraph_node::dump): Dump it.
15148         * ipa-prop.c (ipa_analyze_call_uses):  Ignore return valud
15149         of context.get_dynamic_type.
15150         (ipa_make_edge_direct_to_target): Do not speculate
15151         edge that is already speuclative.
15152         (try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
15153         speculate to __builtin_unreachable
15154         (ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
15155         vptr_changed.
15156         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
15157
15158 2014-10-04  Jan Hubicka  <hubicka@ucw.cz>
15159
15160         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Call
15161         get_dynamic_type; drop TODO.
15162         * ipa-polymorphic-call.c
15163         (ipa_polymorphic_call_context::get_dynamic_type): Be ready
15164         for otr_type to be unknown.
15165
15166 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15167
15168         * common/config/score/score-common.c: Remove.
15169         * config.gcc: Remove support for score-*.
15170         * config/score/constraints.md: Remove.
15171         * config/score/elf.h: Remove.
15172         * config/score/predicates.md: Remove.
15173         * config/score/score-conv.h: Remove.
15174         * config/score/score-generic.md: Remove.
15175         * config/score/score-modes.def: Remove.
15176         * config/score/score-protos.h: Remove.
15177         * config/score/score.c: Remove.
15178         * config/score/score.h: Remove.
15179         * config/score/score.md: Remove.
15180         * config/score/score.opt: Remove.
15181         * doc/md.texi: Don't document score-*.
15182
15183 2014-10-04  Trevor Saunders  <tsaunders@mozilla.com>
15184
15185         PR pch/63429
15186         * genconditions.c: Directly include ggc.h before rtl.h.
15187
15188 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15189
15190         * ipa-polymorphic-call.c
15191         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Fix
15192         code determining speculative type.
15193         (ipa_polymorphic_call_context::combine_with): Fix speculation merge.
15194
15195 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15196
15197         * altivec.md (altivec_lvsl): New define_expand.
15198         (altivec_lvsl_direct): Rename define_insn from altivec_lvsl.
15199         (altivec_lvsr): New define_expand.
15200         (altivec_lvsr_direct): Rename define_insn from altivec_lvsr.
15201         * rs6000.c (rs6000_expand_builtin): Change to use
15202         altivec_lvs[lr]_direct; remove commented-out code.
15203
15204 2014-10-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15205
15206         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
15207         Issue a warning message when vec_lvsl or vec_lvsr is used with a
15208         little endian target.
15209
15210 2014-10-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15211
15212         * tree-pretty-print.c (dump_location): Make it extern. Dump also
15213         the column.
15214         * tree-pretty-print.h (dump_location): Declare.
15215         * gimple-pretty-print.c (dump_gimple_phi): Use dump_location.
15216         (pp_gimple_stmt_1): Likewise.
15217         (dump_implicit_edges): Likewise.
15218         * gimplify.c (gimplify_call_expr): Use LOCATION_FILE and
15219         LOCATION_LINE.
15220
15221
15222 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15223
15224         * gcc.c (driver::global_initializations): Remove "const" so
15225         that GCC_DRIVER_HOST_INITIALIZATION can modify decoded_options
15226         and decoded_options_count.
15227
15228 2014-10-03  Maciej W. Rozycki  <macro@codesourcery.com>
15229
15230         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Remove
15231         macro.
15232         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Handle
15233         TARGET_E500_DOUBLE case here.
15234
15235 2014-10-03  Marc Glisse  <marc.glisse@inria.fr>
15236
15237         PR c++/54427
15238         PR c++/57198
15239         PR c++/58845
15240         * doc/extend.texi (Vector Extensions): Document &&, ||, ! in C++.
15241
15242 2014-10-03  Jan Hubicka  <hubicka@ucw.cz>
15243
15244         * cgraph.h (struct indirect_call_info): Add IN_POLYMORPHIC_CDTOR
15245         * lto-cgraph.c (lto_output_edge, input_edge): Stream
15246         in_polymorphic_cdtor
15247         * cgraph.c (symbol_table::create_edge): Compute in_polymorphic_cdtor.
15248         (cgraph_edge::make_speculative): Copy in_polymorphic_cdtor.
15249         * cgraphclones.c (cgraph_edge::clone): Likewise.
15250         * ipa-prop.c (update_jump_functions_after_inlining,
15251         try_make_edge_direct_virtual_call): Pass in_polymorphic_cdtor
15252         to possible_dynamic_type_change.
15253         (decl_maybe_in_construction_p): Allow empty OUTER_TYPE and BASE.
15254         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15255         IN_POLY_CDOTR argument.
15256
15257         * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Be ready
15258         for BASE and OUTER_TYPE being NULL.
15259         (ipa_polymorphic_call_context::possible_dynamic_type_change): Add
15260         in_poly_cdtor parameter.
15261
15262 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15263
15264         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Fix up formatting.
15265         (ix86_expand_vec_perm): Only call ix86_expand_vec_perm_vpermi2 if
15266         TARGET_AVX512F.
15267         (expand_vec_perm_1): Likewise.
15268
15269 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15270             Uros Bizjak  <ubizjak@gmail.com>
15271
15272         PR tree-optimization/61403
15273         * config/i386/i386.c (expand_vec_perm_palignr): Fix a spelling
15274         error in comment.  Also optimize 256-bit vectors for AVX2
15275         or AVX (floating vectors only), provided the first permutation
15276         can be performed in one insn.
15277
15278 2014-10-03  David Malcolm  <dmalcolm@redhat.com>
15279
15280         * gcc.c (class driver): New class.
15281         (main): Reimplement in terms of driver::main, moving most of the
15282         locals to be locals within individual methods of class driver.
15283         The remaining locals "explicit_link_files", "decoded_options" and
15284         "decoded_options_count" are used by multiple driver:: methods, and
15285         so become member data.  Doing so isolates the argc/argv reads and
15286         writes.  Replace "goto out" with a special exit code from
15287         new method driver::prepare_infiles.  Split out the old
15288         implementation of main into the following...
15289         (driver::main): New function, corresponding to the old "main"
15290         implementation.
15291         (driver::set_progname): New function, taken from the old
15292         "main" implementation.
15293         (driver::expand_at_files): Likewise.
15294         (driver::decode_argv): Likewise.
15295         (driver::global_initializations): Likewise.
15296         (driver::build_multilib_strings): Likewise.
15297         (driver::set_up_specs): Likewise.
15298         (driver::putenv_COLLECT_GCC): Likewise.
15299         (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Likewise.
15300         (driver::handle_unrecognized_options): Likewise.
15301         (driver::maybe_print_and_exit): Likewise.
15302         (driver::prepare_infiles): Likewise.
15303         (driver::do_spec_on_infiles): Likewise.
15304         (driver::maybe_run_linker): Likewise.
15305         (driver::final_actions): Likewise.
15306         (driver::get_exit_code): Likewise.
15307
15308 2014-10-03  Yury Gribov  <y.gribov@samsung.com>
15309
15310         * asan.c (asan_finish_file): Disable __asan_init calls for KASan;
15311         don't emit empty ctors.
15312
15313 2014-10-03  Eric Botcazou  <ebotcazou@adacore.com>
15314
15315         * convert.c (convert_to_integer): Do not introduce useless conversions
15316         between integral types.
15317
15318 2014-10-03  David Sherwood  <david.sherwood@arm.com>
15319
15320         * ira-int.h (ira_allocno): Mark hard_regno as signed.
15321
15322 2014-10-03  Ilya Enkovich  <ilya.enkovich@intel.com>
15323
15324         * lra-constraints.c (inherit_in_ebb): Handle calls with
15325         multiple return values.
15326         * caller-save.c (save_call_clobbered_regs): Likewise.
15327
15328 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
15329
15330         * tree-vect-data-refs.c (vect_permute_load_chain,
15331         vect_shift_permute_load_chain): Fix a typo in temporary var names,
15332         suffle3 to shuffle3.
15333
15334         PR libgomp/61200
15335         * omp-low.c (taskreg_contexts): New variable.
15336         (scan_omp_parallel): Push newly created context into taskreg_contexts
15337         vector and move record layout code to finish_taskreg_scan.
15338         (scan_omp_task): Likewise.
15339         (finish_taskreg_scan): New function.
15340         (execute_lower_omp): Call finish_taskreg_scan on all taskreg_contexts
15341         vector elements and release it.
15342
15343         PR target/62128
15344         * config/i386/i386.c (expand_vec_perm_palignr): If op1, op0 order
15345         of palignr arguments can't be used due to min 0 or max - min
15346         too high, try also op0, op1 order of palignr arguments.
15347
15348 2014-10-02  Jan Hubicka  <hubicka@ucw.cz>
15349
15350         * cgraph.h (ipa_polymorphic_call_context):
15351         Turn bools into bitfields; add DYNAMIC; make MAKE_SPECULATIVE
15352         private, add POSSIBLE_DYNAMIC_TYPE_CHANGE.
15353         * ipa-polymorphic-call.c
15354         (ipa_polymorphic_call_context::restrict_to_inner_class): Allow accesses
15355         past end of dynamic types.
15356         (ipa_polymorphic_call_context::stream_out,
15357         speculative_outer_type): Stream dynamic flag.
15358         (ipa_polymorphic_call_context::set_by_decl): Clear DYNAMIC.
15359         (ipa_polymorphic_call_context::ipa_polymorphic_call_context):
15360         Clear DYNAMIC.
15361         (ipa_polymorphic_call_context::get_dynamic_type): Use DYNAMIC;
15362         set it.
15363         (ipa_polymorphic_call_context::combine_with): Propagate dynamic.
15364         * ipa-prop.c (update_jump_functions_after_inlining,
15365         try_make_edge_direct_virtual_call): Use possible_dynamic_type_change.
15366
15367 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15368
15369         * tree-ssa-threadupdate.c (freqs_to_counts_path): Scale frequencies
15370         up when synthesizing counts to avoid rounding errors.
15371
15372 2014-10-02  Teresa Johnson  <tejohnson@google.com>
15373
15374         PR middle-end/63422
15375         * tree-ssa-threadupdate.c (freqs_to_counts_path): Remove
15376         asserts to handle incoming insanities.
15377
15378 2014-10-02  Martin Jambor  <mjambor@suse.cz>
15379
15380         PR tree-optimization/63375
15381         * tree-sra.c (build_access_from_expr_1): Disqualify volatile
15382         references.
15383
15384 2014-10-02  Olivier Hainque  <hainque@adacore.com>
15385
15386         * Makefile.in (CROSS): Define, to @CROSS.
15387
15388 2014-10-02  Jakub Jelinek  <jakub@redhat.com>
15389
15390         PR target/62128
15391         * config/i386/i386.c (expand_vec_perm_1): Try expand_vec_perm_palignr
15392         if it expands to a single insn only.
15393         (expand_vec_perm_palignr): Add SINGLE_INSN_ONLY_P argument.  If true,
15394         fail unless in_order is true.  Add forward declaration.
15395         (expand_vec_perm_vperm2f128): Fix up comment about which permutation
15396         is useful for one_operand_p.
15397         (ix86_expand_vec_perm_const_1): Adjust expand_vec_perm_palignr caller.
15398
15399 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15400
15401         * cgraphclones.c (build_function_type_skip_args): Do not make new
15402         type variant of old.
15403
15404 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15405
15406         * ipa-prop.h (ipa_get_controlled_uses): Add hack to avoid ICE
15407         when speculation is added.
15408         (ipa_edge_args): Add polymorphic_call_contexts.
15409         (ipa_get_ith_polymorhic_call_context): New accesor.
15410         (ipa_make_edge_direct_to_target): Add SPECULATIVE parameter.
15411         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Print contexts.
15412         (ipa_compute_jump_functions_for_edge): Compute contexts.
15413         (update_jump_functions_after_inlining): Update contexts.
15414         (ipa_make_edge_direct_to_target): Add SPECULATIVE argument;
15415         update dumping; add speculative edge creation.
15416         (try_make_edge_direct_virtual_call): Add CTX_PTR parameter; handle
15417         context updating.
15418         (update_indirect_edges_after_inlining): Pass down context.
15419         (ipa_edge_duplication_hook): Duplicate contexts.
15420         (ipa_write_node_info): Stream out contexts.
15421         (ipa_read_node_info): Stream in contexts.
15422         * ipa-devirt.c (type_all_derivations_known_p): Avoid ICE on non-ODR
15423         types.
15424         (try_speculative_devirtualization): New function.
15425         * ipa-utils.h (try_speculative_devirtualization): Declare.
15426
15427 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15428
15429         * ipa.c (walk_polymorphic_call_targets): Avoid ICE when
15430         dumping during WPA.
15431
15432 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15433
15434         * ipa-prop.c (ipa_modify_formal_parameters): Do not merge
15435         type variants.
15436
15437 2014-10-01  Jan Hubicka  <hubicka@ucw.cz>
15438
15439         * ipa-polymorphic-call.c
15440         (ipa_polymorphic_call_context::restrict_to_inner_class):
15441         Rename EXPECTED_TYPE to OTR_TYPE; Validate speculation late;
15442         use speculation_consistent_p to do so; Add CONSDER_BASES
15443         and CONSIDER_PLACEMENT_NEW parameters.
15444         (contains_type_p): Add CONSDER_PLACEMENT_NEW and CONSIDER_BASES;
15445         short circuit obvious cases.
15446         (ipa_polymorphic_call_context::dump): Improve formatting.
15447         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Use
15448         combine_speculation_with to record speculations; Do not ICE when
15449         object is located in pointer type decl; do not ICE for methods
15450         of UNION_TYPE; do not record nonpolymorphic types.
15451         (ipa_polymorphic_call_context::speculation_consistent_p): New method.
15452         (ipa_polymorphic_call_context::combine_speculation_with): New method.
15453         (ipa_polymorphic_call_context::combine_with): New method.
15454         (ipa_polymorphic_call_context::make_speculative): Move here; use
15455         combine speculation.
15456         * cgraph.h (ipa_polymorphic_call_context): Update
15457         restrict_to_inner_class prototype; add offset_by, make_speculative,
15458         combine_with, useless_p, combine_speculation_with and
15459         speculation_consistent_p methods.
15460         (ipa_polymorphic_call_context::offset_by): New method.
15461         (ipa_polymorphic_call_context::useless_p): New method.
15462
15463 2014-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
15464
15465         PR rtl-optimization/62151
15466         * combine.c (can_combine_p): Allow the destination register of INSN
15467         to be clobbered in I3.
15468         (subst): Do not substitute into clobbers of registers.
15469
15470 2014-10-01  Jakub Jelinek  <jakub@redhat.com>
15471
15472         PR debug/63342
15473         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF with non-zero
15474         offset, TARGET_MEM_REF and SSA_NAME.
15475
15476         * config/i386/i386.c (expand_vec_perm_palignr): Handle
15477         256-bit vectors for TARGET_AVX2.
15478
15479         * config/i386/i386.c (expand_vec_perm_vperm2f128): Canonicalize
15480         dfirst permutation.
15481
15482         PR target/63428
15483         * config/i386/i386.c (expand_vec_perm_pshufb): Fix up rperm[0]
15484         argument to avx2_permv2ti.
15485
15486 2014-10-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15487
15488         * config/arm/arm.md (*store_minmaxsi): Disable for arm_restrict_it.
15489
15490 2014-09-30  Uros Bizjak  <ubizjak@gmail.com>
15491
15492         * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
15493         (fmod<mode>3): Ditto.
15494         (fpremxf4_i387): Ditto.
15495         (reminderxf3): Ditto.
15496         (reminder<mode>3): Ditto.
15497         (fprem1xf4_i387): Ditto.
15498
15499 2014-09-30  Teresa Johnson  <tejohnson@google.com>
15500
15501         * tree-ssa-threadupdate.c (struct ssa_local_info_t): New
15502         duplicate_blocks bitmap.
15503         (remove_ctrl_stmt_and_useless_edges): Ditto.
15504         (create_block_for_threading): Ditto.
15505         (compute_path_counts): New function.
15506         (update_profile): Ditto.
15507         (recompute_probabilities): Ditto.
15508         (update_joiner_offpath_counts): Ditto.
15509         (freqs_to_counts_path): Ditto.
15510         (clear_counts_path): Ditto.
15511         (ssa_fix_duplicate_block_edges): Update profile info.
15512         (ssa_create_duplicates): Pass new parameter.
15513         (ssa_redirect_edges): Remove old profile update.
15514         (thread_block_1): New duplicate_blocks bitmap,
15515         remove old profile update.
15516         (thread_single_edge): Pass new parameter.
15517
15518 2014-09-30  Ilya Tocar  <ilya.tocar@intel.com>
15519
15520         PR middle-end/62120
15521         * varasm.c (decode_reg_name_and_count): Check availability for
15522         registers from ADDITIONAL_REGISTER_NAMES.
15523
15524 2014-09-30  David Malcolm  <dmalcolm@redhat.com>
15525
15526         PR plugins/63410
15527         * Makefile.in (PRETTY_PRINT_H): Add wide-int-print.h.
15528         (PLUGIN_HEADERS): Add pass-instances.def.
15529
15530 2014-09-30  James Greenhalgh  <james.greenhalgh@arm.com>
15531
15532         * config/aarch64/aarch64-simd-builtins.def (sqdmull_laneq): Expand
15533         iterator.
15534         * config/aarch64/aarch64-simd.md
15535         (aarch64_sqdmull_laneq<mode>): Expand iterator.
15536         * config/aarch64/arm_neon.h (vqdmullh_laneq_s16): New.
15537         (vqdmulls_lane_s32): Fix return type.
15538         (vqdmulls_laneq_s32): New.
15539
15540 2014-09-30  Jakub Jelinek  <jakub@redhat.com>
15541
15542         PR inline-asm/63282
15543         * ifcvt.c (dead_or_predicable): Don't call redirect_jump_1
15544         or invert_jump_1 if jump isn't any_condjump_p.
15545
15546 2014-09-30  Terry Guo  <terry.guo@arm.com>
15547
15548         * config/arm/arm-cores.def (cortex-m7): New core name.
15549         * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
15550         (fpv5-d16): Ditto.
15551         * config/arm/arm-tables.opt: Regenerated.
15552         * config/arm/arm-tune.md: Regenerated.
15553         * config/arm/arm.h (TARGET_VFP5): New macro.
15554         * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
15555         * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
15556         smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
15557         * doc/invoke.texi: Document new cpu and fpu names.
15558
15559 2014-09-30  Jiong Wang  <jiong.wang@arm.com>
15560
15561         * shrink-wrap.c (move_insn_for_shrink_wrap): Check "can_throw_internal"
15562         before sinking insn.
15563
15564 2014-09-30  David Sherwood  <david.sherwood@arm.com>
15565
15566         * ira-int.h (ira_allocno): Add "wmode" field.
15567         * ira-build.c (create_insn_allocnos): Add new "parent" function
15568         parameter.
15569         * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
15570         that cannot be accessed in wmode.
15571
15572 2014-09-30  Markus Trippelsdorf  <markus@trippelsdorf.de>
15573
15574         * data-streamer.c (bp_unpack_var_len_int): Avoid signed
15575         integer overflow.
15576
15577 2014-09-29  Andi Kleen  <ak@linux.intel.com>
15578
15579         * opts.c (print_filtered_help): Print --param min/max/default
15580         with -Q.
15581
15582 2014-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15583
15584         * config/sh/sh.md: Use define_c_enum for "unspec" and "unspecv".
15585
15586 2014-09-29  Eric Botcazou  <ebotcazou@adacore.com>
15587
15588         * tree-vrp.c (get_single_symbol): New function.
15589         (build_symbolic_expr): Likewise.
15590         (symbolic_range_based_on_p): New predicate.
15591         (extract_range_from_binary_expr_1): Deal with single-symbolic ranges
15592         for PLUS and MINUS.  Do not drop symbolic ranges at the end.
15593         (extract_range_from_binary_expr): Try harder for PLUS and MINUS if
15594         operand is symbolic and based on the other operand.
15595
15596 2014-09-29  Chen Gang  <gang.chen.5i5j@gmail.com>
15597
15598         * config/microblaze/microblaze.md (call_internal1): Use VOID
15599         instead of SI to fix "((void (*)(void)) 0)()" issue
15600
15601 2014-09-29  Nick Clifton  <nickc@redhat.com>
15602
15603         * config/msp430/msp430.c (msp430_expand_prologue): Return a
15604         CLOBBER rtx for naked functions.
15605         (msp430_expand_epilogue): Likewise.
15606         (msp430_use_f5_series_hwmult): Cache result.
15607         (use_32bit_hwmult): Cache result.
15608         (msp430_no_hwmult): New function.
15609         (msp430_output_labelref): Use it.
15610
15611 2014-09-29  Jakub Jelinek  <jakub@redhat.com>
15612
15613         PR middle-end/63247
15614         * omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
15615         of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
15616         use the alignment of avar rather than ovar.
15617
15618 2014-09-28  John David Anglin  <danglin@gcc.gnu.org>
15619
15620         * config/pa/pa.c (pa_output_function_epilogue): Only update
15621         last_address when a nonnote insn is found.
15622
15623 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15624
15625         PR ipa/60665
15626         * ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.
15627
15628 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15629
15630         PR ipa/62121
15631         * ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
15632         fix pasto in checking array size.
15633
15634 2014-09-26  Jan Hubicka  <hubicka@ucw.cz>
15635
15636         PR middle-end/35545
15637         * passes.def (pass_tracer): Move before last dominator pass.
15638
15639 2014-09-26  Thomas Schwinge  <thomas@codesourcery.com>
15640
15641         * gcc.c (try_generate_repro): Remove argument "prog".  Change all
15642         users.
15643         (run_attempt): Handle errors of "pex_run" invocation.
15644
15645 2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>
15646
15647         * config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
15648         (CC1_SPEC): Define.
15649         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
15650         (TARGET_ASAN_SHADOW_OFFSET): Define.
15651
15652 2014-09-26  Martin Liska  <mliska@suse.cz>
15653
15654         * cgraph.c (cgraph_node::release_body): New argument keep_arguments
15655         introduced.
15656         * cgraph.h: Likewise.
15657         * cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
15658         * ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
15659         * tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
15660         * tree-ssa-alias.h: Likewise.
15661
15662 2014-09-26  Jakub Jelinek  <jakub@redhat.com>
15663             Max Ostapenko  <m.ostapenko@partner.samsung.com>
15664
15665         * common.opt: New option.
15666         * doc/invoke.texi: Describe new option.
15667         * gcc.c (execute): Don't free first string early, but at the end
15668         of the function.  Call retry_ice if compiler exited with
15669         ICE_EXIT_CODE.
15670         (main): Factor out common code.
15671         (print_configuration): New function.
15672         (files_equal_p): Likewise.
15673         (check_repro): Likewise.
15674         (run_attempt): Likewise.
15675         (do_report_bug): Likewise.
15676         (append_text): Likewise.
15677         (try_generate_repro): Likewise
15678
15679 2014-09-25  Andi Kleen  <ak@linux.intel.com>
15680
15681         * config/i386/i386.c (x86_print_call_or_nop): New function.
15682         (x86_function_profiler): Support -mnop-mcount and
15683         -mrecord-mcount.
15684         * config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
15685         * doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.
15686
15687 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15688
15689         * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
15690         * ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
15691         * tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
15692         Remove.
15693
15694 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15695
15696         * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
15697         type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
15698         types_odr_comparable): Declare.
15699         (polymorphic_type_binfo_p): Move here from ipa-devirt.c
15700         * ipa-polymorphic-call.c: New file.
15701         (contains_polymorphic_type_p, possible_placement_new,
15702         ipa_polymorphic_call_context::restrict_to_inner_class,
15703         contains_type_p, decl_maybe_in_construction_p,
15704         ipa_polymorphic_call_context::stream_out,
15705         ipa_polymorphic_call_context::debug,
15706         ipa_polymorphic_call_context::stream_in,
15707         ipa_polymorphic_call_context::set_by_decl,
15708         ipa_polymorphic_call_context::set_by_invariant,
15709         walk_ssa_copies,
15710         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15711         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15712         extr_type_from_vtbl_ptr_store, record_known_type
15713         check_stmt_for_type_change,
15714         ipa_polymorphic_call_context::get_dynamic_type): Move here from
15715         ipa-devirt.c
15716         * ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
15717         and streamer-hooks.h
15718         (contains_polymorphic_type_p, possible_placement_new,
15719         ipa_polymorphic_call_context::restrict_to_inner_class,
15720         contains_type_p, decl_maybe_in_construction_p,
15721         ipa_polymorphic_call_context::stream_out,
15722         ipa_polymorphic_call_context::debug,
15723         ipa_polymorphic_call_context::stream_in,
15724         ipa_polymorphic_call_context::set_by_decl,
15725         ipa_polymorphic_call_context::set_by_invariant,
15726         walk_ssa_copies,
15727         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15728         type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
15729         extr_type_from_vtbl_ptr_store, record_known_type
15730         check_stmt_for_type_change,
15731         ipa_polymorphic_call_context::get_dynamic_type): Move to
15732         ipa-polymorphic-call.c
15733         (type_all_derivations_known_p, types_odr_comparable,
15734         types_must_be_same_for_odr): Export.
15735         (type_known_to_have_no_deriavations_p): New function.
15736         * Makefile.in: Add ipa-polymorphic-call.c
15737
15738 2014-09-25  Jan Hubicka  <hubicka@ucw.cz>
15739
15740         * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
15741         for better storage.
15742         (polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
15743         (possible_polymorphic_call_targets): Instead of computing both
15744         speculative and non-speculative answers, do just one at a time.
15745         Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
15746         (dump_targets): Break out from ...
15747         (dump_possible_polymorphic_call_targets): ... here; dump both speculative
15748         and non-speculative lists.
15749         (ipa_devirt): Update for new possible_polymorphic_call_targets API.
15750         * ipa-utils.h (possible_polymorphic_call_targets): Update.
15751
15752 2014-09-25  Uros Bizjak  <ubizjak@gmail.com>
15753
15754         PR rtl-optimization/63348
15755         * emit-rtl.c (try_split): Do not emit extra barrier.
15756
15757 2014-09-25  James Greenhalgh  <james.greenhalgh@arm.com>
15758
15759         * config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
15760         * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
15761         new predicates.
15762         (aarch64_<sur>shll2_n<mode>): Likewise.
15763         (aarch64_<sur>shr_n<mode>): Likewise.
15764         (aarch64_<sur>sra_n<mode>: Likewise.
15765         (aarch64_<sur>s<lr>i_n<mode>): Likewise.
15766         (aarch64_<sur>qshl<u>_n<mode>): Likewise.
15767         * config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
15768         * config/aarch64/iterators.md (ve_mode): New.
15769         (offsetlr): Remap to infix text for use in new predicates.
15770         * config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
15771         (aarch64_simd_shift_imm_hi): Likewise.
15772         (aarch64_simd_shift_imm_si): Likewise.
15773         (aarch64_simd_shift_imm_di): Likewise.
15774         (aarch64_simd_shift_imm_offset_qi): Likewise.
15775         (aarch64_simd_shift_imm_offset_hi): Likewise.
15776         (aarch64_simd_shift_imm_offset_si): Likewise.
15777         (aarch64_simd_shift_imm_offset_di): Likewise.
15778         (aarch64_simd_shift_imm_bitsize_qi): Likewise.
15779         (aarch64_simd_shift_imm_bitsize_hi): Likewise.
15780         (aarch64_simd_shift_imm_bitsize_si): Likewise.
15781         (aarch64_simd_shift_imm_bitsize_di): Likewise.
15782
15783 2014-09-25  Jiong Wang  <jiong.wang@arm.com>
15784
15785         * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of
15786         new created BB as the intersection of live-in from "old_dest" and
15787         live-out from "bb".
15788
15789 2014-09-25  Felix Yang  <felix.yang@huawei.com>
15790
15791         * lra.c (lra_set_insn_recog_data): Fix typo in comment.
15792         * genautomata.c (merge_states): Ditto.
15793
15794 2014-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
15795
15796         PR target/62218
15797         * config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
15798         in instruction sequence.
15799
15800 2014-09-25  Nick Clifton  <nickc@redhat.com>
15801
15802         PR target/62218
15803         * config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
15804         in instruction sequence.
15805
15806 2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15807
15808         PR target/63335
15809         * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
15810         Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.
15811
15812 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15813             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15814             Anna Tikhonova  <anna.tikhonova@intel.com>
15815             Ilya Tocar  <ilya.tocar@intel.com>
15816             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15817             Ilya Verbin  <ilya.verbin@intel.com>
15818             Kirill Yukhin  <kirill.yukhin@intel.com>
15819             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15820
15821         * config/i386/sse.md
15822         (define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
15823         (define_expand "<avx2_avx512>_perm<mode>"): ... this.
15824         (define_expand "avx512f_perm<mode>_mask"): Rename to ...
15825         (define_expand "<avx512>_perm<mode>_mask"): ... this.
15826         Use VI8F_256_512 mode iterator.
15827         (define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
15828         (define_insn "<avx2_avx512bw>_perm<mode>_1<mask_name>"): ... this.
15829
15830 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15831             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15832             Anna Tikhonova  <anna.tikhonova@intel.com>
15833             Ilya Tocar  <ilya.tocar@intel.com>
15834             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15835             Ilya Verbin  <ilya.verbin@intel.com>
15836             Kirill Yukhin  <kirill.yukhin@intel.com>
15837             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15838
15839         * config/i386/sse.md
15840         (define_insn "avx_movshdup256<mask_name>"): Add masking.
15841         (define_insn "sse3_movshdup<mask_name>"): Ditto.
15842         (define_insn "avx_movsldup256<mask_name>"): Ditto.
15843         (define_insn "sse3_movsldup<mask_name>"): Ditto.
15844         (define_insn "vec_dupv2df<mask_name>"): Ditto.
15845         (define_insn "*vec_concatv2df"): Add EVEX version.
15846
15847 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15848             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15849             Anna Tikhonova  <anna.tikhonova@intel.com>
15850             Ilya Tocar  <ilya.tocar@intel.com>
15851             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15852             Ilya Verbin  <ilya.verbin@intel.com>
15853             Kirill Yukhin  <kirill.yukhin@intel.com>
15854             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15855
15856         * config/i386/sse.md
15857         (define_insn "vec_set<mode>_0"): Add EVEX version.
15858
15859 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15860             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15861             Anna Tikhonova  <anna.tikhonova@intel.com>
15862             Ilya Tocar  <ilya.tocar@intel.com>
15863             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15864             Ilya Verbin  <ilya.verbin@intel.com>
15865             Kirill Yukhin  <kirill.yukhin@intel.com>
15866             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15867
15868         * config/i386/sse.md
15869         (define_insn
15870         "<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
15871         New.
15872         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
15873         (define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
15874         (define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
15875         "nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
15876         (define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
15877         (define_expand "sse2_cvtpd2ps_mask): New.
15878         (define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
15879         (define_insn "sse2_cvtps2pd<mask_name>"): Add masking.
15880
15881 2014-09-25  Alexander Ivchenko  <alexander.ivchenko@intel.com>
15882             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
15883             Anna Tikhonova  <anna.tikhonova@intel.com>
15884             Ilya Tocar  <ilya.tocar@intel.com>
15885             Andrey Turetskiy  <andrey.turetskiy@intel.com>
15886             Ilya Verbin  <ilya.verbin@intel.com>
15887             Kirill Yukhin  <kirill.yukhin@intel.com>
15888             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
15889
15890         * config/i386/i386.c
15891         (avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
15892         (ufix_notruncv8dfv8si2_mask_round): ... this.
15893         * config/i386/sse.md
15894         (define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
15895         (define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
15896         (define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
15897         (define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
15898         (define_expand "sse2_cvtpd2dq"): Delete.
15899         (define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
15900         make 2nd operand const0 vector.
15901         (define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
15902         Delete.
15903         (define_mode_attr pd2udqsuff): New.
15904         (define_insn
15905         "ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
15906         (define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
15907         (define_insn "*avx_cvttpd2dq256_2"): Delete.
15908         (define_expand "sse2_cvttpd2dq"): Ditto.
15909         (define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
15910         make 2nd operand const0 vector.
15911
15912 2014-09-25  Jakub Jelinek  <jakub@redhat.com>
15913
15914         PR tree-optimization/63341
15915         * tree-vectorizer.h (vect_create_data_ref_ptr,
15916         vect_create_addr_base_for_vector_ref): Add another tree argument
15917         defaulting to NULL_TREE.
15918         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
15919         argument, pass it down to vect_create_addr_base_for_vector_ref.
15920         (vect_create_addr_base_for_vector_ref): Add byte_offset argument,
15921         add that to base_offset too if non-NULL.
15922         * tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
15923         for dr_explicit_realign_optimized set it to vector byte size
15924         - 1 instead of setting offset, pass byte_offset down to
15925         vect_create_data_ref_ptr.
15926
15927 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
15928
15929         * ipa-devirt.c (possible_polymorphic_call_targets): Remove
15930         forgotten debug output; canonicalize querries more wtih LTO.
15931
15932 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
15933
15934         * cgraph.h (class ipa_polymorphic_call_context): Move here from
15935         ipa-utils.h; add stream_int and stream_out methods.
15936         (cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
15937         OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
15938         MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
15939         add CONTEXT.
15940         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15941         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15942         ipa_polymorphic_call_context::clear_speculation,
15943         ipa_polymorphic_call_context::clear_outer_type): Move here from
15944         ipa-utils.h
15945         * ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
15946         (ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15947         ipa_polymorphic_call_context::ipa_polymorphic_call_context,
15948         ipa_polymorphic_call_context::clear_speculation,
15949         ipa_polymorphic_call_context::clear_outer_type): Likewise.
15950         * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
15951         streamer-hooks.h
15952         (ipa_polymorphic_call_context::stream_out): New method.
15953         (ipa_polymorphic_call_context::stream_in): New method.
15954         (noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
15955         * ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
15956         OUTER_TYPE.
15957         (ipa_analyze_call_uses): Simplify.
15958         (update_indirect_edges_after_inlining): Do not care about outer_type.
15959         (ipa_write_indirect_edge_info): Update.
15960         (ipa_write_indirect_edge_info): Likewise.
15961         * cgraph.c (cgraph_node::create_indirect_edge): Simplify.
15962         (dump_edge_flags): Break out from ...
15963         (cgraph_node::dump): ... here; dump indirect edges.
15964
15965 2014-09-24  Jan Hubicka  <hubicka@ucw.cz>
15966
15967         * ipa-utils.h (polymorphic_call_context): Add
15968         metdhos dump, debug and clear_outer_type.
15969         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15970         (ipa_polymorphic_call_context::clear_outer_type): New method.
15971         * ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
15972         * ipa-devirt.c (types_odr_comparable): New function.
15973         (types_must_be_same_for_odr): New function.
15974         (odr_subtypes_equivalent_p): Simplify.
15975         (possible_placement_new): Break out from ...
15976         (ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
15977         be more cuatious about returning false in cases the context may be
15978         valid in derived type or via placement new.
15979         (contains_type_p): Clear maybe_derived_type
15980         (ipa_polymorphic_call_context::dump): New method.
15981         (ipa_polymorphic_call_context::debug): New method.
15982         (ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
15983         (ipa_polymorphic_call_context::set_by_invariant): Simplify.
15984         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
15985         (possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
15986         to suceed on all valid cases; remove confused sanity check.
15987         (dump_possible_polymorphic_call_targets): Simplify.
15988
15989 2014-09-24  Aldy Hernandez  <aldyh@redhat.com>
15990
15991         * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
15992         lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
15993         tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
15994         varpool.c: Rename all instances of DECL_ABSTRACT to
15995         DECL_ABSTRACT_P.
15996
15997 2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15998
15999         * config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
16000         special handling for stores whose SET_SRC is an UNSPEC (such as
16001         UNSPEC_STVE).
16002
16003 2014-09-24  Jiong Wang  <jiong.wang@arm.com>
16004
16005         * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
16006         !REG_P (src) to release more instruction sink opportunities.
16007
16008 2014-09-24  Wilco Dijkstra  <wilco.dijkstra@arm.com>
16009
16010         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register
16011         move costs for 128-bit types.
16012
16013 2014-09-24  Martin Jambor  <mjambor@suse.cz>
16014
16015         * ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
16016         when duplicating a PASS_THROUGH jump function when creating a
16017         speculative edge.
16018
16019 2014-09-24  Marek Polacek  <polacek@redhat.com>
16020
16021         PR c/61405
16022         PR c/53874
16023         * asan.c (maybe_instrument_call): Add default case.
16024         * ipa-pure-const.c (special_builtin_state): Likewise.
16025         * predict.c (expr_expected_value_1): Likewise.
16026         * lto-streamer-out.c (write_symbol): Initialize variable.
16027
16028 2014-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16029
16030         * config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
16031         the lane.
16032         (vmuld_laneq_f64): Likewise.
16033         (vmuls_lane_f32): Likewise.
16034         (vmuls_laneq_f32): Likewise.
16035
16036 2014-09-24  Kirill Yukhin  <kirill.yukhin@intel.com>
16037
16038         PR bootstrap/63235
16039         * varpool.c (varpool_node::add): Pass decl attributes
16040         to lookup_attribute.
16041
16042 2014-09-24  Jakub Jelinek  <jakub@redhat.com>
16043
16044         PR sanitizer/63316
16045         * asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.
16046
16047 2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16048
16049         PR tree-optimization/63266
16050         * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
16051         marker for unknown byte value.
16052         (MARKER_MASK): New macro.
16053         (MARKER_BYTE_UNKNOWN): New macro.
16054         (HEAD_MARKER): New macro.
16055         (do_shift_rotate): Mark bytes with unknown values due to sign
16056         extension when doing an arithmetic right shift. Replace hardcoded
16057         mask for marker by new MARKER_MASK macro.
16058         (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
16059         numbers accordingly.
16060
16061 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16062             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16063             Anna Tikhonova  <anna.tikhonova@intel.com>
16064             Ilya Tocar  <ilya.tocar@intel.com>
16065             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16066             Ilya Verbin  <ilya.verbin@intel.com>
16067             Kirill Yukhin  <kirill.yukhin@intel.com>
16068             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16069
16070         * config/i386/sse.md
16071         (define_insn
16072         "<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
16073         Add masking.
16074         (define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
16075         (define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.
16076
16077 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16078             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16079             Anna Tikhonova  <anna.tikhonova@intel.com>
16080             Ilya Tocar  <ilya.tocar@intel.com>
16081             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16082             Ilya Verbin  <ilya.verbin@intel.com>
16083             Kirill Yukhin  <kirill.yukhin@intel.com>
16084             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16085
16086         * config/i386/sse.md
16087         (define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
16088         (define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
16089         (define_expand "avx512vl_pshuflwv3_mask"): Ditto.
16090         (define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
16091         (define_expand "avx512vl_pshuflw_mask"): New.
16092         (define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
16093         (define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
16094         (define_expand "avx512vl_pshufhwv3_mask"): Ditto.
16095         (define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
16096         (define_expand "avx512vl_pshufhw_mask"): New.
16097         (define_insn "sse2_pshufhw_1<mask_name>"): Add masking.
16098
16099 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16100             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16101             Anna Tikhonova  <anna.tikhonova@intel.com>
16102             Ilya Tocar  <ilya.tocar@intel.com>
16103             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16104             Ilya Verbin  <ilya.verbin@intel.com>
16105             Kirill Yukhin  <kirill.yukhin@intel.com>
16106             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16107
16108         * config/i386/i386.c
16109         (ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
16110         CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
16111         CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
16112         CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
16113         CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
16114         * config/i386/sse.md
16115         (define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
16116         (define_insn
16117         "<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
16118         (define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
16119         (define_insn
16120         "<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
16121         (define_expand "avx512vl_pshufdv3_mask"): Ditto.
16122         (define_insn "avx2_pshufd_1<mask_name>"): Add masking.
16123         (define_expand "avx512vl_pshufd_mask"): New.
16124         (define_insn "sse2_pshufd_1<mask_name>"): Add masking.
16125
16126 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16127             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16128             Anna Tikhonova  <anna.tikhonova@intel.com>
16129             Ilya Tocar  <ilya.tocar@intel.com>
16130             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16131             Ilya Verbin  <ilya.verbin@intel.com>
16132             Kirill Yukhin  <kirill.yukhin@intel.com>
16133             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16134
16135         * config/i386/i386.c
16136         (CODE_FOR_avx2_extracti128): Rename to ...
16137         (CODE_FOR_avx_vextractf128v4di): this.
16138         (CODE_FOR_avx2_inserti128): Rename to ...
16139         (CODE_FOR_avx_vinsertf128v4di): this.
16140         (ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
16141         CODE_FOR_avx_vextractf128v4di.
16142         (ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
16143         CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
16144         CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
16145         CODE_FOR_avx512vl_vinsertv8si.
16146         * config/i386/sse.md
16147         (define_expand
16148         "<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
16149         AVX512_VEC mode iterator.
16150         (define_insn
16151         "<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
16152         Ditto.
16153         (define_expand
16154         "<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
16155         AVX512_VEC_2 mode iterator.
16156         (define_insn "vec_set_lo_<mode><mask_name>"): New.
16157         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16158         (define_expand "avx512vl_vinsert<mode>"): Ditto.
16159         (define_insn "avx2_vec_set_lo_v4di"): Delete.
16160         (define_insn "avx2_vec_set_hi_v4di"): Ditto.
16161         (define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
16162         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16163         (define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
16164         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
16165         (define_expand "avx2_extracti128"): Delete.
16166         (define_expand "avx2_inserti128"): Ditto.
16167
16168 2014-09-24  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16169             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16170             Anna Tikhonova  <anna.tikhonova@intel.com>
16171             Ilya Tocar  <ilya.tocar@intel.com>
16172             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16173             Ilya Verbin  <ilya.verbin@intel.com>
16174             Kirill Yukhin  <kirill.yukhin@intel.com>
16175             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16176
16177         * config/i386/sse.md
16178         (define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
16179         (define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
16180         (define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
16181         (define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
16182         (define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
16183         (define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
16184         (define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
16185         (define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
16186         (define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
16187         (define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
16188         (define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
16189         (define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
16190         (define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.
16191
16192 2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16193
16194         PR rtl-optimization/63210
16195         * ira-color.c (assign_hard_reg): Ignore conflict cost if the
16196         HARD_REGNO is not available for CONFLICT_A.
16197
16198 2014-09-23  Andi Kleen  <ak@linux.intel.com>
16199
16200         * cgraph.h (symtab_node): Add no_reorder attribute.
16201         (symbol_table::output_asm_statements): Remove.
16202         * cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
16203         (cgraph_node::create_version_clone): Dito.
16204         (symbol_table::output_asm_statements): Remove.
16205         * trans-mem.c (ipa_tm_create_version_alias): Dito.
16206         * cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
16207         (output_in_order): Add no_reorder flag. Only handle no_reorder
16208         nodes when set.
16209         (symbol_table::compile): Add separate pass for no_reorder nodes.
16210         (process_common_attributes): Set no_reorder flag in symtab node.
16211         Add node argument.
16212         (process_function_and_variable_attributes): Pass symtab nodes to
16213         process_common_attributes.
16214         * doc/extend.texi (no_reorder): Document no_reorder attribute.
16215         * lto-cgraph.c (lto_output_node): Serialize no_reorder.
16216         (lto_output_varpool_node): Dito.
16217         (input_overwrite_node): Dito.
16218         (input_varpool_node): Dito.
16219         * varpool.c (varpool_node::add): Set no_reorder attribute.
16220         (symbol_table::remove_unreferenced_decls): Handle no_reorder.
16221         (symbol_table::output_variables): Dito.
16222         * symtab.c (symtab_node::dump_base): Print no_reorder.
16223
16224 2014-09-23  Jiong Wang  <jiong.wang@arm.com>
16225
16226         * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
16227         be INVALID_REGNUM.
16228
16229 2014-09-23  Thomas Schwinge  <thomas@codesourcery.com>
16230
16231         * configure: Regenerate.
16232
16233 2014-09-23  Alan Lawrence  <alan.lawrence@arm.com>
16234
16235         * combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
16236         when result_mode == shift_mode.
16237
16238 2014-09-23  Kostya Serebryany  <kcc@google.com>
16239
16240         Update to match the changed asan API.
16241         * asan.c (asan_global_struct): Update the __asan_global definition
16242         to match the new API.
16243         (asan_add_global): Ditto.
16244         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v3
16245         to __asan_init_v4.
16246
16247 2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16248
16249         * config/rs6000/rs6000.md (f32_vsx): New mode attributes to
16250         refine the constraints used on 32/64-bit floating point moves.
16251         (f32_av): Likewise.
16252         (f64_vsx): Likewise.
16253         (f64_dm): Likewise.
16254         (f64_av): Likewise.
16255         (BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
16256         (BOOL_REGS_OP1): Likewise.
16257         (BOOL_REGS_OP2): Likewise.
16258         (BOOL_REGS_UNARY): Likewise.
16259         (mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
16260         32/64-bit floating point moves.  Do not use wa, instead use ww/ws
16261         for moves involving VSX registers.  Do not use constraints that
16262         target VSX registers for decimal types.
16263         (mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
16264         (mov<mode>_hardfloat64, DFmode/DDmode): Likewise.
16265
16266 2014-09-23  Jan Hubicka  <hubicka@ucw.cz>
16267
16268         * tree.h (int_bit_position): Turn into inline function;
16269         implement using wide int.
16270         * tree.c (int_bit_position): Remove.
16271
16272 2014-09-23  Richard Sandiford  <richard.sandiford@arm.com>
16273
16274         PR bootstrap/63280
16275         * target-globals.c (target_globals::~target_globals): Fix location
16276         of ira_int destruction.
16277
16278 2014-09-23  Renlin Li  <renlin.li@arm.com>
16279
16280         * config/aarch64/aarch64.md (return): New.
16281         (simple_return): Likewise.
16282         * config/aarch64/aarch64.c (aarch64_use_return_insn_p): New.
16283         * config/aarch64/aarch64-protos.h (aarch64_use_return_insn_p): New.
16284
16285 2014-09-23  Wilco Dijkstra  <wdijkstr@arm.com>
16286
16287         * common/config/aarch64/aarch64-common.c:
16288         (default_options aarch_option_optimization_table):
16289         Default to -fsched-pressure.
16290
16291 2014-09-23  Ilya Enkovich  <ilya.enkovich@intel.com>
16292
16293         * cfgcleanup.c (try_optimize_cfg): Do not remove label
16294         with LABEL_PRESERVE_P flag set.
16295
16296 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16297             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16298             Anna Tikhonova  <anna.tikhonova@intel.com>
16299             Ilya Tocar  <ilya.tocar@intel.com>
16300             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16301             Ilya Verbin  <ilya.verbin@intel.com>
16302             Kirill Yukhin  <kirill.yukhin@intel.com>
16303             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16304
16305         * config/i386/sse.md
16306         (define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
16307         (define_insn "avx_shufpd256_1<mask_name>"): Ditto.
16308         (define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
16309         (define_insn "sse2_shufpd_v2df_mask"): New.
16310
16311 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16312             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16313             Anna Tikhonova  <anna.tikhonova@intel.com>
16314             Ilya Tocar  <ilya.tocar@intel.com>
16315             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16316             Ilya Verbin  <ilya.verbin@intel.com>
16317             Kirill Yukhin  <kirill.yukhin@intel.com>
16318             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16319
16320         * config/i386/sse.md
16321         (define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
16322         (define_insn "avx_shufps256_1<mask_name>"): Ditto.
16323         (define_expand "sse_shufps<mask_expand4_name>"): Ditto.
16324         (define_insn "sse_shufps_v4sf_mask"): New.
16325
16326 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16327             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16328             Anna Tikhonova  <anna.tikhonova@intel.com>
16329             Ilya Tocar  <ilya.tocar@intel.com>
16330             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16331             Ilya Verbin  <ilya.verbin@intel.com>
16332             Kirill Yukhin  <kirill.yukhin@intel.com>
16333             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16334
16335         * config/i386/sse.md
16336         (define_insn "avx_unpckhps256<mask_name>"): Add masking.
16337         (define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
16338         (define_insn "avx_unpcklps256<mask_name>"): Ditto.
16339         (define_insn "unpcklps128_mask"): New.
16340
16341 2014-09-23  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16342             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16343             Anna Tikhonova  <anna.tikhonova@intel.com>
16344             Ilya Tocar  <ilya.tocar@intel.com>
16345             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16346             Ilya Verbin  <ilya.verbin@intel.com>
16347             Kirill Yukhin  <kirill.yukhin@intel.com>
16348             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16349
16350         * config/i386/sse.md
16351         (define_insn "avx_unpckhpd256<mask_name>"): Add masking.
16352         (define_insn "avx512vl_unpckhpd128_mask"): New.
16353         (define_expand "avx_movddup256<mask_name>"): Add masking.
16354         (define_expand "avx_unpcklpd256<mask_name>"): Ditto.
16355         (define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
16356         (define_insn "avx512vl_unpcklpd128_mask"): New.
16357
16358 2014-09-22  Joseph Myers  <joseph@codesourcery.com>
16359
16360         * doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16361         * doc/tm.texi: Regenerate.
16362         * system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
16363         * config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16364         * config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16365         Remove.
16366         * config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16367         * config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16368         * config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16369         * config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16370         * config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16371         Remove.
16372         * config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16373         * config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16374         * config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16375         * config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16376         * config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16377         * config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16378         * config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16379         * config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16380         * config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16381         * config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
16382         * config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
16383         Remove.
16384
16385 2014-09-22  Jan Hubicka  <hubicka@ucw.cz>
16386
16387         * tree-ssa-ccp.c (prop_value_d): Rename to ...
16388         (ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
16389         * ipa-prop.c (struct type_change_info): Rename to ...
16390         (prop_type_change_info): ... this; update uses.
16391         * ggc-page.c (globals): Rename to ...
16392         (static struct ggc_globals): ... this; update uses.
16393         * tree-ssa-loop-im.c (mem_ref): Rename to ...
16394         (im_mem_ref): ... this; update uses.
16395         * ggc-common.c (loc_descriptor): Rename to ...
16396         (ggc_loc_descriptor): ... this; update uses.
16397         * lra-eliminations.c (elim_table): Rename to ...
16398         (lra_elim_table): ... this; update uses.
16399         * bitmap.c (output_info): Rename to ...
16400         (bitmap_output_info): ... this; update uses.
16401         * gcse.c (expr): Rename to ...
16402         (gcse_expr) ... this; update uses.
16403         (occr): Rename to ...
16404         (gcse_occr): .. this; update uses.
16405         * tree-ssa-copy.c (prop_value_d): Rename to ...
16406         (prop_value_t): ... this.
16407         * predict.c (block_info_def): Rename to ...
16408         (block_info): ... this; update uses.
16409         (edge_info_def): Rename to ...
16410         (edge_info): ... this; update uses.
16411         * profile.c (bb_info): Rename to ...
16412         (bb_profile_info): ... this; update uses.
16413         * alloc-pool.c (output_info): Rename to ...
16414         (pool_output_info): ... this; update uses.
16415         * ipa-cp.c (topo_info): Rename to ..
16416         (ipa_topo_info): ... this; update uses.
16417         * tree-nrv.c (nrv_data): Rename to ...
16418         (nrv_data_t): ... this; update uses.
16419         * ipa-split.c (bb_info): Rename to ...
16420         (split_bb_info): ... this one.
16421         * profile.h (edge_info): Rename to ...
16422         (edge_profile_info): ... this one; update uses.
16423         * dse.c (bb_info): Rename to ...
16424         (dse_bb_info): ... this one; update uses.
16425         * cprop.c (occr): Rename to ...
16426         (cprop_occr): ... this one; update uses.
16427         (expr): Rename to ...
16428         (cprop_expr): ... this one; update uses.
16429
16430 2014-09-22  Jason Merrill  <jason@redhat.com>
16431
16432         * Makefile.in (check-parallel-%): Add @.
16433
16434 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16435
16436         * config/aarch64/geniterators.sh: New.
16437         * config/aarch64/iterators.md (VDQF_DF): New.
16438         * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
16439         * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
16440
16441 2014-09-22  Peter A. Bigot  <pab@pabigot.com>
16442
16443         * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
16444         -lnosys when -msim absent.
16445
16446 2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
16447
16448         * fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
16449
16450 2014-09-22  Richard Biener  <rguenther@suse.de>
16451
16452         * gimplify.c (gimplify_init_constructor): Do not leave
16453         non-GIMPLE vector constructors around.
16454         * tree-cfg.c (verify_gimple_assign_single): Verify that
16455         CONSTRUCTORs have gimple elements.
16456
16457 2014-09-22  Jakub Jelinek  <jakub@redhat.com>
16458
16459         PR debug/63328
16460         * omp-low.c (ipa_simd_modify_stmt_ops): For debug stmts
16461         insert a debug source bind stmt setting DEBUG_EXPR_DECL
16462         instead of a normal gimple assignment stmt.
16463
16464 2014-09-22  James Greenhalgh  <james.greenhalgh@arm.com>
16465
16466         * config/bfin/bfin.md: Fix use of constraints in define_split.
16467
16468 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16469
16470         * config/i386/i386.c (ix86_cannot_change_mode_class): Remove
16471         GET_MODE_SIZE (to) < GET_MODE_SIZE (from) test.
16472
16473 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16474
16475         * hard-reg-set.h: Include hash-table.h.
16476         (target_hard_regs): Add a finalize method and a x_simplifiable_subregs
16477         field.
16478         * target-globals.c (target_globals::~target_globals): Call
16479         hard_regs->finalize.
16480         * rtl.h (subreg_shape): New structure.
16481         (shape_of_subreg): New function.
16482         (simplifiable_subregs): Declare.
16483         * reginfo.c (simplifiable_subreg): New structure.
16484         (simplifiable_subregs_hasher): Likewise.
16485         (simplifiable_subregs): New function.
16486         (invalid_mode_changes): Delete.
16487         (alid_mode_changes, valid_mode_changes_obstack): New variables.
16488         (record_subregs_of_mode): Remove subregs_of_mode parameter.
16489         Record valid mode changes in valid_mode_changes.
16490         (find_subregs_of_mode): Remove subregs_of_mode parameter.
16491         Update calls to record_subregs_of_mode.
16492         (init_subregs_of_mode): Remove invalid_mode_changes and bitmap
16493         handling.  Initialize new variables.  Update call to
16494         find_subregs_of_mode.
16495         (invalid_mode_change_p): Check new variables instead of
16496         invalid_mode_changes.
16497         (finish_subregs_of_mode): Finalize new variables instead of
16498         invalid_mode_changes.
16499         (target_hard_regs::finalize): New function.
16500         * ira-costs.c (print_allocno_costs): Call invalid_mode_change_p
16501         even when CLASS_CANNOT_CHANGE_MODE is undefined.
16502
16503 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16504
16505         * combine.c (subst): Use simplify_subreg_regno rather than
16506         REG_CANNOT_CHANGE_MODE_P to detect invalid mode changes.
16507
16508 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16509
16510         * rtl.h (subreg_info): Expand commentary
16511         * rtlanal.c (subreg_get_info): Likewise.
16512
16513 2014-09-22  Richard Sandiford  <richard.sandiford@arm.com>
16514
16515         * hard-reg-set.h (COPY_HARD_REG_SET, COMPL_HARD_REG_SET)
16516         (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET)
16517         (IOR_COMPL_HARD_REG_SET): Allow the "from" set to be constant.
16518
16519 2014-09-22  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16520
16521         * config/arm/arm.c: #include "tm-constrs.h"
16522         (thumb1_size_rtx_costs): Adjust rtx costs.
16523
16524 2014-09-22  Hans-Peter Nilsson  <hp@axis.com>
16525
16526         * configure.ac (target_header_dir): Move block defining
16527         this to before the block setting inhibit_libc.
16528         (inhibit_libc): When considering $with_headers, just
16529         check it it's explicitly "no".  If not, also check if
16530         $target_header_dir/stdio.h is present.  If not, set
16531         inhibit_libc=true.
16532         * configure: Regenerate.
16533
16534 2014-09-21  Patrick Oppenlander  <pattyo.lists@gmail.com>
16535
16536         * config/rs6000/t-spe (MULTILIB_EXCEPTIONS): Allow isel without SPE.
16537
16538 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16539
16540         * config/rs6000/rs6000.md (div<mode>3): Fix comment.  Use a different
16541         insn for divides by integer powers of two.
16542         (div<mode>3_sra, *div<mode>3_sra_dot, *div<mode>3_sra_dot2): New.
16543         (mod<mode>3): Fix formatting.
16544         (three anonymous define_insn and two define_split): Delete.
16545
16546 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16547
16548         * config/rs6000/rs6000.md (ashr<mode>3, *ashr<mode>3, *ashrsi3_64,
16549         *ashr<mode>3_dot, *ashr<mode>3_dot2): Clobber CA_REGNO.
16550         (floatdisf2_internal2): Ditto.
16551         (ashrdi3_no_power): Ditto.  Fix formatting.
16552
16553 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16554
16555         * config/rs6000/rs6000.md (ctz<mode>2, ffs<mode>2, popcount<mode>2,
16556         popcntb<mode>2, popcntd<mode>2, parity<mode>2, parity<mode>2_cmpb):
16557         Tidy.
16558
16559 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16560
16561         * config/rs6000/rs6000.md (strlensi): Don't use subsi3 with a
16562         constant, use addsi3 directly.
16563         (three anonymous define_insn, two define_split): Delete.
16564         (sub<mode>3): Move.  Do not allow constant second operand.
16565         Generate different insn for constant first operand.
16566         (*subf<mode>3, *subf<mode>3_dot, *subf<mode>3_dot2): New.
16567         (subf<mode>3_imm): New.
16568         (ctz<mode>2, ffs<mode>2): Clobber CA_REGNO where required.
16569         (*plus_ltu<mode>): Only handle registers.
16570         (*plus_ltu<mode>_1): New.  Handle integer third operand.
16571         (*plus_gtu<mode>): Only handle registers.
16572         (*plus_gtu<mode>_1): New.  Handle integer third operand.
16573
16574 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16575
16576         * config/rs6000/rs6000.md (iorxor): New code_iterator.
16577         (iorxor): New code_attr.
16578         (IORXOR): New code_attr.
16579         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): Delete.
16580         (ior<mode>3, xor<mode>3): Delete.
16581         (<iorxor><mode>3): New.
16582         (splitter for "big" integer ior, xor): New.
16583         (*bool<mode>3): Move.  Also handle AND.
16584         (*bool<mode>3_dot, *bool<mode>3_dot2): Also handle AND.
16585         (splitter for "big" integer ior, xor): Delete.
16586
16587 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16588
16589         * config/rs6000/rs6000.md (*neg<mode>2_internal): Delete.
16590         (two anonymous define_insn and two define_split): Delete.
16591         (*neg<mode>2, *neg<mode>2_dot, *neg<mode>2_dot2): New.
16592
16593 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16594
16595         * config/rs6000/rs6000.md (*one_cmpl<mode>2): Generate "not" insn.
16596         (two anonymous define_insn and two define_split): Delete.
16597         (*one_cmpl<mode>2_dot, *one_cmpl<mode>2_dot2): New.
16598
16599 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16600
16601         * config/rs6000/rs6000.c (rs6000_rtx_costs) <NE>: New.
16602
16603 2014-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
16604
16605         * config/rs6000/predicates.md (ca_operand): Allow subregs.
16606         (input_operand): Do not allow ca_operand.
16607         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
16608         carry bit, allow SImode and Pmode.
16609         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.
16610
16611 2014-09-21  Uros Bizjak  <ubizjak@gmail.com>
16612
16613         * config/i386/i386.c (ix86_expand_call): Generate MS->SYSV extra
16614         clobbered registers using clobber_reg.  Remove UNSPEC decoration.
16615         * config/i386/i386.md (unspec) <UNSPEC_MS_TO_SYSV_CALL>: Remove.
16616         (*call_rex64_ms_sysv): Remove.
16617         (*call_value_rex64_ms_sysv): Ditto.
16618         * config/i386/predicates.md (call_rex64_ms_sysv_operation): Remove.
16619
16620 2014-09-20  Joern Rennecke  <joern.rennecke@embecosm.com>
16621
16622         * config/epiphany/epiphany.md (sub_f_add_imm): Change constraint of
16623         operand 3 to "CnL".
16624
16625 2014-09-20  Andreas Schwab  <schwab@suse.de>
16626
16627         * config/ia64/ia64.md: Remove constraints from define_split
16628         patterns.
16629
16630 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16631
16632         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
16633         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
16634         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
16635         (get_dynamic_type): Remove.
16636         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
16637         (clear_speculation): Bring to ipa-deivrt.h
16638         (get_class_context): Rename to ...
16639         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
16640         (contains_type_p): Update.
16641         (get_dynamic_type): Rename to ...
16642         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
16643         (possible_polymorphic_call_targets): UPdate.
16644         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
16645         * ipa-prop.c (ipa_analyze_call_uses): Update.
16646
16647 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16648
16649         * ipa-visibility.c (varpool_node::externally_visible_p): Do not
16650         privatize dynamic TLS variables.
16651
16652 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16653
16654         * diagnostic.c (warning_n): New function.
16655         * diagnostic-core.h (warning_n): Declare.
16656         * ipa-devirt.c (ipa_devirt): Handle singulars correctly;
16657         output dynamic counts when available.
16658
16659 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16660
16661         PR tree-optimization/63255
16662         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering
16663         issue in setting body_removed flag.
16664
16665 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16666
16667         PR c++/61825
16668         * c-family/c-common.c (handle_alias_ifunc_attribute): Check
16669         that visibility change is possible
16670         (handle_weakref_attribute): Likewise.
16671         * cgraph.h (symtab_node): Add method get_create and
16672         field refuse_visibility_changes.
16673         (symtab_node::get_create): New method.
16674         * fold-const.c (tree_single_nonzero_warnv_p): Use get_create.
16675         * varasm.c (mark_weak): Verify that visibility change is
16676         possible.
16677
16678 2014-09-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
16679
16680         * config/rs6000/predicates.md (fusion_gpr_mem_load): Move testing
16681         for base_reg_operand to be common between LO_SUM and PLUS.
16682         (fusion_gpr_mem_combo): New predicate to match a fused address
16683         that combines the addis and memory offset address.
16684
16685         * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Change
16686         calling signature.
16687         (emit_fusion_gpr_load): Likewise.
16688
16689         * config/rs6000/rs6000.c (fusion_gpr_load_p): Change calling
16690         signature to pass each argument separately, rather than
16691         using an operands array.  Rewrite the insns found by peephole2 to
16692         be a single insn, rather than hoping the insns will still be
16693         together when the peephole pass is done.  Drop being called via a
16694         normal peephole.
16695         (emit_fusion_gpr_load): Change calling signature to be called from
16696         the fusion_gpr_load_<mode> insns with a combined memory address
16697         instead of the peephole pass passing the addis and offset
16698         separately.
16699
16700         * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): New unspec for GPR
16701         fusion.
16702         (power8 fusion peephole): Drop support for doing power8 via a
16703         normal peephole that was created by the peephole2 pass.
16704         (power8 fusion peephole2): Create a new insn with the fused
16705         address, so that the fused operation is kept together after
16706         register allocation is done.
16707         (fusion_gpr_load_<mode>): Likewise.
16708
16709 2014-09-19  Jan Hubicka  <hubicka@ucw.cz>
16710
16711         PR lto/63286
16712         * tree.c (need_assembler_name_p): Do not mangle variadic types.
16713
16714 2014-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
16715
16716         * recog.c (scratch_operand): Do not simply allow all hard registers:
16717         only allow those that are allocatable.
16718
16719 2014-09-19  Felix Yang  <felix.yang@huawei.com>
16720
16721         * cfgrtl.c ira.c ira-color.c ira-conflicts ira-lives.c: Update
16722         comments and fix spacing to conform to coding style.
16723
16724 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16725
16726         * genrecog.c (validate_pattern): Allow empty constraints in
16727         a match_scratch.
16728
16729 2014-09-19  Aldy Hernandez  <aldyh@redhat.com>
16730
16731         * dwarf2out.c (decl_ultimate_origin): Update comment.
16732         * tree.c (block_ultimate_origin): Same.
16733
16734 2014-09-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16735
16736         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
16737         Update GCC version name to GCC 5.
16738         (rs6000_function_arg_boundary): Likewise.
16739         (rs6000_function_arg): Likewise.
16740
16741 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16742
16743         * config/sh/sh.md: Fix use of constraints in define_split.
16744
16745 2014-09-19  Markus Trippelsdorf  <markus@trippelsdorf.de>
16746
16747         PR ipa/61998
16748         * ipa-devirt.c (ipa_devirt): Bail out if odr_types_ptr is NULL.
16749
16750 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16751
16752         * doc/md.texi (Modifiers): Consistently use "read/write"
16753         nomenclature rather than "input/output".
16754         * genrecog.c (constraints_supported_in_insn_p): New.
16755         (validate_pattern): If needed, also check constraints on
16756         MATCH_SCRATCH operands.
16757         * genoutput.c (validate_insn_alternatives): Catch earlyclobber
16758         operands with no '=' or '+' modifier.
16759
16760 2014-09-19  James Greenhalgh  <james.greenhalgh@arm.com>
16761
16762         * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
16763         scratch register as written.
16764
16765 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16766
16767         * config/s390/s390.c (s390_emit_epilogue): Remove bogus
16768         assignment.
16769
16770 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16771
16772         * config/s390/s390.md ("trunctdsd2", "extendsdtd2"): New
16773         expanders.
16774
16775 2014-09-19  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
16776
16777         PR target/62662
16778         * config/s390/s390.c (s390_emit_epilogue): When doing the return
16779         address load optimization force s390_optimize_prologue to leave it
16780         that way.  Only do the optimization if we already decided to push
16781         r14 into a stack slot.
16782
16783 2014-09-19  Marat Zakirov  <m.zakirov@samsung.com>
16784
16785         * asan.c (build_check_stmt): Alignment arg was added.
16786         (asan_expand_check_ifn): Optimization for alignment >= 8.
16787
16788 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16789
16790         * config/i386/vxworksae.h: Remove obsolete definitions.
16791         (STACK_CHECK_PROTECT): Define.
16792         * config/i386/vx-common.h: Remove.  Merge contents within
16793         config/i386/vxworks.h.
16794         * config.gcc (i?86-vxworks*): Use i386/vxworks.h instead of
16795         i386/vx-common.h.
16796
16797 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16798
16799         * config.gcc (powerpc-wrs-vxworksmils): New configuration.
16800         * config/rs6000/t-vxworksmils: New file.
16801         * config/rs6000/vxworksmils.h: New file.
16802
16803 2014-09-19  Olivier Hainque  <hainque@adacore.com>
16804
16805         * varasm.c (default_section_type_flags): Flag .persistent.bss
16806         sections as SECTION_BSS.
16807
16808 2014-09-19  Nick Clifton  <nickc@redhat.com>
16809
16810         * config/rl78/rl78.c (rl78_expand_epilogue): Generate a USE of the
16811         pop'ed registers so that DCE does not eliminate them.
16812
16813 2014-09-18  Jan Hubicka  <hubicka@ucw.cz>
16814
16815         PR lto/63298
16816         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix thinko in a condition.
16817
16818 2014-09-18  Joseph Myers  <joseph@codesourcery.com>
16819
16820         * system.h (LIBGCC2_TF_CEXT): Poison.
16821         * config/i386/cygming.h (LIBGCC2_TF_CEXT): Remove.
16822         * config/i386/darwin.h (LIBGCC2_TF_CEXT): Likewise.
16823         * config/i386/dragonfly.h (LIBGCC2_TF_CEXT): Likewise.
16824         * config/i386/freebsd.h (LIBGCC2_TF_CEXT): Likewise.
16825         * config/i386/gnu-user-common.h (LIBGCC2_TF_CEXT): Likewise.
16826         * config/i386/openbsdelf.h (LIBGCC2_TF_CEXT): Likewise.
16827         * config/i386/sol2.h (LIBGCC2_TF_CEXT): Likewise.
16828         * config/ia64/ia64.h (LIBGCC2_TF_CEXT): Likewise.
16829         * config/ia64/linux.h (LIBGCC2_TF_CEXT): Likewise.
16830
16831 2014-09-19  Kito Cheng  <kito@0xlab.org>
16832
16833         * except.h: Fix header guard.
16834         * addresses.h: Add missing header guard.
16835         * cfghooks.h: Likewise.
16836         * collect-utils.h: Likewise.
16837         * collect2-aix.h: Likewise.
16838         * conditions.h: Likewise.
16839         * cselib.h: Likewise.
16840         * dwarf2asm.h: Likewise.
16841         * graphds.h: Likewise.
16842         * graphite-scop-detection.h: Likewise.
16843         * gsyms.h: Likewise.
16844         * hw-doloop.h: Likewise.
16845         * incpath.h: Likewise.
16846         * ipa-inline.h: Likewise.
16847         * ipa-ref.h: Likewise.
16848         * ira-int.h: Likewise.
16849         * ira.h: Likewise.
16850         * lra-int.h: Likewise.
16851         * lra.h: Likewise.
16852         * lto-section-names.h: Likewise.
16853         * read-md.h: Likewise.
16854         * reload.h: Likewise.
16855         * rtl-error.h: Likewise.
16856         * sdbout.h: Likewise.
16857         * targhooks.h: Likewise.
16858         * tree-affine.h: Likewise.
16859         * xcoff.h: Likewise.
16860         * xcoffout.h: Likewise.
16861
16862 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
16863
16864         PR debug/63285
16865         * haifa-sched.c (schedule_block): Advance cycle at the end of BB
16866         if advance != 0.
16867
16868 2014-09-18  Vladimir Makarov  <vmakarov@redhat.com>
16869
16870         PR target/61360
16871         * lra.c (lra): Call recog_init.
16872
16873 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
16874
16875         PR c++/62017
16876         * asan.c (transform_statements): Don't instrument clobber statements.
16877
16878 2014-09-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16879
16880         * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
16881         to neon_load1_1reg<q>.
16882
16883 2014-09-17  Jakub Jelinek  <jakub@redhat.com>
16884
16885         PR debug/63284
16886         * tree-cfgcleanup.c (fixup_noreturn_call): Don't split block
16887         if there are only debug stmts after the noreturn call, instead
16888         remove the debug stmts.
16889
16890 2014-09-17  Jan Hubicka  <hubicka@ucw.cz>
16891
16892         * ipa-devirt.c (type_pair, default_hashset_traits): New types.
16893         (odr_types_equivalent_p): Use pair hash.
16894         (odr_subtypes_equivalent_p): Likewise, do structural compare
16895         on ODR types that may be mismatched.
16896         (warn_odr): Support warning when only one field is given.
16897         (odr_types_equivalent_p): Strenghten comparsions made;
16898         support VOIDtype.
16899         (add_type_duplicate): Update VISITED hash set.
16900
16901 2014-09-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16902
16903         * config.gcc (*-*-rtems*): Default to 'rtems' thread model.
16904         Enable selection of 'posix' or no thread model.
16905
16906 2014-09-17  Andrew Stubbs  <ams@codesourcery.com>
16907
16908         * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
16909         when architecture is older than ARMv7.
16910
16911 2014-09-16  John David Anglin  <danglin@gcc.gnu.org>
16912
16913         PR target/61853
16914         * config/pa/pa.c (pa_function_value): Directly handle aggregates
16915         that fit exactly in a word or double word.
16916
16917 2014-09-16  Ilya Tocar  <ilya.tocar@intel.com>
16918
16919         * config/i386/driver-i386.c (host_detect_local_cpu): Detect lack of
16920         zmm/k regs support.
16921
16922 2014-09-16  Alexander Ivchenko  <alexander.ivchenko@intel.com>
16923             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
16924             Anna Tikhonova  <anna.tikhonova@intel.com>
16925             Ilya Tocar  <ilya.tocar@intel.com>
16926             Andrey Turetskiy  <andrey.turetskiy@intel.com>
16927             Ilya Verbin  <ilya.verbin@intel.com>
16928             Kirill Yukhin  <kirill.yukhin@intel.com>
16929             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
16930
16931         * config/i386/i386.c
16932         (ix86_expand_vector_extract): Handle V32HI and V64QI modes.
16933         * config/i386/sse.md
16934         (define_mode_iterator VI48F_256): New.
16935         (define_mode_attr extract_type): Ditto.
16936         (define_mode_attr extract_suf): Ditto.
16937         (define_mode_iterator AVX512_VEC): Ditto.
16938         (define_expand
16939         "<extract_type>_vextract<shuffletype><extract_suf>_mask"): Use
16940         AVX512_VEC.
16941         (define_insn "avx512dq_vextract<shuffletype>64x2_1_maskm"): New.
16942         (define_insn
16943         "<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>"):
16944         Ditto.
16945         (define_mode_attr extract_type_2): Ditto.
16946         (define_mode_attr extract_suf_2): Ditto.
16947         (define_mode_iterator AVX512_VEC_2): Ditto.
16948         (define_expand
16949         "<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask"): Use
16950         AVX512_VEC_2 mode iterator.
16951         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16952         (define_expand "avx512vl_vextractf128<mode>"): Ditto.
16953         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16954         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16955         (define_split for V16FI mode): Ditto.
16956         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16957         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16958         (define_split for VI8F_256 mode): Ditto.
16959         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16960         (define_insn_and_split "vec_extract_lo_<mode>"): Delete.
16961         (define_insn "vec_extract_lo_<mode><mask_name>"): New.
16962         (define_split for VI4F_256 mode): Ditto.
16963         (define_insn "vec_extract_lo_<mode>_maskm"): Ditto.
16964         (define_insn "vec_extract_hi_<mode>_maskm"): Ditto.
16965         (define_insn "vec_extract_hi_<mode><mask_name>"): Add masking.
16966         (define_mode_iterator VEC_EXTRACT_MODE): Add V64QI and V32HI modes.
16967         (define_insn "vcvtph2ps<mask_name>"): Fix pattern condition.
16968         (define_insn "avx512f_vextract<shuffletype>32x4_1_maskm"): Ditto.
16969         (define_insn "<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>"):
16970         Update `type' attribute, remove explicit `memory' attribute calculation.
16971
16972 2014-09-16  Kito Cheng  <kito@0xlab.org>
16973
16974         * ira.c (ira): Don't initialize ira_spilled_reg_stack_slots and
16975         ira_spilled_reg_stack_slots_num if using lra.
16976         (do_reload): Remove release ira_spilled_reg_stack_slots part.
16977         * ira-color.c (ira_sort_regnos_for_alter_reg): Add assertion to
16978         make sure not using lra.
16979         (ira_reuse_stack_slot): Likewise.
16980         (ira_mark_new_stack_slot): Likewise.
16981
16982 2014-09-15  Andi Kleen  <ak@linux.intel.com>
16983
16984         * function.c (allocate_struct_function): Force
16985         DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT to one when
16986         profiling is disabled.
16987
16988 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
16989
16990         * cfgrtl.c, combine.c, config/arc/arc.c, config/mcore/mcore.c,
16991         config/rs6000/rs6000.c, config/sh/sh.c, cprop.c, dwarf2out.c,
16992         emit-rtl.c, final.c, function.c, gcse.c, jump.c, reg-stack.c,
16993         reload1.c, reorg.c, resource.c, sel-sched-ir.c: Replace INSN_DELETED_P
16994         macro with statically checked member functions.
16995         * rtl.h (rtx_insn::deleted): New method.
16996         (rtx_insn::set_deleted): Likewise.
16997         (rtx_insn::set_undeleted): Likewise.
16998         (INSN_DELETED_P): Remove.
16999
17000 2014-09-15  Trevor Saunders  <tsaunders@mozilla.com>
17001
17002         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Assign the
17003         result of emit_jump_insn_before to a new variable.
17004         * jump.c (mark_jump_label): Change the type of insn to rtx_insn *.
17005         (mark_jump_label_1): Likewise.
17006         (mark_jump_label_asm): Likewise.
17007         * reload1.c (gen_reload): Change type of tem to rtx_insn *.
17008         * rtl.h (mark_jump_label): Adjust.
17009
17010 2014-09-15  Jakub Jelinek  <jakub@redhat.com>
17011
17012         * Makefile.in (dg_target_exps): Remove.
17013         (check_gcc_parallelize): Change to just an upper bound number.
17014         (check-%-subtargets): Always print the non-parallelized goals.
17015         (check_p_vars, check_p_comma, check_p_subwork): Remove.
17016         (check_p_count, check_p_numbers0, check_p_numbers1, check_p_numbers2,
17017         check_p_numbers3, check_p_numbers4, check_p_numbers5,
17018         check_p_numbers6): New variables.
17019         (check_p_numbers): Set to sequence from 1 to 9999.
17020         (check_p_subdirs): Set to sequence from 1 to minimum of
17021         $(check_p_count) and either GCC_TEST_PARALLEL_SLOTS env var if set,
17022         or 128.
17023         (check-%, check-parallel-%): Rewritten so that for parallelized
17024         testing each job runs all the *.exp files, with
17025         GCC_RUNTEST_PARALLELIZE_DIR set in environment.
17026
17027 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17028
17029         * config/arc/arc-protos.h (arc_attr_type): Strengthen param from
17030         rtx to rtx_insn *.
17031         (arc_sets_cc_p): Likewise.
17032         * config/arc/arc.c (arc_print_operand): Use methods of
17033         "final_sequence" for clarity, and to enable strengthening of
17034         locals "jump" and "delay" from rtx to rtx_insn *.
17035         (arc_adjust_insn_length): Strengthen local "prev" from rtx to
17036         rtx_insn *; use method of rtx_sequence for typesafety.
17037         (arc_get_insn_variants): Use insn method of rtx_sequence for
17038         typesafety.
17039         (arc_pad_return): Likewise.
17040         (arc_attr_type): Strengthen param from rtx to rtx_insn *.
17041         (arc_sets_cc_p): Likewise.  Also, convert a GET_CODE check to a
17042         dyn_cast to rtx_sequence *, using insn method for typesafety.
17043         * config/arc/arc.h (ADJUST_INSN_LENGTH): Add checked casts to
17044         rtx_sequence * and use insn method when invoking get_attr_length.
17045         * config/bfin/bfin.c (type_for_anomaly): Strengthen param from rtx
17046         to rtx_insn *.  Replace a GET_CODE check with a dyn_cast to
17047         rtx_sequence *, introducing a local "seq", using its insn method
17048         from typesafety and clarity.
17049         (add_sched_insns_for_speculation): Strengthen local "next" from
17050         rtx to rtx_insn *.
17051         * config/c6x/c6x.c (get_insn_side): Likewise for param "insn".
17052         (predicate_insn): Likewise.
17053         * config/cris/cris-protos.h (cris_notice_update_cc): Likewise for
17054         second param.
17055         * config/cris/cris.c (cris_notice_update_cc): Likewise.
17056         * config/epiphany/epiphany-protos.h
17057         (extern void epiphany_insert_mode_switch_use): Likewise for param
17058         "insn".
17059         (get_attr_sched_use_fpu): Likewise for param.
17060         * config/epiphany/epiphany.c (epiphany_insert_mode_switch_use):
17061         Likewise for param "insn".
17062         * config/epiphany/mode-switch-use.c (insert_uses): Likewise for
17063         param "insn" of "target_insert_mode_switch_use" callback.
17064         * config/frv/frv.c (frv_insn_unit): Likewise for param "insn".
17065         (frv_issues_to_branch_unit_p): Likewise.
17066         (frv_pack_insn_p): Likewise.
17067         (frv_compare_insns): Strengthen locals "insn1" and "insn2" from
17068         const rtx * (i.e. mutable rtx_def * const *) to
17069         rtx_insn * const *.
17070         * config/i386/i386-protos.h (standard_sse_constant_opcode):
17071         Strengthen first param from rtx to rtx_insn *.
17072         (output_fix_trunc): Likewise.
17073         * config/i386/i386.c (standard_sse_constant_opcode): Likewise.
17074         (output_fix_trunc): Likewise.
17075         (core2i7_first_cycle_multipass_filter_ready_try): Likewise for
17076         local "insn".
17077         (min_insn_size): Likewise for param "insn".
17078         (get_mem_group): Likewise.
17079         (is_cmp): Likewise.
17080         (get_insn_path): Likewise.
17081         (get_insn_group): Likewise.
17082         (count_num_restricted): Likewise.
17083         (fits_dispatch_window): Likewise.
17084         (add_insn_window): Likewise.
17085         (add_to_dispatch_window): Likewise.
17086         (debug_insn_dispatch_info_file): Likewise.
17087         * config/m32c/m32c-protos.h (m32c_output_compare): Likewise for
17088         first param.
17089         * config/m32c/m32c.c (m32c_compare_redundant): Likewise for param
17090         "cmp" and local "prev".
17091         (m32c_output_compare): Likewise for param "insn".
17092         * config/m32r/predicates.md (define_predicate "small_insn_p"): Add
17093         a checked cast to rtx_insn * on "op" after we know it's an INSN_P.
17094         (define_predicate "large_insn_p"): Likewise.
17095         * config/m68k/m68k-protos.h (m68k_sched_attr_size): Strengthen
17096         param from rtx to rtx_insn *.
17097         (attr_op_mem m68k_sched_attr_op_mem): Likewise.
17098         * config/m68k/m68k.c (sched_get_attr_size_int): Likewise.
17099         (m68k_sched_attr_size): Likewise.
17100         (sched_get_opxy_mem_type): Likewise for param "insn".
17101         (m68k_sched_attr_op_mem): Likewise.
17102         (sched_mem_operand_p): Likewise.
17103         * config/mep/mep-protos.h (mep_multi_slot): Likewise for param.
17104         * config/mep/mep.c (mep_multi_slot): Likewise.
17105         * config/mips/mips-protos.h (mips_output_sync_loop): Likewise for
17106         first param.
17107         (mips_sync_loop_insns): Likewise.
17108         * config/mips/mips.c (mips_print_operand_punctuation): Use insn
17109         method of "final_sequence" for typesafety.
17110         (mips_process_sync_loop): Strengthen param "insn" from rtx to
17111         rtx_insn *.
17112         (mips_output_sync_loop): Likewise.
17113         (mips_sync_loop_insns): Likewise.
17114         (mips_74k_agen_init): Likewise.
17115         (mips_sched_init): Use NULL rather than NULL_RTX when working with
17116         insns.
17117         * config/nds32/nds32-fp-as-gp.c (nds32_symbol_load_store_p):
17118         Strengthen param "insn" from rtx to rtx_insn *.
17119         * config/nds32/nds32.c (nds32_target_alignment): Likewise for
17120         local "insn".
17121         * config/pa/pa-protos.h (pa_insn_refs_are_delayed): Likewise for
17122         param.
17123         * config/pa/pa.c (pa_output_function_epilogue): Likewise for local
17124         "insn".  Use method of rtx_sequence for typesafety.
17125         (branch_to_delay_slot_p): Strengthen param "insn" from rtx to
17126         rtx_insn *.
17127         (branch_needs_nop_p): Likewise.
17128         (use_skip_p): Likewise.
17129         (pa_insn_refs_are_delayed): Likewise.
17130         * config/rl78/rl78.c (rl78_propogate_register_origins): Likewise
17131         for locals "insn", "ninsn".
17132         * config/rs6000/rs6000.c (is_microcoded_insn): Likewise for param
17133         "insn".
17134         (is_cracked_insn): Likewise.
17135         (is_branch_slot_insn): Likewise.
17136         (is_nonpipeline_insn): Likewise.
17137         (insn_terminates_group_p): Likewise.
17138         (insn_must_be_first_in_group): Likewise.
17139         (insn_must_be_last_in_group): Likewise.
17140         (force_new_group): Likewise for param "next_insn".
17141         * config/s390/s390.c (s390_get_sched_attrmask): Likewise for param
17142         "insn".
17143         (s390_sched_score): Likewise.
17144         * config/sh/sh-protos.h (output_branch): Likewise for param 2.
17145         (rtx sfunc_uses_reg): Likewise for sole param.
17146         * config/sh/sh.c (sh_print_operand): Use insn method of
17147         final_sequence for typesafety.
17148         (output_branch): Strengthen param "insn" from rtx to rtx_insn *.
17149         Use insn method of final_sequence for typesafety.
17150         (sfunc_uses_reg): Strengthen param "insn" from rtx to rtx_insn *.
17151         * config/sparc/sparc-protos.h (eligible_for_call_delay): Likewise
17152         for param.
17153         (eligible_for_return_delay): Likewise.
17154         (eligible_for_sibcall_delay): Likewise.
17155         * config/sparc/sparc.c (eligible_for_call_delay): Likewise.
17156         (eligible_for_return_delay): Likewise.
17157         (eligible_for_sibcall_delay): Likewise.
17158         * config/stormy16/stormy16-protos.h
17159         (xstormy16_output_cbranch_hi): Likewise for final param.
17160         (xstormy16_output_cbranch_si): Likewise.
17161         * config/stormy16/stormy16.c (xstormy16_output_cbranch_hi): LIkewise.
17162         (xstormy16_output_cbranch_si): Likewise.
17163         * config/v850/v850-protos.h (notice_update_cc): Likewise.
17164         * config/v850/v850.c (notice_update_cc): Likewise.
17165
17166         * final.c (get_attr_length_1): Strengthen param "insn" and param
17167         of "fallback_fn" from rtx to rtx_insn *, eliminating a checked cast.
17168         (get_attr_length): Strengthen param "insn" from rtx to rtx_insn *.
17169         (get_attr_min_length): Likewise.
17170         (shorten_branches): Likewise for signature of locals "length_fun"
17171         and "inner_length_fun".  Introduce local rtx_sequence * "seqn"
17172         from a checked cast and use its methods for clarity and to enable
17173         strengthening local "inner_insn" from rtx to rtx_insn *.
17174         * genattr.c (gen_attr): When writing out the prototypes of the
17175         various generated "get_attr_" functions, strengthen the params of
17176         the non-const functions from rtx to rtx_insn *.
17177         Similarly, strengthen the params of insn_default_length,
17178         insn_min_length, insn_variable_length_p, insn_current_length.
17179         (main): Similarly, strengthen the param of num_delay_slots,
17180         internal_dfa_insn_code, insn_default_latency, bypass_p,
17181         insn_latency, min_issue_delay, print_reservation,
17182         insn_has_dfa_reservation_p and of the "internal_dfa_insn_code" and
17183         "insn_default_latency" callbacks.  Rename hook_int_rtx_unreachable
17184         to hook_int_rtx_insn_unreachable.
17185         * genattrtab.c (write_attr_get): When writing out the generated
17186         "get_attr_" functions, strengthen the param "insn" from rtx to
17187         rtx_insn *, eliminating a checked cast.
17188         (make_automaton_attrs): When writing out prototypes of
17189         "internal_dfa_insn_code_", "insn_default_latency_" functions
17190         and the "internal_dfa_insn_code" and "insn_default_latency"
17191         callbacks, strengthen their params from rtx to rtx_insn *
17192         * genautomata.c (output_internal_insn_code_evaluation): When
17193         writing out code, add a checked cast from rtx to rtx_insn * when
17194         invoking DFA_INSN_CODE_FUNC_NAME aka dfa_insn_code.
17195         (output_dfa_insn_code_func): Strengthen param of generated
17196         function "dfa_insn_code_enlarge" from rtx to rtx_insn *.
17197         (output_trans_func): Likewise for generated function
17198         "state_transition".
17199         (output_internal_insn_latency_func): When writing out generated
17200         function "internal_insn_latency", rename params from "insn" and
17201         "insn2" to "insn_or_const0" and "insn2_or_const0".  Reintroduce
17202         locals "insn" and "insn2" as rtx_insn * with checked casts once
17203         we've proven that we're not dealing with const0_rtx.
17204         (output_insn_latency_func):  Strengthen param of generated
17205         function "insn_latency" from rtx to rtx_insn *.
17206         (output_print_reservation_func): Likewise for generated function
17207         "print_reservation".
17208         (output_insn_has_dfa_reservation_p): Likewise for generated
17209         function "insn_has_dfa_reservation_p".
17210         * hooks.c (hook_int_rtx_unreachable): Rename to...
17211         (hook_int_rtx_insn_unreachable): ...this, and strengthen param
17212         from rtx to rtx_insn *.
17213         * hooks.h (hook_int_rtx_unreachable): Likewise.
17214         (extern int hook_int_rtx_insn_unreachable): Likewise.
17215         * output.h (get_attr_length): Strengthen param from rtx to rtx_insn *.
17216         (get_attr_min_length): Likewise.
17217         * recog.c (get_enabled_alternatives): Likewise.
17218         * recog.h (alternative_mask get_enabled_alternatives): Likewise.
17219         * reorg.c (find_end_label): Introduce local rtx "pat" and
17220         strengthen local "insn" from rtx to rtx_insn *.
17221         (redundant_insn): Use insn method of "seq" rather than element for
17222         typesafety; strengthen local "control" from rtx to rtx_insn *.
17223         * resource.c (mark_referenced_resources): Add checked cast to
17224         rtx_insn * within INSN/JUMP_INSN case.
17225         (mark_set_resources): Likewise.
17226         * sel-sched.c (estimate_insn_cost): Strengthen param "insn" from
17227         rtx to rtx_insn *.
17228
17229 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17230
17231         * config/rs6000/rs6000.c (rs6000_loop_align_max_skip): Strengthen
17232         param "label" from rtx to rtx_insn *.
17233         * config/rx/rx.c (rx_max_skip_for_label): Likewise for param "lab"
17234         and local "op".
17235         * doc/tm.texi (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Autogenerated changes.
17236         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Likewise.
17237         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Likewise.
17238         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Likewise.
17239         * final.c (default_label_align_after_barrier_max_skip): Strengthen
17240         param from rtx to rtx_insn *.
17241         (default_loop_align_max_skip): Likewise.
17242         (default_label_align_max_skip): Likewise.
17243         (default_jump_align_max_skip): Likewise.
17244         * target.def (label_align_after_barrier_max_skip): Likewise.
17245         (loop_align_max_skip): Likewise.
17246         (label_align_max_skip): Likewise.
17247         (jump_align_max_skip): Likewise.
17248         * targhooks.h (default_label_align_after_barrier_max_skip):
17249         Likewise.
17250         (default_loop_align_max_skip): Likewise.
17251         (default_label_align_max_skip): Likewise.
17252         (default_jump_align_max_skip): Likewise.
17253
17254 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17255
17256         * config/arc/arc.c (arc_can_follow_jump): Strengthen both params
17257         from const_rtx to const rtx_insn *.  Update union members from rtx
17258         to rtx_insn *.
17259         * doc/tm.texi (TARGET_CAN_FOLLOW_JUMP): Autogenerated change.
17260         * hooks.c (hook_bool_const_rtx_const_rtx_true): Rename to...
17261         (hook_bool_const_rtx_insn_const_rtx_insn_true): ...this, and
17262         strengthen both params from const_rtx to const rtx_insn *.
17263         * hooks.h (hook_bool_const_rtx_const_rtx_true): Likewise.
17264         (hook_bool_const_rtx_insn_const_rtx_insn_true): Likewise.
17265         * reorg.c (follow_jumps): Strengthen param "jump" from rtx to
17266         rtx_insn *.
17267         * target.def (can_follow_jump): Strengthen both params from
17268         const_rtx to const rtx_insn *, and update default implementation
17269         from hook_bool_const_rtx_const_rtx_true to
17270         hook_bool_const_rtx_insn_const_rtx_insn_true.
17271
17272 2014-09-15  David Malcolm  <dmalcolm@redhat.com>
17273
17274         * sched-deps.c (deps_start_bb): Strengthen param "head" and local
17275         "insn" from rtx to rtx_insn *.
17276         * sched-int.h (deps_start_bb): Likewise for 2nd param.
17277
17278 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17279             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17280             Anna Tikhonova  <anna.tikhonova@intel.com>
17281             Ilya Tocar  <ilya.tocar@intel.com>
17282             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17283             Ilya Verbin  <ilya.verbin@intel.com>
17284             Kirill Yukhin  <kirill.yukhin@intel.com>
17285             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17286
17287         * config/i386/sse.md
17288         (define_insn "vcvtph2ps<mask_name>"): Add masking.
17289         (define_insn "*vcvtph2ps_load<mask_name>"): Ditto.
17290         (define_insn "vcvtph2ps256<mask_name>"): Ditto.
17291         (define_expand "vcvtps2ph_mask"): New.
17292         (define_insn "*vcvtps2ph<mask_name>"): Add masking.
17293         (define_insn "*vcvtps2ph_store<mask_name>"): Ditto.
17294         (define_insn "vcvtps2ph256<mask_name>"): Ditto.
17295
17296 2014-09-15  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17297             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17298             Anna Tikhonova  <anna.tikhonova@intel.com>
17299             Ilya Tocar  <ilya.tocar@intel.com>
17300             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17301             Ilya Verbin  <ilya.verbin@intel.com>
17302             Kirill Yukhin  <kirill.yukhin@intel.com>
17303             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17304
17305         * config/i386/sse.md (define_mode_iterator VI248_AVX512BW_AVX512VL):
17306         New.
17307         (define_mode_iterator VI24_AVX512BW_1): Ditto.
17308         (define_insn "<mask_codefor>ashr<mode>3<mask_name>"): Ditto.
17309         (define_insn "<mask_codefor>ashrv2di3<mask_name>"): Ditto.
17310         (define_insn "ashr<VI248_AVX512BW_AVX512VL:mode>3<mask_name>"): Enable
17311         also for TARGET_AVX512VL.
17312         (define_expand "ashrv2di3"): Update to enable TARGET_AVX512VL.
17313
17314 2014-09-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
17315
17316         * doc/install.texi (Options specification): add
17317         --disable-libsanitizer item.
17318
17319 2014-09-14  James Clarke  <jrtc27@jrtc27.com>
17320             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
17321
17322         PR target/61407
17323         * config/darwin-c.c (version_as_macro): Added extra 0 for OS X 10.10
17324         and above.
17325         * config/darwin-driver.c (darwin_find_version_from_kernel): Removed
17326         kernel version check to avoid incrementing it after every major OS X
17327         release.
17328         (darwin_default_min_version): Avoid static memory buffer.
17329
17330 2014-09-13  Jan Hubicka  <hubicka@ucw.cz>
17331
17332         * tree.c (need_assembler_name_p): Store C++ type mangling only
17333         for aggregates.
17334
17335 2014-09-13  Marek Polacek  <polacek@redhat.com>
17336
17337         * tree.c (protected_set_expr_location): Don't check whether T is
17338         non-null here.
17339
17340 2014-09-12  DJ Delorie  <dj@redhat.com>
17341
17342         * config/msp430/msp430.md (extendhipsi2): Use 20-bit form of RLAM/RRAM.
17343         (extend_and_shift1_hipsi2): Likewise.
17344         (extend_and_shift2_hipsi2): Likewise.
17345
17346 2014-09-12  David Malcolm  <dmalcolm@redhat.com>
17347
17348         * config/alpha/alpha.c (alpha_ra_ever_killed): Replace NULL_RTX
17349         with NULL when dealing with an insn.
17350         * config/sh/sh.c (sh_reorg): Strengthen local "last_float_move"
17351         from rtx to rtx_insn *.
17352         * rtl.h (reg_set_between_p): Strengthen params 2 and 3 from
17353         const_rtx to const rtx_insn *.
17354         * rtlanal.c (reg_set_between_p): Likewise, removing a checked cast.
17355
17356 2014-09-12  Trevor Saunders  <tsaunders@mozilla.com>
17357
17358         * hash-table.h (gt_pch_nx): Don't call gt_pch_note_object within an
17359         assert.
17360
17361 2014-09-12  Joseph Myers  <joseph@codesourcery.com>
17362
17363         * target.def (libgcc_floating_mode_supported_p): New hook.
17364         * targhooks.c (default_libgcc_floating_mode_supported_p): New
17365         function.
17366         * targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
17367         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
17368         (LIBGCC2_HAS_TF_MODE): Remove.
17369         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
17370         * doc/tm.texi: Regenerate.
17371         * genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
17372         machine mode.
17373         * system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
17374         (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
17375         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
17376         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
17377         * config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17378         * config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
17379         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
17380         * config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
17381         * config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
17382         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
17383         function.
17384         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
17385         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17386         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17387         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17388         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17389         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17390         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17391         * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
17392         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
17393         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
17394         * config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
17395         * config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
17396         * config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
17397         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
17398         Remove.
17399         * config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
17400         New macro.
17401         (ia64_libgcc_floating_mode_supported_p): New function.
17402         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
17403         * config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
17404         (IA64_NO_LIBGCC_TFMODE): Define.
17405         * config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
17406         * config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
17407         macro.
17408         (pdp11_scalar_mode_supported_p): New function.
17409         * config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
17410         * config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.
17411
17412 2014-09-12  Richard Biener  <rguenther@suse.de>
17413
17414         PR middle-end/63237
17415         * gimple-fold.c (get_maxval_strlen): Gimplify string length.
17416
17417 2014-09-12  Marc Glisse  <marc.glisse@inria.fr>
17418
17419         * tree.c (integer_each_onep): New function.
17420         * tree.h (integer_each_onep): Declare it.
17421         * fold-const.c (fold_binary_loc): Use it for ~A + 1 to -A and
17422         -A - 1 to ~A.  Disable (X & 1) ^ 1, (X ^ 1) & 1 and ~X & 1 to
17423         (X & 1) == 0 for vector and complex.
17424
17425 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17426
17427         * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
17428         for A57.
17429         (cortexa53_regmove_cost): New cost table for A53.  Increase GP2FP/FP2GP
17430         cost to spilling from integer to FP registers.
17431
17432 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17433
17434         * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
17435         move handling.
17436         (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
17437         are now handled correctly.
17438
17439 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17440
17441         * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
17442         handling of CALLER_SAVE_REGS and POINTER_REGS.
17443
17444 2014-09-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
17445
17446         * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
17447         the number of hard registers.
17448
17449 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17450             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17451             Anna Tikhonova  <anna.tikhonova@intel.com>
17452             Ilya Tocar  <ilya.tocar@intel.com>
17453             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17454             Ilya Verbin  <ilya.verbin@intel.com>
17455             Kirill Yukhin  <kirill.yukhin@intel.com>
17456             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17457
17458         * config/i386/sse.md
17459         (define_mode_iterator VI48_AVX512VL): New.
17460         (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from
17461         "avx512f_vternlog<mode>_maskz" and update mode iterator.
17462         (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename
17463         from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator.
17464         (define_insn "<avx512>_vternlog<mode>_mask"): Rename from
17465         "avx512f_vternlog<mode>_mask" and update mode iterator.
17466         (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename
17467         from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode
17468         iterator.
17469         (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from
17470         "avx512f_<rotate>v<mode><mask_name>" and update mode iterator.
17471         (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from
17472         "avx512f_<rotate><mode><mask_name>" and update mode iterator.
17473         (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator.
17474         (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto.
17475
17476 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17477             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17478             Anna Tikhonova  <anna.tikhonova@intel.com>
17479             Ilya Tocar  <ilya.tocar@intel.com>
17480             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17481             Ilya Verbin  <ilya.verbin@intel.com>
17482             Kirill Yukhin  <kirill.yukhin@intel.com>
17483             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17484
17485         * config/i386/sse.md (VI128_256): Delete.
17486         (define_mode_iterator VI124_256): New.
17487         (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto.
17488         (define_expand "<code><mode>3<mask_name><round_name>"): Delete.
17489         (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New.
17490         (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from
17491         "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator.
17492         (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New.
17493         (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto.
17494         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode
17495         iterator.
17496         (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation
17497         in presence of AVX-512.
17498
17499 2014-09-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17500             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17501             Anna Tikhonova  <anna.tikhonova@intel.com>
17502             Ilya Tocar  <ilya.tocar@intel.com>
17503             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17504             Ilya Verbin  <ilya.verbin@intel.com>
17505             Kirill Yukhin  <kirill.yukhin@intel.com>
17506             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17507
17508         * config/i386/sse.md
17509         (define_expand "<avx512>_gathersi<mode>"): Rename from
17510         "avx512f_gathersi<mode>".
17511         (define_insn "*avx512f_gathersi<mode>"): Use VI48F.
17512         (define_insn "*avx512f_gathersi<mode>_2"): Ditto.
17513         (define_expand "<avx512>_gatherdi<mode>"): Rename from
17514         "avx512f_gatherdi<mode>".
17515         (define_insn "*avx512f_gatherdi<mode>"): Use VI48F.
17516         (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit
17517         wide versions.
17518         (define_expand "<avx512>_scattersi<mode>"): Rename from
17519         "avx512f_scattersi<mode>".
17520         (define_insn "*avx512f_scattersi<mode>"): Use VI48F.
17521         (define_expand "<avx512>_scatterdi<mode>"): Rename from
17522         "avx512f_scatterdi<mode>".
17523         (define_insn "*avx512f_scatterdi<mode>"): Use VI48F.
17524
17525 2014-09-12  Richard Sandiford  <richard.sandiford@arm.com>
17526
17527         * ira.h (ira_finish_once): Delete.
17528         * ira-int.h (target_ira_int::~target_ira_int): Declare.
17529         (target_ira_int::free_ira_costs): Likewise.
17530         (target_ira_int::free_register_move_costs): Likewise.
17531         (ira_finish_costs_once): Delete.
17532         * ira.c (free_register_move_costs): Replace with...
17533         (target_ira_int::free_register_move_costs): ...this new function.
17534         (target_ira_int::~target_ira_int): Define.
17535         (ira_init): Call free_register_move_costs as a member function rather
17536         than a global function.
17537         (ira_finish_once): Delete.
17538         * ira-costs.c (free_ira_costs): Replace with...
17539         (target_ira_int::free_ira_costs): ...this new function.
17540         (ira_init_costs): Call free_ira_costs as a member function rather
17541         than a global function.
17542         (ira_finish_costs_once): Delete.
17543         * target-globals.c (target_globals::~target_globals): Call the
17544         target_ira_int destructor.
17545         * toplev.c: Include lra.h.
17546         (finalize): Call lra_finish_once rather than ira_finish_once.
17547
17548 2014-09-11  Jan Hubicka  <hubicka@ucw.cz>
17549
17550         * common.opt (flto-odr-type-merging): New flag.
17551         * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale.
17552         (types_same_for_odr): Likewise.
17553         (odr_subtypes_equivalent_p): Likewise.
17554         (add_type_duplicate): Do not walk type variants.
17555         (register_odr_type): New function.
17556         * ipa-utils.h (register_odr_type): Declare.
17557         (odr_type_p): New function.
17558         * langhooks.c (lhd_set_decl_assembler_name): Do not compute
17559         TYPE_DECLs
17560         * doc/invoke.texi (-flto-odr-type-merging): Document.
17561         * tree.c (need_assembler_name_p): Compute ODR names when asked
17562         for it.
17563         * tree.h (DECL_ASSEMBLER_NAME): Update comment.
17564
17565 2014-09-11  H.J. Lu  <hongjiu.lu@intel.com>
17566
17567         PR target/63228
17568         * config/i386/i386.c (ix86_option_override_internal): Also turn
17569         off OPTION_MASK_ABI_X32 for -m16.
17570
17571 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17572
17573         * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator
17574         GPR instead of P.
17575
17576 2014-09-11  Marc Glisse  <marc.glisse@inria.fr>
17577
17578         PR target/58757
17579         * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
17580         Directly forward to __*_DENORM_MIN__.
17581
17582 2014-09-11  David Malcolm  <dmalcolm@redhat.com>
17583
17584         * rtl.h (LABEL_REF_LABEL): New macro.
17585
17586         * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place
17587         of XEXP (, 0), where we know that we have a LABEL_REF.
17588         * cfgbuild.c (make_edges): Likewise.
17589         (purge_dead_tablejump_edges): Likewise.
17590         * cfgexpand.c (convert_debug_memory_address): Likewise.
17591         * cfgrtl.c (patch_jump_insn): Likewise.
17592         * combine.c (distribute_notes): Likewise.
17593         * cse.c (hash_rtx_cb): Likewise.
17594         (exp_equiv_p): Likewise.
17595         (fold_rtx): Likewise.
17596         (check_for_label_ref): Likewise.
17597         * cselib.c (rtx_equal_for_cselib_1): Likewise.
17598         (cselib_hash_rtx): Likewise.
17599         * emit-rtl.c (mark_label_nuses): Likewise.
17600         * explow.c (convert_memory_address_addr_space): Likewise.
17601         * final.c (output_asm_label): Likewise.
17602         (output_addr_const): Likewise.
17603         * gcse.c (add_label_notes): Likewise.
17604         * genconfig.c (walk_insn_part): Likewise.
17605         * genrecog.c (validate_pattern): Likewise.
17606         * ifcvt.c (cond_exec_get_condition): Likewise.
17607         (noce_emit_store_flag): Likewise.
17608         (noce_get_alt_condition): Likewise.
17609         (noce_get_condition): Likewise.
17610         * jump.c (maybe_propagate_label_ref): Likewise.
17611         (mark_jump_label_1): Likewise.
17612         (redirect_exp_1): Likewise.
17613         (rtx_renumbered_equal_p): Likewise.
17614         * lra-constraints.c (operands_match_p): Likewise.
17615         * reload.c (operands_match_p): Likewise.
17616         (find_reloads): Likewise.
17617         * reload1.c (set_label_offsets): Likewise.
17618         * reorg.c (get_branch_condition): Likewise.
17619         * rtl.c (rtx_equal_p_cb): Likewise.
17620         (rtx_equal_p): Likewise.
17621         * rtlanal.c (reg_mentioned_p): Likewise.
17622         (rtx_referenced_p): Likewise.
17623         (get_condition): Likewise.
17624         * sched-vis.c (print_value): Likewise.
17625         * varasm.c (const_hash_1): Likewise.
17626         (compare_constant): Likewise.
17627         (const_rtx_hash_1): Likewise.
17628         (output_constant_pool_1): Likewise.
17629
17630 2014-09-11  Segher Boessenkool  <segher@kernel.crashing.org>
17631
17632         * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc,
17633         tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor
17634         instead of minus.
17635         * config/rs6000/vector.md (cr6_test_for_zero_reverse,
17636         cr6_test_for_lt_reverse): Ditto.
17637
17638 2014-09-11  Paolo Carlini  <paolo.carlini@oracle.com>
17639
17640         PR c++/61489
17641         * doc/invoke.texi ([-Wmissing-field-initializers]): Update.
17642
17643 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17644
17645         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers,
17646         TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP,
17647         aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US,
17648         aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD):
17649         Delete.
17650
17651         (aarch64_fold_builtin): Remove all reinterpret cases.
17652
17653         * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete.
17654
17655         * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete.
17656
17657         * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>,
17658         aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>,
17659         aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>,
17660         aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>,
17661         aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>,
17662         aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>,
17663         aarch64_reinterpretv2df<mode>): Delete.
17664
17665         * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete.
17666
17667         * config/aarch64/arm_neon.h (vreinterpret_p8_f64,
17668         vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32,
17669         vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8,
17670         vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8,
17671         vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64,
17672         vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64,
17673         vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64,
17674         vreinterpret_u32_f64): Use cast.
17675
17676         * config/aarch64/iterators.md (VD_RE): Delete.
17677
17678 2014-09-11  Alan Lawrence  <alan.lawrence@arm.com>
17679
17680         * config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2).
17681         (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
17682         vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
17683         vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64,
17684         vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16,
17685         vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64,
17686         vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64):
17687         Replace inline assembler with __aarch64_vset_lane_any.
17688
17689 2014-09-11  James Greenhalgh  <james.greenhalgh@arm.com>
17690
17691         * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument
17692         types.
17693         (vmull_high_lane_s32): Likewise.
17694         (vmull_high_lane_u16): Likewise.
17695         (vmull_high_lane_u32): Likewise.
17696
17697 2014-09-11  Jason Merrill  <jason@redhat.com>
17698
17699         PR c++/58678
17700         * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT.
17701
17702 2014-09-11  Georg-Johann Lay  <avr@gjlay.de>
17703
17704         PR target/63223
17705         * config/avr/avr.md (*tablejump.3byte-pc): New insn.
17706         (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL.  Add void clobber.
17707         (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL.
17708
17709 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17710             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17711             Anna Tikhonova  <anna.tikhonova@intel.com>
17712             Ilya Tocar  <ilya.tocar@intel.com>
17713             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17714             Ilya Verbin  <ilya.verbin@intel.com>
17715             Kirill Yukhin  <kirill.yukhin@intel.com>
17716             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17717
17718         * config/i386/sse.md
17719         (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from
17720         "avx512f_vpermi2var<mode>3_maskz" and update mode iterator.
17721         (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"):
17722         New.
17723         (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename
17724         from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode
17725         iterator.
17726         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17727         New.
17728         (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from
17729         "avx512f_vpermi2var<mode>3_mask" and update mode iterator.
17730         (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New.
17731         (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from
17732         "avx512f_vpermt2var<mode>3_maskz" and update mode iterator.
17733         (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New.
17734         (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename
17735         from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode
17736         iterator.
17737         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"):
17738         New.
17739         (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from
17740         "avx512f_vpermt2var<mode>3_mask" and update mode iterator.
17741         (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New.
17742
17743 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17744
17745         * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try
17746         to access removed nodes.
17747
17748 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17749
17750         PR tree-optimization/63186
17751         * ipa-split.c (test_nonssa_use): Skip nonforced labels.
17752         (mark_nonssa_use): Likewise.
17753         (verify_non_ssa_vars): Verify all header blocks for label
17754         definitions.
17755
17756 2014-09-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17757             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17758             Anna Tikhonova  <anna.tikhonova@intel.com>
17759             Ilya Tocar  <ilya.tocar@intel.com>
17760             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17761             Ilya Verbin  <ilya.verbin@intel.com>
17762             Kirill Yukhin  <kirill.yukhin@intel.com>
17763             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17764
17765         * config/i386/sse.md
17766         (define_mode_attr avx2_avx512): Rename from avx2_avx512bw.
17767         (define_mode_iterator VI48F_256_512): Extend to AVX-512VL.
17768         (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from
17769         "<avx2_avx512f>_permvar<mode><mask_name>".
17770         (define_insn "<avx512>_permvar<mode><mask_name>"): New.
17771         (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"):
17772         Rename from "<avx2_avx512f>_ashrv<mode><mask_name>".
17773         (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"):
17774         Ditto.
17775         (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"):
17776         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17777         (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"):
17778         Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>".
17779
17780 2014-09-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17781
17782         * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for
17783         V2DF, V4SF, DF, and DI modes.
17784         (vsx_fmav2df2): Likewise.
17785         (vsx_float_fix_<mode>2): Likewise.
17786         (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise.
17787
17788 2014-09-10  Xinliang David Li  <davidxl@google.com>
17789
17790         PR target/63209
17791         * config/arm/arm.md (movcond_addsi): Handle case where source
17792         and target operands are the same.
17793
17794 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
17795
17796         * final.c (this_is_asm_operands): Strengthen this variable from
17797         rtx to const rtx_insn *.
17798         * output.h (this_is_asm_operands): Likewise.
17799         * rtl-error.c (location_for_asm): Strengthen param "insn" from
17800         const_rtx to const rtx_insn *.
17801         (diagnostic_for_asm): Likewise.
17802         * rtl-error.h (error_for_asm): Likewise.
17803         (warning_for_asm): Likewise.
17804
17805 2014-09-10  David Malcolm  <dmalcolm@redhat.com>
17806
17807         * genextract.c (print_header): When writing out insn_extract to
17808         insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *.
17809         * recog.h (insn_extract): Strengthen the param from rtx to
17810         rtx_insn *.
17811
17812 2014-09-10  Mike Stump  <mikestump@comcast.net>
17813
17814         * doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in
17815         8.6.1.
17816
17817 2014-09-10  Martin Jambor  <mjambor@suse.cz>
17818
17819         * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.
17820         (analyze): Do not set analyze flag if expand_thunk returns false;.
17821         (create_wrapper): Likewise.
17822         * cgraphclones.c (duplicate_thunk_for_node): Likewise.
17823
17824 2014-09-10  Martin Jambor  <mjambor@suse.cz>
17825
17826         PR ipa/61654
17827         * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the
17828         new decl properly.  Analyze the new thunk if it is expanded.
17829
17830 2014-09-10  Andreas Schwab  <schwab@suse.de>
17831
17832         * coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn)
17833         [USED_FOR_TARGET]: Define.
17834
17835 2014-09-10  Matthew Fortune  <matthew.fortune@imgtec.com>
17836
17837         * config/mips/mips.c (mips_secondary_reload_class): Handle
17838         regno < 0 case.
17839
17840 2014-09-10  Robert Suchanek   <robert.suchanek@imgtec.com>
17841
17842         * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR
17843         assignment.
17844
17845 2014-09-10  Jakub Jelinek  <jakub@redhat.com>
17846
17847         * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE
17848         and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED.
17849         * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and
17850         SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable
17851         flag_delete_null_pointer_checks for them.
17852         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
17853         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT,
17854         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
17855         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New.
17856         * ubsan.c (instrument_bool_enum_load): Set *gsi back to
17857         stmt's iterator.
17858         (instrument_nonnull_arg, instrument_nonnull_return): New functions.
17859         (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE
17860         or SANITIZE_RETURNS_NONNULL_ATTRIBUTE.
17861         (pass_ubsan::execute): Call instrument_nonnull_{arg,return}.
17862         * doc/invoke.texi (-fsanitize=nonnull-attribute,
17863         -fsanitize=returns-nonnull-attribute): Document.
17864
17865         * ubsan.h (struct ubsan_mismatch_data): Removed.
17866         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17867         * ubsan.c (ubsan_source_location): For unknown locations,
17868         pass { NULL, 0, 0 } instead of { "<unknown>", x, y }.
17869         (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument.
17870         Allow more than one location and arbitrary extra arguments passed
17871         in ... instead of through MISMATCH pointer.
17872         (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn,
17873         ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
17874         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
17875         callers.
17876
17877 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17878             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17879             Anna Tikhonova  <anna.tikhonova@intel.com>
17880             Ilya Tocar  <ilya.tocar@intel.com>
17881             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17882             Ilya Verbin  <ilya.verbin@intel.com>
17883             Kirill Yukhin  <kirill.yukhin@intel.com>
17884             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17885
17886         * config/i386/sse.md
17887         (define_mode_iterator VI48F): New.
17888         (define_insn "<avx512>_compress<mode>_mask"): Rename from
17889         "avx512f_compress<mode>_mask" and update mode iterator.
17890         (define_insn "<avx512>_compressstore<mode>_mask"): Rename from
17891         "avx512f_compressstore<mode>_mask" and update mode iterator.
17892         (define_expand "<avx512>_expand<mode>_maskz"): Rename from
17893         "avx512f_expand<mode>_maskz" and update mode iterator.
17894         (define_insn "<avx512>_expand<mode>_mask"): Rename from
17895         "avx512f_expand<mode>_mask" and update mode iterator.
17896
17897 2014-09-10  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/i386.c
17907         (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round,
17908         avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask,
17909         avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask,
17910         avx512dq_rangepv4sf_mask.
17911         * config/i386/sse.md
17912         (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS,
17913         UNSPEC_RANGE.
17914         (define_insn "<mask_codefor>reducep<mode><mask_name>"): New.
17915         (define_insn "reduces<mode>"): Ditto.
17916         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
17917         Ditto.
17918         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto.
17919         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto.
17920         (define_insn "avx512dq_vmfpclass<mode>"): Ditto..
17921
17922 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17923             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17924             Anna Tikhonova  <anna.tikhonova@intel.com>
17925             Ilya Tocar  <ilya.tocar@intel.com>
17926             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17927             Ilya Verbin  <ilya.verbin@intel.com>
17928             Kirill Yukhin  <kirill.yukhin@intel.com>
17929             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17930
17931         * config/i386/i386.c
17932         (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round".
17933         (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round".
17934         (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask,
17935         avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask,
17936         avx512vl_getmantv2df_mask.
17937         (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round,
17938         avx512f_vgetmantv4sf_round.
17939         * config/i386/sse.md
17940         (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"):
17941         Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update
17942         mode iterator.
17943         (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL.
17944         (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto.
17945         (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename
17946         from "avx512f_scalef<mode><mask_name><round_name>" and update mode
17947         iterator..
17948         (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"):
17949         Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and
17950         update mode iterator.
17951         (define_expand
17952         "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from
17953         "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update
17954         mode iterator.
17955         (define_insn
17956         "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename
17957         from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and
17958         update mode iterator.
17959         (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename
17960         from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode
17961         iterator..
17962         (define_insn
17963         "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from
17964         "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update
17965         mode iterator..
17966         (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"):
17967         Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and
17968         update mode iterator.
17969         (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from
17970         "avx512f_getmant<mode><round_saeonly_name>".
17971
17972 2014-09-10  Jan Hubicka  <hubicka@ucw.cz>
17973
17974         PR ipa/63166
17975         * ipa-prop.c (compute_known_type_jump_func): Fix conditional.
17976
17977 2014-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
17978             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
17979             Anna Tikhonova  <anna.tikhonova@intel.com>
17980             Ilya Tocar  <ilya.tocar@intel.com>
17981             Andrey Turetskiy  <andrey.turetskiy@intel.com>
17982             Ilya Verbin  <ilya.verbin@intel.com>
17983             Kirill Yukhin  <kirill.yukhin@intel.com>
17984             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
17985
17986         * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New.
17987         (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version.
17988         (define_mode_iterator FMAMODE_AVX512): New.
17989         (define_mode_iterator FMAMODE): Remove conditions.
17990         (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator.
17991         (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename
17992         from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL
17993         mode iterator.
17994         (define_mode_iterator FMAMODE_NOVF512): Remove.
17995         (define_insn "*fma_fmadd_<mode>"): Rename from
17996         "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use
17997         FMAMODE mode iterator.
17998         (define_mode_iterator VF_SF_AVX512VL): New.
17999         (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"):
18000         Use VF_SF_AVX512VL mode iterator.
18001         (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from
18002         "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18003         iterator.
18004         (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from
18005         "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18006         iterator.
18007         (define_insn "*fma_fmsub_<mode>"): Rename from
18008         "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use
18009         FMAMODE mode iterator.
18010         (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"):
18011         Use VF_SF_AVX512VL mode iterator.
18012         (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from
18013         "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18014         iterator.
18015         (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from
18016         "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18017         iterator.
18018         (define_insn "*fma_fnmadd_<mode>"): Rename from
18019         "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and
18020         use FMAMODE mode iterator.
18021         (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"):
18022         Use VF_SF_AVX512VL mode iterator.
18023         (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from
18024         "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18025         iterator.
18026         (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from
18027         "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18028         iterator.
18029         (define_insn "*fma_fnmsub_<mode>"): Rename from
18030         "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use
18031         FMAMODE mode iterator.
18032         (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"):
18033         Use VF_SF_AVX512VL mode iterator.
18034         (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from
18035         "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18036         iterator.
18037         (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from
18038         "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18039         iterator.
18040         (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"):
18041         Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and
18042         use VF_AVX512VL mode iterator.
18043         (define_insn "*fma_fmaddsub_<mode>"): Rename from
18044         "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and
18045         remove subst usage.
18046         (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"):
18047         Use VF_SF_AVX512VL mode iterator.
18048         (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from
18049         "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode
18050         iterator.
18051         (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from
18052         "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18053         iterator.
18054         (define_insn "*fma_fmsubadd_<mode>"): Rename from
18055         "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and
18056         remove usage of subst.
18057         (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"):
18058         Use VF_SF_AVX512VL mode iterator.
18059         (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from
18060         "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode
18061         iterator.
18062         (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from
18063         "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode
18064         iterator.
18065
18066 2014-09-10  Kugan Vivekanandarajah  <kuganv@linaro.org>
18067
18068         Revert r213751:
18069         * calls.c (precompute_arguments): Check
18070          promoted_for_signed_and_unsigned_p and set the promoted mode.
18071         (promoted_for_signed_and_unsigned_p): New function.
18072         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
18073         and set the promoted mode.
18074         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
18075         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
18076         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
18077
18078 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18079
18080         * opth-gen.awk: Generate mapping from cpp message reasons to the
18081         options that enable them.
18082         * doc/options.texi (CppReason): Document.
18083
18084 2014-09-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
18085
18086         * doc/invoke.texi (Wnormalized=): Update.
18087
18088 2014-09-09  Segher Boessenkool  <segher@kernel.crashing.org>
18089
18090         PR target/63195
18091         * config/rs6000/rs6000.md (*bool<mode>3): Allow only register
18092         operands.  Split off the constant operand alternative to ...
18093         (*bool<mode>3_imm): New.
18094
18095 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18096
18097         * rtl.h (single_set_2): Strengthen first param from const_rtx to
18098         const rtx_insn *, and move prototype to above...
18099         (single_set): ...this.  Convert this from a macro to an inline
18100         function, enforcing the requirement that the param is a const
18101         rtx_insn *.
18102         (find_args_size_adjust): Strengthen param from rtx to rtx_insn *.
18103
18104         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
18105         Strengthen both params from rtx to rtx_insn *.
18106         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18107         Likewise; introduce locals "producer_set", "consumer_set", using
18108         them in place of "producer" and "consumer" when dealing with SET
18109         rather than insn.
18110         * config/avr/avr.c (avr_out_plus): Add checked cast to rtx_insn *
18111         when invoking single_set in region guarded by INSN_P.
18112         (avr_out_bitop): Likewise.
18113         (_reg_unused_after): Introduce local rtx_sequence * "seq" in
18114         region guarded by GET_CODE check, using methods to strengthen
18115         local "this_insn" from rtx to rtx_insn *, and for clarity.
18116         * config/avr/avr.md (define_insn_and_split "xload8<mode>_A"):
18117         Strengthen local "insn" from rtx to rtx_insn *.
18118         (define_insn_and_split "xload<mode>_A"): Likewise.
18119         * config/bfin/bfin.c (trapping_loads_p): Likewise for param
18120         "insn".
18121         (find_load): Likewise for return type.
18122         (workaround_speculation): Likewise for both locals named
18123         "load_insn".
18124         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise for
18125         local "cc0_user".
18126         * config/cris/cris.md (define_peephole2 ; moversideqi): Likewise
18127         for local "prev".
18128         * config/h8300/h8300-protos.h (notice_update_cc): Likewise for
18129         param 2.
18130         * config/h8300/h8300.c (notice_update_cc): Likewise.
18131         * config/i386/i386.c (ix86_flags_dependent): Likewise for params
18132         "insn" and "dep_insn".
18133         (exact_store_load_dependency): Likewise for both params.
18134         (ix86_macro_fusion_pair_p): Eliminate local named "single_set"
18135         since this now clashes with inline function.  Instead, delay
18136         calling single_set until the point where its needed, and then
18137         assign the result to "compare_set" and rework the conditional that
18138         follows.
18139         * config/ia64/ia64.md (define_expand "tablejump"): Strengthen
18140         local "last" from rtx to rtx_insn *.
18141         * config/mips/mips-protos.h (mips_load_store_insns): Likewise for
18142         second param.
18143         (mips_store_data_bypass_p): Likewise for both params.
18144         * config/mips/mips.c (mips_load_store_insns): Likewise for second
18145         param.
18146         (mips_store_data_bypass_p): Likewise for both params.
18147         (mips_orphaned_high_part_p): Likewise for param "insn".
18148         * config/mn10300/mn10300.c (extract_bundle): Likewise.
18149         (mn10300_bundle_liw): Likewise for locals "r", "insn1", "insn2".
18150         Introduce local rtx "insn2_pat".
18151         * config/rl78/rl78.c (move_elim_pass): Likewise for locals "insn",
18152         "ninsn".
18153         (rl78_remove_unused_sets): Likewise for locals "insn", "ninsn".
18154         Introduce local rtx "set", using it in place of "insn" for the
18155         result of single_set.  This appears to fix a bug, since the call
18156         to find_regno_note on a SET does nothing.
18157         * config/rs6000/rs6000.c (set_to_load_agen): Strengthen both
18158         params from rtx to rtx_insn *.
18159         (set_to_load_agen): Likewise.
18160         * config/s390/s390.c (s390_label_align): Likewise for local
18161         "prev_insn".  Introduce new rtx locals "set" and "src", using
18162         them in place of "prev_insn" for the results of single_set
18163         and SET_SRC respectively.
18164         (s390_swap_cmp): Strengthen local "jump" from rtx to rtx_insn *.
18165         Introduce new rtx local "set" using in place of "jump" for the
18166         result of single_set.  Use SET_SRC (set) rather than plain
18167         XEXP (set, 1).
18168         * config/sh/sh.c (noncall_uses_reg): Strengthen param 2from
18169         rtx to rtx_insn *.
18170         (noncall_uses_reg): Likewise.
18171         (reg_unused_after): Introduce local rtx_sequence * "seq" in region
18172         guarded by GET_CODE check, using its methods for clarity, and to
18173         enable strengthening local "this_insn" from rtx to rtx_insn *.
18174         * config/sh/sh.md (define_expand "mulhisi3"): Strengthen local
18175         "insn" from rtx to rtx_insn *.
18176         (define_expand "umulhisi3"): Likewise.
18177         (define_expand "smulsi3_highpart"): Likewise.
18178         (define_expand "umulsi3_highpart"): Likewise.
18179         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
18180         local "after".  Replace GET_CODE check with a dyn_cast,
18181         introducing new local rtx_sequence * "seq", using insn method for
18182         typesafety.
18183
18184         * dwarf2cfi.c (dwarf2out_frame_debug): Strengthen param "insn"
18185         from rtx to rtx_insn *.  Introduce local rtx "pat", using it in
18186         place of "insn" once we're dealing with patterns rather than the
18187         input insn.
18188         (scan_insn_after): Strengthen param "insn" from rtx to rtx_insn *.
18189         (scan_trace): Likewise for local "elt", updating lookups within
18190         sequence to use insn method rather than element method.
18191         * expr.c (find_args_size_adjust): Strengthen param "insn" from rtx
18192         to rtx_insn *.
18193         * gcse.c (gcse_emit_move_after): Likewise for local "new_rtx".
18194         * ifcvt.c (noce_try_abs): Likewise for local "insn".
18195         * ira.c (fix_reg_equiv_init): Add checked cast to rtx_insn * when
18196         invoking single_set.
18197         * lra-constraints.c (insn_rhs_dead_pseudo_p): Strengthen param
18198         "insn" from rtx to rtx_insn *.
18199         (skip_usage_debug_insns): Likewise for return type, adding a
18200         checked cast.
18201         (check_secondary_memory_needed_p): Likewise for local "insn".
18202         (inherit_reload_reg): Likewise.
18203         * modulo-sched.c (sms_schedule): Likewise for local "count_init".
18204         * recog.c (peep2_attempt): Likewise for local "old_insn", adding
18205         checked casts.
18206         (store_data_bypass_p): Likewise for both params.
18207         (if_test_bypass_p): Likewise.
18208         * recog.h (store_data_bypass_p): Likewise for both params.
18209         (if_test_bypass_p): Likewise.
18210         * reload.c (find_equiv_reg): Likewise for local "where".
18211         * reorg.c (delete_jump): Likewise for param "insn".
18212         * rtlanal.c (single_set_2): Strenghen param "insn" from const_rtx
18213         to const rtx_insn *.
18214         * store-motion.c (replace_store_insn): Likewise for param "del".
18215         (delete_store): Strengthen local "i" from rtx to rtx_insn_list *,
18216         and use its methods for clarity, and to strengthen local "del"
18217         from rtx to rtx_insn *.
18218         (build_store_vectors): Use insn method of "st" when calling
18219         replace_store_insn for typesafety and clarity.
18220
18221 2014-09-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18222
18223         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add
18224         UNSPEC_VSX_CVDPSPN as an unswappable operand, and add commentary
18225         on how to make it legal in future.
18226
18227 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18228
18229         * caller-save.c (rtx saveinsn): Strengthen this variable from rtx
18230         to rtx_insn *.
18231         (restinsn): Likewise.
18232         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
18233         Likewise for param.
18234         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move):
18235         Likewise.
18236         * config/arc/arc-protos.h (arc_adjust_insn_length): Likewise for
18237         first param.
18238         (arc_hazard): Likewise for both params.
18239         * config/arc/arc.c (arc600_corereg_hazard): Likewise, adding
18240         checked casts to rtx_sequence * and uses of the insn method for
18241         type-safety.
18242         (arc_hazard): Strengthen both params from rtx to rtx_insn *.
18243         (arc_adjust_insn_length): Likewise for param "insn".
18244         (struct insn_length_parameters_s): Likewise for first param of
18245         "get_variants" callback field.
18246         (arc_get_insn_variants): Likewise for first param and local
18247         "inner".  Replace a check of GET_CODE with a dyn_cast to
18248         rtx_sequence *, using methods for type-safety and clarity.
18249         * config/arc/arc.h (ADJUST_INSN_LENGTH): Use casts to
18250         rtx_sequence * and uses of the insn method for type-safety when
18251         invoking arc_adjust_insn_length.
18252         * config/arm/arm-protos.h (arm_attr_length_move_neon): Likewise
18253         for param.
18254         (arm_address_offset_is_imm): Likewise.
18255         (struct tune_params): Likewise for params 1 and 3 of the
18256         "sched_adjust_cost" callback field.
18257         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Likewise for
18258         params 1 and 3 ("insn" and "dep").
18259         (xscale_sched_adjust_cost): Likewise.
18260         (fa726te_sched_adjust_cost): Likewise.
18261         (cortexa7_older_only): Likewise for param "insn".
18262         (cortexa7_younger): Likewise.
18263         (arm_attr_length_move_neon): Likewise.
18264         (arm_address_offset_is_imm): Likewise.
18265         * config/avr/avr-protos.h (avr_notice_update_cc): Likewise.
18266         * config/avr/avr.c (avr_notice_update_cc): Likewise.
18267         * config/bfin/bfin.c (hwloop_pattern_reg): Likewise.
18268         (workaround_speculation): Likewise for local "last_condjump".
18269         * config/c6x/c6x.c (shadow_p): Likewise for param "insn".
18270         (shadow_or_blockage_p): Likewise.
18271         (get_unit_reqs): Likewise.
18272         (get_unit_operand_masks): Likewise.
18273         (c6x_registers_update): Likewise.
18274         (returning_call_p): Likewise.
18275         (can_use_callp): Likewise.
18276         (convert_to_callp): Likewise.
18277         (find_last_same_clock): Likwise for local "t".
18278         (reorg_split_calls): Likewise for local "shadow".
18279         (hwloop_pattern_reg): Likewise for param "insn".
18280         * config/frv/frv-protos.h (frv_final_prescan_insn): Likewise.
18281         * config/frv/frv.c (frv_final_prescan_insn): Likewise.
18282         (frv_extract_membar): Likewise.
18283         (frv_optimize_membar_local): Strengthen param "last_membar" from
18284         rtx * to rtx_insn **.
18285         (frv_optimize_membar_global): Strengthen param "membar" from rtx
18286         to rtx_insn *.
18287         (frv_optimize_membar): Strengthen local "last_membar" from rtx *
18288         to rtx_insn **.
18289         * config/ia64/ia64-protos.h (ia64_st_address_bypass_p): Strengthen
18290         both params from rtx to rtx_insn *.
18291         (ia64_ld_address_bypass_p): Likewise.
18292         * config/ia64/ia64.c (ia64_safe_itanium_class): Likewise for param
18293         "insn".
18294         (ia64_safe_type): Likewise.
18295         (group_barrier_needed): Likewise.
18296         (safe_group_barrier_needed): Likewise.
18297         (ia64_single_set): Likewise.
18298         (is_load_p): Likewise.
18299         (record_memory_reference): Likewise.
18300         (get_mode_no_for_insn): Likewise.
18301         (important_for_bundling_p): Likewise.
18302         (unknown_for_bundling_p): Likewise.
18303         (ia64_st_address_bypass_p): Likewise for both params.
18304         (ia64_ld_address_bypass_p): Likewise.
18305         (expand_vselect): Introduce new local rtx_insn * "insn", using it
18306         in place of rtx "x" after the emit_insn call.
18307         * config/i386/i386-protos.h (x86_extended_QIreg_mentioned_p):
18308         Strengthen param from rtx to rtx_insn *.
18309         (ix86_agi_dependent): Likewise for both params.
18310         (ix86_attr_length_immediate_default): Likewise for param 1.
18311         (ix86_attr_length_address_default): Likewise for param.
18312         (ix86_attr_length_vex_default): Likewise for param 1.
18313         * config/i386/i386.c (ix86_attr_length_immediate_default):
18314         Likewise for param "insn".
18315         (ix86_attr_length_address_default): Likewise.
18316         (ix86_attr_length_vex_default): Likewise.
18317         (ix86_agi_dependent): Likewise for both params.
18318         (x86_extended_QIreg_mentioned_p): Likewise for param "insn".
18319         (vselect_insn): Likewise for this variable.
18320         * config/m68k/m68k-protos.h (m68k_sched_attr_opx_type): Likewise
18321         for param 1.
18322         (m68k_sched_attr_opy_type): Likewise.
18323         * config/m68k/m68k.c (sched_get_operand): Likewise.
18324         (sched_attr_op_type): Likewise.
18325         (m68k_sched_attr_opx_type): Likewise.
18326         (m68k_sched_attr_opy_type): Likewise.
18327         (sched_get_reg_operand): Likewise.
18328         (sched_get_mem_operand): Likewise.
18329         (m68k_sched_address_bypass_p): Likewise for both params.
18330         (sched_get_indexed_address_scale): Likewise.
18331         (m68k_sched_indexed_address_bypass_p): Likewise.
18332         * config/m68k/m68k.h (m68k_sched_address_bypass_p): Likewise.
18333         (m68k_sched_indexed_address_bypass_p): Likewise.
18334         * config/mep/mep.c (mep_jmp_return_reorg): Strengthen locals
18335         "label", "ret" from rtx to rtx_insn *, adding a checked cast and
18336         removing another.
18337         * config/mips/mips-protos.h (mips_linked_madd_p): Strengthen both
18338         params from rtx to rtx_insn *.
18339         (mips_fmadd_bypass): Likewise.
18340         * config/mips/mips.c (mips_fmadd_bypass): Likewise.
18341         (mips_linked_madd_p): Likewise.
18342         (mips_macc_chains_last_hilo): Likewise for this variable.
18343         (mips_macc_chains_record): Likewise for param.
18344         (vr4130_last_insn): Likewise for this variable.
18345         (vr4130_swap_insns_p): Likewise for both params.
18346         (mips_ls2_variable_issue): Likewise for param.
18347         (mips_need_noat_wrapper_p): Likewise for param "insn".
18348         (mips_expand_vselect): Add a new local rtx_insn * "insn", using it
18349         in place of "x" after the emit_insn.
18350         * config/pa/pa-protos.h (pa_fpstore_bypass_p): Strengthen both
18351         params from rtx to rtx_insn *.
18352         * config/pa/pa.c (pa_fpstore_bypass_p): Likewise.
18353         (pa_combine_instructions): Introduce local "par" for result of
18354         gen_rtx_PARALLEL, moving decl and usage of new_rtx for after call
18355         to make_insn_raw.
18356         (pa_can_combine_p): Strengthen param "new_rtx" from rtx to rtx_insn *.
18357         * config/rl78/rl78.c (insn_ok_now): Likewise for param "insn".
18358         (rl78_alloc_physical_registers_op1): Likewise.
18359         (rl78_alloc_physical_registers_op2): Likewise.
18360         (rl78_alloc_physical_registers_ro1): Likewise.
18361         (rl78_alloc_physical_registers_cmp): Likewise.
18362         (rl78_alloc_physical_registers_umul): Likewise.
18363         (rl78_alloc_address_registers_macax): Likewise.
18364         (rl78_alloc_physical_registers): Likewise for locals "insn", "curr".
18365         * config/s390/predicates.md (execute_operation): Likewise for
18366         local "insn".
18367         * config/s390/s390-protos.h (s390_agen_dep_p): Likewise for both
18368         params.
18369         * config/s390/s390.c (s390_safe_attr_type): Likewise for param.
18370         (addr_generation_dependency_p): Likewise for param "insn".
18371         (s390_agen_dep_p): Likewise for both params.
18372         (s390_fpload_toreg): Likewise for param "insn".
18373         * config/sh/sh-protos.h (sh_loop_align): Likewise for param.
18374         * config/sh/sh.c (sh_loop_align): Likewise for param and local
18375         "next".
18376         * config/sh/sh.md (define_peephole2): Likewise for local "insn2".
18377         * config/sh/sh_treg_combine.cc
18378         (sh_treg_combine::make_inv_ccreg_insn): Likewise for return type
18379         and local "i".
18380         (sh_treg_combine::try_eliminate_cstores): Likewise for local "i".
18381         * config/stormy16/stormy16.c (combine_bnp): Likewise for locals
18382         "and_insn", "load", "shift".
18383         * config/tilegx/tilegx.c (match_pcrel_step2): Likewise for param
18384         "insn".
18385         * final.c (final_scan_insn): Introduce local rtx_insn * "other"
18386         for XEXP (note, 0) of the REG_CC_SETTER note.
18387         (cleanup_subreg_operands): Strengthen param "insn" from rtx to
18388         rtx_insn *, eliminating a checked cast made redundant by this.
18389         * gcse.c (process_insert_insn): Strengthen local "insn" from rtx
18390         to rtx_insn *.
18391         * genattr.c (main): When writing out the prototype to
18392         const_num_delay_slots, strengthen the param from rtx to
18393         rtx_insn *.
18394         * genattrtab.c (write_const_num_delay_slots): Likewise when
18395         writing out the implementation of const_num_delay_slots.
18396         * hw-doloop.h (struct hw_doloop_hooks): Strengthen the param
18397         "insn" of callback field "end_pattern_reg" from rtx to rtx_insn *.
18398         * ifcvt.c (noce_emit_store_flag): Eliminate local rtx "tmp" in
18399         favor of new rtx locals "src" and "set" and new local rtx_insn *
18400         "insn" and "seq".
18401         (noce_emit_move_insn): Strengthen locals "seq" and "insn" from rtx
18402         to rtx_insn *.
18403         (noce_emit_cmove): Eliminate local rtx "tmp" in favor of new rtx
18404         locals "cond", "if_then_else", "set" and new rtx_insn * locals
18405         "insn" and "seq".
18406         (noce_try_cmove_arith): Strengthen locals "insn_a" and "insn_b",
18407         "last" from rtx to rtx_insn *.  Likewise for a local "tmp",
18408         renaming to "tmp_insn".  Eliminate the other local rtx "tmp" from
18409         the top-level scope, replacing with new more tightly-scoped rtx
18410         locals "reg", "pat", "mem" and rtx_insn * "insn", "copy_of_a",
18411         "new_insn", "copy_of_insn_b", and make local rtx "set" more
18412         tightly-scoped.
18413         * ira-int.h (ira_setup_alts): Strengthen param "insn" from rtx to
18414         rtx_insn *.
18415         * ira.c (setup_prohibited_mode_move_regs): Likewise for local
18416         "move_insn".
18417         (ira_setup_alts): Likewise for param "insn".
18418         * lra-constraints.c (emit_inc): Likewise for local "add_insn".
18419         * lra.c (emit_add3_insn): Split local rtx "insn" in two, an rtx
18420         and an rtx_insn *.
18421         (lra_emit_add): Eliminate top-level local rtx "insn" in favor of
18422         new more-tightly scoped rtx locals "add3_insn", "insn",
18423         "add2_insn" and rtx_insn * "move_insn".
18424         * postreload-gcse.c (eliminate_partially_redundant_load): Add
18425         checked cast on result of gen_move_insn when invoking
18426         extract_insn.
18427         * recog.c (insn_invalid_p): Strengthen param "insn" from rtx to
18428         rtx_insn *.
18429         (verify_changes): Add a checked cast on "object" when invoking
18430         insn_invalid_p.
18431         (extract_insn_cached): Strengthen param "insn" from rtx to
18432         rtx_insn *.
18433         (extract_constrain_insn_cached): Likewise.
18434         (extract_insn): Likewise.
18435         * recog.h (insn_invalid_p): Likewise for param 1.
18436         (recog_memoized): Likewise for param.
18437         (extract_insn): Likewise.
18438         (extract_constrain_insn_cached): Likewise.
18439         (extract_insn_cached): Likewise.
18440         * reload.c (can_reload_into): Likewise for local "test_insn".
18441         * reload.h (cleanup_subreg_operands): Likewise for param.
18442         * reload1.c (emit_insn_if_valid_for_reload): Rename param from
18443         "insn" to "pat", reintroducing "insn" as an rtx_insn * on the
18444         result of emit_insn.  Remove a checked cast made redundant by this
18445         change.
18446         * sel-sched-ir.c (sel_insn_rtx_cost): Strengthen param "insn" from
18447         rtx to rtx_insn *.
18448         * sel-sched.c (get_reg_class): Likewise.
18449
18450 2014-09-09  Marcus Shawcroft  <marcus.shawcroft@arm.com>
18451             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18452
18453         * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
18454         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
18455         Define.
18456         (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
18457
18458 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18459
18460         * rtl.h (INSN_LOCATION): Strengthen param from const_rtx to
18461         const rtx_insn *, and from rtx to rtx_insn * for the other
18462         overloaded variant.
18463         (RTL_LOCATION): Add a checked cast to rtx_insn * when invoking
18464         INSN_LOCATION, since we know INSN_P holds.
18465         (insn_line): Strengthen param from const_rtx to const rtx_insn *.
18466         (insn_file): Likewise.
18467         (insn_scope): Likewise.
18468         (insn_location): Likewise.
18469
18470         * config/mips/mips.c (mips16_gp_pseudo_reg): Strengthen local
18471         "insn" from rtx to rtx_insn *, introducing a new local rtx "set"
18472         for the result of gen_load_const_gp.
18473         * config/rs6000/rs6000-protos.h (output_call): Strengthen first
18474         param from rtx to rtx_insn *.
18475         * config/rs6000/rs6000.c (output_call): Likewise.
18476         * dwarf2out.c (dwarf2out_var_location): Likewise for local "prev",
18477         introducing a checked cast to rtx_sequence * and use of the insn
18478         method.
18479         * emit-rtl.c (emit_copy_of_insn_after): Strengthen both params
18480         from rtx to rtx_insn *.
18481         (insn_scope): Strengthen param from const_rtx to const rtx_insn *.
18482         (insn_line): Likewise.
18483         (insn_file): Likewise.
18484         (insn_location): Likewise.
18485         * emit-rtl.h (emit_copy_of_insn_after): Strengthen both params
18486         from rtx to rtx_insn *.
18487         * print-rtl.c (print_rtx): Introduce local "in_insn" via a checked
18488         cast, using it for calls to INSN_HAS_LOCATION and insn_location.
18489         * recog.c (peep2_attempt): Introduce local rtx_insn * "peepinsn"
18490         via a checked cast.
18491         * reorg.c (relax_delay_slots): Strengthen locals named "after"
18492         from rtx to rtx_insn *; use methods of "pat" for type-safety.
18493
18494 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18495
18496         * combine.c (try_combine): Eliminate checked cast on result of
18497         gen_rtx_INSN.
18498         * emit-rtl.c (gen_rtx_INSN): New function, improving over the prior
18499         autogenerated one by strengthening the return type and params 2 and 3
18500         from rtx to rtx_insn *, and by naming the params.
18501         * gengenrtl.c (special_rtx): Add INSN to those that are
18502         special-cased.
18503         * rtl.h (gen_rtx_INSN): New prototype.
18504
18505 2014-09-09  David Malcolm  <dmalcolm@redhat.com>
18506
18507         * ira.c (ira_update_equiv_info_by_shuffle_insn): Use NULL rather
18508         than NULL_RTX.
18509         (no_equiv): Likewise.
18510         (update_equiv_regs): Likewise.
18511         (setup_reg_equiv): Likewise.  Strengthen locals "elem",
18512         "prev_elem", "next_elem" from rtx to rtx_insn_list *, and "insn"
18513         from rtx to rtx_insn *.  Use methods of "elem" for typesafety and
18514         clarity.
18515         * ira.h (struct ira_reg_equiv_s): Strengthen field "init_insns"
18516         from rtx to rtx_insn_list *.
18517         * lra-assigns.c (spill_for): Strengthen local "x" from rtx to
18518         rtx_insn_list * and use methods for clarity and typesafety.
18519         * lra-constraints.c (contains_deleted_insn_p): Likewise for param
18520         "list".
18521         (init_insn_rhs_dead_pseudo_p): Likewise for local "insns".  Remove
18522         redundant check on INSN_P (insns): this cannot hold, as "insns" is
18523         an INSN_LIST, not an insn.
18524         (reverse_equiv_p): Strengthen local "insns" from rtx to
18525         rtx_insn_list * and use methods for clarity and typesafety.
18526         (contains_reloaded_insn_p): Likewise for local "list".
18527
18528 2014-09-09  Jiong Wang  <jiong.wang@arm.com>
18529
18530         * config/arm/arm.c (NEON_COPYSIGNF): New enum.
18531         (arm_init_neon_builtins): Support NEON_COPYSIGNF.
18532         (arm_builtin_vectorized_function): Likewise.
18533         * config/arm/arm_neon_builtins.def: New macro for copysignf.
18534         * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector copysignf.
18535
18536 2014-09-09  Richard Sandiford  <richard.sandiford@arm.com>
18537
18538         * bb-reorder.h (default_target_bb_reorder): Remove redundant GTY.
18539         * builtins.h (default_target_builtins): Likewise.
18540         * gcse.h (default_target_gcse): Likewise.
18541         * target-globals.h (target_globals): Add a destructor.  Convert
18542         void-pointer fields back to their real type and change from
18543         GTY((atomic)) to GTY((skip)).
18544         (restore_target_globals): Remove casts accordingly.
18545         * target-globals.c (save_target_globals): Use XCNEW rather than
18546         ggc_internal_cleared_alloc to allocate non-GC structures.
18547         Use ggc_cleared_alloc to allocate the target_globals structure
18548         itself.
18549         (target_globals::~target_globals): Define.
18550
18551 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18552
18553         * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
18554         mnemonic instead of fldmfdd.
18555         * config/arm/arm.c (vfp_output_fstmd): Rename to...
18556         (vfp_output_vstmd): ... This.  Convert output to UAL syntax.
18557         Output vpush when address register is SP.
18558         * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
18559         (vfp_output_vstmd): ... This.
18560         * config/arm/vfp.md (push_multi_vfp): Update call to
18561         vfp_output_vstmd.
18562
18563 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18564
18565         * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
18566
18567 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18568
18569         * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
18570         (*sqrtdf2_vfp): Likewise.
18571         (*cmpsf_vfp): Likewise.
18572         (*cmpsf_trap_vfp): Likewise.
18573         (*cmpdf_vfp): Likewise.
18574         (*cmpdf_trap_vfp): Likewise.
18575
18576 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18577
18578         * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
18579         (*truncdfsf2_vfp): Likewise.
18580         (*truncsisf2_vfp): Likewise.
18581         (*truncsidf2_vfp): Likewise.
18582         (fixuns_truncsfsi2): Likewise.
18583         (fixuns_truncdfsi2): Likewise.
18584         (*floatsisf2_vfp): Likewise.
18585         (*floatsidf2_vfp): Likewise.
18586         (floatunssisf2): Likewise.
18587         (floatunssidf2): Likewise.
18588
18589 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18590
18591         * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
18592         (*muldf3_vfp): Likewise.
18593         (*mulsf3negsf_vfp): Likewise.
18594         (*muldf3negdf_vfp): Likewise.
18595         (*mulsf3addsf_vfp): Likewise.
18596         (*muldf3adddf_vfp): Likewise.
18597         (*mulsf3subsf_vfp): Likewise.
18598         (*muldf3subdf_vfp): Likewise.
18599         (*mulsf3negsfaddsf_vfp): Likewise.
18600         (*fmuldf3negdfadddf_vfp): Likewise.
18601         (*mulsf3negsfsubsf_vfp): Likewise.
18602         (*muldf3negdfsubdf_vfp): Likewise.
18603
18604 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18605
18606         * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
18607         (*absdf2_vfp): Likewise.
18608         (*negsf2_vfp): Likewise.
18609         (*negdf2_vfp): Likewise.
18610         (*addsf3_vfp): Likewise.
18611         (*adddf3_vfp): Likewise.
18612         (*subsf3_vfp): Likewise.
18613         (*subdf3_vfp): Likewise.
18614         (*divsf3_vfp): Likewise.
18615         (*divdf3_vfp): Likewise.
18616
18617 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18618
18619         * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
18620         multiple.
18621         (arm_print_operand): Don't convert real values to decimal
18622         representation in default case.
18623         (fp_immediate_constant): Delete.
18624         * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
18625         * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
18626         syntax.
18627         (*thumb2_movsi_vfp): Likewise.
18628         (*movdi_vfp): Likewise.
18629         (*movdi_vfp_cortexa8): Likewise.
18630         (*movhf_vfp_neon): Likewise.
18631         (*movhf_vfp): Likewise.
18632         (*movsf_vfp): Likewise.
18633         (*thumb2_movsf_vfp): Likewise.
18634         (*movdf_vfp): Likewise.
18635         (*thumb2_movdf_vfp): Likewise.
18636         (*movsfcc_vfp): Likewise.
18637         (*thumb2_movsfcc_vfp): Likewise.
18638         (*movdfcc_vfp): Likewise.
18639         (*thumb2_movdfcc_vfp): Likewise.
18640
18641 2014-09-09  James Greenhalgh  <james.greenhalgh@arm.com>
18642
18643         * doc/invoke.texi (-march): Use GNU/Linux rather than Linux.
18644         (-mtune): Likewise.
18645         (-mcpu): Likewise.
18646
18647 2014-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18648
18649         PR target/61749
18650         * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
18651         Use qualifier_immediate for last operand.  Rename to...
18652         (aarch64_types_ternop_lane_qualifiers): ... This.
18653         (TYPES_QUADOP): Rename to...
18654         (TYPES_TERNOP_LANE): ... This.
18655         (aarch64_simd_expand_args): Return const0_rtx when encountering user
18656         error.  Change return of 0 to return of NULL_RTX.
18657         (aarch64_crc32_expand_builtin): Likewise.
18658         (aarch64_expand_builtin): Return NULL_RTX instead of 0.
18659         ICE when expanding unknown builtin.
18660         * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
18661         TERNOP_LANE qualifiers.
18662         (sqdmlsl_lane): Likewise.
18663         (sqdmlal_laneq): Likewise.
18664         (sqdmlsl_laneq): Likewise.
18665         (sqdmlal2_lane): Likewise.
18666         (sqdmlsl2_lane): Likewise.
18667         (sqdmlal2_laneq): Likewise.
18668         (sqdmlsl2_laneq): Likewise.
18669
18670 2014-09-09  Nick Clifton  <nickc@redhat.com>
18671
18672         * doc/invoke.texi (Optimization Options): Add missing @gol to the
18673         end of a line.
18674         (S/390 and zSeries Options): Remove superfluous word from the
18675         description of the -mhotpatch option.
18676
18677 2014-09-09  Zhenqiang Chen  <zhenqiang.chen@arm.com>
18678
18679         * shrink-wrap.h: #define SHRINK_WRAPPING_ENABLED.
18680         * ira.c: #include "shrink-wrap.h"
18681         (split_live_ranges_for_shrink_wrap): Use SHRINK_WRAPPING_ENABLED.
18682         * ifcvt.c: #include "shrink-wrap.h"
18683         (dead_or_predicable): Use SHRINK_WRAPPING_ENABLED.
18684
18685 2014-09-08  Trevor Saunders  <tsaunders@mozilla.com>
18686
18687         * common/config/picochip/picochip-common.c: Remove.
18688         * config.gcc: Remove support for picochip.
18689         * config/picochip/constraints.md: Remove.
18690         * config/picochip/dfa_space.md: Remove.
18691         * config/picochip/dfa_speed.md: Remove.
18692         * config/picochip/picochip-protos.h: Remove.
18693         * config/picochip/picochip.c: Remove.
18694         * config/picochip/picochip.h: Remove.
18695         * config/picochip/picochip.md: Remove.
18696         * config/picochip/picochip.opt: Remove.
18697         * config/picochip/predicates.md: Remove.
18698         * config/picochip/t-picochip: Remove.
18699         * doc/md.texi: Don't document picochi.
18700
18701 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18702
18703         * basic-block.h (control_flow_insn_p): Strengthen param from
18704         const_rtx to const rtx_insn *.
18705         * cfgbuild.c (control_flow_insn_p): Likewise.
18706
18707 2014-09-08  David Malcolm  <dmalcolm@redhat.com>
18708
18709         * gcse.c (modify_mem_list): Strengthen this variable from
18710         vec<rtx> * to vec<rtx_insn *> *.
18711         (vec_rtx_heap): Strengthen this typedef from vec<rtx> to
18712         vec<rtx_insn *>.
18713         (load_killed_in_block_p): Strengthen local "list" from vec<rtx> to
18714         vec<rtx_insn *>, and local "setter" from rtx to rtx_insn *.
18715         (record_last_mem_set_info): Strengthen param "insn" from rtx to
18716         rtx_insn *.
18717         (record_last_set_info): Likewise for local "last_set_insn".
18718
18719 2014-09-08  DJ Delorie  <dj@redhat.com>
18720
18721         * doc/invoke.texi (MSP430 Options): Add -minrt.
18722
18723 2014-09-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18724
18725         * config/rs6000/rs6000.c (special_handling_values):  Add SH_SPLAT.
18726         (rtx_is_swappable_p): Convert UNSPEC cascading ||s to a switch
18727         statement; allow optimization of UNSPEC_VSPLT_DIRECT with special
18728         handling SH_SPLAT.
18729         (adjust_extract): Fix test for VEC_DUPLICATE case; fix adjustment
18730         of extracted lane.
18731         (adjust_splat): New function.
18732         (handle_special_swappables): Call adjust_splat for SH_SPLAT.
18733         (dump_swap_insn_table): Add case for SH_SPLAT.
18734
18735 2014-09-08  Richard Biener  <rguenther@suse.de>
18736
18737         PR ipa/63196
18738         * tree-inline.c (copy_loops): The source loop header should
18739         always be non-NULL.
18740         (tree_function_versioning): If loops need fixup after removing
18741         unreachable blocks fix them.
18742         * omp-low.c (simd_clone_adjust): Do not add incr block to
18743         loop under construction.
18744
18745 2014-09-08  Alan Lawrence  <alan.lawrence@arm.com>
18746
18747         * config/aarch64/aarch64-builtins.c
18748         (aarch64_types_cmtst_qualifiers, TYPES_TST): Remove as unused.
18749
18750 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18751
18752         * config/i386/cygming.h (TF_SIZE): Remove.
18753         * config/i386/darwin.h (TF_SIZE): Remove.
18754         * config/i386/dragonfly.h (TF_SIZE): Remove.
18755         * config/i386/freebsd.h (TF_SIZE): Remove.
18756         * config/i386/gnu-user-common.h (TF_SIZE): Remove.
18757         * config/i386/openbsdelf.h (TF_SIZE): Remove.
18758         * config/i386/sol2.h (TF_SIZE): Remove.
18759         * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Remove.
18760         * config/ia64/linux.h (TF_SIZE): Remove.
18761         * doc/tm.texi.in (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Remove.
18762         * doc/tm.texi: Regenerate.
18763         * system.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Poison.
18764
18765 2014-09-08  Joseph Myers  <joseph@codesourcery.com>
18766
18767         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18768         Remove.
18769         * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
18770         Remove.
18771         * doc/tm.texi: Regenerate.
18772         * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
18773         Poison.
18774         * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
18775         * config/cris/cris.h (__make_dp): Remove.
18776
18777 2014-09-08  Richard Biener  <rguenther@suse.de>
18778
18779         PR bootstrap/63204
18780         * cfgloop.c (mark_loop_for_removal): Track former header
18781         unconditionally.
18782         * cfgloop.h (struct loop): Add former_header member unconditionally.
18783         * loop-init.c (fix_loop_structure): Enable bogus loop removal
18784         diagnostic unconditionally.
18785
18786 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
18787
18788         PR target/63190
18789         * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
18790         constraint for operand0 and remove write only modifier from operand3.
18791
18792 2014-09-07  Richard Sandiford  <richard.sandiford@arm.com>
18793
18794         PR rtl-optimization/62208
18795         * simplify-rtx.c (simplify_relational_operation_1): Use CONST0_RTX
18796         rather than const0_rtx in eq/ne-xor simplifications.
18797
18798 2014-09-06  Joern Rennecke  <joern.rennecke@embecosm.com>
18799
18800         * config/arc/arc.c (arc_print_operand): Fix format for HOST_WIDE_INT.
18801         (arc_output_mi_thunk): Likewise.
18802
18803         * config/arc/arc.c (arc_predicate_delay_insns): Swap comparison
18804         arguments to silence bogus warning.
18805
18806 2014-09-06  Richard Sandiford  <richard.sandiford@arm.com>
18807
18808         PR middle-end/63171
18809         * rtlanal.c (tls_referenced_p): Don't skip constant subrtxes.
18810
18811 2014-09-06  Tom de Vries  <tom@codesourcery.com>
18812
18813         * ira-costs.c (ira_tune_allocno_costs): Don't conditionalize
18814         IRA_HARD_REGNO_ADD_COST_MULTIPLIER code on
18815         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
18816
18817 2014-09-05  Dominique Dhumieres  <dominiq@lps.ens.fr>
18818
18819         PR target/63188
18820         * config/darwin.h (INIT_SECTION_ASM_OP): Define to "".
18821         * config/pa/pa64-hpux.h (INIT_SECTION_ASM_OP): Likewise.
18822
18823 2014-09-05  Easwaran Raman  <eraman@google.com>
18824
18825         PR rtl-optimization/62146
18826         * ifcvt.c (dead_or_predicable): Make removal of REG_EQUAL note of
18827         hoisted instruction unconditional.
18828
18829 2014-09-05  Segher Boessenkool  <segher@kernel.crashing.org>
18830
18831         PR target/63187
18832         * config/rs6000/rs6000.md (*and<mode>3_imm_dot, *and<mode>3_imm_dot2):
18833         Do not allow any_mask_operand for operands[2].
18834         (*and<mode>3_imm_mask_dot, *and<mode>3_imm_mask_dot2): New.
18835
18836 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18837
18838         * config/arc/arc.c (arc_print_operand): Use insn method of
18839         final_sequence for type-safety.
18840         * config/bfin/bfin.c (bfin_hardware_loop): Strengthen param
18841         "insn" from rtx to rtx_insn *.
18842         * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
18843         * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
18844         Likewise for locals "branch", "label".
18845         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise for
18846         locals "i1", "i2".  Use NULL rather than NULL_RTX in comparisons.
18847         (same_cmp_following_p): Likewise for locals "i2", "i3".
18848         * config/sh/sh_optimize_sett_clrt.cc
18849         (sh_optimize_sett_clrt::sh_cbranch_ccreg_value): Likewise for
18850         param "cbranch_insn".
18851         * function.c (convert_jumps_to_returns): Likewis for local "jump".
18852         * ifcvt.c (cond_exec_get_condition): Likewise for param "jump".
18853         * jump.c (simplejump_p): Strengthen param "insn" from const_rtx to
18854         const rtx_insn *.
18855         (condjump_p): Likewise.
18856         (condjump_in_parallel_p): Likewise.
18857         (pc_set): Likewise.
18858         (any_uncondjump_p): Likewise.
18859         (any_condjump_p): Likewise.
18860         (condjump_label): Likewise.
18861         (returnjump_p): Strengthen param "insn" from rtx to
18862         const rtx_insn *.
18863         (onlyjump_p): Strengthen param "insn" from const_rtx to
18864         const rtx_insn *.
18865         (jump_to_label_p): Likewise.
18866         (invert_jump_1): Strengthen param "jump" from rtx to rtx_insn *.
18867         (invert_jump): Likewise.
18868         * reorg.c (simplejump_or_return_p): Add checked cast when calling
18869         simplejump_p.
18870         (get_jump_flags): Strengthen param "insn" from rtx to
18871         const rtx_insn *.
18872         (get_branch_condition): Likewise.
18873         (condition_dominates_p): Likewise.
18874         (make_return_insns): Move declaration of local "pat" earlier, to
18875         after we've handled NONJUMP_INSN_P and non-sequences, using its
18876         methods to simplify the code and for type-safety.
18877         * rtl.h (find_constant_src): Strengthen param from const_rtx to
18878         const rtx_insn *.
18879         (jump_to_label_p): Strengthen param from rtx to const rtx_insn *.
18880         (condjump_p): Strengthen param from const_rtx to
18881         const rtx_insn *.
18882         (any_condjump_p): Likewise.
18883         (any_uncondjump_p): Likewise.
18884         (pc_set): Likewise.
18885         (condjump_label): Likewise.
18886         (simplejump_p): Likewise.
18887         (returnjump_p): Likewise.
18888         (onlyjump_p): Likewise.
18889         (invert_jump_1): Strengthen param 1 from rtx to rtx_insn *.
18890         (invert_jump): Likewise.
18891         (condjump_in_parallel_p): Strengthen param from const_rtx to
18892         const rtx_insn *.
18893         * rtlanal.c (find_constant_src): Strengthen param from const_rtx
18894         to const rtx_insn *.
18895         * sel-sched-ir.c (fallthru_bb_of_jump): Strengthen param from rtx
18896         to const rtx_insn *.
18897         * sel-sched-ir.h (fallthru_bb_of_jump): Likewise.
18898
18899 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18900
18901         * reorg.c (relax_delay_slots): Move declaration of "trial_seq"
18902         above the conditional, and convert the check on GET_CODE to a
18903         dyn_cast, so that "trial_seq" is available as an rtx_sequence * in
18904         the conditional.  Simplify the conditional by using methods of
18905         "trial_seq".
18906
18907 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18908
18909         * haifa-sched.c (check_clobbered_conditions): Strengthen local
18910         "link" from rtx to rtx_insn_list *, and use its methods for
18911         clarity and type-safety.
18912         (toggle_cancelled_flags): Likewise.
18913         (restore_last_backtrack_point): Likewise.
18914         (queue_to_ready): Use insn method of "link" in one place.
18915         (schedule_block): Strengthen local "link" from rtx to
18916         rtx_insn_list *, and use its methods for clarity and type-safety.
18917
18918 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18919
18920         * sched-deps.c (sched_get_condition_with_rev_uncached): Strengthen
18921         param "insn" from const_rtx to const rtx_insn *.
18922         (sched_get_reverse_condition_uncached): Likewise.
18923         (sched_get_condition_with_rev): Likewise.
18924         (sched_has_condition_p): Likewise.
18925         (sched_insns_conditions_mutex_p): Likewise for both params.
18926         (sched_insn_is_legitimate_for_speculation_p): Likewise for param
18927         "insn"; conver use of CONST_CAST_RTX to CONST_CAST_RTX_INSN.
18928         (setup_insn_reg_uses): Move local "list" to be more tightly
18929         scoped, strengthening it from an rtx to an rtx_insn_list *.  Use
18930         its methods for clarity and type-safety.
18931         (sched_analyze_1): Strengthen local "pending" from rtx to
18932         rtx_insn_list *, and local "pending_mem" from rtx to
18933         rtx_expr_list *.  Use methods of each for clarity and type-safety.
18934         (sched_analyze_2): Likewise.
18935         (sched_analyze_insn): Likewise.
18936
18937         * sched-int.h (sched_get_reverse_condition_uncached): Strengthen
18938         param from const_rtx to const rtx_insn *.
18939         (sched_insns_conditions_mutex_p): Likewise for both params.
18940         (sched_insn_is_legitimate_for_speculation_p): Likewise for first
18941         param.
18942
18943         * system.h (CONST_CAST_RTX_INSN): New macro.
18944
18945 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18946
18947         * recog.c (peep2_attempt): Strengthen return type from rtx to
18948         rtx_insn *.
18949         (peep2_update_life): Likewise for params "last", "prev", removing
18950         a checked cast made redundant by this.
18951         (peephole2_optimize): Likewise for local "last".
18952
18953 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18954
18955         * basic-block.h (set_block_for_insn): Eliminate this macro in
18956         favor of...
18957         * rtl.h (set_block_for_insn): New inline function, imposing the
18958         requirement that the "insn" param is an rtx_insn *.
18959
18960 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18961
18962         * caller-save.c (setup_save_areas): Strengthen local "insn" from
18963         rtx to rtx_insn *.
18964         * final.c (get_call_reg_set_usage): Likewise for first param,
18965         eliminating a checked cast.
18966         * regs.h (get_call_reg_set_usage): Likewise for first param.
18967         * resource.c (mark_set_resources): Introduce local rtx_call_insn *
18968         "call_insn" for the case of a MARK_SRC_DEST_CALL via a checked
18969         cast, replacing references to "x" with "call_insn" where
18970         appropriate.
18971         (mark_target_live_regs): Strengthen local "real_insn" from rtx to
18972         rtx_insn *, adding a checked cast.
18973
18974 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18975
18976         * output.h (final_scan_insn): Strengthen first param from rtx to
18977         rtx_insn *.
18978
18979         * final.c (final_scan_insn): Likewise, renaming it back from
18980         "uncast_insn" to "insn", eliminating the checked cast.
18981
18982         * config/h8300/h8300.md (define_insn "jump"): Replace local rtx
18983         "vec" with an rtx_sequence * "seq", taking a copy of
18984         "final_sequence", and using methods of "seq" for clarity, and for
18985         type-safety in the calls to final_scan_insn.
18986         * config/mips/mips.c (mips_output_conditional_branch): Use methods
18987         of "final_sequence" for clarity, and for type-safety in the call to
18988         final_scan_insn.
18989         * config/sh/sh.c (print_slot): Strengthen param from rtx to
18990         rtx_sequence * and rename from "insn" to "seq".
18991
18992 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
18993
18994         * jump.c (delete_related_insns): Introduce a new local "table" by
18995         replacing JUMP_TABLE_DATA_P with a dyn_cast, then use the
18996         get_labels method of "table" to simplify access to the labels in
18997         the jump table.
18998
18999 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19000
19001         * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
19002         f_minmaxs, f_minmaxd types.
19003
19004 2014-09-05  Richard Biener  <rguenther@suse.de>
19005
19006         * cfgloop.c (mark_loop_for_removal): Record former header
19007         when ENABLE_CHECKING.
19008         * cfgloop.h (strut loop): Add former_header member when
19009         ENABLE_CHECKING.
19010         * loop-init.c (fix_loop_structure): Sanity check loops
19011         marked for removal if they re-appeared.
19012
19013 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19014
19015         * config/aarch64/arm_neon.h (int32x1_t, int16x1_t, int8x1_t,
19016         uint32x1_t, uint16x1_t, uint8x1_t): Remove typedefs.
19017
19018         (vqabsb_s8, vqabsh_s16, vqabss_s32, vqaddb_s8, vqaddh_s16, vqadds_s32,
19019         vqaddb_u8, vqaddh_u16, vqadds_u32, vqdmlalh_s16, vqdmlalh_lane_s16,
19020         vqdmlals_s32, vqdmlslh_s16, vqdmlslh_lane_s16, vqdmlsls_s32,
19021         vqdmulhh_s16, vqdmulhh_lane_s16, vqdmulhs_s32, vqdmulhs_lane_s32,
19022         vqdmullh_s16, vqdmullh_lane_s16, vqdmulls_s32, vqdmulls_lane_s32,
19023         vqmovnh_s16, vqmovns_s32, vqmovnd_s64, vqmovnh_u16, vqmovns_u32,
19024         vqmovnd_u64, vqmovunh_s16, vqmovuns_s32, vqmovund_s64, vqnegb_s8,
19025         vqnegh_s16, vqnegs_s32, vqrdmulhh_s16, vqrdmulhh_lane_s16,
19026         vqrdmulhs_s32, vqrdmulhs_lane_s32, vqrshlb_s8, vqrshlh_s16,
19027         vqrshls_s32, vqrshlb_u8, vqrshlh_u16, vqrshls_u32, vqrshrnh_n_s16,
19028         vqrshrns_n_s32, vqrshrnd_n_s64, vqrshrnh_n_u16, vqrshrns_n_u32,
19029         vqrshrnd_n_u64, vqrshrunh_n_s16, vqrshruns_n_s32, vqrshrund_n_s64,
19030         vqshlb_s8, vqshlh_s16, vqshls_s32, vqshlb_u8, vqshlh_u16, vqshls_u32,
19031         vqshlb_n_s8, vqshlh_n_s16, vqshls_n_s32, vqshlb_n_u8, vqshlh_n_u16,
19032         vqshls_n_u32, vqshlub_n_s8, vqshluh_n_s16, vqshlus_n_s32,
19033         vqshrnh_n_s16, vqshrns_n_s32, vqshrnd_n_s64, vqshrnh_n_u16,
19034         vqshrns_n_u32, vqshrnd_n_u64, vqshrunh_n_s16, vqshruns_n_s32,
19035         vqshrund_n_s64, vqsubb_s8, vqsubh_s16, vqsubs_s32, vqsubb_u8,
19036         vqsubh_u16, vqsubs_u32, vsqaddb_u8, vsqaddh_u16, vsqadds_u32,
19037         vuqaddb_s8, vuqaddh_s16, vuqadds_s32): Replace all int{32,16,8}x1_t
19038         with int{32,16,8}_t.
19039
19040 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19041
19042         * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
19043         (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
19044         vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
19045         vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
19046         Remove temporary __asm__ and reimplement.
19047
19048 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19049
19050         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
19051         handling cmge, cmgt, cmeq, cmtst.
19052
19053         * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
19054         cmlt, cmgeu, cmgtu, cmtst): Remove.
19055
19056         * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
19057         vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
19058         vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
19059         vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
19060
19061 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19062
19063         * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
19064         TYPES_TST): Define.
19065         (aarch64_fold_builtin): Update pattern for cmtst.
19066
19067         * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
19068         Declare.
19069
19070         * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
19071
19072         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
19073         Switch operands, separate out more cases, refactor.
19074
19075         (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
19076
19077         * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
19078         argument; rename old version to...
19079         (aarch64_const_vec_all_same_in_range_p): ...this.
19080         (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
19081
19082         * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
19083
19084 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19085
19086         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
19087         Remove qualifier_const_pointer, update comment.
19088
19089 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19090
19091         * config/aarch64/aarch64.md (adddi3_aarch64): set type to neon_add.
19092
19093 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19094
19095         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
19096         varargs with pointer parameter.
19097         (aarch64_simd_expand_builtin): pass pointer into previous.
19098
19099 2014-09-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19100
19101         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
19102         alus_ext.
19103
19104 2014-09-05  Alan Lawrence  <alan.lawrence@arm.com>
19105
19106         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
19107         * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
19108         * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
19109         Replace temporary asm with call to builtin.
19110         (vrbit_p8, vrbitq_p8): New functions.
19111
19112 2014-09-05  Richard Biener  <rguenther@suse.de>
19113
19114         * cfgloop.c (mark_loop_for_removal): New function.
19115         * cfgloop.h (mark_loop_for_removal): Declare.
19116         * cfghooks.c (delete_basic_block): Use mark_loop_for_removal.
19117         (merge_blocks): Likewise.
19118         (duplicate_block): Likewise.
19119         * except.c (sjlj_emit_dispatch_table): Likewise.
19120         * tree-eh.c (cleanup_empty_eh_merge_phis): Likewise.
19121         * tree-ssa-threadupdate.c (ssa_redirect_edges): Likewise.
19122         (thread_through_loop_header): Likewise.
19123
19124 2014-09-05  Richard Biener  <rguenther@suse.de>
19125
19126         PR middle-end/63148
19127         * fold-const.c (try_move_mult_to_index): Remove.
19128         (fold_binary_loc): Do not call it.
19129         * tree-data-ref.c (dr_analyze_indices): Strip conversions
19130         from the base object again.
19131
19132 2014-09-05  James Greenhalgh  <james.greenhalgh@arm.com>
19133
19134         * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
19135         DImode.
19136
19137 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19138
19139         PR target/55701
19140         * config/arm/arm.md (setmem): New pattern.
19141         * config/arm/arm-protos.h (struct tune_params): New fields.
19142         (arm_gen_setmem): New prototype.
19143         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
19144         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
19145         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
19146         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
19147         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
19148         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
19149         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
19150         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
19151         (arm_const_inline_cost): New function.
19152         (arm_block_set_max_insns): New function.
19153         (arm_block_set_non_vect_profit_p): New function.
19154         (arm_block_set_vect_profit_p): New function.
19155         (arm_block_set_unaligned_vect): New function.
19156         (arm_block_set_aligned_vect): New function.
19157         (arm_block_set_unaligned_non_vect): New function.
19158         (arm_block_set_aligned_non_vect): New function.
19159         (arm_block_set_vect, arm_gen_setmem): New functions.
19160
19161 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19162
19163         * config/arm/arm.md (arm_movqi_insn): Use Uh instead of m constraint.
19164
19165 2014-09-05  Bin Cheng  <bin.cheng@arm.com>
19166
19167         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
19168
19169 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19170
19171         * valtrack.c (dead_debug_insert_temp): Take an rtx_insn * instead of
19172         an rtx.
19173         * valtrack.h: Adjust.
19174
19175 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19176
19177         * emit-rtl.c (emit_insn_before_noloc): Take an rtx_insn * instead of
19178         an rtx.
19179         (emit_jump_insn_before_noloc): Likewise.
19180         (emit_call_insn_before_noloc): Likewise.
19181         (emit_label_before): Likewise.
19182         (emit_label_after): Likewise.
19183         (emit_insn_before_setloc): Likewise.
19184         (emit_jump_insn_before_setloc): Likewise.
19185         (emit_call_insn_before_setloc): Likewise.
19186         (emit_call_insn_before): Likewise.
19187         * rtl.h: Adjust.
19188
19189 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19190
19191         * cse.c (cse_insn): Strengthen local "new_rtx" from rtx to
19192         rtx_insn *, eliminating a checked cast.
19193
19194 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19195
19196         * rtl.h (modified_between_p): Strengthen params 2 and 3 from
19197         const_rtx to const rtx_insn *.
19198         * rtlanal.c (modified_between_p): Likewise, eliminating a checked
19199         cast.
19200
19201 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19202
19203         * emit-rtl.c (try_split): Update NULL_RTX to NULL in call to
19204         fixup_args_size_notes.
19205         * expr.c (fixup_args_size_notes): Strengthen first two params from
19206         rtx to rtx_insn *, eliminating a checked cast.
19207         * rtl.h (fixup_args_size_notes): Strengthen first two params from
19208         rtx to rtx_insn *.
19209
19210 2014-09-05  David Malcolm  <dmalcolm@redhat.com>
19211
19212         * haifa-sched.c (get_ready_element): Strengthen return type from
19213         rtx to rtx_insn *.
19214         * sched-int.h (get_ready_element): Likewise.
19215
19216 2014-09-04  Segher Boessenkool  <segher@kernel.crashing.org>
19217
19218         PR target/63165
19219         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax_mem): Use
19220         indexed_or_indirect_operand instead of memory_operand.
19221         (floatsi<mode>2_lfiwzx_mem): Ditto.
19222
19223 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19224
19225         * config/bfin/bfin.c, config/c6x/c6x.c, config/m32c/m32c.c,
19226         config/mn10300/mn10300.c, config/s390/s390.c, config/sh/sh.c,
19227         ifcvt.c, reorg.c: Change types of variables from rtx to rtx_insn *.
19228
19229 2014-09-04  Trevor Saunders  <tsaunders@mozilla.com>
19230
19231         * emit-rtl.c (get_first_nonnote_insn): Return rtx_insn * instead of
19232         rtx.
19233         (get_last_nonnote_insn): Likewise.
19234         (next_nonnote_insn_bb): Take rtx_insn * instead of rtx.
19235         * resource.c (find_basic_block): Likewise.
19236         * rtl.h: Adjust.
19237         * rtlanal.c (keep_with_call_p): Take const rtx_insn * instead of
19238         const_rtx.
19239
19240 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19241
19242         * genattr.c (main): Within the prototype of insn_latency written
19243         out to insn-attr.h, strengthen both params from rtx to rtx_insn *.
19244         * genautomata.c (output_internal_maximal_insn_latency_func):
19245         Within the implementation of insn_latency written out to
19246         insn-automata.c, strengthen both params from rtx to rtx_insn *,
19247         eliminating a pair of checked casts.
19248
19249 2014-09-04  David Malcolm  <dmalcolm@redhat.com>
19250
19251         * jump.c (eh_returnjump_p): Strengthen param "insn" from rtx to
19252         rtx_insn *.
19253
19254         * rtl.h (eh_returnjump_p): Likewise.
19255
19256 2014-09-04  Aldy Hernandez  <aldyh@redhat.com>
19257
19258         * Makefile.in (TAGS): Handle constructs in timevar.def.
19259
19260 2014-09-04  Guozhi Wei  <carrot@google.com>
19261
19262         PR target/62040
19263         * config/aarch64/iterators.md (VQ_NO2E, VQ_2E): New iterators.
19264         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Split
19265         it into two patterns.
19266         (move_lo_quad_internal_be_<mode>): Likewise.
19267
19268 2014-09-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
19269
19270         * doc/options.texi: Document that Var and Init are required if CPP
19271         is given.
19272         * optc-gen.awk: Require Var and Init if CPP is given.
19273         * common.opt (Wpedantic): Use Init.
19274
19275 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19276
19277         * config/rs6000/rs6000.c (special_handling_values): Add
19278         SH_EXTRACT.
19279         (rtx_is_swappable_p): Look for patterns with a VEC_SELECT, perhaps
19280         wrapped in a VEC_DUPLICATE, representing an extract.  Mark these
19281         as swappable with special handling SH_EXTRACT.  Remove
19282         UNSPEC_VSX_XXSPLTW from the list of disallowed unspecs for the
19283         optimization.
19284         (adjust_extract): New function.
19285         (handle_special_swappables): Add default to case statement; add
19286         case for SH_EXTRACT that calls adjust_extract.
19287         (dump_swap_insn_table): Handle SH_EXTRACT.
19288
19289 2014-09-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19290
19291         * config/rs6000/vsx.md (*vsx_extract_<mode>_load): Always match
19292         selection of 0th memory doubleword, regardless of endianness.
19293
19294 2014-09-04  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19295
19296         * config/rx/rx.h (HARD_REGNO_MODE_OK): Add braces.
19297
19298 2014-09-04  Alan Modra  <amodra@gmail.com>
19299
19300         PR debug/60655
19301         * dwarf2out.c (mem_loc_descriptor <PLUS>): Return NULL if addend
19302         can't be output.
19303
19304 2014-09-03  Matthew Fortune  <matthew.fortune@imgtec.com>
19305
19306         * target.def (TARGET_DWARF_FRAME_REG_MODE): New target hook.
19307         * targhooks.c (default_dwarf_frame_reg_mode): New function.
19308         * targhooks.h (default_dwarf_frame_reg_mode): New prototype.
19309         * doc/tm.texi.in (TARGET_DWARF_FRAME_REG_MODE): Document.
19310         * doc/tm.texi: Regenerate.
19311         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Abstract mode
19312         selection logic to default_dwarf_frame_reg_mode.
19313
19314 2014-09-03  Marek Polacek  <polacek@redhat.com>
19315
19316         * doc/invoke.texi: Document that -Wlogical-not-parentheses is enabled
19317         by -Wall.
19318
19319 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19320
19321         * doc/rtl.texi (RTX_AUTOINC): Document that the first operand is
19322         the automodified register.
19323
19324 2014-09-03  Richard Sandiford  <richard.sandiford@arm.com>
19325
19326         * output.h (get_some_local_dynamic_name): Declare.
19327         * final.c (some_local_dynamic_name): New variable.
19328         (get_some_local_dynamic_name): New function.
19329         (final_end_function): Clear some_local_dynamic_name.
19330         * config/alpha/alpha.c (machine_function): Remove some_ld_name.
19331         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19332         (print_operand): Report an error if '%&' is used inappropriately.
19333         * config/i386/i386.c (get_some_local_dynamic_name): Delete.
19334         (get_some_local_dynamic_name_1): Delete.
19335         * config/rs6000/rs6000.c (machine_function): Remove some_ld_name.
19336         (rs6000_get_some_local_dynamic_name): Delete.
19337         (rs6000_get_some_local_dynamic_name_1): Delete.
19338         (print_operand): Report an error if '%&' is used inappropriately.
19339         * config/s390/s390.c (machine_function): Remove some_ld_name.
19340         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19341         (print_operand): Assert that get_some_local_dynamic_name is nonnull.
19342         * config/sparc/sparc.c: Include rtl-iter.h.
19343         (machine_function): Remove some_ld_name.
19344         (sparc_print_operand): Report an error if '%&' is used inappropriately.
19345         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Delete.
19346
19347 2014-09-03  Richard Henderson  <rth@redhat.com>
19348
19349         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
19350         (aarch64_popwb_pair_reg): Remove.
19351         (aarch64_set_frame_expr): Remove.
19352         (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
19353         the restore ops performed by the insns generated.
19354         (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
19355         insn.  Perform the calls_eh_return addition later; do not attempt to
19356         preserve the CFA in that case.  Don't use aarch64_set_frame_expr.
19357         (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
19358         special markup at all.  Load cfun->machine->frame.hard_fp_offset
19359         into a local variable.
19360         (aarch64_frame_pointer_required): Don't check calls_alloca.
19361
19362 2014-09-03  Richard Biener  <rguenther@suse.de>
19363
19364         * opts.c (default_options_optimization): Adjust
19365         max-combine-insns to 2 for -Og.
19366
19367 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19368
19369         PR ipa/62015
19370         * ipa-cp.c (intersect_aggregates_with_edge): Handle impermissible
19371         pass-trough jump functions correctly.
19372
19373 2014-09-03  Martin Jambor  <mjambor@suse.cz>
19374
19375         PR ipa/61986
19376         * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
19377         created replacements in ascending order of offsets.
19378         (known_aggs_to_agg_replacement_list): Likewise.
19379
19380 2014-09-03  Martin Liska  <mliska@suse.cz>
19381
19382         * tree-ssa-sccvn.c (vn_reference_lookup_call): default (NULL) value
19383         is set to set uninitialized value for vnresult.
19384
19385 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19386
19387         * config/nds32/nds32.c (nds32_must_pass_in_stack): New implementation
19388         for TARGET_MUST_PASS_IN_STACK.
19389
19390 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19391
19392         * config/nds32/nds32.c (nds32_arg_partial_bytes): New implementation
19393         for TARGET_ARG_PARTIAL_BYTES.
19394
19395 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19396
19397         * config/nds32/nds32.c (nds32_expand_prologue): Emit stack push
19398         instructions for varargs implementation.
19399         (nds32_expand_epilogue): Emit stack adjustment instructions for
19400         varargs implementation.
19401
19402 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19403
19404         * config/nds32/nds32.c (nds32_expand_prologue): Suppress fp-as-gp
19405         optimization detection.
19406
19407 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19408
19409         * config/nds32/nds32.c (nds32_function_arg): Deal with nameless
19410         arguments.
19411         (nds32_function_arg_advance): Deal with nameless arguments.
19412         * config/nds32/nds32.h (NDS32_ARG_PASS_IN_REG_P): Split it into ...
19413         (NDS32_ARG_ENTIRE_IN_GPR_REG_P): ... this one and ...
19414         (NDS32_ARG_PARTIAL_IN_GPR_REG_P): ... this one.
19415
19416 2014-09-03  Richard Biener  <rguenther@suse.de>
19417
19418         * tree-ssa-pre.c (alloc_expression_id): Use quick_grow_cleared.
19419         (struct bb_bitmap_sets): Remove deferred member.
19420         (BB_DEFERRED): Remove.
19421         (defer_or_phi_translate_block): Remove.
19422         (compute_antic_aux): Remove deferring of blocks, assert
19423         proper iteration order.
19424         (compute_antic): Do not set BB_DEFERRED.
19425         (eliminate): Allocate el_avail of proper size initially.
19426
19427 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19428
19429         * config/nds32/nds32.h (FIRST_PARM_OFFSET): Set proper location
19430         according to the value of crtl->args.pretend_args_size.
19431
19432 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19433
19434         * config/nds32/nds32.c (nds32_compute_stack_frame): Prepare necessary
19435         varargs information.
19436
19437 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19438
19439         * config/nds32/nds32.c (nds32_setup_incoming_varargs): New
19440         implementation for TARGET_SETUP_INCOMING_VARARGS.
19441         (nds32_strict_argument_naming): Refine comment.
19442         * config/nds32/nds32.h (TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT):
19443         Define for future implementation.
19444
19445 2014-09-03  Ilya Tocar  <ilya.tocar@intel.com>
19446
19447         * config/i386/adxintrin.h (_subborrow_u32): New.
19448         (_addcarry_u32): Ditto.
19449         (_subborrow_u64): Ditto.
19450         (_addcarry_u64): Ditto.
19451         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_SBB32,
19452         IX86_BUILTIN_SBB64.
19453         (ix86_init_mmx_sse_builtins): Handle __builtin_ia32_sbb_u32,
19454         __builtin_ia32_sbb_u64
19455
19456 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19457
19458         * config/nds32/nds32.c (nds32_function_arg): Define and rename some
19459         GPR-specific stuff.
19460         (nds32_function_arg_advance): Likewise.
19461         (nds32_init_cumulative_args): Likewise.
19462         * config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
19463         (NDS32_FIRST_GPR_REGNUM): Define.
19464         (NDS32_LAST_GPR_REGNUM): Define.
19465         (NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
19466         (NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19467         (FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
19468         (machine_function): Use GRP-specific stuff.
19469
19470 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19471
19472         * config/nds32/nds32.c (nds32_expand_prologue): Remove unused variables.
19473         (nds32_expand_epilogue): Likewise.
19474         (nds32_expand_prologue_v3push): Likewise.
19475         (nds32_expand_epilogue_v3pop): Likewise.
19476
19477 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19478
19479         * config/nds32/nds32.c (nds32_compute_stack_frame): Do not use
19480         v3push/v3pop for variadic function.
19481         * config/nds32/nds32.md (prologue, epilogue): Likewise.
19482
19483 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19484
19485         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
19486         Check rtx for varargs implementation.
19487         (nds32_output_stack_pop): Likewise.
19488         * config/nds32/nds32-protos.h: Have a rtx argument for
19489         nds32_output_stack_push and nds32_output_stack_pop.
19490         * config/nds32/nds32.md: Likewise.
19491
19492 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19493
19494         * config/nds32/nds32-isr.c (nds32_isr_function_p): Define new function
19495         to check if FUNC is an interrupt service routine.
19496         * config/nds32/nds32-protos.h (nds32_isr_function_p): Declaration.
19497
19498 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19499
19500         * config/nds32/nds32.h (machine_function): Add some fields for variadic
19501         arguments implementation.
19502
19503 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19504
19505         * config/nds32/nds32-predicates.c
19506         (nds32_valid_stack_push_pop): Rename to ...
19507         (nds32_valid_stack_push_pop_p): ... this.
19508         * config/nds32/nds32-protos.h: Likewise.
19509         * config/nds32/predicates.md: Likewise.
19510
19511 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19512
19513         * config/nds32/nds32.c (nds32_gen_stack_v3push): Rename to ...
19514         (nds32_emit_stack_v3push): ... this.
19515         (nds32_gen_stack_v3pop): Rename to ...
19516         (nds32_emit_stack_v3pop): ... this and consider CFA restore
19517         information.
19518
19519 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19520
19521         * config/nds32/nds32.c (nds32_gen_stack_push_multiple): Rename to ...
19522         (nds32_emit_stack_push_multiple): ... this.
19523         (nds32_gen_stack_pop_multiple): Rename to ...
19524         (nds32_emit_stack_pop_multiple): ... this and consider CFA restore
19525         information.
19526
19527 2014-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19528
19529         PR target/61078
19530         * config/s390/s390.md ("*negdi2_31"): Add s390_split_ok_p check
19531         and add a second splitter to handle the remaining cases.
19532
19533 2014-09-03  Chung-Ju Wu  <jasonwucj@gmail.com>
19534
19535         * config/nds32/nds32.h (PIC_OFFSET_TABLE_REGNUM): Define.
19536
19537 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19538
19539         * cfgexpand.c (label_rtx_for_bb): Change type to
19540         hash_map<basic_block, rtx_code_label *> *.
19541         (expand_gimple_basic_block): Adjust.
19542         (pass_expand::execute): Likewise.
19543
19544 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19545
19546         * asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
19547         config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
19548         config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
19549         config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
19550         config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
19551         config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
19552         stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
19553         of rtx.
19554
19555 2014-09-02  Trevor Saunders  <tsaunders@mozilla.com>
19556
19557         * alloc-pool.c: Include coretypes.h.
19558         * cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
19559         function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
19560         hash_set instead of htab.
19561         * ggc-page.c (in_gc): New variable.
19562         (ggc_free): Do nothing if a collection is taking place.
19563         (ggc_collect): Set in_gc appropriately.
19564         * ggc.h (gt_ggc_mx(const char *)): New function.
19565         (gt_pch_nx(const char *)): Likewise.
19566         (gt_ggc_mx(int)): Likewise.
19567         (gt_pch_nx(int)): Likewise.
19568         * hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
19569         (hash_map::hash_entry::pch_nx): Likewise.
19570         (hash_map::hash_entry::pch_nx_helper): Likewise.
19571 (hash_map::hash_map): Adjust.
19572 (hash_map::create_ggc): New function.
19573 (gt_ggc_mx): Likewise.
19574 (gt_pch_nx): Likewise.
19575         * hash-set.h (default_hashset_traits::ggc_mx): Likewise.
19576 (default_hashset_traits::pch_nx): Likewise.
19577 (hash_set::hash_entry::ggc_mx): Likewise.
19578 (hash_set::hash_entry::pch_nx): Likewise.
19579 (hash_set::hash_entry::pch_nx_helper): Likewise.
19580 (hash_set::hash_set): Adjust.
19581 (hash_set::create_ggc): New function.
19582 (hash_set::elements): Likewise.
19583 (gt_ggc_mx): Likewise.
19584 (gt_pch_nx): Likewise.
19585         * hash-table.h (hash_table::hash_table): Adjust.
19586 (hash_table::m_ggc): New member.
19587         (hash_table::~hash_table): Adjust.
19588         (hash_table::expand): Likewise.
19589         (hash_table::empty): Likewise.
19590 (gt_ggc_mx): New function.
19591         (hashtab_entry_note_pointers): Likewise.
19592 (gt_pch_nx): Likewise.
19593
19594 2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19595
19596         * config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
19597         built-in definition.
19598         (XVCVUXDDP_SCALE): Likewise.
19599         (XVCVDPSXDS_SCALE): Likewise.
19600         (XVCVDPUXDS_SCALE): Likewise.
19601         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
19602         entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
19603         VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
19604         VSX_BUILTIN_XVCVDPUXDS_SCALE.
19605         * config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
19606         prototype.
19607         * config/rs6000/rs6000.c (real.h): New include.
19608         (rs6000_scale_v2df): New function.
19609         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
19610         (UNSPEC_VSX_XVCVUXDDP): Likewise.
19611         (UNSPEC_VSX_XVCVDPSXDS): Likewise.
19612         (UNSPEC_VSX_XVCVDPUXDS): Likewise.
19613         (vsx_xvcvsxddp_scale): New define_expand.
19614         (vsx_xvcvsxddp): New define_insn.
19615         (vsx_xvcvuxddp_scale): New define_expand.
19616         (vsx_xvcvuxddp): New define_insn.
19617         (vsx_xvcvdpsxds_scale): New define_expand.
19618         (vsx_xvcvdpsxds): New define_insn.
19619         (vsx_xvcvdpuxds_scale): New define_expand.
19620         (vsx_xvcvdpuxds): New define_insn.
19621         * doc/extend.texi (vec_ctf): Add new prototypes.
19622         (vec_cts): Likewise.
19623         (vec_ctu): Likewise.
19624         (vec_splat): Likewise.
19625         (vec_div): Likewise.
19626         (vec_mul): Likewise.
19627
19628 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19629
19630         PR target/62275
19631         * config/arm/neon.md
19632         (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
19633         <v_cmp_result>): New pattern.
19634         * config/arm/iterators.md (NEON_VCVT): New int iterator.
19635         * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
19636         vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
19637         vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
19638         * config/arm/arm.c (arm_builtin_vectorized_function): Handle
19639         BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
19640
19641 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19642
19643         PR target/62275
19644         * config/arm/iterators.md (FIXUORS): New code iterator.
19645         (VCVT): New int iterator.
19646         (su_optab): New code attribute.
19647         (su): Likewise.
19648         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
19649
19650 2014-09-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19651
19652         * config/aarch64/predicates.md (aarch64_comparison_operation):
19653         New special predicate.
19654         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
19655         aarch64_comparison_operation instead of matching an operator.
19656         Update operand numbers.
19657         (csinc3<mode>_insn): Likewise.
19658         (*csinv3<mode>_insn): Likewise.
19659         (*csneg3<mode>_insn): Likewise.
19660         (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
19661         * config/aarch64/aarch64.c (aarch64_get_condition_code):
19662         Return -1 instead of aborting on invalid condition codes.
19663         (aarch64_print_operand): Update aarch64_get_condition_code callsites
19664         to assert that the returned condition code is valid.
19665         * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
19666
19667 2014-09-02  Aldy Hernandez  <aldyh@redhat.com>
19668
19669         * Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
19670         tree.def, and gimple.def
19671
19672 2014-09-02  Jakub Jelinek  <jakub@redhat.com>
19673             Balaji V. Iyer  <balaji.v.iyer@intel.com>
19674             Igor Zamyatin  <igor.zamyatin@intel.com>
19675
19676         * cilk-builtins.def (__cilkrts_cilk_for_32): New.
19677         (__cilkrts_cilk_for_64): Likewise.
19678         * cilk-common.c (declare_cilk_for_builtin): New function.
19679         (cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
19680         __cilkrts_cilk_for_64 bultins.
19681         * cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
19682         CILK_TI_F_LOOP_64.
19683         (cilk_for_32_fndecl): New define.
19684         (cilk_for_64_fndecl): Likewise.
19685         * gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
19686         GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
19687         * gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
19688         GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
19689         GF_OMP_FOR_COMBINED_INTO.
19690         * gimplify.c (gimplify_scan_omp_clauses): Added
19691         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19692         (gimplify_adjust_omp_clauses): Ditto.
19693         (gimplify_omp_for): Added CILK_FOR case.
19694         (gimplify_expr): Ditto.
19695         * omp-low.c: Include cilk.h.
19696         (extract_omp_for_data): Set appropriate kind for
19697         GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
19698         (scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
19699         (create_omp_child_function_name): Added second argument to handle
19700         cilk_for case.
19701         (cilk_for_check_loop_diff_type): New function.
19702         (expand_cilk_for_call): Likewise.
19703         (expand_cilk_for): Likewise.
19704         (create_omp_child_function): Set cilk_for_count; handle the cases when
19705         it is true; call create_omp_child_function_name with second argument.
19706         (expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
19707         (expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
19708         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
19709         * tree-nested.c (convert_nonlocal_omp_clauses): Added
19710         OMP_CLAUSE__CILK_FOR_COUNT_ case.
19711         (convert_local_omp_clauses): Ditto.
19712         * tree-pretty-print.c (dump_omp_clause): Added
19713         OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
19714         (dump_generic_node): Added CILK_FOR case.
19715         * tree.c (omp_clause_num_ops): New element
19716         OMP_CLAUSE__CILK_FOR_COUNT_ (1).
19717         (omp_clause_code_name): New element _Cilk_for_count_.
19718         (walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
19719         * tree.def: Add tree code for CILK_FOR.
19720
19721 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19722
19723         * config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
19724         (ppc403-compare): Add "exts with dot" case.
19725         * config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
19726         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
19727         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
19728         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
19729         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
19730         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
19731         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
19732         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
19733         cell-cmp-microcoded): Similarly.
19734         * config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
19735         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
19736         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
19737         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
19738         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
19739         * config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
19740         * config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
19741         * config/rs6000/power6.md (power6-exts): Add "no dot" condition.
19742         (power6-compare): Add "exts with dot" case.
19743         * config/rs6000/power7.md (power7-integer, power7-compare): As before.
19744         * config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
19745         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.
19746
19747         * config/rs6000/predicates.md (lwa_operand): Don't allow memory
19748         if avoiding Cell microcode.
19749         * config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
19750         (is_cracked_insn): Ditto.
19751         (insn_must_be_first_in_group): Ditto.
19752         * config/rs6000/rs6000.md (dot): Adjust comment.
19753         (cell_micro): Handle exts+dot.
19754         (extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
19755         *extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
19756         extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
19757         (extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
19758         extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
19759         *extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
19760         *extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.
19761
19762 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19763
19764         * config/rs6000/rs6000.md (QHSI): Delete.
19765         (EXTQI, EXTHI, EXTSI): New mode iterators.
19766         (zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
19767         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
19768         *zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
19769         9 anonymous instructions, and 8 splitters): Delete.
19770         (zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
19771         *zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
19772         *zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
19773         zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
19774         *zero_extendsi<mode>2_dot2): New.
19775
19776 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19777
19778         * config/rs6000/rs6000.md (any_extend): New code iterator.
19779         (u, su): New code attributes.
19780         (dmode, DMODE): New mode attributes.
19781         (<su>mul<mode>3_highpart): New.
19782         (*<su>mul<mode>3_highpart): New.
19783         (<su>mulsi3_highpart_le): New.
19784         (<su>muldi3_highpart_le): New.
19785         (<su>mulsi3_highpart_64): New.
19786         (<u>mul<mode><dmode>3): New.
19787         (mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
19788         splitters): Delete.
19789         (mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
19790         splitters): Delete.
19791
19792 2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>
19793
19794         * config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
19795         *mulsi3_internal2, and two splitters): Delete.
19796         (muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
19797         Delete.
19798         (mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.
19799
19800 2014-09-02  Richard Biener  <rguenther@suse.de>
19801
19802         PR tree-optimization/62695
19803         * tree-ssa-structalias.c (find_func_clobbers): Add missing
19804         vector truncate.
19805
19806 2014-09-01  Oleg Endo  <olegendo@gcc.gnu.org>
19807
19808         PR target/62312
19809         * config/sh/sh.md (*cmp_div0s_0): Add missing constraints.
19810
19811 2014-09-01  Andi Kleen  <ak@linux.intel.com>
19812
19813         * file-find.c (add_prefix_begin): Add.
19814         (do_add_prefix): Rename from add_prefix with first argument.
19815         (add_prefix): Add new wrapper.
19816         * file-find.h (add_prefix_begin): Add.
19817         * gcc-ar.c (main): Support -B option.
19818
19819 2014-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
19820
19821         * genemit.c: Include dumpfile.h.
19822         (gen_split): Print name of splitter function to dump file.
19823
19824 2014-09-01  Richard Biener  <rguenther@suse.de>
19825
19826         * tree-ssa-struct-aliases.c (find_func_aliases_for_builtin_call):
19827         Use stack auto_vecs for constraint expressions.
19828         (find_func_aliases_for_call): Likewise.
19829         (find_func_aliases): Likewise.
19830         (find_func_clobbers): Likewise.
19831
19832 2014-09-01  Richard Biener  <rguenther@suse.de>
19833
19834         * tree-ssa-pre.c (phi_translate_1): Avoid re-allocating the
19835         operands vector in most cases.  Remove redundant code.
19836
19837 2014-09-01  Olivier Hainque  <hainque@adacore.com>
19838
19839         * config/vxworksae.h (VXWORKSAE_TARGET_DIR): Rely on
19840         $WIND_BASE instead of designating a harcoded arbitrary home dir.
19841         (VXWORKS_ADDITIONAL_CPP_SPEC): Adjust callers.
19842
19843 2014-09-01  Richard Biener  <rguenther@suse.de>
19844
19845         * tree-ssa-sccvn.h (copy_reference_ops_from_ref,
19846         copy_reference_ops_from_call, vn_nary_op_compute_hash,
19847         vn_reference_compute_hash, vn_reference_insert): Remove.
19848         (vn_reference_lookup_call): New function.
19849         * tree-ssa-sccvn.c (vn_reference_compute_hash,
19850         copy_reference_ops_from_ref, copy_reference_ops_from_call,
19851         vn_reference_insert, vn_nary_op_compute_hash): Make static.
19852         (create_reference_ops_from_call): Remove.
19853         (vn_reference_lookup_3): Properly update shared_lookup_references.
19854         (vn_reference_lookup_pieces): Assert that we updated
19855         shared_lookup_references properly.
19856         (vn_reference_lookup): Likewise.
19857         (vn_reference_lookup_call): New function.
19858         (visit_reference_op_call): Use it.  Avoid re-building the
19859         reference ops.
19860         (visit_reference_op_load): Remove redundant lookup.
19861         (visit_reference_op_store): Perform special tail-merging work
19862         only when possibly doing tail-merging.
19863         (visit_use): Likewise.
19864         * tree-ssa-pre.c (compute_avail): Use vn_reference_lookup_call.
19865
19866 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
19867
19868         PR target/62025
19869         * sched-deps.c (add_or_update_dep_1): If ask_dependency_caches
19870         returned DEP_PRESENT, make sure to set DEP_MULTIPLE on present_dep.
19871         (find_inc): Revert 2014-08-13 change.
19872
19873 2014-09-01  Marek Polacek  <polacek@redhat.com>
19874
19875         PR middle-end/61903
19876         * expmed.c (store_fixed_bit_field_1): Shift UHWI 1 instead of HWI 1.
19877         Change the type of V to unsigned HOST_WIDE_INT.
19878
19879 2014-09-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
19880
19881         * tree-ssa-math-opts.c (struct symbolic_number): Clarify comment about
19882         the size of byte markers.
19883         (do_shift_rotate): Fix confusion between host, target and marker byte
19884         size.
19885         (verify_symbolic_number_p): Likewise.
19886         (find_bswap_or_nop_1): Likewise.
19887         (find_bswap_or_nop): Likewise.
19888
19889 2014-09-01  Olivier Hainque  <hainque@adacore.com>
19890
19891         * Makefile.in (FLAGS_TO_PASS): Propagate INSTALL, INSTALL_DATA,
19892         INSTALL_SCRIPT and INSTALL_PROGRAM as well.
19893
19894 2014-09-01  Jakub Jelinek  <jakub@redhat.com>
19895
19896         * config/gnu-user.h (LIBLSAN_EARLY_SPEC): Define.
19897         * gcc.c (LIBLSAN_SPEC, LIBLSAN_EARLY_SPEC): Follow LIBTSAN*_SPEC.
19898         (SANITIZER_EARLY_SPEC): Include LIBLSAN_EARLY_SPEC for -fsanitize=leak.
19899
19900 2014-09-01  Yury Gribov  <y.gribov@samsung.com>
19901
19902         PR sanitizer/61897
19903         PR sanitizer/62140
19904         * asan.c (asan_mem_ref_get_end): Handle non-ptroff_t lengths.
19905         (build_check_stmt): Likewise.
19906         (instrument_strlen_call): Likewise.
19907         (asan_expand_check_ifn): Likewise and fix types.
19908         (maybe_cast_to_ptrmode): New function.
19909
19910 2014-09-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
19911
19912         * config/mcore/mcore.c (try_constant_tricks): Fix declaration.
19913
19914 2014-08-31  Gerald Pfeifer  <gerald@pfeifer.com>
19915
19916         * doc/generic.texi (Deficiencies): Add note on exemplary mistakes.
19917
19918 2014-08-30  John David Anglin  <danglin@gcc.gnu.org>
19919
19920         * config/pa/pa.c (pa_assemble_integer): Don't add PLABEL relocation
19921         prefix to function labels when generating fast indirect calls.
19922
19923 2014-08-30  David Malcolm  <dmalcolm@redhat.com>
19924
19925         PR bootstrap/62304
19926
19927         * gcc/reorg.c (skip_consecutive_labels): Convert return type and
19928         param back from rtx_insn * to rtx.  Rename param from "label" to
19929         "label_or_return", reintroducing "label" as an rtx_insn * after
19930         we've ensured it's not a RETURN.
19931         (first_active_target_insn): Likewise for return type and param;
19932         add a checked cast to rtx_insn * once we've ensured "insn" is not
19933         a RETURN.
19934         (steal_delay_list_from_target): Convert param "pnew_thread" back
19935         from rtx_insn ** to rtx *.  Replace use of JUMP_LABEL_AS_INSN
19936         with JUMP_LABEL.
19937         (own_thread_p): Convert param "thread" back from an rtx_insn * to
19938         an rtx.  Introduce local rtx_insn * "thread_insn" with a checked
19939         cast once we've established we're not dealing with a RETURN,
19940         renaming subsequent uses of "thread" to "thread_insn".
19941         (fill_simple_delay_slots): Convert uses of JUMP_LABEL_AS_INSN back
19942         to JUMP_LABEL.
19943         (follow_jumps): Convert return type and param "label" from
19944         rtx_insn * back to rtx.  Move initialization of "value" to after
19945         the handling for ANY_RETURN_P, adding a checked cast there to
19946         rtx_insn *.  Convert local rtx_insn * "this_label" to an rtx and
19947         rename to "this_label_or_return", reintroducing "this_label" as
19948         an rtx_insn * once we've handled the case where it could be an
19949         ANY_RETURN_P.
19950         (fill_slots_from_thread): Rename param "thread" to
19951         "thread_or_return", converting from an rtx_insn * back to an rtx.
19952         Reintroduce name "thread" as an rtx_insn * local with a checked
19953         cast once we've handled the case of it being an ANY_RETURN_P.
19954         Convert local "new_thread" from an rtx_insn * back to an rtx.
19955         Add a checked cast when assigning to "trial" from "new_thread".
19956         Convert use of JUMP_LABEL_AS_INSN back to JUMP_LABEL.  Add a
19957         checked cast to rtx_insn * from "new_thread" when invoking
19958         get_label_before.
19959         (fill_eager_delay_slots): Convert locals "target_label",
19960         "insn_at_target" from rtx_insn * back to rtx.
19961         Convert uses of JUMP_LABEL_AS_INSN back to JUMP_LABEL.
19962         (relax_delay_slots): Convert locals "trial", "target_label" from
19963         rtx_insn * back to rtx.  Convert uses of JUMP_LABEL_AS_INSN back
19964         to JUMP_LABEL.  Add a checked cast to rtx_insn * on "trial" when
19965         invoking update_block.
19966         (dbr_schedule): Convert use of JUMP_LABEL_AS_INSN back to
19967         JUMP_LABEL; this removes all JUMP_LABEL_AS_INSN from reorg.c.
19968
19969         * resource.h (mark_target_live_regs): Undo erroneous conversion
19970         of second param of r214693, converting it back from rtx_insn * to
19971         rtx, since it could be a RETURN.
19972
19973         * resource.c (find_dead_or_set_registers): Similarly, convert
19974         param "jump_target" back from an rtx_insn ** to an rtx *, as we
19975         could be writing back a RETURN.  Rename local rtx_insn * "next" to
19976         "next_insn", and introduce "lab_or_return" as a local rtx,
19977         handling the case where JUMP_LABEL (this_jump_insn) is a RETURN.
19978         (mark_target_live_regs): Undo erroneous conversion
19979         of second param of r214693, converting it back from rtx_insn * to
19980         rtx, since it could be a RETURN.  Rename it from "target" to
19981         "target_maybe_return", reintroducing the name "target" as a local
19982         rtx_insn * with a checked cast, after we've handled the case of
19983         ANY_RETURN_P.
19984
19985 2014-08-29  DJ Delorie  <dj@redhat.com>
19986
19987         * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round
19988         pointer size up to a power of two.
19989         * defaults.h (DWARF2_ADDR_SIZE): Round up.
19990         (POINTER_SIZE_UNITS): New, rounded up value.
19991         * dwarf2asm.c (size_of_encoded_value): Use it.
19992         (dw2_output_indirect_constant_1): Likewise.
19993         * expmed.c (init_expmed_one_conv): We now know the sizes of
19994         partial int modes.
19995         * loop-iv.c (iv_number_of_iterations): Use precision, not size.
19996         * optabs.c (expand_float): Use precision, not size.
19997         (expand_fix): Likewise.
19998         * simplify-rtx (simplify_unary_operation_1): Likewise.
19999         * tree-dfa.c (get_ref_base_and_extent): Likewise.
20000         * varasm.c (assemble_addr_to_section): Round up pointer sizes.
20001         (default_assemble_integer) Likewise.
20002         (dump_tm_clone_pairs): Likewise.
20003         * dwarf2out.c (mem_loc_descriptor): Allow partial-int modes also.
20004         * var-tracking.c (adjust_mems): Allow partial-int modes also.
20005         (prepare_call_arguments): Likewise.
20006         * stor-layout.c (finalize_type_size): Preserve precision.
20007         (layout_type): Use precision, not size.
20008
20009         * expr.c (convert_move): If the target has an explicit converter,
20010         use it.
20011
20012 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20013
20014         * gdbinit.in: Skip various inline functions in rtl.h when
20015         stepping.
20016
20017 2014-08-29  Richard Sandiford  <richard.sandiford@arm.com>
20018
20019         PR bootstrap/62301
20020         * rtlanal.c (rtx_referenced_p): Fix typo in LABEL_P call.
20021
20022 2014-08-29  Richard Biener  <rguenther@suse.de>
20023
20024         PR tree-optimization/62291
20025         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Reserve
20026         exactly the vector size needed and use quick_push.
20027         (phi_translate_1): Adjust comment.
20028         (valid_in_sets): Remove block argument and remove pointless
20029         checking of NAMEs.
20030         (dependent_clean): Adjust for removal of block argument.
20031         (clean): Likewise.
20032         (compute_antic_aux): Likewise.
20033         (compute_partial_antic_aux): Likewise.
20034
20035 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20036             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20037             Anna Tikhonova  <anna.tikhonova@intel.com>
20038             Ilya Tocar  <ilya.tocar@intel.com>
20039             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20040             Ilya Verbin  <ilya.verbin@intel.com>
20041             Kirill Yukhin  <kirill.yukhin@intel.com>
20042             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20043
20044         * config/i386/sse.md
20045         (define_insn "avx2_interleave_highv4di<mask_name>"): Add masking.
20046         (define_insn "vec_interleave_highv2di<mask_name>"): Ditto.
20047         (define_insn "avx2_interleave_lowv4di<mask_name>"): Ditto.
20048         (define_insn "vec_interleave_lowv2di<mask_name>"): Ditto.
20049
20050 2014-08-29  Alexander Ivchenko  <alexander.ivchenko@intel.com>
20051             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
20052             Anna Tikhonova  <anna.tikhonova@intel.com>
20053             Ilya Tocar  <ilya.tocar@intel.com>
20054             Andrey Turetskiy  <andrey.turetskiy@intel.com>
20055             Ilya Verbin  <ilya.verbin@intel.com>
20056             Kirill Yukhin  <kirill.yukhin@intel.com>
20057             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
20058
20059         * config/i386/i386-modes.def: Add V12QI, V14QI, V6HI modes.
20060         * config/i386/sse.md
20061         (define_mode_iterator VI4_128_8_256): New.
20062         (define_mode_iterator VI2_128_4_256): Ditto.
20063         (define_mode_iterator PMOV_DST_MODE): Rename into
20064         (define_mode_iterator PMOV_DST_MODE_1): this.
20065         (define_insn "*avx512f_<code><pmov_src_lower><mode>2"):
20066         Use PMOV_DST_MODE_1 mode iterator.
20067         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20068         Ditto.
20069         (define_insn "avx512f_<code><pmov_src_lower><mode>2_mask"):
20070         Ditto.
20071         (define_insn "*avx512bw_<code>v32hiv32qi2"): New.
20072         (define_insn "avx512bw_<code>v32hiv32qi2_mask"): Ditto.
20073         (define_expand "avx512bw_<code>v32hiv32qi2_store_mask"): Ditto.
20074         (define_mode_iterator PMOV_DST_MODE_2): New.
20075         (define_insn "*avx512vl_<code><ssedoublemodelower><mode>2"): Ditto.
20076         (define_insn "<avx512>_<code><ssedoublemodelower><mode>2_mask"): Ditto.
20077         (define_expand "<avx512>_<code><ssedoublemodelower><mode>2_store_mask"):
20078         Ditto.
20079         (define_mode_iterator PMOV_SRC_MODE_3): Ditto.
20080         (define_mode_attr pmov_dst_3): Ditto.
20081         (define_mode_attr pmov_dst_zeroed_3): Ditto.
20082         (define_mode_attr pmov_suff_3): Ditto.
20083         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>qi2"): Ditto.
20084         (define_insn "*avx512vl_<code>v2div2qi2_store"): Ditto.
20085         (define_insn "avx512vl_<code>v2div2qi2_mask"): Ditto.
20086         (define_insn "avx512vl_<code>v2div2qi2_store_mask"): Ditto.
20087         (define_insn "*avx512vl_<code><mode>v4qi2_store"): Ditto.
20088         (define_insn "avx512vl_<code><mode>v4qi2_mask"): Ditto.
20089         (define_insn "avx512vl_<code><mode>v4qi2_store_mask"): Ditto.
20090         (define_insn "*avx512vl_<code><mode>v8qi2_store"): Ditto.
20091         (define_insn "avx512vl_<code><mode>v8qi2_mask"): Ditto.
20092         (define_insn "avx512vl_<code><mode>v8qi2_store_mask"): Ditto.
20093         (define_mode_iterator PMOV_SRC_MODE_4): Ditto.
20094         (define_mode_attr pmov_dst_4): Ditto.
20095         (define_mode_attr pmov_dst_zeroed_4): Ditto.
20096         (define_mode_attr pmov_suff_4): Ditto.
20097         (define_insn "*avx512vl_<code><mode>v<ssescalarnum>hi2"): Ditto.
20098         (define_insn "*avx512vl_<code><mode>v4hi2_store"): Ditto.
20099         (define_insn "avx512vl_<code><mode>v4hi2_mask"): Ditto.
20100         (define_insn "avx512vl_<code><mode>v4hi2_store_mask"): Ditto.
20101         (define_insn "*avx512vl_<code>v2div2hi2_store"): Ditto.
20102         (define_insn "avx512vl_<code>v2div2hi2_mask"): Ditto.
20103         (define_insn "avx512vl_<code>v2div2hi2_store_mask"): Ditto.
20104         (define_insn "*avx512vl_<code>v2div2si2"): Ditto.
20105         (define_insn "*avx512vl_<code>v2div2si2_store"): Ditto.
20106         (define_insn "avx512vl_<code>v2div2si2_mask"): Ditto.
20107         (define_insn "avx512vl_<code>v2div2si2_store_mask"): Ditto.
20108
20109 2014-08-29  Richard Biener  <rguenther@suse.de>
20110
20111         * tree-cfg.c (verify_gimple_assign_unary): Do not allow
20112         NON_LVALUE_EXPR in gimple.
20113
20114 2014-08-29  Richard Biener  <rguenther@suse.de>
20115
20116         PR middle-end/62292
20117         * gimple-fold.c (gimple_fold_builtin_strcpy): Fix error
20118         from previous refactoring.
20119         (gimple_fold_builtin_strncpy): Likewise.
20120
20121 2014-08-29  David Malcolm  <dmalcolm@redhat.com>
20122
20123         PR bootstrap/62300
20124         * function.c (assign_parm_setup_reg): Remove erroneous checked
20125         cast to rtx_insn * on result of gen_extend_insn in favor of
20126         introducing a new local rtx "pat".
20127
20128 2014-08-29  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
20129
20130         * config/mep/mep-pragma.c (mep_pragma_coprocessor_subclass): Rework
20131         to silence warning.
20132         * config/mep/mep.c (VECTOR_TYPE_P): Remove duplicate definition.
20133
20134 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20135
20136         * rtl.h (previous_insn): Strengthen param from rtx to rtx_insn *.
20137         (next_insn): Likewise.
20138         * emit-rtl.c (next_insn): Likewise.
20139         (previous_insn): Likewise.
20140         * config/pa/pa.c (remove_useless_addtr_insns): Strenghten locals
20141         "insn" and "next" from rtx to rtx_insn *.
20142         * config/picochip/picochip.c (picochip_reorg): Likewise for locals
20143         "insn", "insn1", "vliw_start",  "prologue_end_note",
20144         "last_insn_in_packet".
20145
20146 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20147
20148         * shrink-wrap.h (active_insn_between): Strengthen both params from
20149         rtx to rtx_insn *.
20150         * function.c (active_insn_between): Likewise.
20151
20152 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20153
20154         * genattr.c (main): When writing out insn-attr.h, strengthen param
20155         of dfa_clear_single_insn_cache from rtx to rtx_insn *.
20156         * genautomata.c (output_dfa_clean_insn_cache_func): Likewise when
20157         writing out the definition of dfa_clear_single_insn_cache to the
20158         generated insn-automata.c
20159
20160 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20161
20162         * resource.h (clear_hashed_info_for_insn): Strengthen param from
20163         rtx to rtx_insn *.
20164         (incr_ticks_for_insn): Likewise.
20165         (init_resource_info): Likewise.
20166
20167         * resource.c (init_resource_info): Likewise.
20168         (clear_hashed_info_for_insn): Likewise.
20169         (incr_ticks_for_insn): Likewise.
20170
20171         * reorg.c (delete_scheduled_jump): Strengthen param "insn" from
20172         rtx to rtx_insn *.
20173         (steal_delay_list_from_target): Use methods of "seq".
20174         (try_merge_delay_insns): Use methods of "merged_insns".
20175         (update_block): Strengthen param "insn" from rtx to rtx_insn *.
20176         (reorg_redirect_jump): Likewise for param "jump".
20177
20178 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20179
20180         * insn-addr.h (insn_addresses_new): Strengthen param "insn" from
20181         rtx to rtx_insn *.
20182         * config/s390/s390.c (s390_split_branches): Eliminate top-level
20183         local rtx "tmp", in favor of new local rtx "mem" and rtx_insn *
20184         "set_insn".
20185         (s390_mainpool_finish): In three places, split out a local rtx
20186         "insn" into a local rtx - "set" or "pat" - and a rtx_insn *
20187         "insn".  Strengthen local "pool_end" from rtx to rtx_code_label *
20188         and split another local rtx "insn" out into rtx "pat" and
20189         rtx_insn * "insn".
20190         * config/sh/sh.c (output_branchy_insn): Rather than working
20191         directly on operands[9], introduce local rtx_code_label *
20192         variables named "lab" in two places, working on them, and then
20193         assigning them to operands[9], so that the intervening operations
20194         are known by the type system to be on insns.
20195
20196 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20197
20198         * rtl.h (INSN_HAS_LOCATION): Strengthen param from const_rtx to
20199         const rtx_insn *.
20200
20201         * print-rtl.c (print_rtx): Add checked cast to const rtx_insn *
20202         in invocation of INSN_HAS_LOCATION.
20203
20204 2014-08-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20205
20206         * config/rs6000/altivec.h (vec_xl): New #define.
20207         (vec_xst): Likewise.
20208         * config/rs6000/rs6000-builtin.def (XXSPLTD_V2DF): New built-in.
20209         (XXSPLTD_V2DI): Likewise.
20210         (DIV_V2DI): Likewise.
20211         (UDIV_V2DI): Likewise.
20212         (MUL_V2DI): Likewise.
20213         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20214         entries for VSX_BUILTIN_XVRDPI, VSX_BUILTIN_DIV_V2DI,
20215         VSX_BUILTIN_UDIV_V2DI, VSX_BUILTIN_MUL_V2DI,
20216         VSX_BUILTIN_XXSPLTD_V2DF, and VSX_BUILTIN_XXSPLTD_V2DI).
20217         * config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTD): New unspec.
20218         (UNSPEC_VSX_DIVSD): Likewise.
20219         (UNSPEC_VSX_DIVUD): Likewise.
20220         (UNSPEC_VSX_MULSD): Likewise.
20221         (vsx_mul_v2di): New insn-and-split.
20222         (vsx_div_v2di): Likewise.
20223         (vsx_udiv_v2di): Likewise.
20224         (vsx_xxspltd_<mode>): New insn.
20225
20226 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20227
20228         * rtl.h (RTX_PREV): Added checked casts to uses of PREV_INSN and
20229         NEXT_INSN.
20230         (PREV_INSN): Strengthen param from const_rtx to const rtx_insn *.
20231         (NEXT_INSN): Likewise.
20232         (JUMP_LABEL_AS_INSN): Add a "const" modifier to param.
20233         (reg_used_between_p): Strengthen params 2 and 3 from const_rtx to
20234         const rtx_insn *.
20235         (no_labels_between_p): Likewise for both params.
20236
20237         * config/aarch64/aarch64.c (aarch64_output_casesi): Add a checked
20238         cast when using NEXT_INSN on operands[2].
20239         * config/alpha/alpha.c (alpha_set_memflags): Strengthen local
20240         "insn" from rtx to rtx_insn *, adding a checked cast.
20241         (alpha_handle_trap_shadows): Strengthen locals "i", "n" from rtx to
20242         rtx_insn *.
20243         * config/arc/arc-protos.h (arc_ccfsm_record_condition): Likewise
20244         for third param.
20245         (arc_text_label): Likewise for param "insn".
20246         * config/arc/arc.c (arc_expand_epilogue): Likewise for local
20247         "insn".
20248         (arc_ccfsm_record_condition): Likewise for param "jump".
20249         (arc_text_label): Likewise for local "label".
20250         * config/arc/arc.md (doloop_begin_i): Likewise for local "scan".
20251         Introduce a local "seq" via a dyn_cast to rtx_sequence *, and use
20252         a method for typesafety.  Add a checked cast.
20253         * config/arc/constraints.md (Clb): Add a checked cast when getting
20254         the CODE_LABEL from a LABEL_REF.
20255         * config/arm/arm.c (require_pic_register): Strengthen locals
20256         "seq", "insn" from rtx to rtx_insn *.
20257         (create_fix_barrier): Likewise for locals "selected", "next".
20258         (thumb1_reorg): Likewise for locals "prev", "insn".
20259         (arm_expand_prologue): Likewise for local "last".
20260         (thumb1_output_casesi): Add a checked cast when using NEXT_INSN on
20261         operands[0].
20262         (thumb2_output_casesi): Likewise for operands[2].
20263         * config/avr/avr-log.c (avr_log_vadump): Within 'L' case,
20264         strengthen local "insn" from rtx to rtx_insn *.
20265         * config/bfin/bfin.c (find_next_insn_start): Likewise for return
20266         type and param "insn".
20267         (find_prev_insn_start): Likewise.
20268         (hwloop_optimize): Likewise for locals "insn", "last_insn",
20269         "prev".
20270         (gen_one_bundle): Likewise for loal "t".
20271         (find_load): Likewise for param "insn".
20272         (workaround_speculation): Likewise for locals "insn", "next",
20273         "target", "next_tgt".
20274         * config/c6x/c6x.c (assign_reservations): Likewise for both params
20275         and for locals "insn", "within", "last".
20276         (count_unit_reqs): Likewise for params "head", "tail" and local
20277         "insn".
20278         (try_rename_operands): Likewise for params "head", "tail".
20279         (reshuffle_units): Likewise for locals "head", "tail", "insn".
20280         (struct c6x_sched_context): Likewise for fields
20281         "last_scheduled_insn", "last_scheduled_iter0".
20282         (init_sched_state): Replace NULL_RTX with NULL.
20283         (reorg_split_calls): Strengthen local "new_cycle_first" from rtx
20284         to rtx_insn *.
20285         (undo_split_delayed_nonbranch): Likewise for param and for local
20286         "prev".
20287         (conditionalize_after_sched): Likewise for local "insn".
20288         (bb_earliest_end_cycle): Likewise.
20289         (filter_insns_above): Likewise for locals "insn", "next".
20290         (hwloop_optimize): Remove redundant checked cast.
20291         (hwloop_fail): Strengthen local "t" from rtx to rtx_insn *.
20292         * config/cris/cris.c (cris_initial_frame_pointer_offset): Replace
20293         NULL_RTX with NULL.
20294         (cris_simple_epilogue): Likewise.
20295         (cris_expand_prologue): Likewise.
20296         (cris_expand_epilogue): Likewise.
20297         * config/frv/frv.c (frv_function_contains_far_jump): Strengthen
20298         local "insn" from rtx to rtx_insn *.
20299         (frv_ifcvt_modify_tests): Likewise for locals "last_insn", "insn".
20300         (struct frv_packet_group): Likewise for the elements within array
20301         fields "insns", "sorted", and for field "nop".
20302         (frv_packet): Likewise for the elements within array field
20303         "insns".
20304         (frv_add_insn_to_packet): Likewise for param "insn".
20305         (frv_insert_nop_in_packet): Likewise for param "insn" and local
20306         "last".
20307         (frv_for_each_packet): Likewise for locals "insn", "next_insn".
20308         (frv_sort_insn_group_1): Likewise for local "insn".
20309         (frv_optimize_membar_local): Likewise.
20310         (frv_align_label): Likewise for locals "x", "last", "barrier",
20311         "label".
20312         * config/ia64/ia64.c (last_scheduled_insn): Likewise for this
20313         local.
20314         (ia64_sched_init): Likewise for local "insn".
20315         (scheduled_good_insn): Likewise for param "last".
20316         (struct _ia64_sched_context): Likewise for field
20317         "last_scheduled_insn".
20318         (ia64_init_sched_context): Replace NULL_RTX with NULL.
20319         (struct bundle_state): Likewise for field "insn".
20320         (issue_nops_and_insn): Likewise for param "insn".
20321         (get_next_important_insn): Likewise for return type and both
20322         params.
20323         (ia64_add_bundle_selector_before): Likewise for param "insn".
20324         (bundling): Likewise for params "prev_head_insn", "tail" and
20325         locals "insn", "next_insn", "b".  Eliminate top-level local rtx
20326         "nop" in favor of new locals rtx "nop_pat" and rtx_insn *nop;
20327         * config/iq2000/iq2000-protos.h (iq2000_fill_delay_slot):
20328         Strengthen final param from rtx to rtx_insn *.
20329         (iq2000_move_1word): Likewise for second param.
20330         * config/iq2000/iq2000.c (iq2000_fill_delay_slot): Likewise for
20331         param "cur_insn" and local "next_insn".
20332         (iq2000_move_1word): Likewise for param "insn".
20333         * config/iq2000/iq2000.md (insn before ADDR_DIFF_VEC): Add checked
20334         casts when using NEXT_INSN on operands[1].
20335         * config/m32c/m32c.c (m32c_function_needs_enter): Strengthen local
20336         "insn" from rtx to rtx_insn *.
20337         * config/m68k/m68k.c (m68k_jump_table_ref_p): Split out uses of
20338         "x", introducing local rtx_insn * "insn" for when working with the
20339         CODE_LABEL of the LABEL_REF.
20340         (m68k_sched_md_init_global): Strengthen local "insn" from rtx to
20341         rtx_insn *.
20342         * config/mcore/mcore-protos.h (mcore_is_dead): Likewise for first
20343         param.
20344         * config/mcore/mcore.c (emit_new_cond_insn): Likewise for return
20345         type.
20346         (conditionalize_block): Likewise for return type and param.
20347         (mcore_is_dead): Likewise for param "first" and local "insn".
20348         (emit_new_cond_insn): Likewise for return type.
20349         (conditionalize_block): Likewise for return type, param, and
20350         locals "insn", "blk_1_br", "end_blk_2_insn", "start_blk_3_lab",
20351         "newinsn".
20352         (conditionalize_optimization): Likewise for local "insn".
20353         * config/mep/mep.c (mep_jmp_return_reorg): Add checked cast when
20354         using NEXT_INSN.
20355         * config/microblaze/microblaze.md: Add checked casts when using
20356         NEXT_INSN.
20357         * config/mips/mips.c (mips_expand_prologue): Eliminate top-level
20358         rtx "insn" in favor of various more tightly-scoped rtx "insn" and
20359         and rtx_insn * "insn".
20360         * config/mips/mips.md (casesi_internal_mips16_<mode>): Add a
20361         checked cast when using NEXT_INSN on operands[2].
20362         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Strengthen
20363         local "insn" from rtx to rtx_insn *.
20364         * config/nds32/nds32-fp-as-gp.c (nds32_fp_as_gp_check_available):
20365         Likewise.
20366         * config/nds32/nds32-md-auxiliary.c (nds32_output_casesi_pc_relative):
20367         Add a checked cast when using NEXT_INSN on operands[1].
20368         * config/pa/pa-protos.h (pa_following_call): Strengthen param from
20369         rtx to rtx_insn *.
20370         (pa_output_cbranch): Likewise for final param.
20371         (pa_output_lbranch): Likewise for second param.
20372         (pa_output_bb): Likewise for third param.
20373         (pa_output_bvb): Likewise.
20374         (pa_output_dbra): Likewise for second param.
20375         (pa_output_movb): Likewise.
20376         (pa_output_parallel_movb): Likewise.
20377         (pa_output_parallel_addb): Likewise.
20378         (pa_output_millicode_call): Likewise for first param.
20379         (pa_output_mul_insn): Likewise for second param.
20380         (pa_output_div_insn): Likewise for third param.
20381         (pa_output_mod_insn): Likewise for second param.
20382         (pa_jump_in_call_delay): Likewise for param.
20383         * config/pa/pa.c (pa_output_mul_insn): Likewise for param "insn".
20384         (pa_output_div_insn): Likewise.
20385         (pa_output_mod_insn): Likewise.
20386         (pa_output_cbranch): Likewise.
20387         (pa_output_lbranch): Likewise.
20388         (pa_output_bb): Likewise.
20389         (pa_output_bvb): Likewise.
20390         (pa_output_dbra): Likewise.
20391         (pa_output_movb): Likewise.
20392         (pa_output_millicode_call): Likewise; use method of rtx_sequence *
20393         to simplify and for typesafety.
20394         (pa_output_call): Use method of rtx_sequence *.
20395         (forward_branch_p): Strengthen param "insn" from rtx to rtx_insn *.
20396         (pa_jump_in_call_delay): Likewise.
20397         (pa_output_parallel_movb): Likewise.
20398         (pa_output_parallel_addb): Likewise.
20399         (pa_following_call): Likewise.
20400         (pa_combine_instructions): Likewise for locals "anchor",
20401         "floater".
20402         (pa_can_combine_p): Likewise for params "anchor", "floater" and
20403         locals "start", "end".
20404         * config/picochip/picochip.c (picochip_reset_vliw): Likewise for
20405         param "insn" and local "local_insn".
20406         (picochip_final_prescan_insn): Likewise for local "local_insn".
20407         * config/rs6000/rs6000.c (compute_save_world_info): Likewise for
20408         local "insn".
20409         (uses_TOC): Likewise.
20410         * config/s390/s390.c (get_some_local_dynamic_name): Likewise.
20411         (s390_mainpool_finish): Eliminate top-level local rtx "insn",
20412         splitting out to more tightly-scoped locals, 3 as rtx and one as
20413         rtx_insn *.
20414         (s390_optimize_nonescaping_tx): Strengthen local "tmp" from rtx
20415         to rtx_insn *.
20416         (s390_emit_prologue): Introduce a local "insn" to be an rtx_insn *
20417         where needed.
20418         * config/sh/sh-protos.h (barrier_align): Strenghten param from rtx
20419         to rtx_insn *.
20420         (fixup_addr_diff_vecs): Likewise.
20421         (reg_unused_after): Likewise for param 2.
20422         (sh_can_redirect_branch): Likewise for both params.
20423         (check_use_sfunc_addr): Likewise for param 1.
20424         * config/sh/sh.c (fixup_mova): Likewise for local "worker".
20425         (find_barrier): Likewise for local "last_got".
20426         (gen_block_redirect): Likewise for return type, param "jump" and
20427         locals "prev", "scan", "next", "insn".
20428         (struct far_branch): Likewise for fields "near_label",
20429         "insert_place", "far_label".
20430         (gen_far_branch): Likewise for local "jump".
20431         (fixup_addr_diff_vecs): Likewise for param "first" and locals
20432         "insn", "prev".
20433         (barrier_align): Likewise for param and for locals "prev", "x".
20434         Introduce local rtx_sequence * "prev_seq" and use insn method for
20435         typesafety and clarity.
20436         (sh_reorg): Strengthen local "scan" from rtx to rtx_insn *.
20437         (get_dest_uid): Likewise for local "dest".
20438         (split_branches): Likewise for locals "next", "beyond", "label",
20439         "block", "far_label".  Add checked casts when assigning to
20440         bp->far_label and "far_label".
20441         (reg_unused_after): Strengthen param "scan" from rtx to rtx_insn *.
20442         (sequence_insn_p): Likewise.
20443         (mark_constant_pool_use): Likewise for locals "insn", "lab".  Add a
20444         more loop-scoped rtx "insn" when walking LABEL_REFS.
20445         (sh_can_redirect_branch): Strengthen both params from rtx to
20446         rtx_insn *.
20447         (check_use_sfunc_addr): Likewise for param "insn".  Introduce a
20448         new local rtx_sequence * "seq" via a dyn_cast, and use a method
20449         for clarity and typesafety.
20450         * config/sh/sh.md (define_expand "epilogue"): Strengthen local
20451         "insn" from rtx to rtx_insn *.
20452         (define_insn "casesi_worker_1"): Add a checked cast to rtx_insn *
20453         when using NEXT_INSN on the CODE_LABEL in operands[2].
20454         (define_insn "casesi_worker_2"): Likewise.
20455         (define_insn "casesi_shift_media"): Likewise.
20456         (define_insn "casesi_load_media"): Likewise for the CODE_LABEL in
20457         operands[3].
20458         * config/sh/sh_optimize_sett_clrt.cc (struct ccreg_value):
20459         Strengthen field "insn" from rtx to rtx_insn *.
20460         (sh_optimize_sett_clrt::execute): Likewise for locals "next_i", "i".
20461         (sh_optimize_sett_clrt::find_last_ccreg_values): Likewise for
20462         param "start_insn" and local "start_insn".
20463         * config/sh/sh_treg_combine.cc (struct set_of_reg): Likewise for
20464         field "insn".
20465         (find_set_of_reg_bb): Likewise for param "insn".
20466         (trace_reg_uses_1): Likewise for param "start_insn" and local "i".
20467         (trace_reg_uses): Likewise for param "start_insn".
20468         (sh_treg_combine::cbranch_trace): Likewise for field
20469         "cbranch_insn".
20470         (sh_treg_combine::cbranch_trace::cbranch_trace): Likewise for
20471         param "insn".
20472         (sh_treg_combine::record_set_of_reg): Likewise for param
20473         "start_insn" and local "i".
20474         (sh_treg_combine::can_remove_cstore): Likewise for local
20475         "prev_insn".
20476         (sh_treg_combine::try_optimize_cbranch): Likewise for param
20477         "insn".
20478         (sh_treg_combine::execute): Likewise for local "i".
20479         * config/sparc/sparc-protos.h (empty_delay_slot): Likewise for
20480         param.
20481         (sparc_check_64): Likewise for second param.
20482         * config/sparc/sparc.c (sparc_do_work_around_errata): Likewise for
20483         locals "insn", "next".  Introduce local rtx_sequence * "seq" via a
20484         dyn_cast, using its insn method for typesafety and clarity.
20485         (empty_delay_slot): Strengthen param "insn" from rtx to
20486         rtx_insn *.
20487         (set_extends): Likewise.
20488         (sparc_check_64): Likewise.
20489         * config/stormy16/stormy16.c (xstormy16_split_cbranch): Likewise
20490         for locals "seq", "last_insn".
20491         (combine_bnp): Likewise for param "insn".
20492         (xstormy16_reorg): Likewise for local "insn".
20493         * config/v850/v850.c (substitute_ep_register): Likewise for params
20494         "first_insn", "last_insn" and local "insn".
20495         (v850_reorg): Likewise for fields "first_insn", "last_insn" within
20496         elements of "regs" array, and local "insn".
20497         * except.c (emit_note_eh_region_end): Likewise for param "insn".
20498         * final.c (final_sequence): Strengthen this global from rtx to
20499         rtx_sequence *.
20500         (shorten_branches): Strenthen locals "rel_lab", "prev" from rtx to
20501         rtx_insn *.
20502         (final_scan_insn): Update assignment to "final_sequence" to be
20503         from "seq", the cast version of "body", for type-safety.
20504         * function.c (assign_parm_setup_reg): Strengthen locals "insn",
20505         "insns" from rtx to rtx_insn *.
20506         (thread_prologue_and_epilogue_insns): Likewise for local "seq".
20507         * genattr.c (main): When writing out generated insn-attr.h,
20508         strengthen params 1 and 3 of eligible_for_delay,
20509         eligible_for_annul_true, eligible_for_annul_false from rtx to
20510         rtx_insn *.
20511         * genattrtab.c (write_eligible_delay): Likewise when writing out
20512         generated insn-attrtab.c; also local "insn" the generated
20513         functions.
20514         * hw-doloop.c (discover_loops): Strengthen local "insn" from rtx
20515         to rtx_insn *.
20516         * hw-doloop.h (struct GTY hwloop_info_d): Strengthen field
20517         "start_label" from rtx to rtx_insn *.
20518         * ira.c (decrease_live_ranges_number): Likewise for local "p".
20519         (ira_update_equiv_info_by_shuffle_insn): Likewise for param
20520         "insns" and local "insn".
20521         (validate_equiv_mem): Likewise for param "start" and local "insn".
20522         (memref_used_between_p): Likewise for params "start", "end" and
20523         local "insn".
20524         * ira.h (ira_update_equiv_info_by_shuffle_insn): Likewise for
20525         final param.
20526         * loop-doloop.c (doloop_optimize): Within region guarded by
20527         INSN_P (doloop_pat), introduce a new local rtx_insn *
20528         "doloop_insn" via a checked cast, and use it for typesafety,
20529         eventually writing the value back into doloop_pat.
20530         * output.h (final_sequence): Strengthen this global from rtx to
20531         rtx_sequence *.
20532         * recog.c (peep2_attempt): Rename param "insn" to "uncast_insn",
20533         reintroducing "insn" as an rtx_insn * via a checked cast.
20534         Strengthen param "attempt" and local "new_insn"from rtx to
20535         rtx_insn *.
20536         (peephole2_optimize): Strengthen locals "insn", "attempt" from rtx
20537         to rtx_insn *.
20538         * ree.c (emit_note_eh_region_end): Likewise for local "insn".
20539         * reload1.c (reload_as_needed): Eliminate top-level locals "x" and
20540         "p" in favor of more tightly-scoped replacements, sometimes rtx
20541         and sometimes rtx_insn *, as appropriate.
20542         (delete_output_reload): Eliminate top-level rtx "i1", splitting
20543         into two loop-scoped locals, one an rtx, the other an rtx_insn *.
20544         * reorg.c (delete_scheduled_jump): Add checked cast.  Strengthen
20545         local "trial" from rtx to rtx_insn *.
20546         (redirect_with_delay_slots_safe_p): Strengthen param "jump" from
20547         rtx to rtx_insn *.  Strenghten local "pat" from rtx to
20548         rtx_sequence * and use methods for clarity and typesafety.
20549         (redirect_with_delay_list_safe_p): Strengthen param "jump" from
20550         rtx to rtx_insn *.  Strenghten local "li" from rtx to
20551         rtx_insn_list * and use its methods for clarity and typesafety.
20552         (steal_delay_list_from_target): Strengthen param "insn" from rtx
20553         to rtx_insn *.
20554         (steal_delay_list_from_fallthrough): Likewise.
20555         (try_merge_delay_insns): Likewise for param "thread" and locals
20556         "trial", "next_trial", "delay_insn".
20557         (redundant_insn): Likewise for param "target" and local "trial".
20558         (own_thread_p): Likewise for param "thread" and locals
20559         "active_insn", "insn".
20560         (get_label_before): Likewise for param "insn".
20561         (fill_simple_delay_slots): Likewise for local "new_label"; use
20562         JUMP_LABEL_AS_INSN as necessary when calling own_thread_p.
20563         (label_before_next_insn): Strengthen return type and local "insn"
20564         from rtx to rtx_insn *.
20565         (relax_delay_slots): Likewise for locals "other", "tmp".
20566         (make_return_insns): Likewise for param "first" and locals "insn",
20567         "jump_insn", "prev".  Move declaration of "pat" to its assignment
20568         and strengthen from rtx to rtx_sequence *.  Use its methods for
20569         clarity and typesafety.
20570         * rtlanal.c (no_labels_between_p): Strengthen params from
20571         const_rtx to const rtx_insn *.  Strengthen local "p" from rtx to
20572         rtx_insn *.
20573         (reg_used_between_p): Strengthen params "from_insn", "to_insn"
20574         from const_rtx to const rtx_insn *.
20575         (reg_set_between_p): Rename param "from_insn" to
20576         "uncast_from_insn", and reintroduce "from_insn" as a
20577         const rtx_insn * via a checked cast.
20578         (modified_between_p): Likewise for param "start" as "uncast_start".
20579         (tablejump_p): Add a cast when invoking NEXT_INSN on "label".
20580         * sel-sched-ir.c (get_seqno_by_preds): Strengthen param and locals
20581         "tmp", head" from rtx to rtx_insn *.
20582         (recompute_rev_top_order): Likewise for local "insn".
20583         * sel-sched-ir.h (get_seqno_by_preds): Likewise for param.
20584         * store-motion.c (build_store_vectors): Likewise for local "insn".
20585         Strengthen local "st" from rtx to rtx_insn_list * and use methods
20586         for clarity and typesafety.
20587         * tree-ssa-loop-ivopts.c (seq_cost): Strengthen param "seq" from
20588         rtx to rtx_insn *.
20589         (computation_cost): Likewise for local "seq".
20590         (get_address_cost): Likewise.
20591
20592 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20593
20594         * rtl.h (tablejump_p): Strengthen first param from const_rtx to
20595         const rtx_insn *.
20596         (label_is_jump_target_p): Likewise for second param.
20597
20598         * rtlanal.c (tablejump_p): Likewise for param "insn".
20599         (label_is_jump_target_p): Likewise for param "jump_insn".
20600
20601 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20602
20603         * rtl.h (find_first_parameter_load): Strengthen return type and
20604         both params from rtx to rtx_insn *.
20605         * rtlanal.c (find_first_parameter_load): Strengthen return type,
20606         both params and locals "before", "first_set" from rtx to
20607         rtx_insn *.  Remove now-redundant cast.
20608         * except.c (sjlj_mark_call_sites): Use NULL rather than NULL_RTX.
20609
20610 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20611
20612         * rtl.h (find_last_value): Delete.
20613         * rtlanal.c (find_last_value): Delete.
20614
20615 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20616
20617         * cfgexpand.c (pass_expand::execute): Strengthen local "after"
20618         from rtx to rtx_insn *.
20619         * cfgrtl.c (force_nonfallthru_and_redirect): Replace use of local
20620         rtx "note" with new local rtx_insn * "new_head" when calculating
20621         head insn of new basic block.
20622         * combine.c (combine_split_insns): Strengthen return type and local
20623         "ret" from rtx to rtx_insn *.
20624         (likely_spilled_retval_p): Likewise for locals "use" and "p".
20625         (try_combine): Eliminate local "m_split", splitting into new
20626         locals "m_split_insn" and "m_split_pat".
20627         (find_split_point): Strengthen local "seq" from rtx into
20628         rtx_insn *.
20629         * config/spu/spu.c (spu_machine_dependent_reorg): Likewise for
20630         locals "label", "branch".
20631         * config/spu/spu.md (define_expand "smulsi3_highpart"): Likewise
20632         for local "insn".
20633         (define_expand "umulsi3_highpart"): Likewise for local "insn".
20634         * dse.c (note_add_store_info): Likewise for fields "first",
20635         "current".
20636         (note_add_store): Likewise for local "insn".
20637         (emit_inc_dec_insn_before): Likewise for locals "insn",
20638         "new_insn", "cur".
20639         (find_shift_sequence): Likewise for locals "shift_seq", "insn".
20640         (replace_read): Likewise for locals "insns", "this_insn".
20641         * dwarf2cfi.c (dw_trace_info): Likewise for field "eh_head".
20642         (notice_eh_throw): Likewise for param "insn".
20643         (before_next_cfi_note): Likewise for return type, param, and local
20644         "prev".
20645         (connect_traces): Likewise for local "note".
20646         * emit-rtl.c (reset_all_used_flags): Likewise for local "p".
20647         (verify_rtl_sharing): Likewise.
20648         (unshare_all_rtl_in_chain): Likewise for param "insn".
20649         (get_first_nonnote_insn): Likewise for local "insn".
20650         (get_last_nonnote_insn): Likewise.  Introduce local rtx_sequence *
20651         "seq" and use its methods to clarify things.
20652         (next_insn): Strengthen return type from rtx to rtx_insn *.
20653         Rename param "insn" to "uncast_insn" and reintroduce "insn" as a
20654         local rtx_insn * using a checked cast, dropping a checked cast
20655         made redundant by this change.  Use a cast to and method of
20656         rtx_sequence to clarify the code.
20657         (previous_insn): Rename param "insn" to "uncast_insn" and
20658         reintroduce "insn" as a local rtx_insn * using a checked cast,
20659         dropping a checked cast made redundant by this change.  Use a cast
20660         to and method of rtx_sequence to clarify the code.
20661         (next_nonnote_insn): Rename param "insn" to "uncast_insn" and
20662         reintroduce "insn" as a local rtx_insn * using a checked cast,
20663         dropping a checked cast made redundant by this change.
20664         (next_nonnote_insn_bb): Likewise.
20665         (prev_nonnote_insn): Likewise.
20666         (prev_nonnote_insn_bb): Likewise.
20667         (next_nondebug_insn): Likewise.
20668         (prev_nondebug_insn): Likewise.
20669         (next_nonnote_nondebug_insn): Likewise.
20670         (prev_nonnote_nondebug_insn): Likewise.
20671         (next_real_insn): Likewise.
20672         (prev_real_insn): Likewise.
20673         (next_active_insn): Likewise.
20674         (prev_active_insn): Likewise.
20675         (next_cc0_user): Likewise.  Use rtx_sequence and a method for
20676         clarity.
20677         (prev_cc0_setter): Likewise.
20678         (try_split): Rename param "trial" to "uncast_trial" and
20679         reintroduce "insn" as a local rtx_insn * using a checked cast,
20680         dropping checked casts made redundant by this change.
20681         Strengthen locals "seq", "tem", "insn_last", "insn", "next" from
20682         rtx to rtx_insn *.
20683         (remove_insn): Rename param "insn" to "uncast_insn" and
20684         reintroduce "insn" as a local rtx_insn * using a checked cast.
20685         (emit_pattern_after_setloc): Likewise for param "after", as
20686         "uncast_after".
20687         (emit_pattern_after): Likewise.  Strengthen local "prev" from
20688         rtx to rtx_insn *.
20689         (emit_pattern_before_setloc): Rename param "before" to
20690         "uncast_before" and reintroduce "before" as a local rtx_insn *
20691         using a checked cast.  Strengthen locals "first", "last" from
20692         rtx to rtx_insn *.
20693         (emit_pattern_before): Likewise rename/cast param "before" to
20694         "uncast_before". Strengthen local "next" from rtx to rtx_insn *.
20695         * except.c (copy_reg_eh_region_note_forward): Strengthen param
20696         "first" and local "insn" from rtx to rtx_insn *.
20697         (copy_reg_eh_region_note_backward): Likewise for param "last"
20698         and local "insn".
20699         * expr.c (fixup_args_size_notes): Rename param "last" to
20700         "uncast_last" and reintroduce "last" as a local rtx_insn *
20701         using a checked cast.  Strengthen local "insn" from rtx to
20702         rtx_insn *.
20703         * function.c (set_insn_locations): Strengthen param "insn" from
20704         rtx to rtx_insn *.
20705         (record_insns): Likewise for param "insns" and local "tmp".
20706         (active_insn_between): Rename param "tail" to
20707         "uncast_tail" and reintroduce "tail" as a local rtx_insn *
20708         using a checked cast.
20709         (thread_prologue_and_epilogue_insns): Split out top-level local
20710         rtx "seq" into three different rtx_insn * locals.  Strengthen
20711         local "prologue_seq" from rtx to rtx_insn *.
20712         * gcse.c (insert_insn_end_basic_block): Strenghen local "insn"
20713         from rtx to rtx_insn *.
20714         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
20715         (priority): Likewise for locals "prev_first", "twin".
20716         (setup_insn_max_reg_pressure): Likewise for param "after".
20717         (sched_setup_bb_reg_pressure_info): Likewise.
20718         (no_real_insns_p): Strengthen params from const_rtx to
20719         const rtx_insn *.
20720         (schedule_block): Strengthen local "next_tail" from rtx to
20721         rtx_insn *.
20722         * ifcvt.c (find_active_insn_before): Strengthen return type and
20723         param "insn" from rtx to rtx_insn *.
20724         (find_active_insn_after): Likewise.
20725         (cond_exec_process_insns): Likewise for param "start" and local "insn".
20726         (cond_exec_process_if_block): Likewise for locals "then_start",
20727         "then_end", "else_start", "else_end", "insn", "start", "end", "from".
20728         (noce_process_if_block): Likewise for local "jump".
20729         (merge_if_block): Likewise for two locals named "end".
20730         (cond_exec_find_if_block): Likewise for local "last_insn".
20731         * jump.c (delete_related_insns): Rename param "insn" to
20732         "uncast_insn" and reintroduce "insn" as a local rtx_insn * using a
20733         checked cast.  Strengthen local "p" from rtx to rtx_insn *.
20734         * lra-constraints.c (inherit_reload_reg): Replace NULL_RTX with
20735         NULL.
20736         (split_reg): Likewise.
20737         * lra.c (lra_process_new_insns): Likewise.
20738         * modulo-sched.c (permute_partial_schedule): Strengthen param
20739         "last" from rtx to rtx_insn *.
20740         * optabs.c (add_equal_note): Likewise for param "insns" and local
20741         "last_insn".
20742         (expand_binop_directly): Add checked casts to rtx_insn * within
20743         NEXT_INSN (pat) uses.
20744         (expand_unop_direct): Likewise.
20745         (maybe_emit_unop_insn): Likewise.
20746         * recog.c (peep2_attempt): Strengthen locals "last",
20747         "before_try", "x" from rtx to rtx_insn *.
20748         * reorg.c (optimize_skip): Strengthen return type and local
20749         "delay_list" from rtx to rtx_insn_list *.  Strengthen param "insn"
20750         and locals "trial", "next_trial" from rtx to rtx_insn *.
20751         * resource.c (next_insn_no_annul): Strengthen return type and
20752         param "insn" from rtx to rtx_insn *.  Use a cast to and method of
20753         rtx_sequence to clarify the code.
20754         (mark_referenced_resources): Add a checked cast to rtx_insn *
20755         within PREV_INSN (x).
20756         (find_dead_or_set_registers): Strengthen return type, param
20757         "target", locals "insn", "next", "jump_insn", "this_jump_insn"
20758         from rtx to rtx_insn *.  Strengthen param "jump_target" from rtx *
20759         to rtx_insn **.
20760         (mark_target_live_regs): Strengthen params "insns" and "target",
20761         locals "insn", "jump_target", "start_insn", "stop_insn" from rtx
20762         to rtx_insn *.  Use cast to and method of rtx_sequence to clarify
20763         the code.
20764         * resource.h (mark_target_live_regs): Strengthen params 1 and 2
20765         from rtx to rtx_insn *.
20766         * rtl.h (copy_reg_eh_region_note_forward): Strengthen second param
20767         from rtx to rtx_insn *.
20768         (copy_reg_eh_region_note_backward): Likewise.
20769         (unshare_all_rtl_in_chain): Likewise for sole param.
20770         (dump_rtl_slim): Strengthen second and third params from const_rtx
20771         to const rtx_insn *.
20772         * sched-deps.c (sched_free_deps): Strengthen params "head" and
20773         "tail" and locals "insn", "next_tail" from rtx to rtx_insn *.
20774         * sched-ebb.c (init_ready_list): Strengthen locals "prev_head",
20775         "next_tail" from rtx to rtx_insn *.
20776         (begin_move_insn): Likewise for local "next".
20777         * sched-int.h (sched_free_deps): Likewise for first and second
20778         params.
20779         (no_real_insns_p): Strengthen both params from const_rtx to
20780         const rtx_insn *.
20781         (sched_setup_bb_reg_pressure_info): Strengthen second params from
20782         rtx to rtx_insn *.
20783         * sched-rgn.c (init_ready_list): Likewise for locals "prev_head",
20784         "next_tail".
20785         * sched-vis.c (dump_rtl_slim): Strengthen params "first", "last"
20786         and locals "insn", "tail" from const_rtx to const rtx_insn *.
20787         (rtl_dump_bb_for_graph): Strengthen local "insn" from rtx to
20788         rtx_insn *.
20789         (debug_rtl_slim): Strengthen params "first" and "last" from
20790         const_rtx to const rtx_insn *.
20791         * shrink-wrap.c (try_shrink_wrapping): Strengthen param
20792         "prologue_seq" and locals "seq", "p_insn" from rtx to rtx_insn *.
20793         (convert_to_simple_return): Likewise for param "returnjump".
20794         * shrink-wrap.h (try_shrink_wrapping): Likewise for param
20795         "prologue_seq".
20796         (convert_to_simple_return): Likewise for param "returnjump".
20797         * valtrack.c (propagate_for_debug): Likewise for params
20798         "insn", "last".
20799         * valtrack.h (propagate_for_debug): Likewise for second param.
20800
20801 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20802
20803         * output.h (insn_current_reference_address): Strengthen param
20804         from rtx to rtx_insn *.
20805         * final.c (insn_current_reference_address): Likewise.
20806
20807 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20808
20809         * basic-block.h (inside_basic_block_p): Strengthen param from
20810         const_rtx to const rtx_insn *.
20811         * cfgbuild.c (inside_basic_block_p): Likewise.
20812
20813 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20814
20815         * dwarf2cfi.c (dw_trace_info): Strengthen field "head" from rtx to
20816         rtx_insn *.
20817         (get_trace_info): Likewise for param "insn".
20818         (save_point_p): Likewise.
20819         (maybe_record_trace_start): Likewise for both params.
20820         (maybe_record_trace_start_abnormal): Likewise.
20821         (create_trace_edges): Likewise for sole param and for three of the
20822         locals named "lab".
20823         (scan_trace): Strengthen local "prev", "insn", "control" from rtx
20824         to rtx_insn *, and update a call to pat->element to pat->insn.
20825
20826 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20827
20828         * function.h (struct expr_status): Convert field "x_forced_labels"
20829         from rtx_expr_list * to rtx_insn_list *.
20830
20831         * cfgbuild.c (make_edges): Convert local "x" from an
20832         rtx_expr_list * to an rtx_insn_list *, replacing use of
20833         "element" method with "insn" method.
20834         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20835         * except.c (sjlj_emit_dispatch_table): Replace use of
20836         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending to
20837         forced_labels.
20838         * jump.c (rebuild_jump_labels_1): Convert local "insn" from an
20839         rtx_expr_list * to an rtx_insn_list *, replacing use of
20840         "element" method with "insn" method.
20841         * reload1.c (set_initial_label_offsets): Likewise for local "x".
20842         * stmt.c (label_rtx): Strengthen local "ref" from rtx to
20843         rtx_insn *, adding a checked cast.  Replace use of
20844         gen_rtx_EXPR_LIST with gen_rtx_INSN_LIST when prepending it to
20845         forced_labels.
20846         (expand_label): Likewise for local "label_r".
20847
20848 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20849
20850         * function.h (struct rtl_data): Convert field
20851         "x_nonlocal_goto_handler_labels" from rtx_expr_list * to
20852         rtx_insn_list *.
20853         * rtl.h (remove_node_from_insn_list): New prototype.
20854
20855         * builtins.c (expand_builtin): When prepending to
20856         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20857         gen_rtx_EXPR_LIST.
20858         * cfgbuild.c (make_edges): Convert local "x" from rtx_expr_list *
20859         to rtx_insn_list *, and use its "insn" method rather than
20860         "element" method.
20861         * cfgrtl.c (delete_insn): Use new function
20862         remove_node_from_insn_list rather than
20863         remove_node_from_expr_list.
20864         (cfg_layout_initialize): Convert local "x" from rtx_expr_list *
20865         to rtx_insn_list *, and use its "insn" method rather than
20866         "element" method.
20867         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
20868         * reload1.c (set_initial_label_offsets): Likewise for local "x".
20869         * rtlanal.c (remove_node_from_insn_list): New function, adapted
20870         from remove_node_from_expr_list.
20871         * stmt.c (expand_label): When prepending to
20872         nonlocal_goto_handler_labels, use gen_rtx_INSN_LIST rather than
20873         gen_rtx_EXPR_LIST.
20874
20875 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20876
20877         * function.h (struct rtl_data): Strengthen fields "x_return_label"
20878         and "x_naked_return_label" from rtx to rtx_code_label *.
20879
20880 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20881
20882         * rtl.h (SET_PREV_INSN): Strengthen param from rtx to rtx_insn *.
20883         (SET_NEXT_INSN): Likewise.
20884         (gen_rtvec_v): Add an overload for param types (int, rtx_insn **).
20885
20886         * config/c6x/c6x.c (gen_one_bundle): Strengthen param "slot" from
20887         rtx * to rtx_insn **.  Introduce a new local rtx "seq", using it
20888         to split out the SEQUENCE from local "bundle", strengthening the
20889         latter from rtx to rtx_insn * to hold the insn holding the SEQUENCE.
20890         Strengthen locals "t" and "insn" from rtx to rtx_insn *.
20891         (c6x_gen_bundles): Strengthen locals "insn", "next", "last_call"
20892         and the type of the elements of the "slot" array from rtx to
20893         rtx_insn *.
20894         (reorg_split_calls): Likewise for locals "insn" and "next", and
20895         the type of the elements of the "slot" array.
20896
20897         * config/frv/frv.c (frv_nops): Likewise for the elements of this
20898         array.
20899         (frv_function_prologue): Likewise for locals "insn", "next",
20900         "last_call".
20901         (frv_register_nop): Introduce a local "nop_insn" to be the
20902         rtx_insn * containing rtx "nop".
20903
20904         * config/mep/mep.c (mep_make_bundle): Param "core" is sometimes
20905         used as an insn and sometimes as a pattern, so rename it to
20906         "core_insn_or_pat", and introduce local rtx_insn * "core_insn",
20907         using it where dealing with the core insn.
20908
20909         * config/picochip/picochip.c (reorder_var_tracking_notes):
20910         Strengthen locals "insn", "next", "last_insn", "queue",
20911         "next_queue", "prev" from rtx to rtx_insn *.
20912
20913         * emit-rtl.c (gen_rtvec_v): Add overloaded implementation for when
20914         the second param is an rtx_insn ** rather than an rtx **.
20915         (link_insn_into_chain): Strengthen locals "seq" and "sequence"
20916         from rtx to rtx_sequence *, and introduce local named "sequence",
20917         using methods of rtx_sequence to clarify the code.
20918         (remove_insn): Introduce local rtx_sequence * named "sequence" and
20919         use its methods.
20920         (emit_insn_after_1): Strengthen return type from rtx to rtx_insn *.
20921         Rename param "after" to "uncast_after", reintroducing "after" as a
20922         local rtx_insn * with a checked cast.
20923         (emit_pattern_after_noloc): Rename param "after" to "uncast_after",
20924         reintroducing "after" as a local rtx_insn * with a checked cast.
20925         Strengthen local "last" from rtx to rtx_insn * and remove the
20926         now-redundant checked casts.
20927         (copy_delay_slot_insn): Strengthen return type and param from rtx
20928         to rtx_insn *.
20929
20930         * haifa-sched.c (reemit_notes): Strengthen params "insn" and
20931         "last" from rtx to rtx_insn *.
20932
20933 2014-08-28  David Malcolm  <dmalcolm@redhat.com>
20934
20935         * emit-rtl.h (copy_delay_slot_insn): Strengthen return type and
20936         param from rtx to rtx_insn *.
20937
20938         * emit-rtl.c (copy_delay_slot_insn): Likewise.
20939
20940         * reorg.c (skip_consecutive_labels): Strengthen return type, param
20941         and local "insn" from rtx to rtx_insn *.
20942         (unfilled_slots_base): Strengthen type from rtx * to rtx_insn **.
20943         (unfilled_slots_next): Likewise.
20944         (function_return_label): Strengthen from rtx to rtx_code_label *.
20945         (function_simple_return_label): Likewise.
20946         (first_active_target_insn): Strengthen return type and param from
20947         rtx to rtx_insn *.
20948         (find_end_label): Strengthen return type from rtx to
20949         rtx_code_label *; strengthen locals as appropriate.
20950         (emit_delay_sequence): Strengthen return type, param "insn" and
20951         local "seq_insn" from rtx to rtx_insn *.  Strengthen param "list"
20952         and local "li" from rtx to rtx_insn_list *, using methods of
20953         rtx_insn_list for clarity and typesafety.
20954         (add_to_delay_list): Strengthen return type and param "insn" from
20955         rtx to rtx_insn *.  Strengthen param "delay_list" from rtx to
20956         rtx_insn_list * and use methods of rtx_insn_list.
20957         (delete_from_delay_slot): Strengthen return type, param "insn",
20958         locals "trial", "seq_insn", "prev" from rtx to rtx_insn *.
20959         Strengthen local "seq" from rtx to rtx_sequence *, and local
20960         "delay_list" from rtx to rtx_insn_list *, using methods of
20961         rtx_sequence for clarity and type-safety.
20962         (delete_scheduled_jump): Add checked cast when invoking
20963         delete_from_delay_slot.  Strengthen local "trial" from rtx to
20964         rtx_insn *.
20965         (optimize_skip): Strengthen return type and local "delay_list"
20966         from rtx to rtx_insn_list *.  Strengthen local "trial" from rtx to
20967         rtx_insn *.
20968         (steal_delay_list_from_target): Strengthen return type, param
20969         "delay_list" and local "new_delay_list" from rtx to
20970         rtx_insn_list *.  Strengthen param "seq" from rtx to
20971         rtx_sequence *.  Strengthen param "pnew_thread" from rtx * to
20972         rtx_insn **.
20973         Split out local "temp" into multiple more-tightly scoped locals:
20974         sometimes an rtx_insn_list *, and once a rtx_insn *.  Use methods
20975         of rtx_insn_list and rtx_sequence for clarity and typesafety.
20976         Strengthen locals named "trial" from rtx to rtx_insn *.
20977         (steal_delay_list_from_fallthrough): Strengthen return type and
20978         param "delay_list" from rtx to rtx_insn_list *.  Strengthen param
20979         "seq" from rtx to rtx_sequence *.  Use methods of rtx_sequence.
20980         Strengthen local "trial" from rtx to rtx_insn *.
20981         (try_merge_delay_insns): Strength local "merged_insns" from rtx
20982         to rtx_insn_list * and use its methods.  Strengthen local "pat"
20983         from rtx to rtx_sequence * and use its methods.  Strengthen locals
20984         "dtrial" and "new_rtx" from rtx to rtx_insn *.
20985         (get_label_before): Strengthen return type and local "label" from
20986         rtx to rtx_insn *.
20987         (fill_simple_delay_slots): Likewise for locals "insn", "trial",
20988         "next_trial", "next", prev".  Strengthen local "delay_list" from
20989         rtx to rtx_insn_list *  Strengthen local "tmp" from rtx * to
20990         rtx_insn **.
20991         (follow_jumps): Strengthen return type, param "label" and locals
20992         "insn", "next", "value", "this_label" from rtx to rtx_insn *.
20993         (fill_slots_from_thread): Strengthen return type, param
20994         "delay_list" from rtx to rtx_insn_list *.  Strengthen params
20995         "insn", "thread", "opposite_thread" and locals "new_thread",
20996         "trial", "temp", "ninsn" from rtx to rtx_insn *.  Introduce local
20997         "sequence" from a checked cast to rtx_sequence so that we can call
20998         steal_delay_list_from_target and steal_delay_list_from_fallthrough
20999         with an rtx_sequence *.
21000         (fill_eager_delay_slots): Strengthen locals "insn", "target_label",
21001         "insn_at_target", "fallthrough_insn" from rtx to rtx_insn *.
21002         Strengthen local "delay_list" from rtx to rtx_insn_list *.
21003         (relax_delay_slots): Strengthen param "first" and locals "insn",
21004         "next", "trial", "delay_insn", "target_label" from rtx to
21005         rtx_insn *.  Strengthen local "pat" from rtx to rtx_sequence *.
21006         Introduce a local "trial_seq" for PATTERN (trial) of type
21007         rtx_sequence *, in both cases using methods of rtx_sequence.
21008         (dbr_schedule): Strengthen param "first" and locals "insn",
21009         "next", "epilogue_insn" from rtx to rtx_insn *.
21010
21011 2014-08-28  Richard Biener  <rguenther@suse.de>
21012
21013         PR tree-optimization/62283
21014         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21015         Do not peel loops for alignment where the vector loop likely
21016         doesn't run at least VF times.
21017
21018 2014-08-28  Bin Cheng  <bin.cheng@arm.com>
21019
21020         * tree-ssa-loop-ivopts.c (iv_ca_add_use): Delete parameter
21021         important_candidates.  Consider all important candidates if
21022         IVS doesn't give any result.  Remove check on ivs->upto.
21023         (try_add_cand_for): Call iv_ca_add_use only once.
21024
21025 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21026             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21027             Anna Tikhonova  <anna.tikhonova@intel.com>
21028             Ilya Tocar  <ilya.tocar@intel.com>
21029             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21030             Ilya Verbin  <ilya.verbin@intel.com>
21031             Kirill Yukhin  <kirill.yukhin@intel.com>
21032             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21033
21034         (define_mode_iterator VI12_AVX2): Add V64QI and V32HI modes.
21035         (define_expand "<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Add
21036         masking.
21037         (define_insn "*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>"): Ditto.
21038         (define_expand "<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21039         (define_insn "*<sse2_avx2>_uavg<mode>3<mask_name>"): Ditto.
21040         (define_insn "*mul<mode>3"): Add EVEX version.
21041
21042 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21043             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21044             Anna Tikhonova  <anna.tikhonova@intel.com>
21045             Ilya Tocar  <ilya.tocar@intel.com>
21046             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21047             Ilya Verbin  <ilya.verbin@intel.com>
21048             Kirill Yukhin  <kirill.yukhin@intel.com>
21049             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21050
21051         * config/i386/sse.md
21052         (define_insn "avx512bw_interleave_highv64qi<mask_name>"): New.
21053         (define_insn "avx2_interleave_highv32qi<mask_name>"): Add masking.
21054         (define_insn "vec_interleave_highv16qi<mask_name>"): Ditto.
21055         (define_insn "avx2_interleave_lowv32qi<mask_name>"): Ditto.
21056         (define_insn "vec_interleave_lowv16qi<mask_name>"): Ditto.
21057         (define_insn "avx2_interleave_highv16hi<mask_name>"): Ditto.
21058         (define_insn "vec_interleave_highv8hi<mask_name>"): Ditto.
21059         (define_insn "avx2_interleave_lowv16hi<mask_name>"): Ditto.
21060         (define_insn "vec_interleave_lowv8hi<mask_name>"): Ditto.
21061         (define_insn "avx2_interleave_highv8si<mask_name>"): Ditto.
21062         (define_insn "vec_interleave_highv4si<mask_name>"): Ditto.
21063         (define_insn "avx2_interleave_lowv8si<mask_name>"): Ditto.
21064         (define_insn "vec_interleave_lowv4si<mask_name>"): Ditto.
21065         (define_insn "vec_interleave_highv16qi<mask_name>"): New.
21066         (define_insn "avx512bw_interleave_highv32hi<mask_name>"): Ditto.
21067         (define_insn "<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>"): Ditto.
21068
21069 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21070             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21071             Anna Tikhonova  <anna.tikhonova@intel.com>
21072             Ilya Tocar  <ilya.tocar@intel.com>
21073             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21074             Ilya Verbin  <ilya.verbin@intel.com>
21075             Kirill Yukhin  <kirill.yukhin@intel.com>
21076             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21077
21078         * config/i386/sse.md
21079         (define_mode_iterator VIMAX_AVX2): Add V4TI mode.
21080         (define_insn "<sse2_avx2>_ashl<mode>3"): Add EVEX version.
21081         (define_insn "<sse2_avx2>_lshr<mode>3"): Ditto.
21082
21083 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21084             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21085             Anna Tikhonova  <anna.tikhonova@intel.com>
21086             Ilya Tocar  <ilya.tocar@intel.com>
21087             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21088             Ilya Verbin  <ilya.verbin@intel.com>
21089             Kirill Yukhin  <kirill.yukhin@intel.com>
21090             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21091
21092         * config/i386/sse.md
21093         (define_mode_iterator VI128_256): New.
21094         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Ditto.
21095
21096 2014-08-28  Alexander Ivchenko  <alexander.ivchenko@intel.com>
21097             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
21098             Anna Tikhonova  <anna.tikhonova@intel.com>
21099             Ilya Tocar  <ilya.tocar@intel.com>
21100             Andrey Turetskiy  <andrey.turetskiy@intel.com>
21101             Ilya Verbin  <ilya.verbin@intel.com>
21102             Kirill Yukhin  <kirill.yukhin@intel.com>
21103             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
21104
21105         * config/i386/sse.md
21106         (define_mode_iterator VI8_256_512): New.
21107         (define_insn "<mask_codefor>avx512dq_cvtps2qq<mode><mask_name><round_name>"):
21108         Ditto.
21109         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
21110         (define_insn "<mask_codefor>avx512dq_cvtps2uqq<mode><mask_name><round_name>"):
21111         Ditto.
21112         (define_insn "<mask_codefor>avx512dq_cvtps2uqqv2di<mask_name>"): Ditto.
21113
21114 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21115
21116         * varasm.c (compute_reloc_for_rtx_1): Take a const_rtx.  Remove the
21117         pointer to the cumulative reloc value and return the value for
21118         this reloc instead.
21119         (compute_reloc_for_rtx): Take a const_rtx.  Call
21120         compute_reloc_for_rtx_1 directly for SYMBOL_REF and LABEL_REF,
21121         avoiding any recursion.  Use FOR_EACH_SUBRTX rather than
21122         for_each_rtx for the CONST case.
21123
21124 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21125
21126         * varasm.c (mark_constant): Replace this for_each_rtx callback with...
21127         (mark_constants_in_pattern): ...this new function to iterate over
21128         all the subrtxes.
21129         (mark_constants): Update accordingly.
21130
21131 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21132
21133         * varasm.c: Include rtl-iter.h.
21134         (const_rtx_hash_1): Take a const_rtx rather than an rtx *.
21135         Remove the pointer to the cumulative hashval_t and just return
21136         the hash for this rtx instead.  Remove recursive CONST_VECTOR case.
21137         (const_rtx_hash): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21138         Accumulate the hashval_ts here instead of const_rtx_hash_1.
21139
21140 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21141
21142         * var-tracking.c (add_uses): Take an rtx rather than an rtx *.
21143         Give real type of data parameter.  Remove return value.
21144         (add_uses_1): Use FOR_EACH_SUBRTX_VAR rather than for_each_rtx
21145         to iterate over subrtxes.
21146
21147 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21148
21149         * var-tracking.c (use_narrower_mode_test): Turn from being a
21150         for_each_rtx callback to being a function that examines each
21151         subrtx itself.
21152         (adjust_mems): Update accordingly.
21153
21154 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21155
21156         * var-tracking.c (non_suitable_const): Turn from being a for_each_rtx
21157         callback to being a function that examines each subrtx itself.
21158         Remove handling of null rtxes.
21159         (add_uses): Update accordingly.
21160
21161 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21162
21163         * var-tracking.c: Include rtl-iter.h.
21164         (rtx_debug_expr_p): Turn from being a for_each_rtx callback
21165         to being a function that examines each subrtx itself.
21166         (use_type): Update accordingly.
21167
21168 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21169
21170         * store-motion.c: Include rtl-iter.h.
21171         (extract_mentioned_regs_1): Delete.
21172         (extract_mentioned_regs): Use FOR_EACH_SUBRTX_VAR rather than
21173         for_each_rtx to iterate over subrtxes.
21174
21175 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21176
21177         * sel-sched.c: Include rtl-iter.h
21178         (count_occurrences_1): Delete.
21179         (count_occurrences_equiv): Turn rtxes into const_rtxes.
21180         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21181
21182 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21183
21184         * rtl.h (tls_referenced_p): Take a const_rtx rather than an rtx.
21185         * rtlanal.c (tls_referenced_p_1): Delete.
21186         (tls_referenced_p): Take a const_rtx rather than an rtx.
21187         Use FOR_EACH_SUBRTX rather than for_each_rtx.
21188
21189 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21190
21191         * rtl.h (for_each_inc_dec_fn): Remove special case for -1.
21192         (for_each_inc_dec): Take an rtx rather than an rtx *.
21193         * cselib.c (cselib_record_autoinc_cb): Update accordingly.
21194         (cselib_record_sets): Likewise.
21195         * dse.c (emit_inc_dec_insn_before, check_for_inc_dec_1)
21196         (check_for_inc_dec): Likewise.
21197         * rtlanal.c (for_each_inc_dec_ops): Delete.
21198         (for_each_inc_dec_find_inc_dec): Take the MEM as argument,
21199         rather than a pointer to the memory address.  Replace
21200         for_each_inc_dec_ops argument with separate function and data
21201         arguments.  Abort on non-autoinc addresses.
21202         (for_each_inc_dec_find_mem): Delete.
21203         (for_each_inc_dec): Take an rtx rather than an rtx *.  Use
21204         FOR_EACH_SUBRTX_VAR to visit every autoinc MEM.
21205
21206 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21207
21208         * rtl.h (find_all_hard_regs): Declare.
21209         * rtlanal.c (find_all_hard_regs): New function.
21210         (record_hard_reg_uses_1): Delete.
21211         (record_hard_reg_uses): Use find_all_hard_regs.
21212
21213 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21214
21215         * rtl.h (replace_label_data): Delete.
21216         (replace_label): Take the old label, new label and update-nuses flag
21217         as direct arguments.  Return void.
21218         * cfgcleanup.c (outgoing_edges_match): Update accordingly.
21219         * rtlanal.c (replace_label): Update interface as above.  Handle
21220         JUMP_TABLE_DATA as a special case.  Handle JUMPs outside the
21221         iterator.  Use FOR_EACH_SUBRTX_PTR.
21222
21223 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21224
21225         * rtl.h (get_pool_constant, rtx_referenced_p): Replace rtx parameters
21226         with const_rtx parameters.
21227         * varasm.c (get_pool_constant): Likewise.
21228         * rtlanal.c (rtx_referenced_p_1): Delete.
21229         (rtx_referenced_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21230         Assert that the rtx we're looking for is nonnull.  Allow searches
21231         for constant pool SYMBOL_REFs.
21232
21233 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21234
21235         * reload1.c: Include rtl-iter.h.
21236         (note_reg_elim_costly): Turn from being a for_each_rtx callback
21237         to being a function that examines each subrtx itself.
21238         (eliminate_regs_1, elimination_costs_in_insn): Update accordingly.
21239
21240 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21241
21242         * regcprop.c (cprop_find_used_regs_1): Delete.
21243         (cprop_find_used_regs): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21244
21245 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21246
21247         * regcprop.c: Include rtl-iter.h.
21248         (kill_value): Take a const_rtx.
21249         (kill_autoinc_value): Turn from being a for_each_rtx callback
21250         to being a function that examines each subrtx itself.
21251         (copyprop_hardreg_forward_1): Update accordingly.
21252
21253 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21254
21255         * reg-stack.c: Include rtl-iter.h.
21256         (subst_stack_regs_in_debug_insn): Delete.
21257         (subst_all_stack_regs_in_debug_insn): Use FOR_EACH_SUBRTX_PTR
21258         instead of for_each_rtx.
21259
21260 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21261
21262         * lower-subreg.c (find_decomposable_subregs): Turn from being
21263         a for_each_rtx callback to being a function that examines each
21264         subrtx itself.  Remove handling of null rtxes.
21265         (decompose_multiword_subregs): Update accordingly.
21266
21267 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21268
21269         * lower-subreg.c (adjust_decomposed_uses): Delete.
21270         (resolve_debug): Use FOR_EACH_SUBRTX_PTR rather than for_each_rtx.
21271         Remove handling of null rtxes.
21272
21273 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21274
21275         * lower-subreg.c: Include rtl-iter.h.
21276         (resolve_subreg_use): Turn from being a for_each_rtx callback
21277         to being a function that examines each subrtx itself.  Remove
21278         handling of null rtxes.
21279         (resolve_reg_notes, resolve_simple_move): Update accordingly.
21280         (decompose_multiword_subregs): Likewise.
21281
21282 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21283
21284         * loop-iv.c (altered_reg_used): Turn from being a for_each_rtx callback
21285         to being a function that examines each subrtx itself.
21286         (simplify_using_condition, simplify_using_initial_values): Update
21287         accordingly.
21288
21289 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21290
21291         * loop-iv.c: Include rtl-iter.h.
21292         (find_single_def_src): New function.
21293         (replace_single_def_regs): Turn from being a for_each_rtx callback
21294         to being a function that examines each subrtx itself.
21295         (replace_in_expr, simplify_using_initial_values): Update accordingly.
21296
21297 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21298
21299         * jump.c (eh_returnjump_p_1): Delete.
21300         (eh_returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21301         Remove handling of null rtxes.
21302
21303 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21304
21305         * jump.c: Include rtl-iter.h.
21306         (returnjump_p_1): Delete.
21307         (returnjump_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21308         Remove handling of null rtxes.
21309
21310 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21311
21312         * ira.c: Include rtl-iter.h.
21313         (set_paradoxical_subreg): Turn from being a for_each_rtx callback
21314         to being a function that examines each subrtx itself.  Remove
21315         handling of null rtxes.
21316         (update_equiv_regs): Update call accordingly.
21317
21318 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21319
21320         * fwprop.c: Include rtl-iter.h.
21321         (varying_mem_p): Turn from being a for_each_rtx callback to being
21322         a function that examines each subrtx itself.
21323         (propagate_rtx): Update accordingly.
21324
21325 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21326
21327         * function.c: Include rtl-iter.h
21328         (instantiate_virtual_regs_in_rtx): Turn from being a for_each_rtx
21329         callback to being a function that examines each subrtx itself.
21330         Return the changed flag.
21331         (instantiate_virtual_regs_in_insn, instantiate_decl_rtl)
21332         (instantiate_virtual_regs): Update calls accordingly.
21333
21334 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21335
21336         * final.c: Include rtl-iter.h.
21337         (mark_symbol_ref_as_used): Delete.
21338         (mark_symbol_refs_as_used): Use FOR_EACH_SUBRTX instead of
21339         for_each_rtx.
21340
21341 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21342
21343         * emit-rtl.c: Include rtl-iter.h.
21344         (find_auto_inc): Turn from being a for_each_rtx callback to being
21345         a function that examines each subrtx itself.  Assume the first operand
21346         to an RTX_AUTOINC is the automodified register.
21347         (try_split): Update call accordingly.
21348
21349 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21350
21351         * dwarf2out.c (resolve_one_addr): Remove unused data parameter.
21352         Return a bool, inverting the result so that 0/false means "not ok".
21353         Use FOR_EACH_SUBRTX_PTR instead of for_each_rtx to iterate over
21354         subrtxes of a CONST.
21355         (mem_loc_descriptor, add_const_value_attribute)
21356         (resolve_addr_in_expr): Update calls accordingly.
21357
21358 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21359
21360         * dwarf2out.c: Include rtl-iter.h.
21361         (const_ok_for_output_1): Take the rtx instead of a pointer to it.
21362         Remove unused data parameter.  Return a bool, inverting the result
21363         so that 0/false means "not ok".
21364         (const_ok_for_output): Update accordingly.  Use FOR_EACH_SUBRTX_VAR
21365         instead of for_each_rtx.
21366
21367 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21368
21369         * dse.c: Include rtl-iter.h.
21370         (check_mem_read_rtx): Change void * parameter to real type.
21371         Remove return value.
21372         (check_mem_read_use): Fix comment.  Use FOR_EACH_SUBRTX_PTR instead of
21373         for_each_rtx.  Don't handle null rtxes.
21374
21375 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21376
21377         * df-problems.c: Include rtl-iter.h.
21378         (find_memory): Turn from being a for_each_rtx callback to being
21379         a function that examines each subrtx itself.  Continue to look for
21380         volatile references even after a nonvolatile one has been found.
21381         (can_move_insns_across): Update calls accordingly.
21382
21383 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21384
21385         * ddg.c (walk_mems_2, walk_mems_1): Delete.
21386         (insns_may_alias_p): Use FOR_EACH_SUBRTX rather than for_each_rtx
21387         to iterate over subrtxes.  Return a bool rather than an int.
21388
21389 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21390
21391         * ddg.c: Include rtl-iter.h.
21392         (mark_mem_use_1): Rename to...
21393         (mark_mem_use): ...deleting old mark_mem_use.  Use FOR_EACH_SUBRTX
21394         instead of for_each_rtx.
21395         (mem_read_insn_p): Update accordingly.
21396
21397 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21398
21399         * cse.c (change_cc_mode_args): Delete.
21400         (cse_change_cc_mode): Turn from being a for_each_rtx callback to being
21401         a function that examines each subrtx itself.  Take the fields of
21402         change_cc_mode_args as argument and return void.
21403         (cse_change_cc_mode_insn): Update calls accordingly.
21404
21405 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21406
21407         * cse.c (is_dead_reg): Change argument to const_rtx.
21408         (dead_debug_insn_data): Delete.
21409         (is_dead_debug_insn): Expand commentary.  Turn from being a
21410         for_each_rtx callback to being a function that examines
21411         each subrtx itself.  Take the fields of dead_debug_insn_data
21412         as argument.
21413         (delete_trivially_dead_insns): Update call accordingly.
21414
21415 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21416
21417         * cse.c (check_for_label_ref): Move earlier in file.  Turn from
21418         being a for_each_rtx callback to being a function that examines
21419         each subrtx itself.
21420         (cse_extended_basic_block): Update call accordingly.
21421
21422 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21423
21424         * cse.c (check_dependence_data): Delete.
21425         (check_dependence): Change from being a for_each_rtx callback to being
21426         a function that examines all subrtxes itself.  Don't handle null rtxes.
21427         (invalidate): Update call accordingly.
21428
21429 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21430
21431         * cse.c: Include rtl-iter.h.
21432         (approx_reg_cost_1): Delete.
21433         (approx_reg_cost): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21434         Don't handle null rtxes.
21435
21436 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21437
21438         * cfgcleanup.c: Include rtl-iter.h.
21439         (mentions_nonequal_regs): Turn from being a for_each_rtx callback
21440         to being a function that examines each subrtx itself.
21441         (thread_jump): Update accordingly.
21442
21443 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21444
21445         * combine-stack-adj.c: Include rtl-iter.h.
21446         (record_stack_refs_data): Delete.
21447         (record_stack_refs): Turn from being a for_each_rtx callback
21448         to being a function that examines each subrtx itself.
21449         Take a pointer to the reflist.  Invert sense of return value
21450         so that true means success and false means failure.  Don't
21451         handle null rtxes.
21452         (combine_stack_adjustments_for_block): Update accordingly.
21453
21454 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21455
21456         * combine.c (record_truncated_value): Turn from being a for_each_rtx
21457         callback to a function that takes an rtx and returns a bool
21458         (record_truncated_values): Use FOR_EACH_SUBRTX_VAR instead of
21459         for_each_rtx.
21460
21461 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21462
21463         * combine.c: Include rtl-iter.h.
21464         (unmentioned_reg_p_1): Delete.
21465         (unmentioned_reg_p): Use FOR_EACH_SUBRTX rather than for_each_rtx.
21466         Don't handle null rtxes.
21467
21468 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21469
21470         * calls.c: Include rtl-iter.h.
21471         (internal_arg_pointer_based_exp_1): Delete.
21472         (internal_arg_pointer_based_exp): Take a const_rtx.
21473         Use FOR_EACH_SUBRTX to iterate over subrtxes.
21474
21475 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21476
21477         * caller-save.c: Include rtl-iter.h.
21478         (add_used_regs_1): Delete.
21479         (add_used_regs): Use FOR_EACH_SUBRTX rather than for_each_rtx
21480         to iterate over subrtxes.  Assert that any remaining pseudos
21481         have been spilled.
21482
21483 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21484
21485         * bt-load.c: Include rtl-iter.h.
21486         (btr_reference_found, find_btr_reference, btr_referenced_p): Delete.
21487         (find_btr_use): Move further up file.  Use FOR_EACH_SUBRTX_PTR
21488         to iterate over subrtxes.
21489         (insn_sets_btr_p, new_btr_user, compute_defs_uses_and_gen): Use
21490         find_btr_use rather than btr_referenced_p.
21491
21492 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21493
21494         * alias.c: Include rtl-iter.h.
21495         (refs_newer_value_cb): Delete.
21496         (refs_newer_value_p): Use FOR_EACH_SUBRTX instead of for_each_rtx.
21497
21498 2014-08-28  Richard Sandiford  <rdsandiford@googlemail.com>
21499
21500         * rtl-iter.h: New file.
21501         * rtlanal.c: Include it.
21502         (rtx_all_subrtx_bounds, rtx_nonconst_subrtx_bounds): New variables.
21503         (generic_subrtx_iterator <T>::add_single_to_queue)
21504         (generic_subrtx_iterator <T>::add_subrtxes_to_queue)
21505         (generic_subrtx_iterator <T>::free_array): New functions.
21506         (generic_subrtx_iterator <T>::LOCAL_ELEMS): Define.
21507         (generic_subrtx_iterator <const_rtx_accessor>)
21508         (generic_subrtx_iterator <rtx_var_accessor>
21509         (generic_subrtx_iterator <rtx_ptr_accessor>): Instantiate.
21510         (setup_reg_subrtx_bounds): New function.
21511         (init_rtlanal): Call it.
21512
21513 2014-08-27  Kaz Kojima  <kkojima@gcc.gnu.org>
21514
21515         PR target/62261
21516         * config/sh/sh.md (ashlsi3): Handle negative shift count for
21517         TARGET_SHMEDIA.
21518         (ashldi3, ashrsi3, ashrdi3, lshrsi3, lshrdi3): Likewise.
21519
21520 2014-08-27  Richard Sandiford  <rdsandiford@googlemail.com>
21521
21522         * emit-rtl.c (set_unique_reg_note): Discard notes with side effects.
21523
21524 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21525
21526         * rtl.h (JUMP_LABEL_AS_INSN): New.
21527
21528 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21529
21530         * rtl.h (free_EXPR_LIST_list): Strengthen param from rtx * to
21531         rtx_expr_list **.
21532         (alloc_EXPR_LIST): Strengthen return type from rtx to
21533         rtx_expr_list *.
21534         (remove_free_EXPR_LIST_node): Likewise for param.
21535         * reload.h (struct reg_equivs_t): Strengthen field "alt_mem_list"
21536         from rtx to rtx_expr_list *.
21537         * sched-int.h (struct deps_desc): Strengthen fields
21538         "pending_read_mems" and "pending_write_mems" from rtx to
21539         rtx_expr_list *.
21540
21541         * dwarf2out.c (decl_piece_varloc_ptr): Strengthen return type from
21542         rtx to rtx_expr_list *.
21543         * lists.c (alloc_INSN_LIST): Likewise, also for local "r".
21544         (free_EXPR_LIST_list): Strengthen param "listp" from rtx * to
21545         rtx_expr_list **.
21546         (remove_free_EXPR_LIST_node): Likewise.  Strengthen local "node"
21547         from rtx to rtx_expr_list *.
21548         * loop-iv.c (simplify_using_initial_values): Strengthen local
21549         "cond_list" from rtx to rtx_expr_list *, and locals "pnode",
21550         "pnote_next" from rtx * to rtx_expr_list **.
21551         * sched-deps.c (remove_from_both_dependence_lists):  Strengthen
21552         param "exprp" from rtx * to rtx_expr_list **.
21553         (add_insn_mem_dependence): Strengthen local "mem_list" from
21554         rtx * to rtx_expr_list **.  Strengthen local "mem_node" from rtx
21555         to rtx_expr_list *.
21556         * sched-rgn.c (concat_insn_mem_list): Strengthen param "copy_mems"
21557         and local "new_mems" from rtx to rtx_expr_list *.  Strengthen
21558         param "old_mems_p" from rtx * to rtx_expr_list **.
21559         * var-tracking.c (struct adjust_mem_data): Strengthen field
21560         "side_effects" from rtx to rtx_expr_list *.
21561         (adjust_insn): Replace NULL_RTX with NULL when assigning to
21562         rtx_expr_list *.
21563         (prepare_call_arguments): Likewise.
21564
21565 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21566
21567         * function.h (struct rtl_data): Strengthen field
21568         "x_stack_slot_list" from rtx to rtx_expr_list *.
21569
21570         * emit-rtl.c (unshare_all_rtl_1): Add a checked cast
21571         when assigning to stack_slot_list.
21572
21573 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21574
21575         * function.h (struct rtl_data): Strengthen field
21576         x_nonlocal_goto_handler_labels from rtx to rtx_expr_list *.
21577         * rtl.h (remove_node_from_expr_list): Strengthen second param from
21578         rtx * to rtx_expr_list **.
21579
21580         * cfgbuild.c (make_edges): In loop over
21581         nonlocal_goto_handler_labels, strengthen local "x" from rtx to
21582         rtx_expr_list *, and use methods of the latter class to clarify
21583         the code.
21584         * cfgrtl.c (cfg_layout_initialize): Strengthen local "x" from rtx to
21585         rtx_expr_list *, and use methods of the latter class to clarify
21586         the code.
21587         * dwarf2cfi.c (create_trace_edges): Likewise for local "lab".
21588         * reload1.c (set_initial_label_offsets): Likewise for local "x".
21589         * rtlanal.c (remove_node_from_expr_list): Strengthen param "listp"
21590         from rtx * to rtx_expr_list **.  Strengthen local "temp" from rtx
21591         to rtx_expr_list *.  Use methods of the latter class to clarify
21592         the code.
21593
21594 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21595
21596         * function.h (struct expr_status): Strengthen field
21597         "x_forced_labels" from rtx to rtx_expr_list *.
21598
21599         * cfgbuild.c (make_edges): Split local "x" into two locals,
21600         strengthening one from rtx to rtx_expr_list *, and using methods
21601         of said class.
21602         * dwarf2cfi.c (create_trace_edges): Split local "lab" out; within
21603         loop over forced_labels, introduce strengthen it from rtx to
21604         rtx_expr_list *, using methods to clarify the code.
21605         * jump.c (rebuild_jump_labels_1): Strengthen local "insn" from rtx
21606         to rtx_expr_list *, using methods of said class to clarify the
21607         code.
21608         * reload1.c (set_initial_label_offsets): Split local "x" into two
21609         per-loop variables, strengthening the first from rtx to
21610         rtx_expr_list * and using methods.
21611
21612 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21613
21614         * coretypes.h (class rtx_expr_list): Add forward declaration.
21615         * emit-rtl.c (gen_rtx_EXPR_LIST): New.
21616         * gengenrtl.c (special_rtx): Add EXPR_LIST.
21617         * rtl.h (class rtx_expr_list): New subclass of rtx_def, adding
21618         invariant: GET_CODE (X) == EXPR_LIST.
21619         (is_a_helper <rtx_expr_list *>::test): New.
21620         (rtx_expr_list::next): New.
21621         (rtx_expr_list::element): New.
21622         (gen_rtx_EXPR_LIST): New.
21623
21624 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21625
21626         * varasm.c (mark_constants): Convert a GET_CODE check into a
21627         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21628         Use methods of rtx_sequence to clarify the code.
21629
21630 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21631
21632         * sched-vis.c (print_pattern): Within SEQUENCE case, introduce a
21633         local "seq" via a checked cast, and use methods of rtx_sequence
21634         to simplify the code.
21635
21636 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21637
21638         * resource.c (mark_referenced_resources): Strengthen local
21639         "sequence" from rtx to rtx_sequence *, adding a checked cast, and
21640         using methods of rtx_sequence to clarify the code.
21641         (find_dead_or_set_registers): Within the switch statement, convert
21642         a GET_CODE check to a dyn_cast, introducing local "seq".  Within
21643         the JUMP_P handling, introduce another local "seq", adding a
21644         checked cast to rtx_sequence *.  In both cases, use methods of
21645         rtx_sequence to clarify the code.
21646         (mark_set_resources): Within SEQUENCE case, introduce local "seq"
21647         via a checked cast, and use methods of rtx_sequence to simplify
21648         the code.
21649
21650 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21651
21652         * reorg.c (redundant_insn): In two places in the function, replace
21653         a check of GET_CODE with a dyn_cast, introducing local "seq", and
21654         usings methods of rtx_sequence to clarify the code.
21655
21656 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21657
21658         * jump.c (mark_jump_label_1): Within the SEQUENCE case, introduce
21659         local "seq" with a checked cast, and use methods of rtx_sequence
21660         to clarify the code.
21661
21662 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21663
21664         * function.c (contains): Introduce local "seq" for PATTERN (insn),
21665         with a checked cast, in the region for where we know it's a
21666         SEQUENCE.  Use methods of rtx_sequence.
21667
21668 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21669
21670         * final.c (get_attr_length_1): Replace GET_CODE check with a
21671         dyn_cast, introducing local "seq" and the use of methods of
21672         rtx_sequence.
21673         (shorten_branches): Likewise, introducing local "body_seq".
21674         Strengthen local "inner_insn" from rtx to rtx_insn *.
21675         (reemit_insn_block_notes): Replace GET_CODE check with a
21676         dyn_cast, strengthening local "body" from rtx to rtx_sequence *.
21677         Use methods of rtx_sequence.
21678         (final_scan_insn): Likewise, introducing local "seq" for when
21679         "body" is known to be a SEQUENCE, using its methods.
21680
21681 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21682
21683         * except.c (can_throw_external): Strengthen local "seq" from rtx
21684         to rtx_sequence *.  Use methods of rtx_sequence.
21685         (insn_nothrow_p): Likewise.
21686
21687 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21688
21689         * dwarf2cfi.c (create_trace_edges): Convert GET_CODE check into a
21690         dyn_cast, strengthening local "seq" from rtx to rtx_sequence *.
21691         Use methods of rtx_sequence.
21692         (scan_trace): Likewise for local "pat".
21693
21694 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21695
21696         * coretypes.h (class rtx_sequence): Add forward declaration.
21697         * rtl.h (class rtx_sequence): New subclass of rtx_def, adding
21698         invariant: GET_CODE (X) == SEQUENCE.
21699         (is_a_helper <rtx_sequence *>::test): New.
21700         (is_a_helper <const rtx_sequence *>::test): New.
21701         (rtx_sequence::len): New.
21702         (rtx_sequence::element): New.
21703         (rtx_sequence::insn): New.
21704
21705 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21706
21707         * rtl.h (free_INSN_LIST_list): Strengthen param from rtx * to
21708         rtx_insn_list **.
21709         (alloc_INSN_LIST): Strengthen return type from rtx to
21710         rtx_insn_list *.
21711         (copy_INSN_LIST): Likewise for return type and param.
21712         (concat_INSN_LIST): Likewise for both params and return type.
21713         (remove_free_INSN_LIST_elem): Strenghten first param from rtx to
21714         rtx_insn *.  Strengthen second param from rtx * to rtx_insn_list **.
21715         (remove_free_INSN_LIST_node): Strenghten return type from rtx to
21716         rtx_insn *.  Strengthen param from rtx * to rtx_insn_list **.
21717
21718         * sched-int.h (struct deps_reg): Strengthen fields "uses", "sets",
21719         "implicit_sets", "control_uses", "clobbers" from rtx to
21720         rtx_insn_list *.
21721         (struct deps_desc): Likewise for fields "pending_read_insns",
21722         "pending_write_insns", "pending_jump_insns",
21723         "last_pending_memory_flush", "last_function_call",
21724         "last_function_call_may_noreturn", "sched_before_next_call",
21725         "sched_before_next_jump".
21726         (struct _haifa_deps_insn_data): Likewise for field "cond_deps".
21727         (remove_from_deps): Strengthen second param from rtx to rtx_insn *.
21728
21729         * gcse.c (struct ls_expr): Strengthen fields "loads" and "stores"
21730         from rtx to rtx_insn_list *.
21731         (ldst_entry): Replace use of NULL_RTX with NULL when dealing with
21732         rtx_insn_list *.
21733
21734         * haifa-sched.c (insn_queue): Strengthen this variable from rtx *
21735         to rtx_insn_list **.
21736         (dep_cost_1): Strengthen local "dep_cost_rtx_link" from rtx to
21737         rtx_insn_list *.
21738         (queue_insn): Likewise for local "link".
21739         (struct haifa_saved_data): Strengthen field "insn_queue" from
21740         rtx * to rtx_insn_list **.
21741         (save_backtrack_point): Update allocation of save->insn_queue to
21742         reflect the strengthening of elements from rtx to rtx_insn_list *.
21743         (queue_to_ready): Strengthen local "link" from rtx to
21744         rtx_insn_list *; use methods "next" and "insn" when traversing the
21745         list.
21746         (early_queue_to_ready): Likewise for locals "link", "next_link",
21747         "prev_link".
21748         (schedule_block): Update allocation of insn_queue to reflect the
21749         strengthening of elements from rtx to rtx_insn_list *.  Strengthen
21750         local "link" from rtx to rtx_insn_list *, and use methods when
21751         working it.
21752         (add_to_speculative_block): Strengthen locals "twins" and
21753         "next_node" from rtx to rtx_insn_list *, and use methods when
21754         working with them.  Strengthen local "twin" from rtx to
21755         rtx_insn *, eliminating a checked cast.
21756         (fix_recovery_deps): Strengthen locals "ready_list" and "link"
21757         from rtx to rtx_insn_list *, and use methods when working with
21758         them.
21759
21760         * lists.c (alloc_INSN_LIST): Strengthen return type and local "r"
21761         from rtx to rtx_insn_list *, adding a checked cast.
21762         (free_INSN_LIST_list): Strengthen param "listp" from rtx * to
21763         rtx_insn_list **.
21764         (copy_INSN_LIST): Strengthen return type and locals "new_queue",
21765         "newlink" from rtx to rtx_insn_list *.  Strengthen local
21766         "pqueue" from rtx * to rtx_insn_list **.  Strengthen local "x"
21767         from rtx to rtx_insn *.
21768         (concat_INSN_LIST): Strengthen return type and local "new_rtx",
21769         from rtx to rtx_insn_list *.  Use methods of the latter class.
21770         (remove_free_INSN_LIST_elem): Strengthen param "elem" from rtx to
21771         rtx_insn *, and param "listp" from rtx * to rtx_insn_list **.
21772         (remove_free_INSN_LIST_node): Strengthen return type and local
21773         "elem" from rtx to rtx_insn *.  Strenghten param "listp" from
21774         rtx * to rtx_insn_list **.  Strengthen local "node" from rtx to
21775         rtx_insn_list *, using "insn" method.
21776
21777         * sched-deps.c (add_dependence_list):  Strengthen param "list"
21778         from rtx to rtx_insn_list *, and use methods when working with it.
21779         (add_dependence_list_and_free):  Strengthen param "listp" from
21780         rtx * to rtx_insn_list **.
21781         (remove_from_dependence_list): Strenghten param "listp" from rtx *
21782         to rtx_insn_list **, and use methods when working with *listp.
21783         (remove_from_both_dependence_lists): Strengthen param "listp" from
21784         rtx * to rtx_insn_list **
21785         (add_insn_mem_dependence): Strengthen local "insn_list" from rtx *
21786         to rtx_insn_list **.  Eliminate local "link", in favor of two new
21787         locals "insn_node" and "mem_node", an rtx_insn_list * and an rtx
21788         respectively.
21789         (deps_analyze_insn): Split out uses 'f local "t" as an INSN_LIST
21790         by introducing local "cond_deps".
21791         (remove_from_deps): Strengthen param "insn" from rtx to
21792         rtx_insn *.
21793
21794         * sched-rgn.c (concat_insn_mem_list): Strengthen param
21795         "copy_insns" and local "new_insns" from rtx to rtx_insn_list *.
21796         Strengthen param "old_insns_p" from rtx * to rtx_insn_list **.
21797         Use methods of rtx_insn_list.
21798
21799         * store-motion.c (struct st_expr): Strengthen fields
21800         "antic_stores" and "avail_stores" from rtx to rtx_insn_list *.
21801         (st_expr_entry): Replace NULL_RTX with NULL when dealing with
21802         rtx_insn_list *.
21803         (find_moveable_store): Split out "tmp" into multiple more-tightly
21804         scoped locals.  Use methods of rtx_insn_list *.
21805         (compute_store_table): Strengthen local "tmp" from rtx to
21806         rtx_insn *.  Use methods of rtx_insn_list *.
21807
21808 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21809
21810         * coretypes.h (class rtx_insn_list): Add forward declaration.
21811         * rtl.h (class rtx_insn_list): New subclass of rtx_def
21812         (is_a_helper <rtx_insn_list *>::test): New.
21813         (rtx_insn_list::next): New.
21814         (rtx_insn_list::insn): New.
21815         (gen_rtx_INSN_LIST): Add prototype.
21816         * emit-rtl.c (gen_rtx_INSN_LIST): New.
21817         * gengenrtl.c (special_rtx): Add INSN_LIST.
21818
21819 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21820
21821         * ira-lives.c (find_call_crossed_cheap_reg): Strengthen local
21822         "prev" from rtx to rtx_insn *.
21823
21824 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21825
21826         * rtl.h (INSN_UID): Convert from a macro to a pair of inline
21827         functions.  Require merely an rtx for now, not an rtx_insn *.
21828         (BLOCK_FOR_INSN): Likewise.
21829         (INSN_LOCATION): Likewise.
21830         (INSN_HAS_LOCATION): Convert from a macro to an inline function.
21831
21832 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21833
21834         * rtl.h (PATTERN): Convert this macro into a pair of inline
21835         functions, for now, requiring const_rtx and rtx.
21836
21837 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
21838
21839         * target.def (unwind_emit): Strengthen param "insn" from rtx to
21840         rtx_insn *.
21841         (final_postscan_insn): Likewise.
21842         (adjust_cost): Likewise.
21843         (adjust_priority): Likewise.
21844         (variable_issue): Likewise.
21845         (macro_fusion_pair_p): Likewise.
21846         (dfa_post_cycle_insn): Likewise.
21847         (first_cycle_multipass_dfa_lookahead_guard): Likewise.
21848         (first_cycle_multipass_issue): Likewise.
21849         (dfa_new_cycle): Likewise.
21850         (adjust_cost_2): Likewise for params "insn" and "dep_insn".
21851         (speculate_insn): Likewise for param "insn".
21852         (gen_spec_check): Likewise for params "insn" and "label".
21853         (get_insn_spec_ds): Likewise for param "insn".
21854         (get_insn_checked_ds): Likewise.
21855         (dispatch_do): Likewise.
21856         (dispatch): Likewise.
21857         (cannot_copy_insn_p): Likewise.
21858         (invalid_within_doloop): Likewise.
21859         (legitimate_combined_insn): Likewise.
21860         (needed): Likewise.
21861         (after): Likewise.
21862
21863         * doc/tm.texi: Automatically updated to reflect changes to
21864         target.def.
21865
21866         * haifa-sched.c (choose_ready): Convert NULL_RTX to NULL when
21867         working with insn.
21868         (schedule_block): Likewise.
21869         (sched_init): Likewise.
21870         (sched_speculate_insn): Strengthen param "insn" from rtx to
21871         rtx_insn *.
21872         (ready_remove_first_dispatch): Convert NULL_RTX to NULL when
21873         working with insn.
21874         * hooks.c (hook_bool_rtx_true): Rename to...
21875         hook_bool_rtx_insn_true): ...this, and strengthen first param from
21876         rtx to rtx_insn *.
21877         (hook_constcharptr_const_rtx_null): Rename to...
21878         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21879         first param from const_rtx to const rtx_insn *.
21880         (hook_bool_rtx_int_false): Rename to...
21881         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21882         param from rtx to rtx_insn *.
21883         (hook_void_rtx_int): Rename to...
21884         (hook_void_rtx_insn_int): ...this, and strengthen first param from
21885         rtx to rtx_insn *.
21886
21887         * hooks.h (hook_bool_rtx_true): Rename to...
21888         (hook_bool_rtx_insn_true): ...this, and strengthen first param from
21889         rtx to rtx_insn *.
21890         (hook_bool_rtx_int_false): Rename to...
21891         (hook_bool_rtx_insn_int_false): ...this, and strengthen first
21892         param from rtx to rtx_insn *.
21893         (hook_void_rtx_int): Rename to...
21894         (hook_void_rtx_insn_int): ...this, and strengthen first param from
21895         rtx to rtx_insn *.
21896         (hook_constcharptr_const_rtx_null): Rename to...
21897         (hook_constcharptr_const_rtx_insn_null): ...this, and strengthen
21898         first param from const_rtx to const rtx_insn *.
21899
21900         * sched-deps.c (sched_macro_fuse_insns): Strengthen param "insn"
21901         and local "prev" from rtx to rtx_insn *.
21902
21903         * sched-int.h (sched_speculate_insn): Strengthen first param from
21904         rtx to rtx_insn *.
21905
21906         * sel-sched.c (create_speculation_check): Likewise for local "label".
21907         * targhooks.c (default_invalid_within_doloop): Strengthen param
21908         "insn" from const_rtx to const rtx_insn *.
21909         * targhooks.h (default_invalid_within_doloop): Strengthen param
21910         from const_rtx to const rtx_insn *.
21911
21912         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Likewise.
21913         (alpha_adjust_cost): Likewise for params "insn", "dep_insn".
21914
21915         * config/arc/arc.c (arc_sched_adjust_priority): Likewise for param
21916         "insn".
21917         (arc_invalid_within_doloop): Likewise, with const.
21918
21919         * config/arm/arm.c (arm_adjust_cost): Likewise for params "insn", "dep".
21920         (arm_cannot_copy_insn_p): Likewise for param "insn".
21921         (arm_unwind_emit): Likewise.
21922
21923         * config/bfin/bfin.c (bfin_adjust_cost): Likewise for params "insn",
21924         "dep_insn".
21925
21926         * config/c6x/c6x.c (c6x_dfa_new_cycle): Likewise for param "insn".
21927         (c6x_variable_issue): Likewise.  Removed now-redundant checked
21928         cast.
21929         (c6x_adjust_cost): Likewise for params "insn", "dep_insn".
21930
21931         * config/epiphany/epiphany-protos.h (epiphany_mode_needed):
21932         Likewise for param "insn".
21933         (epiphany_mode_after): Likewise.
21934         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise for
21935         params "insn", "dep_insn".
21936         (epiphany_mode_needed): Likewise for param "insn".
21937         (epiphany_mode_after): Likewise.
21938
21939         * config/i386/i386-protos.h (i386_pe_seh_unwind_emit): Likewise.
21940         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
21941         (ix86_avx_u128_mode_needed): Likewise.
21942         (ix86_i387_mode_needed): Likewise.
21943         (ix86_mode_needed): Likewise.
21944         (ix86_avx_u128_mode_after): Likewise.
21945         (ix86_mode_after): Likewise.
21946         (ix86_adjust_cost): Likewise for params "insn", "dep_insn".
21947         (ix86_macro_fusion_pair_p): Likewise for params "condgen", "condjmp".
21948         (ix86_adjust_priority): Likewise for param "insn".
21949         (core2i7_first_cycle_multipass_issue): Likewise for param "insn".
21950         (do_dispatch): Likewise.
21951         (has_dispatch): Likewise.
21952         * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise.
21953
21954         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Update to
21955         reflect renaming of default hook implementation from
21956         hook_constcharptr_const_rtx_null to
21957         hook_constcharptr_const_rtx_insn_null.
21958         (ia64_adjust_cost_2): Strengthen params "insn", "dep_insn" from
21959         rtx to rtx_insn *.
21960         (ia64_variable_issue): Likewise for param "insn".
21961         (ia64_first_cycle_multipass_dfa_lookahead_guard): Likewise.
21962         (ia64_dfa_new_cycle): Likewise.
21963         (ia64_get_insn_spec_ds): Likewise.
21964         (ia64_get_insn_checked_ds): Likewise.
21965         (ia64_speculate_insn): Likewise.
21966         (ia64_gen_spec_check): Likewise for params "insn", "label".
21967         (ia64_asm_unwind_emit): Likewise for param "insn".
21968
21969         * config/m32r/m32r.c (m32r_adjust_priority): Likewise.
21970
21971         * config/m68k/m68k.c (m68k_sched_adjust_cost): Likewise for params
21972         "insn", "def_insn".
21973         (m68k_sched_variable_issue): Likewise for param "insn".
21974
21975         * config/mep/mep.c (mep_adjust_cost): Likewise for params "insn",
21976         "def_insn".
21977
21978         * config/microblaze/microblaze.c (microblaze_adjust_cost):
21979         Likewise for params "insn", "dep".
21980
21981         * config/mips/mips.c (mips_adjust_cost): Likewise.
21982         (mips_variable_issue): Likewise for param "insn".
21983         (mips_final_postscan_insn): Likewise.
21984
21985         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost): Likewise
21986         for params "insn", "dep".
21987
21988         * config/pa/pa.c (pa_adjust_cost): Likewise for params "insn",
21989         "dep_insn".
21990         (pa_adjust_priority): Likewise for param "insn".
21991
21992         * config/picochip/picochip.c (picochip_sched_adjust_cost):
21993         Likewise for params "insn", "dep_insn".
21994
21995         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Likewise for
21996         param "insn".
21997         (rs6000_variable_issue): Likewise.
21998         (rs6000_adjust_cost): Likewise for params "insn", "dep_insn".
21999         (rs6000_debug_adjust_cost): Likewise.
22000         (rs6000_adjust_priority): Likewise for param "insn".
22001         (rs6000_use_sched_lookahead_guard): Likewise.
22002         (get_next_active_insn): Likewise for return type and both params.
22003         (redefine_groups): Likewise for params "prev_head_insn", "tail"
22004         and locals "insn", "next_insn".
22005         (pad_groups): Likewise.
22006
22007         * config/s390/s390.c (s390_adjust_priority): Likewise for param
22008         "insn".
22009         (s390_cannot_copy_insn_p): Likewise.
22010         (s390_sched_variable_issue): Likewise for third param, eliminating
22011         checked cast.
22012         (TARGET_INVALID_WITHIN_DOLOOP): Update to reflect renaming of
22013         default hook implementation from hook_constcharptr_const_rtx_null
22014         to hook_constcharptr_const_rtx_insn_null.
22015
22016         * config/sh/sh.c (sh_cannot_copy_insn_p): Strengthen param "insn"
22017         from rtx to rtx_insn *.
22018         (sh_adjust_cost): Likewise for params "insn", "dep_insn".
22019         (sh_variable_issue): Likewise for param "insn".
22020         (sh_dfa_new_cycle): Likewise.
22021         (sh_mode_needed): Likewise.
22022         (sh_mode_after): Likewise.
22023
22024         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise for
22025         params "insn", "dep_insn".
22026         (hypersparc_adjust_cost): Likewise.
22027         (sparc_adjust_cost): Likewise.
22028
22029         * config/spu/spu.c (spu_sched_variable_issue): Likewise for third
22030         param, eliminated checked cast.
22031         (spu_sched_adjust_cost): Likewise for first and third params.
22032
22033         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Strengthen
22034         params "insn" and "dep_insn" from rtx to rtx_insn *.
22035
22036         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost): Likewise.
22037
22038 2014-08-27  David Malcolm  <dmalcolm@redhat.com>
22039
22040         * gcc/config/mn10300/mn10300.c (is_load_insn): Rename to...
22041         (set_is_load_p): ...this, updating to work on a SET pattern rather
22042         than an insn.
22043         (is_store_insn): Rename to...
22044         (set_is_store_p): ...this, updating to work on a SET pattern
22045         rather than an insn.
22046         (mn10300_adjust_sched_cost): Move call to get_attr_timings from
22047         top of function to where it is needed.  Rewrite the bogus
22048         condition that checks for "insn" and "dep" being PARALLEL to
22049         instead use single_set, introducing locals "insn_set" and
22050         "dep_set".  Given that we only ever returned "cost" for a non-pair
22051         of SETs, bail out early if we don't have a pair of SET.
22052         Rewrite all uses of PATTERN (dep) and PATTERN (insn) to instead
22053         use the new locals "insn_set" and "dep_set", and update calls to
22054         is_load_insn and is_store_insn to be calls to set_is_load_p and
22055         set_is_store_p.
22056
22057 2014-08-27  Guozhi Wei  <carrot@google.com>
22058
22059         PR target/62262
22060         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Check the shift
22061         amount before using it.
22062
22063 2014-08-27  Richard Biener  <rguenther@suse.de>
22064
22065         * gimple-fold.c (get_maxval_strlen): Add overload wrapping
22066         get_maxval_strlen inside a more useful API.
22067         (gimple_fold_builtin_with_strlen): Remove and fold into ...
22068         (gimple_fold_builtin): ... caller.
22069         (gimple_fold_builtin_strlen, gimple_fold_builtin_strcpy,
22070         gimple_fold_builtin_strncpy, gimple_fold_builtin_strcat,
22071         gimple_fold_builtin_fputs, gimple_fold_builtin_memory_chk,
22072         gimple_fold_builtin_stxcpy_chk, gimple_fold_builtin_stxncpy_chk,
22073         gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_snprintf,
22074         gimple_fold_builtin_sprintf): Adjust to compute maxval
22075         themselves.
22076
22077 2014-08-27  Yvan Roux  <yvan.roux@linaro.org>
22078
22079         PR other/62248
22080         * config.gcc (arm*-*-*): Check --with-fpu against arm-fpus.def.
22081
22082 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22083             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22084             Anna Tikhonova  <anna.tikhonova@intel.com>
22085             Ilya Tocar  <ilya.tocar@intel.com>
22086             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22087             Ilya Verbin  <ilya.verbin@intel.com>
22088             Kirill Yukhin  <kirill.yukhin@intel.com>
22089             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22090
22091         * config/i386/sse.md
22092         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"):
22093         Use `concat_tg_mode' attribute to determine asm register size.
22094
22095 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22096             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22097             Anna Tikhonova  <anna.tikhonova@intel.com>
22098             Ilya Tocar  <ilya.tocar@intel.com>
22099             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22100             Ilya Verbin  <ilya.verbin@intel.com>
22101             Kirill Yukhin  <kirill.yukhin@intel.com>
22102             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22103
22104         * config/i386/sse.md
22105         (define_mode_iterator VI48_AVX512VL): New.
22106         (define_mode_iterator VI_UNALIGNED_LOADSTORE): Delete.
22107         (define_mode_iterator VI_ULOADSTORE_BW_AVX512VL): New.
22108         (define_mode_iterator VI_ULOADSTORE_F_AVX512VL): Ditto.
22109         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22110         with VI1): Change mode iterator.
22111         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22112         with VI_ULOADSTORE_BW_AVX512VL): New.
22113         (define_expand "<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22114         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22115         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22116         with VI1): Change mode iterator.
22117         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22118         with VI_ULOADSTORE_BW_AVX512VL): New.
22119         (define_insn "*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"
22120         with VI_ULOADSTORE_F_AVX512VL): Ditto.
22121         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22122         with VI1): Change mode iterator.
22123         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22124         with VI_ULOADSTORE_BW_AVX512VL): New.
22125         (define_insn "<sse2_avx_avx512f>_storedqu<mode>
22126         with VI_ULOADSTORE_BW_AVX512VL): Ditto.
22127         (define_insn "avx512f_storedqu<mode>_mask"): Delete.
22128         (define_insn "<avx512>_storedqu<mode>_mask" with
22129         VI48_AVX512VL): New.
22130         (define_insn "<avx512>_storedqu<mode>_mask" with
22131         VI12_AVX512VL): Ditto.
22132
22133 2014-08-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>
22134             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
22135             Anna Tikhonova  <anna.tikhonova@intel.com>
22136             Ilya Tocar  <ilya.tocar@intel.com>
22137             Andrey Turetskiy  <andrey.turetskiy@intel.com>
22138             Ilya Verbin  <ilya.verbin@intel.com>
22139             Kirill Yukhin  <kirill.yukhin@intel.com>
22140             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
22141
22142         * config/i386/sse.md
22143         (define_mode_iterator VI48_AVX2_48_AVX512F): Delete.
22144         (define_mode_iterator VI48_AVX512BW): New.
22145         (define_insn "<avx2_avx512f>_<shift_insn>v<mode><mask_name>"): Delete.
22146         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22147         with VI48_AVX2_48_AVX512F): New.
22148         (define_insn "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>"
22149         with VI2_AVX512VL): Ditto.
22150
22151 2014-08-27  Richard Biener  <rguenther@suse.de>
22152
22153         PR middle-end/62239
22154         * builtins.c (fold_builtin_strcat_chk): Move to gimple-fold.c.
22155         (fold_builtin_3): Do not fold strcat_chk here.
22156         * gimple-fold.c (gimple_fold_builtin_strcat_chk): Move here
22157         from builtins.c.
22158         (gimple_fold_builtin): Fold strcat_chk here.
22159
22160 2014-08-26  Aldy Hernandez  <aldyh@redhat.com>
22161
22162         * dwarf2out.h (dwarf2out_decl): Remove prototype.
22163         * dwarf2out.c (dwarf2out_decl): Make static.
22164
22165 2014-08-26  Joel Sherrill <joel.sherrill@oarcorp.com>
22166
22167         * doc/invoke.texi: -fno-cxa-atexit should be -fno-use-cxa-atexit.
22168
22169 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22170
22171         * cselib.h (struct elt_loc_list): Strengthen field "setting_insn"
22172         from rtx to rtx_insn *.
22173         (cselib_lookup_from_insn): Likewise for final param.
22174         (cselib_subst_to_values_from_insn): Likewise.
22175         (cselib_add_permanent_equiv): Likewise.
22176
22177         * cselib.c (cselib_current_insn): Likewise for this variable.
22178         (cselib_subst_to_values_from_insn): Likewise for param "insn".
22179         (cselib_lookup_from_insn): Likewise.
22180         (cselib_add_permanent_equiv): Likewise for param "insn" and local
22181         "save_cselib_current_insn".
22182         (cselib_process_insn): Replace use of NULL_RTX with NULL.
22183
22184         * sched-deps.c (add_insn_mem_dependence): Strengthen param "insn"
22185         from rtx to rtx_insn *.
22186
22187 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22188
22189         * dse.c (dse_step6): Strengthen local "rinsn" from rtx to
22190         rtx_insn *.
22191
22192 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22193
22194         * df.h (df_dump_insn_problem_function): Strengthen first param of
22195         this callback from const_rtx to const rtx_insn *.
22196         (struct df_insn_info): Strengthen field "insn" from rtx to
22197         rtx_insn *.
22198         (DF_REF_INSN): Eliminate this function, reinstating the older
22199         macro definition.
22200         (df_find_def): Strengthen param 1 from rtx to rtx_insn *.
22201         (df_reg_defined): Likewise.
22202         (df_find_use): Likewise.
22203         (df_reg_used): Likewise.
22204         (df_dump_insn_top): Strengthen param 1 from const_rtx to
22205         const rtx_insn *.
22206         (df_dump_insn_bottom): Likewise.
22207         (df_insn_debug): Strengthen param 1 from rtx to rtx_insn *.
22208         (df_insn_debug_regno): Likewise.
22209         (debug_df_insn): Likewise.
22210         (df_rd_simulate_one_insn): Likewise for param 2.
22211         (df_word_lr_simulate_defs): Likewise for param 1.
22212         (df_word_lr_simulate_uses): Likewise.
22213         (df_md_simulate_one_insn): Likewise for param 2.
22214         (df_simulate_find_noclobber_defs): Likewise for param 1.
22215         (df_simulate_find_defs): Likewise.
22216         (df_simulate_defs): Likewise.
22217         (df_simulate_uses): Likewise.
22218         (df_simulate_one_insn_backwards): Likewise for param 2.
22219         (df_simulate_one_insn_forwards): Likewise.
22220         (df_uses_create): Likewise for param 2.
22221         (df_insn_create_insn_record): Likewise for param 1.
22222         (df_insn_delete): Likewise.
22223         (df_insn_rescan): Likewise.
22224         (df_insn_rescan_debug_internal): Likewise.
22225         (df_insn_change_bb): Likewise.
22226         (df_notes_rescan): Likewise.
22227         * rtl.h (remove_death): Likewise for param 2.
22228         (print_rtl_with_bb): Strengthen param 2 from const_rtx to
22229         const rtx_insn *.
22230         * sched-int.h (reemit_notes): Strengthen param from rtx to
22231         rtx_insn *.
22232         * valtrack.h (propagate_for_debug): Likewise for param 1.
22233
22234         * cfgrtl.c (print_rtl_with_bb): Strengthen param "rtx_first" and
22235         local "tmp_rtx" from const_rtx to const rtx_insn *.
22236         * combine.c (remove_death): Strengthen param "insn" from rtx to
22237         rtx_insn *.
22238         (move_deaths): Likewise for local "where_dead".
22239         * cse.c (delete_trivially_dead_insns): Introduce local
22240         "bind_var_loc" so that "bind" can be strengthened to an rtx_insn *.
22241         * df-core.c (df_find_def): Strengthen param "insn" from rtx to
22242         rtx_insn *.
22243         (df_reg_defined): Likewise.
22244         (df_find_use): Likewise.
22245         (df_reg_used): Likewise.
22246         (df_dump_insn_problem_data): Strengthen param "insn" from
22247         const_rtx to const rtx_insn *.
22248         (df_dump_insn_top): Likewise.
22249         (df_dump_insn_bottom): Likewise.
22250         (df_insn_debug): Strengthen param "insn" from rtx to rtx_insn *.
22251         (df_insn_debug_regno): Likewise.
22252         (debug_df_insn): Likewise.
22253         (DF_REF_INSN): Delete.
22254         * df-problems.c (df_rd_simulate_one_insn): Strengthen param "insn"
22255         from rtx to rtx_insn *.
22256         (df_chain_insn_top_dump): Strengthen param "insn" from
22257         const_rtx to const rtx_insn *.
22258         (df_chain_insn_bottom_dump): Likewise.
22259         (df_word_lr_simulate_defs): Strengthen param "insn" from rtx to
22260         rtx_insn *.
22261         (df_word_lr_simulate_uses): Likewise.
22262         (df_print_note): Likewise.
22263         (df_remove_dead_and_unused_notes): Likewise.
22264         (df_set_unused_notes_for_mw): Likewise.
22265         (df_set_dead_notes_for_mw): Likewise.
22266         (df_create_unused_note): Likewise.
22267         (df_simulate_find_defs): Likewise.
22268         (df_simulate_find_uses): Likewise.
22269         (df_simulate_find_noclobber_defs): Likewise.
22270         (df_simulate_defs): Likewise.
22271         (df_simulate_uses): Likewise.
22272         (df_simulate_one_insn_backwards): Likewise.
22273         (df_simulate_one_insn_forwards): Likewise.
22274         (df_md_simulate_one_insn): Likewise.
22275         * df-scan.c (df_uses_create): Likewise.
22276         (df_insn_create_insn_record): Likewise.
22277         (df_insn_delete): Likewise.
22278         (df_insn_rescan): Likewise.
22279         (df_insn_rescan_debug_internal): Likewise.
22280         (df_insn_change_bb): Likewise.
22281         (df_notes_rescan): Likewise.
22282         (df_refs_add_to_chains): Likewise.
22283         (df_insn_refs_verify): Likewise.
22284         * emit-rtl.c (set_insn_deleted): Add checked cast to rtx_insn *
22285         when invoking df_insn_delete.
22286         (reorder_insns): Strengthen local "x" from rtx to rtx_insn *.
22287         (set_unique_reg_note): Add checked cast.
22288         * final.c (cleanup_subreg_operands): Likewise.
22289         * gcse.c (update_ld_motion_stores): Likewise, strengthening local
22290         "insn" from rtx to rtx_insn *.
22291         * haifa-sched.c (reemit_notes): Strengthen param "insn" and local
22292         "last" from rtx to rtx_insn *.
22293         * ira-emit.c (change_regs_in_insn): New function.
22294         (change_loop): Strengthen local "insn" from rtx to rtx_insn *.
22295         Invoke change_regs_in_insn rather than change_regs.
22296         * ira.c (update_equiv_regs): Strengthen locals "insn",
22297         "init_insn", "new_insn" from rtx to rtx_insn *.  Invoke
22298         for_each_rtx_in_insn rather than for_each_rtx.
22299         * recog.c (confirm_change_group): Add checked casts.
22300         (peep2_update_life): Strengthen local "x" from rtx to rtx_insn *.
22301         Add checked cast.
22302         (peep2_fill_buffer): Add checked cast.
22303         * rtlanal.c (remove_note): Likewise.
22304         * valtrack.c (propagate_for_debug): Strengthen param "insn" and
22305         locals "next" "end" from rtx to rtx_insn *.
22306
22307 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22308
22309         * sched-int.h (sched_init_insn_luid): Strengthen param 1 from rtx
22310         to rtx_insn *.
22311         (struct reg_use_data): Likewise for field "insn".
22312         (insn_cost): Likewise for param.
22313         (real_insn_for_shadow): Likewise for return type and param.
22314         (increase_insn_priority): Likewise for param 1.
22315         (debug_dependencies): Likewise for both params.
22316
22317         * haifa-sched.c (insn_delay): Likewise for param "insn".
22318         (real_insn_for_shadow): Likewise for return type and param "insn".
22319         (update_insn_after_change): Likewise for param "insn".
22320         (recompute_todo_spec): Likewise for param "next" and locals "pro",
22321         "other".
22322         (insn_cost): Likewise for param "insn".
22323         (increase_insn_priority): Likewise.
22324         (calculate_reg_deaths): Likewise.
22325         (setup_insn_reg_pressure_info): Likewise.
22326         (model_schedule): Strengthen from vec<rtx> to vec<rtx_insn *>.
22327         (model_index): Strengthen param "insn" from rtx to rtx_insn *.
22328         (model_recompute): Likewise.
22329         (must_restore_pattern_p): Likewise for param "next".
22330         (model_excess_cost): Likewise for param "insn".
22331         (queue_remove): Likewise.
22332         (adjust_priority): Likewise for param "prev".
22333         (update_register_pressure): Likewise for param "insn".
22334         (setup_insn_max_reg_pressure): Likewise for local "insn".
22335         (update_reg_and_insn_max_reg_pressure): Likewise for param "insn".
22336         (model_add_to_schedule): Likewise.
22337         (model_reset_queue_indices): Likewise for local "insn".
22338         (unschedule_insns_until): Strengthen local "recompute_vec" from
22339         auto_vec<rtx> to auto_vec<rtx_insn *>.  Strengthen locals "last",
22340         "con" from rtx to rtx_insn *.
22341         (restore_last_backtrack_point): Likewise for both locals "x". Add
22342         checked casts.
22343         (estimate_insn_tick): Likewise for param "insn".
22344         (commit_schedule): Likewise for params "prev_head", "tail" and
22345         local "x".
22346         (verify_shadows): Likewise for locals "i1", "i2".
22347         (dump_insn_stream): Likewise for params "head", "tail" and locals
22348         "next_tail", "insn".
22349         (schedule_block): Likewise for locals "insn", "x".  Add a checked
22350         cast.
22351         (fix_inter_tick): Likewise for params "head", "tail".
22352         (create_check_block_twin): Likewise for local "jump".
22353         (haifa_change_pattern): Likewise for param "insn".
22354         (haifa_speculate_insn): Likewise.
22355         (dump_new_block_header): Likewise for params "head", "tail".
22356         (fix_jump_move): Likewise for param "jump".
22357         (move_block_after_check): Likewise.
22358         (sched_init_insn_luid): Likewise for param "insn".
22359         (sched_init_luids): Likewise for local "insn".
22360         (insn_luid): Likewise for param "insn".
22361         (init_h_i_d): Likewise.
22362         (haifa_init_h_i_d): Likewise for local "insn".
22363         (haifa_init_insn): Likewise for param "insn".
22364         * sched-deps.c (add_dependence): Likewise for local "real_pro",
22365         "other".
22366         (create_insn_reg_use): Likewise for param "insn".
22367         (setup_insn_reg_uses): Likewise.  Add a checked cast.
22368         * sched-ebb.c (debug_ebb_dependencies): Strengthen params "head",
22369         "tail" from rtx to rtx_insn *.
22370         * sched-rgn.c (void debug_dependencies): Likewise, also for locals
22371         "insn", "next_tail".
22372
22373 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22374
22375         * haifa-sched.c (struct model_insn_info): Strengthen field "insn"
22376         from rtx to rtx_insn *.
22377         (model_add_to_schedule): Likewise for locals "start", "end",
22378         "iter".
22379
22380 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22381
22382         * rtl.h (duplicate_insn_chain): Strengthen both params from rtx to
22383         rtx_insn *.
22384         * cfgrtl.c (duplicate_insn_chain): Likewise for  params "from",
22385         "to" and locals "insn", "next", "copy".  Remove now-redundant
22386         checked cast.
22387
22388 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22389
22390         * rtl.h (canonicalize_condition): Strengthen param 1 from rtx to
22391         rtx_insn * and param 4 from rtx * to rtx_insn **.
22392         (get_condition): Strengthen param 1 from rtx to rtx_insn * and
22393         param 2 from rtx * to rtx_insn **.
22394
22395         * df.h (can_move_insns_across): Strengthen params 1-4 from rtx to
22396         rtx_insn * and final param from rtx * to rtx_insn **.
22397
22398         * cfgcleanup.c (try_head_merge_bb): Strengthen local "move_before"
22399         from rtx to rtx_insn *.
22400         (try_head_merge_bb): Likewise for both locals named "move_upto".
22401         * df-problems.c (can_move_insns_across): Likewise for params
22402         "from", "to", "across_from", "across_to" and locals "insn",
22403         "next", "max_to".  Strengthen param "pmove_upto" from rtx * to
22404         rtx_insn **.
22405         * ifcvt.c (struct noce_if_info): Strengthen field "cond_earliest"
22406         from rtx to rtx_insn *.
22407         (noce_get_alt_condition): Strengthen param "earliest" from rtx *
22408         to rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
22409         (noce_try_minmax): Strengthen locals "earliest", "seq" from rtx to
22410         rtx_insn *.
22411         (noce_try_abs): Likewise.
22412         (noce_get_condition): Likewise for param "jump".  Strengthen param
22413         "earliest" from rtx * to rtx_insn **.
22414         (noce_find_if_block): Strengthen local "cond_earliest" from rtx to
22415         rtx_insn *.
22416         (find_cond_trap): Likewise.
22417         (dead_or_predicable): Likewise for local "earliest".
22418         * loop-iv.c (check_simple_exit): Likewise for local "at".  Add
22419         checked cast.
22420         * rtlanal.c (canonicalize_condition): Likewise for param "insn"
22421         and local "prev".  Strengthen param "earliest" from rtx * to
22422         rtx_insn **.
22423         (get_condition): Strengthen param "jump" from rtx to rtx_insn *
22424         Strengthen param "earliest" from rtx * to rtx_insn **.
22425
22426 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22427
22428         * fwprop.c (local_ref_killed_between_p): Strengthen params "from",
22429         "to" and local "insn" from rtx to rtx_insn *.
22430
22431 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22432
22433         * sel-sched.c (find_place_for_bookkeeping): Strengthen local "insn"
22434         from rtx to rtx_insn *.
22435         (need_nop_to_preserve_insn_bb): Likewise for param "insn".
22436         (code_motion_path_driver): Likewise for local "last_insn".
22437         (simplify_changed_insns): Likewise for local "insn".
22438
22439 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22440
22441         * rtl.h (push_to_sequence): Strengthen param from rtx to
22442         rtx_insn *.
22443         (push_to_sequence2): Likewise for both params.
22444         (delete_insns_since): Likewise for param.
22445         (reorder_insns_nobb): Likewise for all three params.
22446         (set_new_first_and_last_insn): Likewise for both params.
22447
22448         * emit-rtl.h (set_first_insn): Strengthen param "insn" from rtx to
22449         rtx_insn *.  Remove now-redundant cast.
22450         (set_last_insn): Likewise.
22451
22452         * builtins.c (expand_builtin_return): Strengthen local
22453         "call_fusage" from rtx to rtx_insn *.
22454         * cfgrtl.c (create_basic_block_structure): Likewise for local
22455         "after".
22456         * emit-rtl.c (set_new_first_and_last_insn): Likewise for params
22457         "first", "last" and local "insn".
22458         (delete_insns_since): Likewise for param "from".
22459         (reorder_insns_nobb): Likewise for params "from", "to", "after"
22460         and local "x".
22461         (push_to_sequence): Likewise for param "first" and local "last".
22462         (push_to_sequence2): Likewise for params "first" and "last".
22463         * lra.c (emit_add3_insn): Likewise for local "last".
22464         (lra_emit_add): Likewise.
22465         * lra-constraints.c (base_to_reg): Likewise for locals "insn",
22466         "last_insn".
22467         (process_address_1): Likewise for locals "insn", last".
22468         * modulo-sched.c (ps_first_note): Likewise for return type.
22469         * optabs.c (expand_binop_directly): Likewise for param "last".
22470
22471 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22472
22473         * rtl.h (get_last_insn_anywhere): Strengthen return type from rtx
22474         to rtx_insn*.
22475         * emit-rtl.c (get_last_insn_anywhere): Likewise.
22476
22477 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22478
22479         * function.h (struct sequence_stack): Strengthen fields "first"
22480         and "last" from rtx to rtx_insn *.
22481         (struct emit_status): Likewise for fields "x_first_insn" and
22482         "x_last_insn".
22483
22484         * emit-rtl.h (get_insns): Remove now-redundant checked cast.
22485         (set_first_insn): Add checked cast.
22486         (get_last_insn): Remove now-redundant checked cast.
22487         (set_last_insn): Add checked cast.
22488
22489         * config/m32c/m32c.c (m32c_leaf_function_p): Strengthen locals
22490         "saved_first" and "saved_last" from rtx to rtx_insn *.
22491
22492 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22493
22494         * rtl.h (add_insn): Strengthen param from rtx to rtx_insn *.
22495         (unlink_insn_chain): Strengthen both params from rtx to
22496         rtx_insn *.
22497
22498         * cfgrtl.c (cfg_layout_function_header): Likewise for this
22499         variable.
22500         (unlink_insn_chain): Likewise for params "first" and "last".
22501         Remove now-redundant checked cast.
22502         (record_effective_endpoints): Replace use of NULL_RTX with NULL.
22503         (fixup_reorder_chain): Strengthen local "insn" from rtx to
22504         rtx_insn *.
22505         * emit-rtl.c (link_insn_into_chain): Likewise for all three
22506         params.
22507         (add_insn): Likewise for param "insn" and local "prev".
22508         (add_insn_after_nobb): Likewise for both params and local "next".
22509         (add_insn_before_nobb): Likewise for both params and local "prev".
22510         (add_insn_after): Rename param "after" to "uncast_after",
22511         introducing local "after" with another checked cast.
22512         (add_insn_before): Rename params "insn" and "before", giving them
22513         "uncast_" prefixes, adding the old names back using checked casts.
22514         (emit_note_after): Likewise for param "after".
22515         (emit_note_before): Likewise for param "before".
22516         (emit_label): Add a checked cast.
22517
22518 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22519
22520         * cselib.h (cselib_record_sets_hook):  Strengthen initial param
22521         "insn" from rtx to rtx_insn *.
22522
22523         * cselib.c (cselib_record_sets_hook): Likewise.
22524
22525         * var-tracking.c (add_with_sets): Likewise, renaming back from
22526         "uncast_insn" to "insn" and eliminating the checked cast from rtx
22527         to rtx_insn *.
22528
22529 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22530
22531         * basic-block.h (struct rtl_bb_info): Strengthen fields "end_"
22532         and "header_" from rtx to rtx_insn *.
22533         (struct basic_block_d): Likewise for field "head_" within "x"
22534         field of union basic_block_il_dependent.
22535         (BB_HEAD): Drop function...
22536         (SET_BB_HEAD): ...and this function in favor of...
22537         (BB_HEAD): ...reinstate macro.
22538         (BB_END): Drop function...
22539         (SET_BB_END): ...and this function in favor of...
22540         (BB_END): ...reinstate macro.
22541         (BB_HEADER): Drop function...
22542         (SET_BB_HEADER): ...and this function in favor of...
22543         (BB_HEADER): ...reinstate macro.
22544
22545         * bb-reorder.c (add_labels_and_missing_jumps): Drop use of BB_END.
22546         (fix_crossing_unconditional_branches): Likewise.
22547         * caller-save.c (save_call_clobbered_regs): Likewise.
22548         (insert_one_insn): Drop use of SET_BB_HEAD and SET_BB_END.
22549         * cfgbuild.c (find_bb_boundaries): Drop use of SET_BB_END.
22550         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
22551         (merge_blocks_move_successor_nojumps): Likewise.
22552         (outgoing_edges_match): Update use of for_each_rtx to
22553         for_each_rtx_in_insn.
22554         * cfgexpand.c (expand_gimple_cond): Drop use of SET_BB_END.
22555         (expand_gimple_cond): Likewise.
22556         (expand_gimple_tailcall): Likewise.
22557         (expand_gimple_basic_block): Drop use of SET_BB_HEAD and
22558         SET_BB_END.
22559         (construct_exit_block): Drop use of SET_BB_END.
22560         * cfgrtl.c (cfg_layout_function_footer): Strengthen from rtx to
22561         rtx_insn *.
22562         (delete_insn): Rename param "insn" to "uncast_insn", introducing
22563         a new local "insn" with a checked cast to rtx_insn *.  Drop use of
22564         SET_BB_HEAD and SET_BB_END.
22565         (create_basic_block_structure): Drop use of SET_BB_HEAD and
22566         SET_BB_END.
22567         (rtl_delete_block): Drop use of SET_BB_HEAD.
22568         (rtl_split_block): Drop use of SET_BB_END.
22569         (emit_nop_for_unique_locus_between): Likewise.
22570         (rtl_merge_blocks): Drop use of SET_BB_END and SET_BB_HEAD.
22571         (block_label): Drop use of SET_BB_HEAD.
22572         (fixup_abnormal_edges): Drop use of SET_BB_END.
22573         (record_effective_endpoints): Drop use of SET_BB_HEADER.
22574         (relink_block_chain): Likewise.
22575         (fixup_reorder_chain): Drop use of SET_BB_END.
22576         (cfg_layout_duplicate_bb): Drop use of SET_BB_HEADER.
22577         (cfg_layout_delete_block): Strengthen local "to" from rtx * to
22578         rtx_insn **.  Drop use of SET_BB_HEADER.
22579         (cfg_layout_merge_blocks): Drop use of SET_BB_HEADER, SET_BB_END,
22580         SET_BB_HEAD.
22581         (BB_HEAD): Delete this function.
22582         (SET_BB_HEAD): Likewise.
22583         (BB_END): Likewise.
22584         (SET_BB_END): Likewise.
22585         (BB_HEADER): Likewise.
22586         (SET_BB_HEADER): Likewise.
22587         * emit-rtl.c (add_insn_after):  Rename param "insn" to
22588         "uncast_insn", adding a new local "insn" and a checked cast to
22589         rtx_insn *.  Drop use of SET_BB_END.
22590         (remove_insn): Strengthen locals "next" and "prev" from rtx to
22591         rtx_insn *.  Drop use of SET_BB_HEAD and SET_BB_END.
22592         (reorder_insns): Drop use of SET_BB_END.
22593         (emit_insn_after_1): Strengthen param "first" and locals "last",
22594         "after_after" from rtx to rtx_insn *.  Drop use of SET_BB_END.
22595         (emit_pattern_after_noloc): Add checked cast.
22596         * haifa-sched.c (get_ebb_head_tail): Drop use of SET_BB_END.
22597         (restore_other_notes): Likewise.
22598         (move_insn): Likewise.
22599         (sched_extend_bb): Likewise.
22600         (fix_jump_move): Likewise.
22601         * ifcvt.c (noce_process_if_block): Likewise.
22602         (dead_or_predicable): Likewise.
22603         * ira.c (update_equiv_regs): Drop use of SET_BB_HEAD.
22604         * reg-stack.c (change_stack): Drop use of SET_BB_END.
22605         * sel-sched-ir.c (sel_move_insn): Likewise.
22606         * sel-sched.c (move_nop_to_previous_block): Likewise.
22607
22608         * config/c6x/c6x.c (hwloop_optimize): Drop use of SET_BB_HEAD and
22609         SET_BB_END.
22610         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
22611
22612 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22613
22614         * basic-block.h (create_basic_block_structure): Strengthen params
22615         1 "head" and 2 "end" from rtx to rtx_insn *.
22616         * cfgrtl.c (create_basic_block_structure): Likewise.
22617         (rtl_create_basic_block): Update casts from void * to rtx to
22618         rtx_insn *, so that we can pass them as rtx_insn * to
22619         create_basic_block_structure.
22620         * sel-sched-ir.c (sel_create_basic_block): Likewise.
22621
22622 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22623
22624         * rtl.h (for_each_inc_dec): Strengthen param 1 from rtx * to
22625         rtx_insn **.
22626         (check_for_inc_dec): Strengthen param "insn" from rtx to
22627         rtx_insn *.
22628
22629         * cselib.h (cselib_process_insn): Likewise.
22630
22631         * cselib.c (cselib_record_sets): Likewise.
22632         (cselib_process_insn): Likewise.
22633
22634         * dse.c (struct insn_info): Likewise for field "insn".
22635         (check_for_inc_dec_1): Likewise for local "insn".
22636         (check_for_inc_dec): Likewise for param "insn".
22637         (scan_insn): Likewise.
22638         (dse_step1): Likewise for local "insn".
22639
22640         * rtlanal.c (for_each_inc_dec): Strengthen param 1 from rtx * to
22641         rtx_insn **.  Use for_each_rtx_in_insn rather than for_each_rtx.
22642
22643 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22644
22645         * sched-int.h (struct _dep): Strengthen fields "pro" and "con"
22646         from rtx to rtx_insn *.
22647         (DEP_PRO): Delete this function and...
22648         (SET_DEP_PRO): ...this function in favor of...
22649         (DEP_PRO): ...reinstate this macro.
22650         (DEP_CON): Delete this function and...
22651         (SET_DEP_CON): ...this function in favor of...
22652         (DEP_CON): ...reinstate this old macro.
22653         (init_dep_1): Strengthen params 2 and 3 from rtx to rtx_insn *.
22654         (init_dep): Likewise.
22655         (set_priorities): Likewise for both params.
22656         (sd_copy_back_deps): Likewise for params 1 and 2.
22657
22658         * haifa-sched.c (priority): Likewise for param "insn" and local
22659         "next".
22660         (set_priorities): Likewise for params "head" and "tail" and local
22661         "insn".
22662         (process_insn_forw_deps_be_in_spec): Likewise for param "twin" and
22663         local "consumer".
22664         (add_to_speculative_block): Add a checked cast.
22665         (create_check_block_twin): Drop use of SET_DEP_CON.
22666         (add_jump_dependencies): Strengthen params "insn" and "jump" from
22667         rtx to rtx_insn *.
22668
22669         * sched-deps.c (init_dep_1): Likewise for params "pro" and "con".
22670         Drop use of SET_DEP_PRO
22671         (init_dep): Strengthen params "pro" and "con" from rtx to
22672         rtx_insn *.
22673         (sd_copy_back_deps): Likewise for params "to" and "from".  Drop
22674         use of SET_DEP_CON.
22675         (DEP_PRO): Delete.
22676         (DEP_CON): Delete.
22677         (SET_DEP_PRO): Delete.
22678         (SET_DEP_CON): Delete.
22679
22680 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22681
22682         * sel-sched-ir.h (struct vinsn_def): Strengthen field "insn_rtx"
22683         from rtx to rtx_insn *.
22684         (VINSN_INSN_RTX): Eliminate rvalue function and...
22685         (SET_VINSN_INSN): ...lvalue function in favor of...
22686         (VINSN_INSN_RTX): reinstate this old macro.
22687
22688         * sel-sched-ir.c (vinsn_init): Eliminate use of SET_VINSN_INSN_RTX
22689         in favor of VINSN_INSN_RTX.
22690         (VINSN_INSN_RTX): Delete this function.
22691         (SET_VINSN_INSN_RTX): Likewise.
22692
22693 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22694
22695         * sel-sched-ir.h (insn_t): Strengthen from rtx to rtx_insn *.
22696         (BND_TO): Delete this function and...
22697         (SET_BND_TO): ...this functions in favor of...
22698         (BND_TO): ...reinstating this macro.
22699         (struct _fence): Strengthen field "executing_insns" from
22700         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.  Strengthen fields
22701         "last_scheduled_insn" and "sched_next" from rtx to rtx_insn *.
22702         (_succ_iter_cond): Update param "succp" from rtx * to insn_t *
22703         and param "insn" from rtx to insn_t.
22704         (create_vinsn_from_insn_rtx): Strengthen first param from rtx to
22705         rtx_insn *.
22706
22707         * sched-int.h (insn_vec_t): Strengthen from vec<rtx> to
22708         vec<rtx_insn *> .
22709         (rtx_vec_t): Likewise.
22710         (struct sched_deps_info_def): Strengthen param of "start_insn"
22711         callback from rtx to rtx_insn *.  Likewise for param "insn2" of
22712         "note_mem_dep" callback and first param of "note_dep" callback.
22713
22714         * haifa-sched.c (add_to_speculative_block): Strengthen param
22715         "insn" from rtx to rtx_insn *.
22716         (clear_priorities): Likewise.
22717         (calc_priorities): Likewise for local "insn".
22718
22719         * sched-deps.c (haifa_start_insn): Likewise for param "insn".
22720         Remove redundant checked cast.
22721         (haifa_note_mem_dep): Likewise for param "pending_insn".
22722         (haifa_note_dep): Likewise for param "elem".
22723         (note_mem_dep): Likewise for param "e".
22724         (sched_analyze_1): Add checked casts.
22725         (sched_analyze_2): Likewise.
22726
22727         * sel-sched-dump.c (dump_insn_vector): Strengthen local "succ"
22728         from rtx to rtx_insn *.
22729         (debug): Update param from vec<rtx> & to vec<rtx_insn *>, and
22730         from vec<rtx> * to vec<rtx_insn *> *.
22731
22732         * sel-sched-ir.c (blist_add): Remove use of SET_BND_TO
22733         scaffolding.
22734         (flist_add): Strengthen param "executing_insns" from
22735         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22736         (advance_deps_context): Remove now-redundant checked cast.
22737         (init_fences): Replace uses of NULL_RTX with NULL.
22738         (merge_fences): Strengthen params "last_scheduled_insn" and
22739         "sched_next" from rtx to rtx_insn * and "executing_insns" from
22740         vec<rtx, va_gc> * to vec<rtx_insn *, va_gc> *.
22741         (add_clean_fence_to_fences): Replace uses of NULL_RTX with NULL.
22742         (get_nop_from_pool): Add local "nop_pat" so that "nop" can be
22743         an instruction, rather than doing double-duty as a pattern.
22744         (return_nop_to_pool): Update for change of insn_t.
22745         (deps_init_id): Remove now-redundant checked cast.
22746         (struct sched_scan_info_def): Strengthen param of "init_insn"
22747         callback from rtx to insn_t.
22748         (sched_scan): Strengthen local "insn" from rtx to rtx_insn *.
22749         (init_global_and_expr_for_insn): Replace uses of NULL_RTX with
22750         NULL.
22751         (get_seqno_by_succs): Strengthen param "insn" and locals "tmp",
22752         "end" from rtx to rtx_insn *.
22753         (create_vinsn_from_insn_rtx): Likewise for param "insn_rtx".
22754         (rtx insn_rtx, bool force_unique_p)
22755         (BND_TO): Delete function.
22756         (SET_BND_TO): Delete function.
22757
22758         * sel-sched.c (advance_one_cycle): Strengthen local "insn" from
22759         rtx to rtx_insn *.
22760         (extract_new_fences_from): Replace uses of NULL_RTX with NULL.
22761         (replace_dest_with_reg_in_expr): Strengthen local "insn_rtx" from
22762         rtx to rtx_insn *.
22763         (undo_transformations): Likewise for param "insn".
22764         (update_liveness_on_insn): Likewise.
22765         (compute_live_below_insn): Likewise for param "insn" and local
22766         "succ".
22767         (update_data_sets): Likewise for param "insn".
22768         (fill_vec_av_set): Replace uses of NULL_RTX with NULL.
22769         (convert_vec_av_set_to_ready): Drop now-redundant checked cast.
22770         (invoke_aftermath_hooks): Strengthen param "best_insn" from rtx to
22771         rtx_insn *.
22772         (move_cond_jump): Likewise for param "insn".
22773         (move_cond_jump): Drop use of SET_BND_TO.
22774         (compute_av_set_on_boundaries): Likewise.
22775         (update_fence_and_insn): Replace uses of NULL_RTX with NULL.
22776         (update_and_record_unavailable_insns): Strengthen local "bb_end"
22777         from rtx to rtx_insn *.
22778         (maybe_emit_renaming_copy): Likewise for param "insn".
22779         (maybe_emit_speculative_check): Likewise.
22780         (handle_emitting_transformations): Likewise.
22781         (remove_insn_from_stream): Likewise.
22782         (code_motion_process_successors): Strengthen local "succ" from rtx
22783         to insn_t.
22784
22785 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22786
22787         * sel-sched-ir.h (ilist_t): Redefine this typedef in terms of
22788         ilist_t, not _xlist_t;
22789         (ILIST_INSN): Define in terms of new union field "insn".
22790         (ILIST_NEXT): Define in terms of _LIST_NEXT rather than
22791         _XLIST_NEXT.
22792         (struct _list_node): Add new field "insn" to the union, of type
22793         insn_t.
22794         (ilist_add): Replace macro with an inline function, requiring an
22795         insn_t.
22796         (ilist_remove): Define this macro directly in terms of
22797         _list_remove, rather than indirectly via _xlist_remove.
22798         (ilist_clear): Likewise, in terms of _list_clear rather than
22799         _xlist_clear.
22800         (ilist_is_in_p): Replace macro with an inline function, requiring
22801         an insn_t.
22802         (_list_iter_cond_insn): New function.
22803         (ilist_iter_remove): Define this macro directly in terms of
22804         _list_iter_remove, rather than indirectly via _xlist_iter_remove.
22805         (ilist_iterator): Define directly in terms of _list_iterator
22806         rather than indirectly through _xlist_iterator.
22807         (FOR_EACH_INSN): Define in terms of _list_iter_cond_insn rather
22808         than in terms of _FOR_EACH_X.
22809         (FOR_EACH_INSN_1): Likewise.
22810
22811 2014-08-26  Joseph Myers  <joseph@codesourcery.com>
22812
22813         PR target/60606
22814         PR target/61330
22815         * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
22816         DECL_HARD_REGISTER and return for invalid register specifications.
22817         * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
22818         DECL_HARD_REGISTER, call expand_one_error_var.
22819         * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
22820         CC_REGNUM with non-MODE_CC modes.
22821         (arm_regno_class): Return NO_REGS for PC_REGNUM.
22822
22823 2014-08-26  Marek Polacek  <polacek@redhat.com>
22824
22825         PR c/61271
22826         * sel-sched-ir.c (make_regions_from_the_rest): Fix condition.
22827
22828 2014-08-26  Evandro Menezes <e.menezes@samsung.com>
22829
22830         * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
22831         qi cost; add di cost.
22832         (cortexa57_addrcost_table): Likewise.
22833
22834 2014-08-26  Marek Polacek  <polacek@redhat.com>
22835
22836         PR c/61271
22837         * expr.c (is_aligning_offset): Remove logical not.
22838
22839 2014-08-26  Marek Polacek  <polacek@redhat.com>
22840
22841         PR c/61271
22842         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT,
22843         LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Wrap in parens.
22844
22845 2014-08-26  Richard Biener  <rguenther@suse.de>
22846
22847         PR tree-optimization/62175
22848         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
22849         expand possibly trapping operations.
22850
22851 2014-08-26  David Malcolm  <dmalcolm@redhat.com>
22852
22853         * config/rs6000/rs6000.c (class swap_web_entry): Strengthen field
22854         "insn" from rtx to rtx_insn *.
22855         (permute_load): Likewise for param "insn".
22856         (permute_store): Likewise.
22857         (handle_special_swappables): Likewise for local "insn".
22858         (replace_swap_with_copy): Likewise for locals "insn" and
22859         "new_insn".
22860         (rs6000_analyze_swaps): Likewise for local "insn".
22861
22862 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22863
22864         * regrename.h (struct du_chain): Strengthen field "insn" from rtx
22865         to rtx_insn *.
22866
22867 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22868
22869         * sel-sched-ir.h (struct sel_region_bb_info_def): Strengthen field
22870         "note_list" from rtx to rtx_insn *.
22871         (BB_NOTE_LIST): Replace this function and...
22872         (SET_BB_NOTE_LIST): ...this function with...
22873         (BB_NOTE_LIST): ...the former macro implementation.
22874
22875         * sched-int.h (concat_note_lists): Strengthen param "from_end" and
22876         local "from_start" from rtx to rtx_insn *.  Strengthen param
22877         "to_endp" from rtx * to rtx_insn **.
22878
22879         * haifa-sched.c (concat_note_lists): Likewise.
22880         * sel-sched-ir.c (init_bb): Eliminate SET_BB_NOTE_LIST in favor of
22881         BB_NOTE_LIST.
22882         (sel_restore_notes): Likewise.
22883         (move_bb_info): Likewise.
22884         (BB_NOTE_LIST): Delete this function.
22885         (SET_BB_NOTE_LIST): Delete this function.
22886         * sel-sched.c (create_block_for_bookkeeping): Eliminate
22887         SET_BB_NOTE_LIST in favor of BB_NOTE_LIST.
22888
22889 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
22890
22891         * target.def (reorder): Strengthen param "ready" of this DEFHOOK
22892         from rtx * to rtx_insn **.
22893         (reorder2): Likewise.
22894         (dependencies_evaluation_hook): Strengthen params "head", "tail"
22895         from rtx to rtx_insn *.
22896
22897         * doc/tm.texi: Update mechanically for above change to target.def.
22898
22899         * sched-int.h (note_list): Strengthen this variable from rtx to
22900         rtx_insn *.
22901         (remove_notes): Likewise for both params.
22902         (restore_other_notes): Likewise for return type and first param.
22903         (struct ready_list): Strengthen field "vec" from rtx * to
22904         rtx_insn **.
22905         (struct dep_replacement): Strenghten field "insn" from rtx to
22906         rtx_insn *.
22907         (struct deps_desc): Likewise for fields "last_debug_insn",
22908         "last_args_size".
22909         (struct haifa_sched_info): Likewise for callback field
22910         "can_schedule_ready_p"'s param, for first param of "new_ready"
22911         callback field, for both params of "rank" callback field, for
22912         first field of "print_insn" callback field (with a const), for
22913         both params of "contributes_to_priority" callback, for param
22914         of "insn_finishes_block_p" callback, for fields "prev_head",
22915         "next_tail", "head", "tail", for first param of "add_remove_insn"
22916         callback, for first param of "begin_schedule_ready" callback, for
22917         both params of "begin_move_insn" callback, and for second param
22918         of "advance_target_bb" callback.
22919         (add_dependence): Likewise for params 1 and 2.
22920         (sched_analyze): Likewise for params 2 and 3.
22921         (deps_analyze_insn): Likewise for param 2.
22922         (ready_element): Likewise for return type.
22923         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
22924         (try_ready): Strenghten param from rtx to rtx_insn *.
22925         (sched_emit_insn): Likewise for return type.
22926         (record_delay_slot_pair): Likewise for params 1 and 2.
22927         (add_delay_dependencies): Likewise for param.
22928         (contributes_to_priority): Likewise for both params.
22929         (find_modifiable_mems): Likewise.
22930
22931         * config/arm/arm.c (cortexa7_sched_reorder):  Strengthen param
22932         "ready" from rtx * to rtx_insn **.  Strengthen locals "insn",
22933         "first_older_only_insn" from rtx to rtx_insn *.
22934         (arm_sched_reorder):  Strengthen param "ready"  from rtx * to
22935         rtx_insn **.
22936
22937         * config/c6x/c6x.c (struct c6x_sched_context): Strengthen field
22938         "last_scheduled_iter0" from rtx to rtx_insn *.
22939         (init_sched_state): Replace use of NULL_RTX with NULL for insn.
22940         (c6x_sched_reorder_1): Strengthen param "ready" and locals
22941         "e_ready", "insnp" from rtx * to rtx_insn **.  Strengthen local
22942         "insn" from rtx to rtx_insn *.
22943         (c6x_sched_reorder): Strengthen param "ready" from rtx * to
22944         rtx_insn **.
22945         (c6x_sched_reorder2): Strengthen param "ready" and locals
22946         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen local
22947         "insn" from rtx to rtx_insn *.
22948         (c6x_variable_issue):  Add a checked cast when assigning from insn
22949         to ss.last_scheduled_iter0.
22950         (split_delayed_branch): Strengthen param "insn" and local "i1"
22951         from rtx to rtx_insn *.
22952         (split_delayed_nonbranch): Likewise.
22953         (undo_split_delayed_nonbranch): Likewise for local "insn".
22954         (hwloop_optimize): Likewise for locals "seq", "insn", "prev",
22955         "entry_after", "end_packet", "head_insn", "tail_insn",
22956         "new_insns", "last_insn", "this_iter", "prev_stage_insn".
22957         Strengthen locals "orig_vec", "copies", "insn_copies" from rtx *
22958         to rtx_insn **.  Remove now-redundant checked cast on last_insn,
22959         but add a checked cast on loop->start_label.  Consolidate calls to
22960         avoid assigning result of gen_spkernel to "insn", now an
22961         rtx_insn *.
22962
22963         * config/i386/i386.c (do_reorder_for_imul): Strengthen param
22964         "ready" from rtx * to rtx_insn **.  Strengthen local "insn" from
22965         rtx to rtx_insn *.
22966         (swap_top_of_ready_list): Strengthen param "ready" from rtx * to
22967         rtx_insn **.  Strengthen locals "top", "next" from rtx to
22968         rtx_insn *.
22969         (ix86_sched_reorder): Strengthen param "ready" from rtx * to
22970         rtx_insn **.  Strengthen local "insn" from rtx to rtx_insn *.
22971         (add_parameter_dependencies): Strengthen params "call", "head" and
22972         locals "insn", "last", "first_arg" from rtx to rtx_insn *.
22973         (avoid_func_arg_motion): Likewise for params "first_arg", "insn".
22974         (add_dependee_for_func_arg): Likewise for param "arg" and local
22975         "insn".
22976         (ix86_dependencies_evaluation_hook): Likewise for params "head",
22977         "tail" and locals "insn", "first_arg".
22978
22979         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Likewise
22980         for params "head", "tail" and locals "insn", "next", "next_tail".
22981         (ia64_dfa_sched_reorder): Strengthen param "ready" and locals
22982         "e_ready", "insnp" from rtx * to rtx_insn **. Strengthen locals
22983         "insn", "lowest", "highest" from rtx to rtx_insn *.
22984         (ia64_sched_reorder): Strengthen param "ready" from rtx * to
22985         rtx_insn **.
22986         (ia64_sched_reorder2): Likewise.
22987
22988         * config/mep/mep.c (mep_find_ready_insn): Strengthen return type
22989         and local "insn" from rtx to rtx_insn *.  Strengthen param "ready"
22990         from rtx * to rtx_insn **.
22991         (mep_move_ready_insn): Strengthen param "ready" from rtx * to
22992         rtx_insn **.
22993         (mep_print_sched_insn): Strengthen param "insn" from rtx to
22994         rtx_insn *.
22995         (mep_sched_reorder): Strengthen param "ready" from rtx * to
22996         rtx_insn **.  Strengthen locals "core_insn", "cop_insn" from rtx
22997         to rtx_insn *.
22998
22999         * config/mips/mips.c (mips_promote_ready): Strengthen param "ready"
23000         from rtx * to rtx_insn **.  Strengthen local "new_head" from rtx
23001         to rtx_insn *.
23002         (mips_maybe_swap_ready): Strengthen param "ready" from rtx * to
23003         rtx_insn **.  Strengthen local "temp" from rtx to rtx_insn *.
23004         (mips_macc_chains_reorder): Strengthen param "ready" from rtx * to
23005         rtx_insn **.
23006         (vr4130_reorder): Likewise.
23007         (mips_74k_agen_reorder): Likewise.  Strengthen local "insn" from
23008         rtx to rtx_insn *.
23009         (mips_sched_reorder_1): Strengthen param "ready" from rtx * to
23010         rtx_insn **.
23011         (mips_sched_reorder): Likewise.
23012         (mips_sched_reorder2): Likewise.
23013
23014         * config/picochip/picochip.c (picochip_sched_reorder): Likewise.
23015
23016         * config/rs6000/rs6000.c (rs6000_sched_reorder): Likewise.
23017         Strengthen local "tmp" from rtx to rtx_insn *.
23018         (rs6000_sched_reorder2): Likewise.
23019
23020         * config/s390/s390.c (s390_z10_prevent_earlyload_conflicts):
23021         Likewise.  Update sizeof(rtx) to sizeof(rtx_insn *) in memmove.
23022         (s390_sched_reorder): Strengthen param "ready" from rtx * to
23023         rtx_insn **.  Strengthen local "tmp" from rtx to rtx_insn *.
23024
23025         * config/sh/sh.c (rank_for_reorder): Strengthen locals "tmp",
23026         "tmp2" from rtx to rtx_insn *.
23027         (swap_reorder): Strengthen param "a" from rtx * to rtx_insn **.
23028         Strengthen local "insn" from rtx to rtx_insn *.
23029         (ready_reorder): Strengthen param "ready" from rtx * to
23030         rtx_insn **.  Update sizeof(rtx) to sizeof(rtx_insn *) in qsort.
23031         (sh_reorder):  Strengthen param "ready" from rtx * to rtx_insn **.
23032         (sh_reorder2): Likewise.
23033
23034         * config/spu/spu.c (spu_sched_reorder): Likewise.  Strengthen
23035         local "insn" from rtx to rtx_insn *.
23036
23037         * haifa-sched.c (note_list): Strengthen this variable from rtx to
23038         rtx_insn *.
23039         (scheduled_insns): Strengthen this variable from vec<rtx> to
23040         vec<rtx_insn *>.
23041         (set_modulo_params): Likewise for locals "i1", "i2".
23042         (record_delay_slot_pair): Likewise for params "i1", "i2".
23043         (add_delay_dependencies): Likewise for param "insn".
23044         (cond_clobbered_p): Likewise.
23045         (recompute_todo_spec): Likewise for local "prev".
23046         (last_scheduled_insn): Likewise for this variable.
23047         (nonscheduled_insns_begin): Likewise.
23048         (model_set_excess_costs): Strengthen param "insns" from rtx * to
23049         rtx_insn **.
23050         (rank_for_schedule): Strengthen locals "tmp", "tmp2" from rtx to
23051         rtx_insn *.
23052         (swap_sort): Strengthen param "a" from rtx * to rtx_insn **.
23053         Strengthen local "insn" from rtx to rtx_insn *.
23054         (queue_insn): Strengthen param "insn" from rtx to rtx_insn *.
23055         (ready_lastpos): Strengthen return type from rtx * to rtx_insn **.
23056         (ready_add): Strengthen param "insn" from rtx to rtx_insn *.
23057         (ready_remove_first): Likewise for return type and local "t".
23058         (ready_element): Likewise for return type.
23059         (ready_remove): Likewise for return type and local "t".
23060         (ready_sort): Strengthen local "first" from rtx * to rtx_insn **.
23061         (check_clobbered_conditions): Strengthen local "x" from rtx to
23062         rtx_insn *, adding a checked cast.
23063         (schedule_insn): Likewise for param "insn".
23064         (remove_notes): Likewise for params "head", "tail" and locals
23065         "next_tail", "insn", "next".
23066         (struct haifa_saved_data): Likewise for fields
23067         "last_scheduled_insn", "nonscheduled_insns_begin".
23068         (save_backtrack_point): Update for change to field "vec" of
23069         struct ready_list.
23070         (toggle_cancelled_flags): Strengthen local "first" from rtx * to
23071         rtx_insn **.
23072         (restore_last_backtrack_point): Likewise.  Strengthen local "insn"
23073         from rtx to rtx_insn *
23074         (resolve_dependencies): Strengthen param "insn" from rtx to
23075         rtx_insn *
23076         (restore_other_notes): Likewise for return type, for param "head"
23077         and local "note_head".
23078         (undo_all_replacements): Likewise for local "insn".
23079         (first_nonscheduled_insn): Likewise for return type and local "insn".
23080         (queue_to_ready): Likewise for local "insn", adding checked casts.
23081         (early_queue_to_ready): Likewise for local "insn".
23082         (debug_ready_list_1): Strengthen local "p" from rtx * to
23083         rtx_insn **.
23084         (move_insn): Strengthen param "insn" and local "note" from rtx to
23085         rtx_insn *
23086         (insn_finishes_cycle_p): Likewise for param "insn".
23087         (max_issue): Likewise for local "insn".
23088         (choose_ready): Likewise.  Strengthen param "insn_ptr" from rtx *
23089         to rtx_insn **.
23090         (commit_schedule): Strengthen param "prev_head" and local "insn"
23091         from rtx to rtx_insn *
23092         (prune_ready_list): Likewise for local "insn".
23093         (schedule_block): Likewise for locals "prev_head", "head", "tail",
23094         "skip_insn", "insn", "failed_insn", "x", adding a checked cast.
23095         (set_priorities): Likewise for local "prev_head".
23096         (try_ready): Likewise for param "next".
23097         (fix_tick_ready): Likewise.
23098         (change_queue_index): Likewise.
23099         (sched_extend_ready_list): Update for change to field "vec" of
23100         struct ready_list.
23101         (generate_recovery_code): Strengthen param "insn" from rtx to
23102         rtx_insn *.
23103         (begin_speculative_block): Likewise.
23104         (create_check_block_twin): Likewise for param "insn" and locals
23105         "label", "check", "twin".  Introduce local "check_pat" to avoid
23106         "check" being used as a plain rtx before being used as an insn.
23107         (fix_recovery_deps): Add a checked cast to rtx_insn * when
23108         extracting elements from ready_list.
23109         (sched_remove_insn): Strengthen param "insn" from rtx to
23110         rtx_insn *.
23111         (sched_emit_insn): Likewise for return type.
23112         (ready_remove_first_dispatch): Likewise for return type and local
23113         "insn".
23114
23115         * hw-doloop.c (discover_loop): Add a checked cast to rtx_insn *.
23116
23117         * modulo-sched.c (sms_print_insn): Strengthen from const_rtx to
23118         const rtx_insn *.
23119
23120         * sched-deps.c (add_dependence): Strengthen params "con", "pro"
23121         from rtx to rtx_insn *.
23122         (add_dependence_list): Likewise for param "insn".  Add a checked
23123         cast.
23124         (add_dependence_list_and_free): Strengthen param "insn" from rtx
23125         to rtx_insn *.  Strengthen param "list_p" from rtx * to
23126         rtx_insn **.
23127         (chain_to_prev_insn): Strengthen param "insn" and locals
23128         "prec_nonnote", "i" from rtx to rtx_insn *.
23129         (flush_pending_lists): Likewise for param "insn".
23130         (cur_insn): Likewise for this variable.
23131         (haifa_start_insn): Add a checked cast.
23132         (note_dep): Strengthen param "e" from rtx to rtx_insn *.
23133         (sched_analyze_reg): Likewise for param "insn".
23134         (sched_analyze_1): Likewise.
23135         (sched_analyze_2): Likewise.  Add checked casts.
23136         (sched_analyze_insn): Likewise.  Also for local "prev".
23137         (deps_analyze_insn): Likewise for param "insn".
23138         (sched_analyze): Likewise for params "head", "tail" and local "insn".
23139         (add_dependence_1): Likewise for params "insn", "elem".
23140         (struct mem_inc_info): Likewise for fields "inc_insn", "mem_insn".
23141         (parse_add_or_inc): Likewise for param "insn".
23142         (find_inc): Likewise for local "inc_cand".
23143         (find_modifiable_mems): Likewise for params "head", "tail" and
23144         locals "insn", "next_tail".
23145
23146         * sched-ebb.c (init_ready_list): Likewise for local "insn".
23147         (begin_schedule_ready): Likewise for param "insn".
23148         (begin_move_insn): Likewise for params "insn" and "last".
23149         (ebb_print_insn): Strengthen param "insn" from const_rtx to
23150         const rtx_insn *.
23151         (rank): Strengthen params "insn1", "insn2" from rtx to rtx_insn *.
23152         (ebb_contributes_to_priority): Likewise for params "next", "insn".
23153         (ebb_add_remove_insn): Likewise for param "insn".
23154         (advance_target_bb): Likewise.
23155
23156         * sched-rgn.c (rgn_estimate_number_of_insns): Likewise for local
23157         "insn".
23158         (check_live): Likewise for param "insn".
23159         (init_ready_list): Likewise for local "insn".
23160         (can_schedule_ready_p): Likewise for param "insn".
23161         (begin_schedule_ready): Likewise.
23162         (new_ready): Likewise for param "next".
23163         (rgn_print_insn): Likewise for param "insn".
23164         (rgn_rank): Likewise for params "insn1", "insn2".
23165         (contributes_to_priority): Likewise for params "next", "insn".
23166         (rgn_insn_finishes_block_p): Likewise for param "insn".
23167         (add_branch_dependences): Likewise for params "head", "tail" and
23168         locals "insn", "last".
23169         (rgn_add_remove_insn): Likewise for param "insn".
23170         (advance_target_bb): Likewise.
23171
23172         * sel-sched-dump.c (sel_print_insn): Strengthen param "insn" from
23173         const_rtx to const rtx_insn *.
23174
23175         * sel-sched-dump.h (sel_print_insn): Likewise.
23176
23177         * sel-sched-ir.c (advance_deps_context): Add a checked cast.
23178         (deps_init_id): Likewise.
23179
23180         * sel-sched.c (convert_vec_av_set_to_ready): Likewise.
23181         (invoke_reorder_hooks): Strengthen local "arr" from rtx * to
23182         rtx_insn **.
23183
23184 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23185
23186         * output.h (final_start_function): Strengthen param 1 from rtx to
23187         rtx_insn *.
23188
23189         * final.c (final_start_function): Likewise, renaming back from
23190         "uncast_first" to "first", and dropping the checked cast from rtx
23191         to rtx_insn *.
23192
23193 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23194
23195         * output.h (final): Strengthen param 1 from rtx to rtx_insn *.
23196         * final.c (final): Likewise.  Rename param back from
23197         "uncast_first" to "first" and eliminate the checked cast from rtx
23198         to rtx_insn *.
23199
23200 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23201
23202         * output.h (shorten_branches): Strengthen param from rtx to
23203         rtx_insn *.
23204
23205         * final.c (shorten_branches): Likewise, renaming param back from
23206         "uncast_first" to "first", and dropping the checked cast from rtx
23207         to rtx_insn *.
23208
23209         * genattr.c (gen_attr): Likewise when writing out the prototype of
23210         shorten_branches.
23211
23212 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23213
23214         * sched-int.h (struct haifa_sched_info): Strengthen fields
23215         "prev_head" and "next_tail" from rtx to rtx_insn *.
23216
23217 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23218
23219         * rtl.h (rtx_jump_table_data::get_labels): New method.
23220         * cfgbuild.c (make_edges): Replace hand-coded lookup of labels
23221         with use of the new rtx_jump_table_data::get_labels method.
23222         (purge_dead_tablejump_edges): Strengthen param "table" from rtx
23223         to rtx_jump_table_data *.  Simplify by using get_labels method.
23224         * cfgrtl.c (delete_insn): Replace use of JUMP_TABLE_DATA_P with
23225         a dyn_cast, introducing local "table", using it to replace
23226         label-lookup logic with a get_labels method call.
23227         (patch_jump_insn): Simplify using get_labels method.
23228         * dwarf2cfi.c (create_trace_edges): Likewise.
23229         * rtlanal.c (label_is_jump_target_p): Likewise.
23230
23231 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23232
23233         * rtl.h (unshare_all_rtl_again): Strengthen param "insn" from rtx
23234         to rtx_insn *.
23235
23236         * emit-rtl.c (unshare_all_rtl_1): Likewise.
23237         (unshare_all_rtl_again): Likewise, also for local "p".
23238
23239 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23240
23241         * rtl.h (delete_insn_and_edges): Strengthen param "insn" from rtx
23242         to rtx_insn *.
23243         * cfgrtl.c (delete_insn_and_edges): Likewise.
23244
23245 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23246
23247         * rtl.h (reorder_insns): Strengthen params "from", "to", "after"
23248         from rtx to rtx_insn *.
23249
23250         * emit-rtl.c (reorder_insns): Likewise, also for local "insn".
23251
23252 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23253
23254         * function.c (thread_prologue_and_epilogue_insns): Likewise for
23255         locals "returnjump", "epilogue_end", "insn", "next".
23256
23257         * shrink-wrap.h (get_unconverted_simple_return): Strengthen param
23258         "returnjump" from rtx * to rtx_insn **.
23259         * shrink-wrap.c (get_unconverted_simple_return): Likewise.
23260
23261 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23262
23263         * basic-block.h (struct edge_def). Strengthen "r" within
23264         union edge_def_insns from rtx to rtx_insn *.
23265
23266         * cfgexpand.c (pass_expand::execute): Remove now-redundant cast
23267         from rtx to rtx_insn *.  Strengthen local "insns" from rtx to
23268         rtx_insn *.
23269         * cfgrtl.c (commit_one_edge_insertion): Remove now-redundant cast
23270         from rtx to rtx_insn *.
23271         * cprop.c (find_bypass_set): Strengthen local "insn" from rtx to
23272         rtx_insn *.
23273         * postreload-gcse.c (reg_killed_on_edge): Likewise.
23274         (reg_used_on_edge): Likewise.
23275         * tree-cfg.c (gt_ggc_mx): New overload for rtx_insn *&.
23276         (gt_pch_nx): New overload for rtx_insn *&.
23277         * tree-outof-ssa.c (expand_phi_nodes): Strengthen local "insns"
23278         from rtx to rtx_insn *.
23279
23280 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23281
23282         * basic-block.h (struct rtl_bb_info): Strengthen field "footer_"
23283         from rtx to rtx_insn *.
23284         (BB_FOOTER): Replace function with access macro.
23285         (SET_BB_FOOTER): Delete.
23286
23287         * cfgcleanup.c (try_optimize_cfg): Replace uses of SET_BB_FOOTER
23288         with BB_FOOTER.
23289         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
23290         (emit_barrier_after_bb): Likewise.
23291         (record_effective_endpoints): Likewise.
23292         (relink_block_chain): Likewise.
23293         (fixup_fallthru_exit_predecessor): Likewise.
23294         (cfg_layout_duplicate_bb): Likewise.
23295         (cfg_layout_split_block): Likewise.
23296         (cfg_layout_delete_block): Likewise.
23297         (cfg_layout_merge_blocks): Likewise.
23298         (BB_FOOTER): Delete function.
23299         (SET_BB_FOOTER): Delete function.
23300         * combine.c (update_cfg_for_uncondjump): Replace uses of
23301         SET_BB_FOOTER with BB_FOOTER.
23302
23303 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23304
23305         * except.h (struct eh_landing_pad_d): Strengthen field
23306         "landing_pad" from rtx to rtx_code_label *.
23307
23308         * except.c (sjlj_emit_dispatch_table): Likewise for param
23309         "dispatch_label"
23310         (sjlj_build_landing_pads): Likewise for local "dispatch_label".
23311
23312 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23313
23314         * config/xtensa/xtensa-protos.h (xtensa_emit_loop_end): Strengthen
23315         first param from rtx to rtx_insn *.
23316         * config/xtensa/xtensa.c (struct machine_function): Likewise for
23317         field "set_frame_ptr_insn".
23318         (xtensa_expand_compare_and_swap): Strengthen locals "csloop" and
23319         "csend" from rtx to rtx_code_label *.
23320         (xtensa_expand_atomic): Likewise for local "csloop".
23321         (xtensa_emit_loop_end): Strengthen param "insn" from rtx to
23322         rtx_insn *.
23323         (xtensa_call_tls_desc): Likewise for return type and locals
23324         "call_insn", "insns".
23325         (xtensa_legitimize_tls_address): Likewise for local "insns".
23326         (xtensa_expand_prologue): Likewise for locals "insn", "first".
23327
23328 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23329
23330         * config/v850/v850-protos.h (v850_adjust_insn_length): Strengthen
23331         first param from rtx to rtx_insn *.
23332         * config/v850/v850.c (v850_adjust_insn_length): Likewise for param
23333         "insn".
23334
23335 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23336
23337         * config/tilepro/tilepro-protos.h (tilepro_output_cbranch_with_opcode):
23338         Strengthen param 1 from rtx to rtx_insn *.
23339         (tilepro_output_cbranch): Likewise.
23340         (tilepro_adjust_insn_length): Likewise.
23341         (tilepro_final_prescan_insn): Likewise for sole param.
23342
23343         * config/tilepro/tilepro.c (tilepro_legitimize_tls_address):
23344         Likewise for local "last".
23345         (cbranch_predicted_p): Likewise for param "insn".
23346         (tilepro_output_simple_cbranch_with_opcode): Likewise.
23347         (tilepro_output_cbranch_with_opcode): Likewise.
23348         (tilepro_output_cbranch): Likewise.
23349         (frame_emit_load): Likewise for return type and locals "seq",
23350         "insn".
23351         (emit_sp_adjust): Likewise for return type and local "insn".
23352         (tilepro_expand_epilogue): Likewise for locals "last_insn",
23353         "insn".
23354         (tilepro_adjust_insn_length): Likewise for param "insn".
23355         (next_insn_to_bundle): Likewise for return type and params
23356         "r", "end".
23357         (tilepro_gen_bundles): Likewise for locals "insn", "next", "end".
23358         (replace_pc_relative_symbol_ref): Likewise for param "insn" and
23359         local "new_insns".
23360         (match_addli_pcrel): Likewise for param "insn".
23361         (replace_addli_pcrel): Likewise.
23362         (match_auli_pcrel): Likewise.
23363         (replace_auli_pcrel): Likewise.
23364         (tilepro_fixup_pcrel_references): Likewise for locals "insn",
23365         "next_insn".
23366         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23367         "queue", "next_queue", "prev".
23368         (tilepro_asm_output_mi_thunk): Likewise for local "insn".
23369         (tilepro_final_prescan_insn): Likewise for param "insn".
23370
23371 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23372
23373         * config/tilegx/tilegx-protos.h (tilegx_output_cbranch_with_opcode):
23374         Strengthen param 1 from rtx to rtx_insn *.
23375         (tilegx_output_cbranch): Likewise.
23376         (tilegx_adjust_insn_length): Likewise.
23377         (tilegx_final_prescan_insn): Likewise for sole param.
23378
23379         * config/tilegx/tilegx.c (tilegx_legitimize_tls_address): Likewise
23380         or local "last".
23381         (cbranch_predicted_p): Likewise for param "insn".
23382         (tilegx_output_simple_cbranch_with_opcode): Likewise.
23383         (tilegx_output_cbranch_with_opcode): Likewise.
23384         (tilegx_output_cbranch): Likewise.
23385         (frame_emit_load): Likewise for return type.
23386         (set_frame_related_p): Likewise for locals "seq", "insn".
23387         (emit_sp_adjust): Likewise for return type, and for local "insn".
23388         Introduce local "pat" for use in place of "insn" where the latter
23389         isn't an instruction.
23390         (tilegx_expand_epilogue): Strengthen locals "last_insn", "insn"
23391         from rtx to rtx_insn *.
23392         (tilegx_adjust_insn_length): Likewise for param "insn".
23393         (next_insn_to_bundle): Likewise for return type and params "r" and
23394         "end".
23395         (tilegx_gen_bundles): Likewise for locals "insn", "next", "prev",
23396         "end".
23397         (replace_insns): Likewise for params "old_insn", "new_insns".
23398         (replace_mov_pcrel_step1): Likewise for param "insn" and local
23399         "new_insns".
23400         (replace_mov_pcrel_step2): Likewise.
23401         (replace_mov_pcrel_step3): Likewise.
23402         (tilegx_fixup_pcrel_references): Likewise for locals "insn",
23403         "next_insn".
23404         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
23405         "queue", "next_queue", "prev".
23406         (tilegx_output_mi_thunk): Likewise for local "insn".
23407         (tilegx_final_prescan_insn): Likewise for param "insn".
23408
23409 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23410
23411         * config/spu/spu.c (frame_emit_store): Strengthen return type from
23412         rtx to rtx_insn *.
23413         (frame_emit_load): Likewise.
23414         (frame_emit_add_imm): Likewise, also for local "insn".
23415         (spu_expand_prologue): Likewise for local "insn".
23416         (struct spu_bb_info): Likewise for field "prop_jump".
23417         (emit_nop_for_insn): Likewise for param "insn" and local
23418         "new_insn".
23419         (pad_bb): Likewise for locals "insn", "next_insn", "prev_insn",
23420         "hbr_insn".
23421         (spu_emit_branch_hint): Likewise for params "before", "branch" and
23422         locals "hint", "insn".
23423         (get_branch_target): Likewise for param "branch".
23424         (insn_clobbers_hbr): Likewise for param "insn".
23425         (insert_hbrp_for_ilb_runout): Likewise for param "first" and
23426         locals "insn", "before_4", "before_16".
23427         (insert_hbrp): Likewise for local "insn".
23428         (spu_machine_dependent_reorg): Likewise for locals "branch",
23429         "insn", "next", "bbend".
23430         (uses_ls_unit): Likewise for param "insn".
23431         (get_pipe): Likewise.
23432         (spu_sched_variable_issue): Rename param "insn" to "uncast_insn",
23433         introducing a checked cast.
23434         (spu_sched_adjust_cost): Likewise for params "insn" and
23435         "dep_insn".
23436         (ea_load_store_inline): Strengthen local "insn" from rtx to rtx_insn *.
23437         (spu_sms_res_mii): Likewise.
23438
23439 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23440
23441         * config/sparc/sparc-protos.h (output_ubranch): Strengthen param 2
23442         from rtx to rtx_insn *.
23443         (output_cbranch): Likewise for param 6.
23444         (output_return): Likewise for param 1.
23445         (output_sibcall): Likewise.
23446         (output_v8plus_shift): Likewise.
23447         (output_v8plus_mult): Likewise.
23448         (output_v9branch): Likewise for param 7.
23449         (output_cbcond):  Likewise for param 3.
23450
23451         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise
23452         for local "insn".
23453         (sparc_legitimize_pic_address): Likewise.
23454         (sparc_emit_call_insn): Likewise.
23455         (emit_save_or_restore_regs): Likewise.
23456         (emit_window_save): Likewise for return type and local "insn".
23457         (sparc_expand_prologue): Likewise for local "insn".
23458         (sparc_flat_expand_prologue): Likewise.
23459         (output_return): Likewise for param "insn".
23460         (output_sibcall): Likewise for param "insn" and local "delay".
23461         (output_ubranch): Likewise for param "insn".
23462         (output_cbranch): Likewise.
23463         (output_cbcond): Likewise.
23464         (output_v9branch): Likewise.
23465         (output_v8plus_shift): Likewise.
23466         (sparc_output_mi_thunk): Likewise for local "insn".
23467         (get_some_local_dynamic_name): Likewise.
23468         (output_v8plus_mult): Likewise for param "insn".
23469
23470 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23471
23472         * config/sh/sh-protos.h (output_ieee_ccmpeq): Strengthen param 1
23473         from rtx to rtx_insn *.
23474         (output_branchy_insn): Likewise for param 3.
23475         (output_far_jump): Likewise for param 1.
23476         (final_prescan_insn): Likewise.
23477         (sh_insn_length_adjustment): Likewise for sole param.
23478
23479         * config/sh/sh.c (expand_cbranchsi4): Likewise for local "jump".
23480         (expand_cbranchdi4): Strengthen local "skip_label" from rtx to
23481         rtx_code_label *.
23482         (sh_emit_compare_and_set): Likewise for local "lab".
23483         (output_far_jump): Strengthen param "insn" and local "prev" from
23484         rtx to rtx_insn *.
23485         (output_branchy_insn): Likewise for param "insn" and local
23486         "next_insn".
23487         (output_ieee_ccmpeq): Likewise for param "insn".
23488         (struct label_ref_list_d): Strengthen field "label" from rtx to
23489         rtx_code_label *.
23490         (pool_node): Likewise.
23491         (pool_window_label): Likewise for this global.
23492         (add_constant): Likewise for return type and locals "lab", "new_rtx".
23493         (dump_table): Strengthen params "start", "barrier" and local
23494         "scan" from rtx to rtx_insn *.
23495         (broken_move): Likewise for param "insn".
23496         (untangle_mova): Likewise for params "first_mova" and "new_mova".
23497         Strengthen param "first_mova" from rtx * to rtx_insn **.
23498         (mova_p): Likewise for param "insn".
23499         (fixup_mova): Likewise for param "mova".
23500         (find_barrier): Likewise for return type, params "mova" and
23501         "from", and locals "barrier_before_mova", "found_barrier",
23502         "good_barrier", "orig", "last_symoff", "next".  Strengthen local
23503         "label" from rtx to rtx_code_label *.
23504         (sh_loop_align): Strengthen locals "first", "insn", "mova" from
23505         rtx to rtx_insn *.
23506         (sh_reorg): Likewise for locals "link", "scan", "barrier".
23507         (split_branches): Likewise for param "first" and local "insn".
23508         (final_prescan_insn): Likewise for param "insn".
23509         (sequence_insn_p): Likewise for locals "prev", "next".
23510         (sh_insn_length_adjustment): Likewise for param "insn".
23511         (sh_can_redirect_branch): Likewise for local "insn".
23512         (find_r0_life_regions): Likewise for locals "end", "insn".
23513         (sh_output_mi_thunk): Likewise for local "insns".
23514
23515 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23516
23517         * config/score/score.c (score_output_mi_thunk): Strengthen local
23518         "insn" from rtx to rtx_insn *.
23519         (score_prologue): Likewise.
23520
23521 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23522
23523         * config/s390/s390-protos.h (s390_match_ccmode): Strengthen param
23524         1 from rtx to rtx_insn *.
23525         (s390_emit_jump): Likewise for return type.
23526         (s390_emit_call): Likewise.
23527         (s390_load_got): Likewise.
23528
23529         * config/s390/s390.c (last_scheduled_insn): Likewise for this
23530         variable.
23531         (s390_match_ccmode): Likewise for param "insn".
23532         (s390_emit_jump): Likewise for return type.
23533         (s390_split_branches): Likewise for local "label".
23534         (struct constant): Strengthen field "label" from rtx to
23535         rtx_code_label *.
23536         (struct constant_pool): Likewise for field "label".  Strengthen
23537         fields "first_insn", "pool_insn", "emit_pool_after" from rtx to
23538         rtx_insn *.
23539         (s390_alloc_pool): Replace NULL_RTX with NULL when dealing with
23540         insns.
23541         (s390_start_pool): Strengthen param "insn" from rtx to rtx_insn *.
23542         (s390_end_pool): Likewise.
23543         (s390_dump_pool): Likewise for local "insn".
23544         (s390_mainpool_start): Likewise.
23545         (s390_chunkify_start): Likewise.
23546         (s390_chunkify_start): Replace NULL_RTX with NULL when dealing
23547         with insns.  Strengthen locals "label", "jump", "barrier", "next",
23548         "prev", "vec_insn", "insn" from rtx to rtx_insn *.
23549         (s390_chunkify_finish): Strengthen local "insn" from rtx to
23550         rtx_insn *.
23551         (s390_chunkify_cancel): Likewise for locals "insn", "barrier",
23552         "jump", "label", "next_insn".
23553         (s390_regs_ever_clobbered): Likewise for local "cur_insn".
23554         (s390_optimize_nonescaping_tx): Likewise for locals "insn",
23555         "tbegin_insn".
23556         (s390_load_got): Likewise for return type and local "insns".
23557         (s390_save_gprs_to_fprs): Likewise for local "insn".
23558         (s390_restore_gprs_from_fprs): Likewise.
23559         (pass_s390_early_mach::execute): Likewise.
23560         (s390_emit_prologue): Likewise for local "insns".
23561         (s390_expand_tbegin): Strengthen local "leave_label" from rtx to
23562         rtx_code_label *.
23563         (s390_emit_call): Strengthen return type and local "insn" from
23564         rtx to rtx_insn *.
23565         (s390_emit_tpf_eh_return): Likewise for local "insn".
23566         (s390_optimize_prologue): Likewise for locals "insn", "new_insn",
23567         "next_insn", introducing locals "s_pat", "rpat" to allow this.
23568         (s390_fix_long_loop_prediction): Likewise for param "insn" and
23569         local "cur_insn".
23570         (s390_non_addr_reg_read_p): Likewise for param "insn".
23571         (find_cond_jump): Likewise for return type and param "insn".
23572         (s390_swap_cmp): Likewise for param "insn".
23573         (s390_z10_optimize_cmp): Likewise for param "insn" and locals
23574         "prev_insn", "next_insn".
23575         (s390_reorg): Likewise for locals "insn", "target".
23576         (s390_z10_prevent_earlyload_conflicts): Likewise for local "insn".
23577         (s390_sched_variable_issue): For now, rename param "insn" to
23578         "uncast_insn", introducing a checked cast.
23579         (s390_sched_init): Replace NULL_RTX with NULL when dealing with
23580         insn.
23581         (s390_loop_unroll_adjust): Strengthen local "insn" from rtx to
23582         rtx_insn *.  Use for_each_rtx_in_insn rather than for_each_rtx.
23583
23584 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23585
23586         * config/rx/rx-protos.h (rx_adjust_insn_length): Strengthen first
23587         param from rtx to rtx_insn *.
23588         * config/rx/rx.c (rx_adjust_insn_length): Likewise for param "insn".
23589
23590 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23591
23592         * config/rs6000/rs6000-protos.h (output_cbranch): Strengthen param
23593         4 from rtx to rtx_insn *.
23594         (rs6000_final_prescan_insn): Likewise for first param.
23595         * config/rs6000/rs6000.c (rs6000_emit_set_const): Likewise for
23596         local "insn".
23597         (rs6000_get_some_local_dynamic_name): Likewise.
23598         (output_cbranch): Likewise for param "insn".
23599         (spe_func_has_64bit_regs_p): Likewise for locals "insns", "insn".
23600         (rs6000_function_ok_for_sibcall): Likewise for locals "top", "insn".
23601         (rs6000_emit_allocate_stack): Likewise for local "insn".
23602         (load_cr_save): Likewise.
23603         (restore_saved_cr): Likewise.
23604         (restore_saved_lr): Likewise.
23605         (emit_cfa_restores): Likewise.
23606         (rs6000_output_function_epilogue): Likewise for locals "insn" and
23607         "deleted_debug_label".
23608         (rs6000_output_mi_thunk): Likewise for local "insn".
23609         (rs6000_final_prescan_insn): Likewise for param "insn".
23610
23611 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23612
23613         * config/picochip/picochip-protos.h (picochip_final_prescan_insn):
23614         Strengthen param "insn" from rtx to rtx_insn *.
23615         * config/picochip/picochip.c (picochip_current_prescan_insn):
23616         Likewise for this variable.
23617         (picochip_final_prescan_insn): Likewise for param "insn".
23618
23619 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23620
23621         * config/pa/pa-protos.h (pa_output_call): Strengthen first param
23622         from rtx to rtx_insn *.
23623         (pa_output_indirect_call): Likewise.
23624         (pa_adjust_insn_length): Likewise.
23625         (pa_attr_length_millicode_call): Likewise.
23626         (pa_attr_length_call): Likewise.
23627         (pa_attr_length_indirect_call): Likewise.
23628
23629         * config/pa/pa.c (pa_adjust_insn_length): Likewise for param
23630         "insn".
23631         (pa_attr_length_millicode_call): Likewise.
23632         (pa_attr_length_call): Likewise.
23633         (pa_output_call): Likewise.
23634         (pa_attr_length_indirect_call): Likewise.
23635         (pa_output_indirect_call): Likewise.
23636
23637 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23638
23639         * config/nds32/nds32-protos.h (nds32_adjust_insn_length):
23640         Strengthen first param from rtx to rtx_insn *.
23641         * config/nds32/nds32.c (nds32_adjust_insn_length): Likewise for
23642         param "insn".
23643
23644 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23645
23646         * config/mips/mips-protos.h (mips_emit_move): Strengthen return
23647         type from rtx to rtx_insn *.
23648         (mips_expand_call): Likewise.
23649         (mips_adjust_insn_length): Likewise for first param.
23650         (mips_output_conditional_branch): Likewise.
23651         (mips_output_order_conditional_branch): Likewise.
23652         (mips_final_prescan_insn): Likewise.
23653
23654         * config/mips/mips.c (SEQ_BEGIN): For now, add checked cast to
23655         rtx_insn * for the SEQUENCE case.
23656         (SEQ_END): Likewise.
23657         (mips_emit_move): Strengthen return type from rtx to rtx_insn *.
23658         (mips_emit_call_insn): Likewise, also for local "insn".
23659         (mips16_gp_pseudo_reg): Likewise for local "scan".
23660         (mips16_build_call_stub): Likewise for return type and for local
23661         "insn".  Introduce a new local "pattern" so that "insn" can indeed
23662         be an insn.
23663         (mips_expand_call): Strengthen return type and local "insn" from
23664         rtx to rtx_insn *.
23665         (mips_block_move_loop): Strengthen local "label" from rtx to
23666         rtx_code_label *.
23667         (mips_expand_synci_loop): Likewise for locals "label",
23668         "end_label".
23669         (mips_set_frame_expr): Strengthen local "insn" from rtx to
23670         rtx_insn *.
23671         (mips16e_collect_argument_saves): Likewise for locals "insn",
23672         "next".
23673         (mips_find_gp_ref): Likewise for param of callback for "pred"
23674         param, and for local "insn".
23675         (mips_insn_has_inflexible_gp_ref_p): Likewise for param "insn".
23676         (mips_insn_has_flexible_gp_ref_p): Likewise.
23677         (mips_epilogue_emit_cfa_restores): Likewise for return type and
23678         local "insn".
23679         (mips_epilogue_set_cfa): Likewise for local "insn".
23680         (mips_expand_epilogue): Likewise.
23681         (mips_adjust_insn_length): Likewise for param "insn".
23682         (mips_output_conditional_branch): Likewise.
23683         (mips_output_order_conditional_branch): Likewise.
23684         (struct mips_ls2): Likewise for fields "alu1_turn_enabled_insn",
23685         "alu2_turn_enabled_insn", "falu1_turn_enabled_insn",
23686         "falu2_turn_enabled_insn".
23687         (mips_builtin_branch_and_move): Strengthen locals "true_label",
23688         "done_label" from rtx to rtx_code_label *.
23689         (struct mips16_constant): Likewise for field "label".
23690         (mips16_add_constant): Likewise for return type.
23691         (mips16_emit_constants_1): Strengthen return type and param "insn"
23692         from rtx to rtx_insn *.
23693         (mips16_emit_constants): Likewise for param "insn".
23694         (mips16_insn_length): Likewise.
23695         (mips16_rewrite_pool_constant): Strengthen local "label" from rtx
23696         to rtx_code_label *.
23697         (struct mips16_rewrite_pool_refs_info): Strengthen field "insn"
23698         from rtx to rtx_insn *.
23699         (mips16_lay_out_constants): Likewise for locals "insn", "barrier",
23700         "jump".  Strengthen local "label" from rtx to rtx_code_label *.
23701         (r10k_simplify_address): Strengthen param "insn" and local
23702         "def_insn" from rtx to rtx_insn *.
23703         (r10k_safe_address_p): Strengthen param "insn" from rtx to
23704         rtx_insn *.
23705         (r10k_needs_protection_p_1): Update target type of cast of data
23706         from to rtx to rtx_insn *.
23707         (r10k_needs_protection_p_store): Strengthen local "insn_ptr" from
23708         rtx * to rtx_insn **.
23709         (r10k_needs_protection_p): Strengthen param "insn" from rtx to
23710         rtx_insn *.
23711         (r10k_insert_cache_barriers): Likewise for locals "insn", "end".
23712         (mips_call_expr_from_insn): Likewise for param "insn".
23713         (mips_pic_call_symbol_from_set): Likewise for local "def_insn".
23714         (mips_find_pic_call_symbol): Likewise for param "insn".
23715         (mips_annotate_pic_calls): Likewise for local "insn".
23716         (mips_sim_insn): Likewise for this variable.
23717         (struct mips_sim): Likewise for field "insn" within elements of
23718         last_set array.
23719         (mips_sim_wait_reg): Likewise for param "insn".
23720         (mips_sim_wait_regs): Likewise.
23721         (mips_sim_wait_units): Likewise.
23722         (mips_sim_wait_insn): Likewise.
23723         (mips_sim_issue_insn): Likewise.
23724         (mips_sim_finish_insn): Likewise.
23725         (mips_seq_time): Likewise for param "seq" and local "insn".
23726         (vr4130_avoid_branch_rt_conflict): Likewise for param "insn" and
23727         locals "first", "second".
23728         (vr4130_align_insns): Likewise for locals "insn", "subinsn",
23729         "last", "last2", "next".
23730         (mips_avoid_hazard): Likewise for params "after", "insn".
23731         (mips_reorg_process_insns): Likewise for locals "insn",
23732         "last_insn", "subinsn", "next_insn".
23733         (mips_has_long_branch_p): Likewise for locals "insn", "subinsn".
23734         (mips16_split_long_branches): Likewise for locals "insn" "jump",
23735         "jump_sequence".
23736         (mips_output_mi_thunk): Likewise for local "insn".
23737         (mips_final_prescan_insn): Likewise for param "insn".
23738
23739 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23740
23741         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr):
23742         Strengthen return type and local "insns" from rtx to rtx_insn *.
23743         (microblaze_legitimize_tls_address): Likewise for local "insns".
23744         (microblaze_block_move_loop): Strengthen local "label" from rtx
23745         to rtx_code_label *.
23746         (microblaze_expand_prologue): Strengthen two locals named "insn"
23747         from rtx to rtx_insn *.
23748         (microblaze_asm_output_mi_thunk): Likewise for local "insn".
23749         (microblaze_expand_divide): Likewise for locals "jump", "cjump",
23750         "insn".  Strengthen locals "div_label", "div_end_label" from rtx
23751         to rtx_code_label *.
23752
23753 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23754
23755         * config/mep/mep-protos.h (mep_mulr_source): Strengthen first
23756         param from rtx to rtx_insn *.
23757         (mep_reuse_lo): Likewise for third param.
23758         (mep_use_post_modify_p): Likewise for first param.
23759         (mep_core_address_length): Likewise.
23760         (mep_cop_address_length): Likewise.
23761         (mep_final_prescan_insn): Likewise.
23762         (mep_store_data_bypass_p): Likewise for both params.
23763         (mep_mul_hilo_bypass_p): Likewise.
23764         (mep_ipipe_ldc_p): Likewise for param.
23765
23766         * config/mep/mep.c (mep_mulr_source): Likewise for param "insn".
23767         (mep_rewrite_mult): Likewise.
23768         (mep_rewrite_mulsi3): Likewise.
23769         (mep_rewrite_maddsi3): Likewise.
23770         (mep_reuse_lo_p_1): Likewise.
23771         (mep_reuse_lo_p): Likewise.
23772         (mep_frame_expr): Likewise.
23773         (mep_make_parallel): Likewise for both params.
23774         (mep_use_post_modify_p_1): Likewise for param "set_insn" and
23775         local "insn".
23776         (mep_use_post_modify_p): Likewise for param "insn".
23777         (mep_core_address_length): Likewise.
23778         (mep_cop_address_length): Likewise.
23779         (mep_reg_set_in_function): Likewise for local "insn".
23780         (mep_asm_without_operands_p): Likewise.
23781         (F): Likewise for return type and param "x".
23782         (add_constant): Likewise for local "insn".
23783         (maybe_dead_move): Likewise for return type and local "insn".
23784         (mep_expand_prologue): Likewise for local "insn".
23785         (mep_final_prescan_insn): Likewise for param "insn".
23786         (mep_reorg_regmove): Likewise for param "insns" and locals "insn",
23787         "next", "follow", "x".
23788         (mep_insert_repeat_label_last): Likewise for return type, param
23789         "last_insn", and locals "next", "prev".  Strengthen param "label"
23790         from rtx to rtx_code_label *.
23791         (struct mep_doloop_begin): Strengthen field "insn" from rtx to
23792         rtx_insn *.
23793         (struct mep_doloop_end): Likewise for fields "insn" and
23794         "fallthrough".
23795         (mep_reorg_repeat): Likewise for param "insns" and local "insn".
23796         Strengthen local "repeat_label" from rtx to rtx_code_label *.
23797         (mep_invertable_branch_p): Strengthen param "insn" from rtx to
23798         rtx_insn *.
23799         (mep_invert_branch): Likewise for params "insn" and "after".
23800         (mep_reorg_erepeat): Likewise for param "insns" and locals
23801         "insn", "prev", "new_last", "barrier", "user".  Strengthen local
23802         "l" from rtx to rtx_code_label *.
23803         (mep_jmp_return_reorg): Strengthen param "insns" and local "insn"
23804         from rtx to rtx_insn *.
23805         (mep_reorg_addcombine): Likewise for param "insns" and locals
23806         "i", "n".
23807         (add_sp_insn_p): Likewise for param "insn".
23808         (mep_reorg_noframe): Likewise for param "insns" and locals
23809         "start_frame_insn", "end_frame_insn", "next".
23810         (mep_reorg): Likewise for local "insns".
23811         (mep_store_data_bypass_1): Likewise for param "prev".  Add checked
23812         cast.
23813         (mep_store_data_bypass_p): Likewise for params "prev", "insn".
23814         (mep_mul_hilo_bypass_p): Likewise.
23815         (mep_ipipe_ldc_p): Likewise for param "insn".
23816         (mep_make_bundle): Likewise for return type, param "cop" and local
23817         "insn", splitting out the latter into a new local "seq" for when it
23818         is a SEQUENCE rather than an insn.
23819         (core_insn_p): Likewise for param "insn".
23820         (mep_bundle_insns): Likewise for param "insns" and locals "insn",
23821         "last", "first", "note", "prev", "core_insn".
23822
23823 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23824
23825         * config/m68k/m68k-protos.h (output_btst): Strengthen param 4 from
23826         rtx to rtx_insn *.
23827         (strict_low_part_peephole_ok): Likewise for param 2 "first_insn".
23828         (m68k_final_prescan_insn): Likewise for first param.
23829
23830         * config/m68k/m68k.c (m68k_emit_movem): Likewise for return type.
23831         (m68k_set_frame_related): Likewise for param "insn".
23832         (output_btst): Likewise for param "insn".
23833         (m68k_final_prescan_insn): Likewise.
23834         (m68k_move_to_reg): Likewise for local "insn".
23835         (m68k_call_tls_get_addr): Likewise for local "insns".
23836         (m68k_call_m68k_read_tp): Likewise.
23837         (strict_low_part_peephole_ok): Likewise for param "first_insn".
23838         (m68k_output_mi_thunk): Likewise for local "insn".
23839
23840 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23841
23842         * config/iq2000/iq2000-protos.h (final_prescan_insn): Strengthen
23843         first param from rtx to rtx_insn *.
23844         (iq2000_adjust_insn_length): Likewise.
23845         (iq2000_output_conditional_branch): Likewise.
23846         * config/iq2000/iq2000.c (final_prescan_insn): Likewise for param
23847         "insn" and local "nop_insn".
23848         (iq2000_annotate_frame_insn): Likewise for param "insn".
23849         (iq2000_expand_prologue): Likewise for both locals "insn".
23850         (iq2000_adjust_insn_length): Likewise for param "insn".
23851         (iq2000_output_conditional_branch): Likewise.
23852
23853 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23854
23855         * config/ia64/ia64.c (ia64_expand_tls_address): Strengthen local
23856         "insns" from rtx to rtx_insn *.
23857         (ia64_emit_cond_move): Likewise for locals "insn", "first".
23858         (struct spill_fill_data): Likewise for field "init_after" and for
23859         elements of array field "prev_insn".
23860         (spill_restore_mem): Likewise for locals "insn", "first".
23861         (do_spill): Likewise for local "insn".
23862         (do_restore): Likewise.
23863         (ia64_expand_prologue): Likewise.
23864         (ia64_expand_epilogue): Likewise.
23865         (emit_insn_group_barriers): Likewise for locals "insn",
23866         "last_label".
23867         (emit_all_insn_group_barriers): Likewise for locals "insn",
23868         "last".
23869         (dfa_stop_insn): Likewise for this global.
23870         (dfa_pre_cycle_insn): Likewise.
23871         (ia64_nop): Likewise.
23872         (final_emit_insn_group_barriers): Likewise for locals "insn",
23873         "last".
23874         (emit_predicate_relation_info): Likewise for locals "head", "n",
23875         "insn", "b", "a".
23876         (ia64_reorg): Likewise for local "insn".
23877         (ia64_output_mi_thunk): Likewise.
23878         (expand_vec_perm_interleave_2): Likewise for local "seq".
23879
23880 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23881
23882         * config/i386/i386-protos.h (ix86_avoid_lea_for_add): Strengthen
23883         param 1 "insn" from rtx to rtx_insn *.
23884         (ix86_use_lea_for_mov): Likewise.
23885         (ix86_avoid_lea_for_addr): Likewise.
23886         (ix86_split_lea_for_addr): Likewise.
23887         (ix86_lea_for_add_ok): Likewise.
23888         (ix86_output_call_insn): Likewise.
23889
23890         * config/i386/i386.c (ix86_va_start): Likewise for local "seq".
23891         (ix86_get_drap_rtx): Likewise for locals "seq", "insn".
23892         (ix86_output_function_epilogue): Likewise for locals "insn",
23893         "deleted_debug_label".
23894         (legitimize_tls_address): Likewise for local "insn".
23895         (get_some_local_dynamic_name): Likewise.
23896         (increase_distance): Likewise for params "prev", "next".
23897         (distance_non_agu_define_in_bb): Likewise for params "insn",
23898         "start" and locals "prev", "next".
23899         (distance_non_agu_define): Likewise for param "insn".
23900         (distance_agu_use_in_bb): Likewise for params "insn", "start" and
23901         locals "next", "prev".
23902         (distance_agu_use): Likewise for param "insn".
23903         (ix86_lea_outperforms): Likewise.
23904         (ix86_ok_to_clobber_flags): Likewise.
23905         (ix86_avoid_lea_for_add): Likewise.
23906         (ix86_use_lea_for_mov): Likewise.
23907         (ix86_avoid_lea_for_addr): Likewise.
23908         (find_nearest_reg_def): Likewise, also for locals "prev", "start".
23909         (ix86_split_lea_for_addr): Likewise for param "insn".
23910         (ix86_lea_for_add_ok): Likewise for param "insn".
23911         (ix86_expand_carry_flag_compare): Likewise for local
23912         "compare_seq".
23913         (ix86_expand_int_movcc): Likewise.
23914         (ix86_output_call_insn): Likewise for param "insn".
23915         (ix86_output_call_insn): Likewise for local "i".
23916         (x86_output_mi_thunk): Introduce local "insn", using it in place
23917         of "tmp" when dealing with insns.
23918         (ix86_avoid_jump_mispredicts): Likewise for locals "insn",
23919         "start".
23920         (ix86_pad_returns): Likewise for locals "ret", "prev".
23921         (ix86_count_insn_bb): Likewise for local "insn".
23922         (ix86_pad_short_function): Likewise for locals "ret", "insn".
23923         (ix86_seh_fixup_eh_fallthru): Likewise for locals "insn", "next".
23924         (ix86_vector_duplicate_value): Likewise for local "insn", "seq".
23925         (expand_vec_perm_interleave2): Likewise for local "seq".
23926         (expand_vec_perm_vperm2f128_vblend): Likewise.
23927         (ix86_loop_unroll_adjust): Likewise for local "insn".  Convert
23928         call to for_each_rtx with for_each_rtx_in_insn.
23929
23930 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23931
23932         * config/i386/i386.c (setup_incoming_varargs_64): Strengthen local
23933         "label" from rtx to rtx_code_label *.
23934         (ix86_expand_prologue): Likewise.
23935         (ix86_expand_split_stack_prologue): Likewise for locals "label",
23936         "varargs_label".
23937         (ix86_split_idivmod): Likewise for locals "end_label" and
23938         "qimode_label".
23939         (ix86_expand_branch): Likewise for local "label2".
23940         (ix86_expand_aligntest): Likewise for return type and local "label".
23941         (expand_set_or_movmem_via_loop): Likewise for locals "out_label" and
23942         "top_label".
23943         (expand_movmem_epilogue): Likewise for the various locals named
23944         "label".
23945         (expand_setmem_epilogue): Likewise.
23946         (expand_small_movmem_or_setmem): Likewise for local "label".
23947         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23948         Strengthen param "done_label" from rtx * to rtx_code_label **.
23949         Strengthen locals "loop_label" and "label" from rtx to
23950         rtx_code_label *.
23951         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves):
23952         Likewise for locals "loop_label", "label".
23953         (ix86_expand_set_or_movmem): Likewise for locals "label",
23954         "jump_around_label", "hot_label".
23955         (ix86_expand_strlensi_unroll_1): Likewise for locals
23956         "align_2_label", align_3_label", "align_4_label", "end_0_label",
23957         "end_2_label".
23958         (x86_emit_floatuns): Likewise for locals "neglab", "donelab".
23959         (void ix86_emit_i387_log1p): Likewise for locals "label1",
23960         "label2", "jump_label".
23961         (ix86_expand_sse_compare_and_jump): Likewise for return type and
23962         local "label".
23963         (ix86_expand_lfloorceil): Likewise for local "label".
23964         (ix86_expand_rint): Likewise.
23965         (ix86_expand_floorceildf_32): Likewise.
23966         (ix86_expand_floorceil): Likewise.
23967         (ix86_expand_rounddf_32): Likewise.
23968         (ix86_expand_trunc): Likewise.
23969         (ix86_expand_truncdf_32): Likewise.
23970         (ix86_expand_round): Likewise.
23971
23972 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23973
23974         * config/h8300/h8300-protos.h (final_prescan_insn): Strengthen
23975         first param from rtx to rtx_insn *.
23976         (h8300_insn_length_from_table): Likewise.
23977         * config/h8300/h8300.c (F): Likewise for return type and param
23978         "x".
23979         (Fpa): Add a checked cast to rtx_insn *.
23980         (h8300_emit_stack_adjustment): Strengthen local "x" from rtx to
23981         rtx_insn *.
23982         (final_prescan_insn): Likewise for param "insn".
23983         (h8300_binary_length): Likewise.
23984         (h8300_insn_length_from_table): Likewise.
23985
23986 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
23987
23988         * config/epiphany/epiphany-protos.h (epiphany_final_prescan_insn):
23989         Strengthen first param "insn" from rtx to rtx_insn *.
23990
23991         * config/epiphany/epiphany.c (epiphany_final_prescan_insn):
23992         Likewise.
23993         (frame_insn): Likewise for return type.  Introduce local "insn"
23994         for use in place of local "x" for use as an rtx_insn *.
23995         (frame_move_insn): Strengthen return type from rtx to rtx_insn *.
23996         (epiphany_expand_prologue): Likewise for local "insn".
23997         * config/epiphany/mode-switch-use.c (insert_uses): Likewise.
23998         * config/epiphany/resolve-sw-modes.c
23999         (pass_resolve_sw_modes::execute): Likewise for locals "insn" and
24000         "seq".
24001
24002 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24003
24004         * config/c6x/c6x-protos.h (c6x_get_unit_specifier): Strengthen
24005         param from rtx to rtx_insn *.
24006         (c6x_final_prescan_insn): Likewise for first param.
24007
24008         * config/c6x/c6x.c (c6x_current_insn): Likewise for this variable.
24009         (c6x_output_mi_thunk): Replace use of NULL_RTX with NULL.
24010         (c6x_expand_compare): Strengthen local "insns" from rtx to
24011         rtx_insn *.
24012         (c6x_get_unit_specifier): Likewise for param "insn".
24013         (c6x_print_unit_specifier_field): Likewise.
24014         (c6x_final_prescan_insn): Likewise.
24015         (emit_add_sp_const): Likewise for local "insn".
24016         (c6x_expand_prologue): Likewise.
24017
24018 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24019
24020         * config/bfin/bfin-protos.h (asm_conditional_branch): Strengthen
24021         param 1 from rtx to rtx_insn *.
24022         * config/bfin/bfin.c (expand_prologue_reg_save): Likewise for
24023         the various locals named "insn".
24024         (expand_epilogue_reg_restore): Likewise.
24025         (frame_related_constant_load): Likewise.
24026         (add_to_reg): Likewise.
24027         (emit_link_insn): Likewise.
24028         (do_link): Likewise.
24029         (expand_interrupt_handler_prologue): Likewise.
24030         (branch_dest): Likewise for param "branch".
24031         (asm_conditional_branch): Likewise for param "insn".
24032         (gen_one_bundle): Likewise for elements of param "slot" and local
24033         "t".
24034         (bfin_gen_bundles): Likewise for locals "insn", "next" and
24035         elements of local "slot".
24036         (reorder_var_tracking_notes): Likewise for locals "insn", "next",
24037         "queue", "next_queue", "prev".
24038         (workaround_rts_anomaly): Likewise for locals "insn", "first_insn".
24039         (add_sched_insns_for_speculation): Likewise for local "insn".
24040
24041 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24042
24043         * config/avr/avr-protos.h (output_movqi): Strengthen first param
24044         from rtx to rtx_insn *.
24045         (output_movhi): Likewise.
24046         (output_movsisf): Likewise.
24047         (avr_out_tstsi): Likewise.
24048         (avr_out_tsthi): Likewise.
24049         (avr_out_tstpsi): Likewise.
24050         (avr_out_compare): Likewise.
24051         (avr_out_compare64): Likewise.
24052         (avr_out_movpsi): Likewise.
24053         (ashlqi3_out): Likewise.
24054         (ashlhi3_out): Likewise.
24055         (ashlsi3_out): Likewise.
24056         (ashrqi3_out): Likewise.
24057         (ashrhi3_out): Likewise.
24058         (ashrsi3_out): Likewise.
24059         (lshrqi3_out): Likewise.
24060         (lshrhi3_out): Likewise.
24061         (lshrsi3_out): Likewise.
24062         (avr_out_ashlpsi3): Likewise.
24063         (avr_out_ashrpsi3): Likewise.
24064         (avr_out_lshrpsi3): Likewise.
24065         (avr_out_fract): Likewise.
24066         (avr_out_sbxx_branch): Likewise.
24067         (avr_out_round): Likewise.
24068         (avr_out_xload): Likewise.
24069         (avr_out_movmem): Likewise.
24070         (adjust_insn_length): Likewise.
24071         (avr_out_lpm): Likewise.
24072         (reg_unused_after): Likewise.
24073         (_reg_unused_after): Likewise.
24074         (avr_jump_mode): Likewise for second param.
24075         (jump_over_one_insn): Likewise for first param.
24076         (avr_final_prescan_insn): Likewise.
24077         (out_shift_with_cnt): Likewise for second param.
24078
24079         * config/avr/avr.c (get_sequence_length): Likewise for param
24080         "insns" and local "insn".
24081         (emit_push_byte): Likewise for local "insn".
24082         (emit_push_sfr): Likewise.
24083         (avr_prologue_setup_frame): Likewise for locals "insn",
24084         "fp_plus_insns", "sp_plus_insns".
24085         (avr_expand_epilogue): Likewise for local "fp_plus_insns",
24086         "sp_plus_insns".
24087         (avr_jump_mode): Likewise for param "insn".
24088         (avr_final_prescan_insn): Likewise.
24089         (avr_find_unused_d_reg): Likewise.
24090         (avr_out_lpm_no_lpmx): Likewise.
24091         (avr_out_lpm): Likewise.
24092         (avr_out_xload): Likewise.
24093         (output_movqi): Likewise.
24094         (output_movhi): Likewise.
24095         (out_movqi_r_mr): Likewise.
24096         (out_movhi_r_mr): Likewise.
24097         (out_movsi_r_mr): Likewise.
24098         (out_movsi_mr_r): Likewise.
24099         (output_movsisf): Likewise.
24100         (avr_out_load_psi): Likewise.
24101         (avr_out_store_psi): Likewise.
24102         (avr_out_movpsi): Likewise.
24103         (out_movqi_mr_r): Likewise.
24104         (avr_out_movhi_mr_r_xmega): Likewise.
24105         (out_movhi_mr_r): Likewise.
24106         (compare_condition): Likewise for param "insn" and local "next".
24107         (compare_sign_p): Likewise for param "insn".
24108         (compare_diff_p): Likewise.
24109         (compare_eq_p): Likewise.
24110         (avr_out_compare): Likewise.
24111         (avr_out_compare64): Likewise.
24112         (avr_out_tsthi): Likewise.
24113         (avr_out_tstpsi): Likewise.
24114         (avr_out_tstsi): Likewise.
24115         (out_shift_with_cnt): Likewise.
24116         (ashlqi3_out): Likewise.
24117         (ashlhi3_out): Likewise.
24118         (avr_out_ashlpsi3): Likewise.
24119         (ashlsi3_out): Likewise.
24120         (ashrqi3_out): Likewise.
24121         (ashrhi3_out): Likewise.
24122         (avr_out_ashrpsi3): Likewise.
24123         (ashrsi3_out): Likewise.
24124         (lshrqi3_out): Likewise.
24125         (lshrhi3_out): Likewise.
24126         (avr_out_lshrpsi3): Likewise.
24127         (lshrsi3_out): Likewise.
24128         (avr_out_fract): Likewise.
24129         (avr_out_round): Likewise.
24130         (avr_adjust_insn_length): Likewise.
24131         (reg_unused_after): Likewise.
24132         (_reg_unused_after): Likewise.
24133         (avr_compare_pattern): Likewise.
24134         (avr_reorg_remove_redundant_compare): Likewise for param "insn1"
24135         and locals "branch1", "branch2", "insn2", "jump".
24136         (avr_reorg): Likewise for local "insn".
24137         (avr_2word_insn_p): Likewise for param "insn".
24138         (jump_over_one_insn_p): Likewise.
24139         (avr_out_sbxx_branch): Likewise.
24140         (avr_out_movmem): Likewise.
24141
24142 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24143
24144         * config/arm/arm-protos.h (arm_final_prescan_insn): Strengthen
24145         param from rtx to rtx_insn *.
24146         (thumb1_final_prescan_insn): Likewise.
24147         (thumb2_final_prescan_insn): Likewise.
24148
24149         * config/arm/arm.c (emit_set_insn): Strengthen return type from
24150         rtx to rtx_insn *.
24151         (struct minipool_node): Likewise for field "insn".
24152         (dump_minipool): Likewise for param "scan".
24153         (create_fix_barrier): Likewise for local "from".  Strengthen local
24154         "label" from rtx to rtx_code_label *.
24155         (push_minipool_barrier): Strengthen param "insn" from rtx to
24156         rtx_insn *.
24157         (push_minipool_fix): Likewise.
24158         (note_invalid_constants): Likewise.
24159         (thumb2_reorg): Likewise for local "insn".
24160         (arm_reorg): Likewise.
24161         (thumb2_final_prescan_insn): Likewise for param
24162         "insn" and local "first_insn".
24163         (arm_final_prescan_insn): Likewise for param "insn" and locals
24164         "start_insn", "this_insn".
24165         (arm_debugger_arg_offset): Likewise for param "insn".
24166         (thumb1_emit_multi_reg_push): Likewise for return type and local
24167         "insn".
24168         (thumb1_final_prescan_insn): Likewise for param "insn".
24169         (thumb_far_jump_used_p): Likewise for local "insn".
24170         (thumb1_expand_prologue): Likewise.
24171         (arm_expand_epilogue_apcs_frame): Likewise.
24172         (arm_expand_epilogue): Likewise for locals "insn", "tmp".
24173         (arm_split_compare_and_swap): Strengthen locals "label1", "label2"
24174         from rtx to rtx_code_label *.
24175         (arm_split_atomic_op): Likewise for local "label".
24176         (arm_emit_coreregs_64bit_shift): Likewise for local "done_label".
24177
24178 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24179
24180         * config/arc/arc-protos.h (arc_final_prescan_insn): Strengthen
24181         first param from rtx to rtx_insn *.
24182         (arc_verify_short): Likewise.
24183         (arc_short_long): Likewise.
24184         (arc_need_delay): Likewise.
24185
24186         * config/arc/arc.c (struct arc_ccfsm): Likewise for field
24187         "target_insn".
24188         (arc_ccfsm_advance): Likewise for param "insn" and locals
24189         "start_insn", "this_insn".
24190         (arc_ccfsm_record_condition): Likewise for local "seq_insn".
24191         (arc_ccfsm_post_advance): Likewise for param "insn".
24192         (arc_next_active_insn): Likewise for return type and param "insn".
24193         Convert NULL_RTX to NULL as appropriate.  Add a checked cast.
24194         (arc_verify_short): Strengthen param "insn" from rtx to rtx_insn *.
24195         (output_short_suffix): Likewise for local "insn".
24196         (arc_final_prescan_insn): Likewise for param "insn".  Remove
24197         now-redundant checked cast.
24198         (arc_reorg): Strengthen locals "insn", "top_label", "lp", "prev",
24199         "lp_simple", "next", "mov", "scan", "link_insn" from rtx to
24200         rtx_insn *.  Add a checked cast.  Introduce local "lc_set_insn"
24201         for use where lc_set became an insn.
24202         (arc_adjust_insn_length): Strengthen locals "prev", "succ" from
24203         rtx to rtx_insn *.
24204         (arc_get_insn_variants): Likewise for local "prev".
24205         (arc_ifcvt): Likewise for locals "insn", "seq", "prev", "pprev",
24206         "next".
24207         (arc_predicate_delay_insns): Likewise for local "insn".
24208         (arc_pad_return): Likewise for local "prev".  For now, add a
24209         checked cast when extracting the insn from "final_sequence".
24210         (arc_short_long): Likewise for param "insn".
24211         (arc_need_delay): Likewise for param "insn" and local "next".
24212         (arc_label_align): Likewise for locals "prev", "next".
24213
24214 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24215
24216         * config/alpha/alpha.c (alpha_emit_set_const): Strengthen local
24217         "insn" from rtx to rtx_insn *.
24218         (alpha_gp_save_rtx): Likewise for local "seq".
24219         (alpha_instantiate_decls): Likewise for local "top".
24220         (get_some_local_dynamic_name): Likewise for local "insn".
24221         (alpha_does_function_need_gp): Likewise.
24222         (set_frame_related_p): Likewise for return type and for locals
24223         "seq" and "insn".
24224         (emit_frame_store_1): Likewise for local "insn".
24225         (alpha_expand_prologue): Likewise for locals "insn", "seq".
24226         (alpha_end_function): Likewise for local "insn".
24227         (alpha_output_mi_thunk_osf): Likewise.
24228         (alphaev4_insn_pipe): Likewise for param "insn".
24229         (alphaev5_insn_pipe): Likewise.
24230         (alphaev4_next_group): Likewise for return type and param 1
24231         "insn".
24232         (alphaev5_next_group): Likewise.
24233         (alpha_align_insns_1): Likewise for return type and param 1 of
24234         callback param "next_group", and for locals "i", "next", "prev",
24235         "where", "where2", "insn".
24236
24237 2014-08-25  Bernd Schmidt  <bernds@codesourcery.com>
24238
24239         * tree-nested.c (finalize_nesting_tree_1): Initialize temporary earlier
24240         rather than modifying the stmt.
24241
24242 2014-08-25  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
24243
24244         * config/rs6000/rs6000.c (rs6000_return_in_msb): Fix fallout from
24245         cgraph_state conversion.
24246
24247 2014-08-25  David Malcolm  <dmalcolm@redhat.com>
24248
24249         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
24250         Strengthen local "insns" from rtx to rtx_insn *.
24251         (aarch64_set_frame_expr): Likewise for local "insn".
24252         (aarch64_save_or_restore_fprs): Likewise.
24253         (aarch64_save_or_restore_callee_save_registers): Likewise.
24254         (aarch64_expand_prologue): Likewise.
24255         (aarch64_expand_epilogue): Likewise.
24256         (aarch64_output_mi_thunk): Likewise.
24257         (aarch64_split_compare_and_swap): Strengthen locals "label1" and
24258         "label2" from rtx to rtx_code_label *.
24259         (aarch64_split_atomic_op): Likewise for local "label".
24260
24261 2014-08-25  Martin Liska  <mliska@suse.cz>
24262
24263         * cgraph.h (symtab_node):
24264         (bool needed_p (void)): created from decide_is_symbol_needed
24265         (bool referred_to_p (void)): created from referred_to_p
24266         (static cgraph_node *get_for_asmname (tree asmname)): created from symtab_node_for_asm
24267         * cgraph.h (cgraph_node):
24268         (void assemble_thunks_and_aliases (void)): created from assemble_thunks_and_aliases
24269         (void expand (void)): created from expand_function
24270         (static void finalize_function (tree, bool)): created from cgraph_finalize_function
24271         (static cgraph_local_info *local_info (tree decl)): created from cgraph_local_info
24272         (static cgraph_global_info *global_info (tree)): created from cgraph_global_info
24273         (static cgraph_rtl_info *rtl_info (tree)): created from cgraph_rtl_info
24274         * cgraph.h (varpool_node):
24275         (static void add (tree decl): created from varpool_add_new_variable
24276         * cgraph.h (cgraph_edge):
24277         void remove (void);
24278         (void remove_caller (void)): created from cgraph_edge_remove_caller
24279         (void remove_callee (void)): created from cgraph_edge_remove_callee
24280         (void set_call_stmt (gimple new_stmt, bool update_speculative = true)):
24281           created from cgraph_set_call_stmt
24282         (void redirect_callee (cgraph_node *n)): created from cgraph_redirect_edge_callee
24283         (cgraph_edge *make_direct (cgraph_node *callee)): created from cgraph_make_edge_direct
24284         (cgraph_edge *make_speculative (cgraph_node *n2, gcov_type direct_count,
24285           gimple redirect_call_stmt_to_callee (void)): created from cgraph_turn_edge_to_speculative
24286         (void speculative_call_info (cgraph_edge *&direct, cgraph_edge *&indirect, ipa_ref *&reference)):
24287           created from cgraph_speculative_call_info
24288         (cgraph_edge * clone (cgraph_node *n, gimple call_stmt, unsigned stmt_uid, gcov_type count_scale,
24289           int freq_scale, bool update_original)): created from cgraph_clone_edge
24290         (cgraph_edge *resolve_speculation (tree callee_decl)): created from cgraph_resolve_speculation
24291         (bool cannot_lead_to_return_p (void)): created from cannot_lead_to_return_p
24292         (bool recursive_p (void)): created from cgraph_edge_recursive_p
24293         (bool maybe_hot_p (void)): created from cgraph_maybe_hot_edge_p
24294         (static unsigned int rebuild_edges (void)): created from rebuild_cgraph_edges
24295         (static void rebuild_references (void)): created from cgraph_rebuild_references
24296         * cgraph.h (symbol_table):
24297         (create_reference): renamed from add_reference
24298         (maybe_create_reference): renamed from maybe_add_reference
24299         (void register_symbol (symtab_node *node)): new function
24300         (void clear_asm_symbols (void)): new function
24301         (void unregister (symtab_node *node)): new function
24302         (void release_symbol (cgraph_node *node, int uid)): new function
24303         (cgraph_node * allocate_cgraph_symbol (void)): new function
24304         (void initialize (void)): created from cgraph_init
24305         (symtab_node *first_symbol (void)):new function
24306         (asm_node *first_asm_symbol (void)):new function
24307         (symtab_node *first_defined_symbol (void)):new function
24308         (varpool_node *first_variable (void)):new function
24309         (varpool_node *next_variable (varpool_node *node)):new function
24310         (varpool_node *first_static_initializer (void)):new function
24311         (varpool_node *next_static_initializer (varpool_node *node)):new function
24312         (varpool_node *first_defined_variable (void)):new function
24313         (varpool_node *next_defined_variable (varpool_node *node)):new function
24314         (cgraph_node *first_defined_function (void)):new function
24315         (cgraph_node *next_defined_function (cgraph_node *node)):new function
24316         (cgraph_node *first_function (void)):new function
24317         (cgraph_node *next_function (cgraph_node *node)):new function
24318         (cgraph_node *first_function_with_gimple_body (void)):new function
24319         (asm_node *finalize_toplevel_asm (tree asm_str)): created from add_asm_node
24320         (bool remove_unreachable_nodes (bool before_inlining_p, FILE *file)):
24321           created from symtab_remove_unreachable_nodes
24322         (void remove_unreferenced_decls (void)): created from varpool_remove_unreferenced_decls
24323         (void process_new_functions (void)): created from cgraph_process_new_functions
24324         (void process_same_body_aliases (void)): created from cgraph_process_same_body_aliases
24325         (bool output_variables (void)): created from varpool_node::output_variables
24326         (void output_asm_statements (void)): created from output_asm_statements
24327         (void finalize_compilation_unit (void)): created from finalize_compilation_unit
24328         (void compile (void)): created from compile
24329         (void output_weakrefs (void)): created from output_weakrefs
24330         (cgraph_node *create_empty (void)): created from cgraph_node::create_empty
24331         (cgraph_edge *create_edge (cgraph_node *caller, cgraph_node *callee, gimple call_stmt,
24332           gcov_type count, int freq, bool indir_unknown_callee)): created from cgraph_node::create_edge
24333         (void free_edge (cgraph_edge *e)): created from cgraph_free_edge
24334         (cgraph_node *next_function_with_gimple_body (cgraph_node *node)):
24335           created from cgraph_next_function_with_gimple_body
24336         (void remove_edge_removal_hook (cgraph_edge_hook_list *)):
24337           created from cgraph_remove_edge_removal_hook
24338         (cgraph_node_hook_list *add_cgraph_removal_hook (cgraph_node_hook, void *)):
24339           created from cgraph_add_node_removal_hook
24340         (void remove_cgraph_removal_hook (cgraph_node_hook_list *)):
24341           created from cgraph_remove_node_removal_hook
24342         (varpool_node_hook_list *add_varpool_removal_hook (varpool_node_hook, void *)):
24343           created from varpool_add_node_removal_hook
24344         (void remove_varpool_removal_hook (varpool_node_hook_list *)):
24345           created from varpool_remove_node_removal_hook
24346         (cgraph_node_hook_list *add_cgraph_insertion_hook (cgraph_node_hook, void *)):
24347           created from cgraph_add_function_insertion_hook
24348         (void remove_cgraph_insertion_hook (cgraph_node_hook_list *)):
24349           created from cgraph_remove_function_insertion_hook
24350         (varpool_node_hook_list *add_varpool_insertion_hook (varpool_node_hook, void *)):
24351           created from varpool_add_variable_insertion_hook
24352         (void remove_varpool_insertion_hook (varpool_node_hook_list *)):
24353           created from varpool_remove_variable_insertion_hook
24354         (cgraph_2edge_hook_list *add_edge_duplication_hook (cgraph_2edge_hook, void *)):
24355           created from cgraph_add_edge_duplication_hook
24356         (void remove_edge_duplication_hook (cgraph_2edge_hook_list *)):
24357           created from cgraph_remove_edge_duplication_hook
24358         (cgraph_2node_hook_list *add_cgraph_duplication_hook (cgraph_2node_hook, void *)):
24359           created from cgraph_add_node_duplication_hook
24360         (void remove_cgraph_duplication_hook (cgraph_2node_hook_list *)):
24361           created from cgraph_remove_node_duplication_hook
24362         (void call_edge_removal_hooks (cgraph_edge *e)):
24363           created from cgraph_call_edge_removal_hooks
24364         (void call_cgraph_insertion_hooks (cgraph_node *node)):
24365           created from call_function_insertion_hooks
24366         (void call_cgraph_removal_hooks (cgraph_node *node)):
24367           created from cgraph_call_node_removal_hooks
24368         (void call_cgraph_duplication_hooks (cgraph_node *node, cgraph_node *node2)):
24369           created from cgraph_node::call_duplication_hooks
24370         (void call_edge_duplication_hooks (cgraph_edge *cs1, cgraph_edge *cs2)):
24371           created from cgraph_call_edge_duplication_hooks
24372         (void call_varpool_removal_hooks (varpool_node *node)):
24373           created from varpool_call_node_removal_hooks
24374         (void call_varpool_insertion_hooks (varpool_node *node)):
24375           created from varpool_call_variable_insertion_hooks
24376         (void insert_to_assembler_name_hash (symtab_node *node, bool with_clones)):
24377           created from insert_to_assembler_name_hash
24378         (void unlink_from_assembler_name_hash (symtab_node *node, bool with_clones)):
24379           created from unlink_from_assembler_name_hash
24380         (void symtab_prevail_in_asm_name_hash (symtab_node *node)):
24381           created from symtab_prevail_in_asm_name_hash
24382         (void symtab_initialize_asm_name_hash (void)):
24383           created from symtab_initialize_asm_name_hash
24384         (void change_decl_assembler_name (tree decl, tree name)):
24385           created from change_decl_assembler_name
24386         (void materialize_all_clones (void)): created from cgraph_materialize_all_clones
24387         (static hashval_t decl_assembler_name_hash (const_tree asmname)):
24388           created from decl_assembler_name_hash
24389         (static bool decl_assembler_name_equal (tree decl, const_tree asmname)):
24390           created from decl_assembler_name_equal
24391         (static hashval_t hash_node_by_assembler_name (const void *p)):
24392           created from hash_node_by_assembler_name
24393         (static int eq_assembler_name (const void *p1, const void *p2)):
24394           created from eq_assembler_name
24395
24396 2014-08-25  Marek Polacek  <polacek@redhat.com>
24397
24398         * config/i386/i386.md (SWI1248_AVX512BW): Add missing paren.
24399
24400 2014-08-25  Petr Murzin  <petr.murzin@intel.com>
24401
24402         * config/i386/i386.md (SWI1248_AVX512BW): New mode iterator.
24403         (*k<logic><mode>): Add *k<logic>qi and *k<logic>hi and use
24404         SWI1248_AVX512BW mode iterator.
24405
24406 2014-08-25  Kaz Kojima  <kkojima@gcc.gnu.org>
24407
24408         PR target/62111
24409         * config/sh/predicates.md (general_extend_operand): Disable
24410         TRUNCATE before reload completes.
24411
24412 2014-08-24  Gerald Pfeifer  <gerald@pfeifer.com>
24413
24414         * doc/invoke.texi (Optimize Options): Fix markup in two cases.
24415
24416 2014-08-24  Oleg Endo  <olegendo@gcc.gnu.org>
24417
24418         PR target/61996
24419         * config/sh/sh.opt (musermode): Allow negative form.
24420         * config/sh/sh.c (sh_option_override): Disable TARGET_USERMODE for
24421         targets that don't support it.
24422         * doc/invoke.texi (SH Options): Rename sh-*-linux* to sh*-*-linux*.
24423         Document -mno-usermode option.
24424
24425 2014-08-24  Kito Cheng  <kito@0xlab.org>
24426
24427         * system.h (CALLER_SAVE_PROFITABLE): Poison.
24428         * regs.h (CALLER_SAVE_PROFITABLE): Remove.
24429         * doc/tm.texi.in (CALLER_SAVE_PROFITABLE): Remove.
24430         * doc/tm.texi: Regenerate.
24431
24432 2014-08-24  Kito Cheng  <kito@0xlab.org>
24433
24434         * ira.c: Fix typo in comment.
24435
24436 2014-08-23  Edward Smith-Rowland  <3dw4rd@verizon.net>
24437
24438         * doc/invoke.texi: Change c++1y to c++14 and gnu++1y to gnu++14.
24439         Deprecate c++1y. Change language to reflect greater confidence in C++14.
24440
24441 2014-08-23  John David Anglin  <danglin@gcc.gnu.org>
24442
24443         PR target/62038
24444         * config/pa/pa.c (pa_output_function_epilogue): Don't set
24445         last_address when the current function is a thunk.
24446         (pa_asm_output_mi_thunk): When we don't have named sections or they
24447         are not being used, check that thunk can reach the stub table with a
24448         short branch.
24449
24450 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24451
24452         * web.c (union_match_dups): Strengthen param "insn" from rtx to
24453         rtx_insn *.
24454         (pass_web::execute): Likewise for local "insn".
24455
24456 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24457
24458         * var-tracking.c (struct micro_operation_def): Strengthen field
24459         "insn" from rtx to rtx_insn *.
24460         (struct emit_note_data_def): Likewise.
24461         (insn_stack_adjust_offset_pre_post): Likewise for param "insn".
24462         (vt_stack_adjustments): Likewise for local "insn".
24463         (adjust_insn): Likewise for param "insn".
24464         (val_store): Likewise.
24465         (val_resolve): Likewise.
24466         (struct count_use_info): Likewise for field "insn".
24467         (log_op_type): Likewise for param "insn".
24468         (reverse_op): Likewise.
24469         (prepare_call_arguments): Likewise.
24470         (add_with_sets):  The initial param takes an insn, but we can't
24471         yet strengthen it from rtx to rtx_insn * since it's used as a
24472         cselib_record_sets_hook callback.  For now rename initial param
24473         from "insn" to "uncast_insn", and introduce a local "insn" of
24474         the stronger rtx_insn * type, with a checked cast.
24475         (compute_bb_dataflow): Strengthen local "insn" from rtx to
24476         rtx_insn *.
24477         (emit_note_insn_var_location): Likewise.
24478         (emit_notes_for_changes): Likewise.
24479         (emit_notes_for_differences): Likewise.
24480         (next_non_note_insn_var_location): Likewise for return type and
24481         for param "insn".
24482         (emit_notes_in_bb): Likewise for locals "insn" and "next_insn".
24483         (vt_initialize): Likewise for local "insn".
24484         (delete_debug_insns): Likewise for locals "insn" and "next".
24485
24486 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24487
24488         * varasm.c (mark_constants): Strengthen param "insn" from rtx to
24489         rtx_insn *.
24490         (mark_constant_pool): Likewise for local "insn".
24491
24492 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24493
24494         * valtrack.c (dead_debug_reset_uses): Strengthen local "insn" from
24495         rtx to rtx_insn *.
24496         (dead_debug_promote_uses): Likewise.
24497         (dead_debug_insert_temp): Likewise.
24498
24499 2014-08-23  David Malcolm  <dmalcolm@redhat.com>
24500
24501         * store-motion.c (store_killed_in_insn): Strengthen param "insn"
24502         from const_rtx to const rtx_insn *.
24503         (store_killed_after): Likewise.  Strengthen locals "last", "act"
24504         from rtx to rtx_insn *.
24505         (store_killed_before): Strengthen param "insn" from const_rtx to
24506         const rtx_insn *.  Strengthen local "first" from rtx to rtx_insn *.
24507         (find_moveable_store): Strengthen param "insn" from rtx to
24508         rtx_insn *.
24509         (compute_store_table): Likewise for local "insn".
24510         (insert_insn_start_basic_block): Likewise for param "insn" and
24511         locals "prev", "before", "insn".
24512         (insert_store): For now, add a checked cast to rtx_insn * on the
24513         result of gen_move_insn.
24514         (remove_reachable_equiv_notes): Strengthen local "insn" from rtx
24515         to rtx_insn *.
24516         (replace_store_insn): Likewise.  For now, add a checked cast to
24517         rtx_insn * on the result of gen_move_insn.
24518
24519 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24520
24521         * stmt.c (expand_case): Strengthen local "before_case" from rtx to
24522         rtx_insn *.
24523         (expand_sjlj_dispatch_table): Likewise.
24524
24525 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24526
24527         * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Strengthen local
24528         "insn" from rtx to rtx_insn *.
24529
24530 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24531
24532         * shrink-wrap.h (requires_stack_frame_p): Strengthen param 1
24533         "insn" from rtx to rtx_insn *.
24534         (dup_block_and_redirect): Likewise for param 3 "before".
24535
24536         * shrink-wrap.c (requires_stack_frame_p): Strengthen param "insn"
24537         from rtx to rtx_insn *.
24538         (move_insn_for_shrink_wrap): Likewise.
24539         (prepare_shrink_wrap): Likewise for locals "insn", "curr".
24540         (dup_block_and_redirect): Likewise for param "before" and local
24541         "insn".
24542         (try_shrink_wrapping): Likewise for locals "insn", "insert_point",
24543         "end".
24544         (convert_to_simple_return): Likewise for local "start".
24545
24546         * config/i386/i386.c (ix86_finalize_stack_realign_flags):
24547         Strengthen local "insn" from rtx to rtx_insn *, for use when
24548         invoking requires_stack_frame_p.
24549
24550 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24551
24552         * sel-sched-ir.c (vinsn_copy): Strengthen local "copy" from rtx to
24553         rtx_insn *.
24554         (speculate_expr): Likewise for locals "orig_insn_rtx",
24555         "spec_insn_rtx".
24556         (eq_transformed_insns): Likewise for locals "i1", "i2".
24557         (check_for_new_jump): Likewise for return type and local "end".
24558         (find_new_jump): Likewise for return type and local "jump".
24559         (sel_split_edge): Likewise for local "jump".
24560         (sel_create_recovery_block): Likewise.
24561         (sel_redirect_edge_and_branch_force): Likewise.
24562         (sel_redirect_edge_and_branch): Likewise.
24563
24564 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24565
24566         * sel-sched.c (substitute_reg_in_expr): Strengthen local
24567         "new_insn" from rtx to rtx_insn *.
24568         (create_insn_rtx_with_rhs): Likewise for return type and for local
24569         "insn_rtx".
24570         (create_insn_rtx_with_lhs): Likewise.
24571         (create_speculation_check): Likewise for local "insn_rtx".
24572         (implicit_clobber_conflict_p): Likewise for local "insn".
24573         (get_expr_cost): Likewise.
24574         (emit_bookkeeping_insn): Likewise for local "new_insn_rtx".
24575         (move_cond_jump): Likewise for locals "next", "prev", "link",
24576         "head", "from", "to".
24577
24578 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24579
24580         * sched-rgn.c (is_cfg_nonregular): Strengthen locals "insn" and
24581         "next" from rtx to rtx_insn *.
24582         (find_conditional_protection): Likewise for local "next".
24583         (is_conditionally_protected): Likewise for local "insn1".
24584         (is_pfree): Likewise for locals "insn1", "insn2".
24585
24586 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24587
24588         * sched-int.h (schedule_ebb): Strengthen params "head", "tail"
24589         from rtx to rtx_insn *.
24590
24591         * sched-ebb.c (earliest_block_with_similiar_load): Strengthen
24592         locals "insn1", "insn2" from rtx to rtx_insn *.
24593         (add_deps_for_risky_insns): Likewise for params "head", "tail" and
24594         locals "insn", "prev", "last_jump", "next_tail".
24595         (schedule_ebb): Likewise for params "head", "tail".
24596         (schedule_ebbs): Likewise for locals "tail", "head".
24597
24598         * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast
24599         to rtx_insn on "last_insn" in one of the invocations of
24600         schedule_ebb.
24601
24602 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24603
24604         * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals
24605         "elem", "insn" from rtx to rtx_insn *.
24606         (change_spec_dep_to_hard): Likewise.
24607         (get_back_and_forw_lists): Likewise for local "con".
24608         (sd_add_dep): Likewise for locals "elem", "insn".
24609         (sd_resolve_dep): Likewise for locals "pro", "con".
24610         (sd_unresolve_dep): Likewise.
24611         (sd_delete_dep): Likewise.
24612         (chain_to_prev_insn): Likewise for local "pro".
24613         (find_inc): Likewise for locals "pro", "con".
24614
24615 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24616
24617         * rtlanal.c (reg_used_between_p): Strengthen local "insn" from rtx
24618         to rtx_insn *.
24619         (reg_set_between_p): Strengthen local "insn" from const_rtx to
24620         const rtx_insn *.
24621         (modified_between_p): Strengthen local "insn" from rtx to
24622         rtx_insn *.
24623         (remove_reg_equal_equiv_notes_for_regno): Likewise.
24624         (keep_with_call_p): Strengthen local "i2" from const_rtx to
24625         const rtx_insn *.
24626
24627 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24628
24629         * resource.c (next_insn_no_annul): Strengthen local "next" from
24630         rtx to rtx_insn *.
24631         (mark_referenced_resources): Likewise for local "insn".
24632
24633 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24634
24635         * reload.h (struct insn_chain): Strengthen field "insn" from rtx
24636         to rtx_insn *.
24637         (find_reloads): Likewise for param 1.
24638         (subst_reloads): Likewise for sole param.
24639         (find_equiv_reg): Likwise for param 2.
24640         (regno_clobbered_p): Likwise for param 2.
24641         (reload): Likewise for param 1.
24642
24643         * caller-save.c (save_call_clobbered_regs): Strengthen local
24644         "insn" from rtx to rtx_insn *.
24645         (insert_one_insn): Likewise for local "insn".
24646
24647         * reload.c (this_insn): Likewise for this global.
24648         (find_reloads): Likewise for param "insn".
24649         (find_reloads_toplev): Likewise.
24650         (find_reloads_address): Likewise.
24651         (subst_reg_equivs): Likewise.
24652         (update_auto_inc_notes): Likewise.
24653         (find_reloads_address_1): Likewise.
24654         (find_reloads_subreg_address): Likewise.
24655         (subst_reloads): Likewise.
24656         (find_equiv_reg): Likewise, also for local "p".
24657         (regno_clobbered_p): Likewise for param "insn".
24658
24659         * reload1.c (reg_reloaded_insn): Likewise for the elements of this
24660         array.
24661         (spill_reg_store): Likewise for the elements of this array.
24662         (remove_init_insns): Likewise for local "equiv_insn".
24663         (will_delete_init_insn_p): Likewise for param "insn".
24664         (reload): Likewise for param ""first" and local "insn".
24665         (calculate_needs_all_insns): Strengthen local "insn" from rtx to
24666         rtx_insn *.
24667         (calculate_elim_costs_all_insns): Likewise.
24668         (delete_caller_save_insns): Likewise.
24669         (spill_failure): Likewise for param "insn".
24670         (delete_dead_insn): Likewise.
24671         (set_label_offsets): Likewise.
24672         (eliminate_regs_in_insn): Likewise, also for locals "base_insn" and
24673         "prev_insn".
24674         (elimination_costs_in_insn): Likewise for param "insn".
24675         (set_initial_eh_label_offset): Replace use of NULL_RTX with NULL
24676         when referring to an insn.
24677         (set_initial_label_offsets): Likewise.
24678         (set_offsets_for_label): Strengthen param "insn" from rtx to
24679         rtx_insn *.
24680         (init_eliminable_invariants): Likewise for param "first" and local
24681         "insn".
24682         (fixup_eh_region_note): Likewise for param "insn".
24683         (reload_as_needed): Likewise for locals "prev", "insn",
24684         "old_next", "old_prev", "next".
24685         (gen_reload_chain_without_interm_reg_p): Likewise for locals "insn",
24686         "last".
24687         (reload_inheritance_insn): Strengthen elements of this array from
24688         rtx to rtx_insn *.
24689         (failed_reload): Likewise for param "insn".
24690         (choose_reload_regs): Likewise for local "insn".  Replace use of
24691         NULL_RTX with NULL when referring to an insn.
24692         (input_reload_insns): Strengthen elements of this array from rtx
24693         to rtx_insn *.
24694         (other_input_address_reload_insns): Likewise for this global.
24695         (other_input_reload_insns): Likewise for this global.
24696         (input_address_reload_insns): Likwise for the elements of this
24697         array.
24698         (inpaddr_address_reload_insns): Likwise for the elements of this
24699         array.
24700         (output_reload_insns): Likewise for the elements of this array.
24701         (output_address_reload_insns): Likewise for the elements of this
24702         array.
24703         (outaddr_address_reload_insns): Likewise for the elements of this
24704         array.
24705         (operand_reload_insns): Likewise for this global.
24706         (other_operand_reload_insns): Likewise for this global.
24707         (other_output_reload_insns): Likewise for the elements of this
24708         array.
24709         (new_spill_reg_store): Likewise for the elements of this
24710         array.
24711         (emit_input_reload_insns): Likewise for locals "insn", "temp".
24712         Strengthen local "where" from rtx * to rtx_insn **.
24713         (emit_output_reload_insns): Strengthen locals "insn", "p", "next"
24714         from rtx to rtx_insn *.
24715         (do_input_reload): Likewise for local "insn".
24716         (do_output_reload): Likewise for local "insn".
24717         (emit_reload_insns): Likewise for locals "insn" and "store_insn".
24718         (emit_insn_if_valid_for_reload): Likewise for return type and local
24719         "last".  Add checked cast to rtx_insn when returning "insn" since
24720         this has been through emit_insn.
24721         (gen_reload): Strengthen return type and locals "last", "insn", "set"
24722         from rtx to rtx_insn *.  Add checked cast to rtx_insn when
24723         returning "insn" since it's been through
24724         emit_insn_if_valid_for_reload at this point.
24725         (delete_output_reload): Strengthen param "insn" and locals
24726         "output_reload_insn", "i2" from rtx to rtx_insn *.
24727         (delete_address_reloads): Likewise for params "dead_insn",
24728         "current_insn" and locals "prev", "next".
24729         (delete_address_reloads_1): Likewise for params "dead_insn",
24730         "current_insn" and locals "prev", "i2".
24731         (inc_for_reload): Likewise for locals "last", "add_insn".
24732         (add_auto_inc_notes): Strengthen param "insn" from rtx to
24733         rtx_insn *.
24734
24735         * config/arc/arc-protos.h (regno_clobbered_p): Likewise for 2nd
24736         param of this duplicate of the prototype from reload.h
24737
24738 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24739
24740         * regstat.c (regstat_bb_compute_ri): Strengthen local "insn" from
24741         rtx to rtx_insn *.
24742         (regstat_bb_compute_calls_crossed): Likewise.
24743
24744 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24745
24746         * regrename.c (create_new_chain): Strengthen param "insn" from rtx
24747         to rtx_insn *.
24748         (init_rename_info): Replace use of NULL_RTX with NULL when dealing
24749         with an insn.
24750         (regrename_analyze): Strengthen local "insn" from rtx to
24751         rtx_insn *.
24752         (scan_rtx_reg): Likewise for param "insn".
24753         (scan_rtx_address): Likewise.
24754         (scan_rtx): Likewise.
24755         (restore_operands): Likewise.
24756         (record_out_operands): Likewise.
24757         (build_def_use): Likewise for local "insn".  Replace use of
24758         NULL_RTX with NULL when dealing with an insn.
24759
24760 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24761
24762         * rtl.h (reg_scan): Strengthen param "f" from rtx to rtx_insn *.
24763         * reginfo.c (reg_scan): Likewise, also for local "insn".
24764         (reg_scan_mark_refs): Likewise for param "insn".
24765         (init_subregs_of_mode): Likewise for local "insn".
24766
24767 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24768
24769         * regcprop.c (struct queued_debug_insn_change): Strengthen field
24770         "insn" from rtx to rtx_insn *.
24771         (replace_oldest_value_reg): Likewise for param "insn".
24772         (replace_oldest_value_addr): Likewise.
24773         (replace_oldest_value_mem): Likewise.
24774         (apply_debug_insn_changes): Likewise for local "last_insn".
24775         (copyprop_hardreg_forward_1): Likewise for local "insn".
24776
24777 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24778
24779         * reg-stack.c (next_flags_user): Strengthen return type and param
24780         "insn" from rtx to rtx_insn *.
24781         (straighten_stack): Likewise for param "insn".
24782         (check_asm_stack_operands): Likewise.
24783         (remove_regno_note): Likewise.
24784         (emit_pop_insn): Likewise for return type, param "insn", local
24785         "pop_insn".
24786         (emit_swap_insn):  Strengthen param "insn" and locals "i1", "tmp",
24787         "limit" from rtx to rtx_insn *.
24788         (swap_to_top): Likewise for param "insn".
24789         (move_for_stack_reg): Likewise.
24790         (move_nan_for_stack_reg): Likewise.
24791         (swap_rtx_condition): Likewise.
24792         (compare_for_stack_reg): Likewise.
24793         (subst_all_stack_regs_in_debug_insn): Likewise.
24794         (subst_stack_regs_pat): Likewise, and local "insn2".
24795         (subst_asm_stack_regs): Strengthen param "insn" from rtx to
24796         rtx_insn *.
24797         (subst_stack_regs): Likewise.
24798         (change_stack): Likewise.
24799         (convert_regs_1): Likewise for locals "insn", "next".
24800
24801 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24802
24803         * ree.c (struct ext_cand): Strengthen field "insn" from rtx to
24804         rtx_insn *.
24805         (combine_set_extension): Likewise for param "curr_insn".
24806         (transform_ifelse): Likewise for param "def_insn".
24807         (get_defs): Likewise for param "def_insn".  Strengthen param "dest"
24808         from vec<rtx> * to vec<rtx_insn *> *.
24809         (is_cond_copy_insn): Likewise for param "insn".
24810         (struct ext_state): Strengthen the four vec fields from vec<rtx>
24811         to vec<rtx_insn *>.
24812         (make_defs_and_copies_lists): Strengthen param "extend_insn" and
24813         local "def_insn" from rtx to rtx_insn *.
24814         (get_sub_rtx): Likewise for param "def_insn".
24815         (merge_def_and_ext): Likewise.
24816         (combine_reaching_defs): Likewise.
24817         (add_removable_extension): Likewise for param "insn".
24818         (find_removable_extensions): Likewise for local "insn".
24819         (find_and_remove_re): Likewise for locals "curr_insn" and
24820         "def_insn".  Strengthen locals "reinsn_del_list" and
24821         "reinsn_del_list" from auto_vec<rtx> to auto_vec<rtx_insn *>.
24822
24823 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24824
24825         * recog.c (split_insn): Strengthen param "insn" and locals
24826         "first", "last" from rtx to rtx_insn *.
24827         (split_all_insns): Likewise for locals "insn", "next".
24828         (split_all_insns_noflow): Likewise.
24829
24830 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24831
24832         * rtl.h (debug_rtx_list): Strengthen param 1 "x" from const_rtx to
24833         const rtx_insn *.
24834         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24835         (debug_rtx_find): Likewise for param 1 "x".
24836
24837         * print-rtl.c (debug_rtx_list): Strengthen param 1 "x" from
24838         const_rtx to const rtx_insn *.  Likewise for local "insn".
24839         (debug_rtx_range): Likewise for params 1 and 2 "start" and "end".
24840         (debug_rtx_find): Likewise for param 1 "x".
24841         (print_rtl): Likewise for local "tmp_rtx", adding a checked cast
24842         from const_rtx to const rtx_insn * within the appropriate cases of
24843         the switch statement.
24844
24845         * config/rs6000/rs6000.c (rs6000_debug_legitimize_address):
24846         Strengthen local "insns" from rtx to rtx_insn * since this is
24847         passed to a call to debug_rtx_list.
24848
24849 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24850
24851         * predict.h (predict_insn_def): Strengthen param "insn" from rtx
24852         to rtx_insn *.
24853
24854         * function.c (stack_protect_epilogue): Add checked cast to
24855         rtx_insn for now when invoking predict_insn_def.
24856
24857         * predict.c (predict_insn): Strengthen param "insn" from rtx to
24858         rtx_insn *.
24859         (predict_insn_def): Likewise.
24860         (rtl_predict_edge): Likewise for local "last_insn".
24861         (can_predict_insn_p): Strengthen param "insn" from const_rtx to
24862         const rtx_insn *.
24863         (combine_predictions_for_insn): Strengthen param "insn" from rtx
24864         to rtx_insn *.
24865         (bb_estimate_probability_locally): Likewise for local "last_insn".
24866         (expensive_function_p): Likewise for local "insn".
24867
24868         * config/cris/cris.c (cris_emit_trap_for_misalignment): Likewise for
24869         local "jmp", since this is used when invoking predict_insn_def.
24870
24871 2014-08-22  Marek Polacek  <polacek@redhat.com>
24872
24873         PR c++/62199
24874         * doc/invoke.texi: Update -Wlogical-not-parentheses description.
24875
24876 2014-08-22  Marek Polacek  <polacek@redhat.com>
24877
24878         PR c/61271
24879         * ira-color.c (coalesced_pseudo_reg_slot_compare): Wrap LHS of
24880         a comparison in parens.
24881         * lra-spills.c (pseudo_reg_slot_compare): Wrap LHS of a comparison
24882         in parens.
24883
24884 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24885
24886         * rtl.h (fis_get_condition): Strengthen param "jump" from rtx to
24887         rtx_insn *.
24888
24889         * cprop.c (fis_get_condition): Likewise.
24890
24891         * postreload.c (reload_cse_regs): Likewise for param "first".
24892         (reload_cse_simplify): Likewise for param "insn".
24893         (reload_cse_regs_1): Likewise for local "insn".
24894         (reload_cse_simplify_set): Likewise for param "insn".
24895         (reload_cse_simplify_operands): Likewise.
24896         (struct reg_use): Likewise for field "insn".
24897         (reload_combine_purge_insn_uses): Likewise for param "insn".
24898         (fixup_debug_insns): Likewise for params "from", "to" and local
24899         "insn".
24900         (try_replace_in_use): Likewise for local "use_insn".
24901         (reload_combine_recognize_const_pattern): Likewise for param
24902         "insn" and locals "add_moved_after_insn", "use_insn".
24903         (reload_combine_recognize_pattern): Likewise for param "insn" and
24904         local "prev".
24905         (reload_combine): Likewise for locals "insn", "prev".
24906         (reload_combine_note_use): Likewise for param "insn".
24907         (move2add_use_add2_insn): Likewise.
24908         (move2add_use_add3_insn): Likewise.
24909         (reload_cse_move2add): Likewise, also for local "next".
24910         (move2add_note_store): Likewise for local "insn".
24911
24912 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24913
24914         * postreload-gcse.c (struct occr): Strengthen field "insn" from
24915         rtx to rtx_insn *.
24916         (struct unoccr): Likewise.
24917         (struct modifies_mem): Likewise.
24918         (alloc_mem): Likewise for local "insn".
24919         (insert_expr_in_table): Likewise for param "insn".
24920         (dump_expr_hash_table_entry): Likewise for local "insn".
24921         (oprs_unchanged_p): Likewise for param "insn".
24922         (load_killed_in_block_p): Likewise for local "setter".
24923         (record_last_reg_set_info): Likewise for param "insn".
24924         (record_last_reg_set_info_regno): Likewise.
24925         (record_last_mem_set_info): Likewise.
24926         (record_last_set_info): Likewise for local "last_set_insn".
24927         (record_opr_changes): Likewise for param "insn".
24928         (hash_scan_set): Likewise.
24929         (compute_hash_table): Likewise for local "insn".
24930         (get_avail_load_store_reg): Likewise for param "insn".
24931         (eliminate_partially_redundant_load): Likewise, also for locals
24932         "avail_insn", "next_pred_bb_end".  Replace use of NULL_RTX with
24933         RTX for insns.
24934         (eliminate_partially_redundant_loads): Likewise for local "insn".
24935
24936 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24937
24938         * optabs.c (expand_doubleword_shift): Strengthen local "insn" from
24939         rtx to rtx_insn *.
24940         (expand_binop): Likewise for locals "entry_last", "last", "insns"
24941         (expand_twoval_unop): Likewise for locals entry_last", "last".
24942         (expand_twoval_binop): Likewise.
24943         (expand_twoval_binop_libfunc): Likewise for local "insns".
24944         (widen_leading): Likewise for local "last".
24945         (expand_doubleword_clz): Likewise for local "seq".  Strengthen
24946         locals "hi0_label", "after_label" from rtx to rtx_code_label *.
24947         (widen_bswap): Strengthen local "last" from rtx to rtx_insn *.
24948         (expand_parity): Likewise for locals "last" and "seq".
24949         (expand_ffs): Likewise for local "seq".  Strengthen local
24950         "nonzero_label" from rtx to rtx_code_label *.
24951         (expand_absneg_bit): Strengthen local "insns" from rtx to
24952         rtx_insn *.
24953         (expand_unop_direct): Likewise for local "last".
24954         (expand_unop): Likewise for locals "last", "insns".
24955         (expand_abs_nojump): Likewise for local "last".
24956         (expand_abs): Strengthen local "op1" from rtx to rtx_code_label *.
24957         (expand_one_cmpl_abs_nojump): Strengthen local "last" from rtx to
24958         rtx_insn *.
24959         (expand_copysign_absneg): Strengthen local "label" from rtx to
24960         rtx_code_label *.
24961         (expand_copysign_bit): Strengthen local "insns" from rtx to
24962         rtx_insn *.
24963         (struct no_conflict_data): Likewise for fields "first", "insn".
24964         (emit_libcall_block_1): Likewise for param "insns" and locals
24965         "next", "last", "insn".
24966         (emit_libcall_block): For now, add a checked cast to rtx_insn *
24967         on "insns" when invoking emit_libcall_block_1.  Ultimately we
24968         want to strengthen insns itself.
24969         (prepare_cmp_insn): Strengthen local "last" from rtx to
24970         rtx_insn *.
24971         (emit_cmp_and_jump_insn_1): Likewise for local "insn".
24972         (prepare_float_lib_cmp): Likewise for local "insns".
24973         (emit_conditional_move): Likewise for local "last".
24974         (emit_conditional_add): Likewise.
24975         (have_sub2_insn): Likewise for local "seq".
24976         (expand_float): Likewise for local "insns".  Strengthen locals
24977         "label", "neglabel" from rtx to rtx_code_label *.
24978         (expand_fix): Likewise for locals "last", "insn", "insns" (to
24979         rtx_insn *) and locals "lab1", "lab2" (to rtx_code_label *).
24980         (expand_fixed_convert): Likewise for local "insns" (to
24981         rtx_insn *).
24982         (expand_sfix_optab): Likewise for local "last".
24983         (expand_compare_and_swap_loop): Strengthen local "label" from rtx
24984         to rtx_code_label *.
24985         (maybe_emit_sync_lock_test_and_set): Strengthen local "last_insn"
24986         from rtx to rtx_insn *.
24987         (expand_atomic_fetch_op): Likewise for local "insn".
24988         (maybe_legitimize_operand_same_code): Likewise for local "last".
24989         (maybe_legitimize_operands): Likewise.
24990
24991 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
24992
24993         * modulo-sched.c (struct ps_reg_move_info): Strengthen field
24994         "insn" from rtx to rtx_insn *.
24995         (ps_rtl_insn): Likewise for return type.
24996         (doloop_register_get): Likewise for params "head", "tail" and
24997         locals "insn", "first_insn_not_to_check".
24998         (schedule_reg_move): Likewise for local "this_insn".
24999         (schedule_reg_moves): Add a checked cast to rtx_insn * to result
25000         of gen_move_insn for now.
25001         (reset_sched_times): Strengthen local "insn" from rtx to
25002         rtx_insn *.
25003         (permute_partial_schedule): Likewise.
25004         (duplicate_insns_of_cycles): Likewise for local "u_insn".
25005         (dump_insn_location): Likewise for param "insn".
25006         (loop_canon_p): Likewise for local "insn".
25007         (sms_schedule): Likewise.
25008         (print_partial_schedule): Likewise.
25009         (ps_has_conflicts): Likewise.
25010
25011 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25012
25013         * sched-int.h (get_ebb_head_tail): Strengthen params "headp" and
25014         "tailp" from rtx * to rtx_insn **.
25015
25016         * ddg.c (build_intra_loop_deps): Strengthen locals head", "tail"
25017         from rtx to rtx_insn *.
25018         * haifa-sched.c (get_ebb_head_tail): Strengthen params "headp" and
25019         "tailp" from rtx * to rtx_insn **.  Strengthen locals "beg_head",
25020         "beg_tail", "end_head", "end_tail", "note", "next", "prev" from
25021         rtx to rtx_insn *.
25022         * modulo-sched.c (const_iteration_count): Strengthen return type
25023         and locals "insn", "head", "tail" from rtx to rtx_insn *.  Replace
25024         use of NULL_RTX with NULL when working with insns.
25025         (loop_single_full_bb_p): Strengthen locals "head", "tail" from rtx
25026         to rtx_insn *.
25027         (sms_schedule): Likewise.
25028         * sched-rgn.c (init_ready_list): Likewise, also for locals
25029         "src_head" and "src_next_tail".
25030         (compute_block_dependences): Likewise.
25031         (free_block_dependencies): Likewise.
25032         (debug_rgn_dependencies): Likewise.
25033         (free_rgn_deps): Likewise.
25034         (compute_priorities): Likewise.
25035         (schedule_region): Likewise.
25036         * sel-sched.c (find_ebb_boundaries): Likewise.
25037
25038         * config/sh/sh.c (find_insn_regmode_weight): Strengthen locals
25039         "insn", "next_tail", "head", "tail" from rtx to rtx_insn *.
25040
25041 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25042
25043         * mode-switching.c (struct seginfo): Strengthen field "insn_ptr"
25044         from rtx to rtx_insn *.
25045         (new_seginfo): Likewise for param "insn".
25046         (create_pre_exit): Likewise for locals "last_insn",
25047         "before_return_copy", "return_copy".
25048         (optimize_mode_switching): Likewise for locals "insn", "ins_pos",
25049         "mode_set".
25050
25051 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25052
25053         * lra-int.h (struct lra_insn_recog_data): Strengthen field "insn"
25054         from rtx to rtx_insn *.
25055         (lra_push_insn): Likewise for 1st param.
25056         (lra_push_insn_and_update_insn_regno_info): Likewise.
25057         (lra_pop_insn): Likewise for return type.
25058         (lra_invalidate_insn_data): Likewise for 1st param.
25059         (lra_set_insn_deleted): Likewise.
25060         (lra_delete_dead_insn): Likewise.
25061         (lra_process_new_insns): Likewise for first 3 params.
25062         (lra_set_insn_recog_data): Likewise for 1st param.
25063         (lra_update_insn_recog_data): Likewise.
25064         (lra_set_used_insn_alternative): Likewise.
25065         (lra_invalidate_insn_regno_info): Likewise.
25066         (lra_update_insn_regno_info): Likewise.
25067         (lra_former_scratch_operand_p): Likewise.
25068         (lra_eliminate_regs_1): Likewise.
25069         (lra_get_insn_recog_data): Likewise.
25070
25071         * lra-assigns.c (assign_by_spills): Strengthen local "insn" from
25072         rtx to rtx_insn *.
25073
25074         * lra-coalesce.c (move_freq_compare_func): Likewise for locals
25075         "mv1" and "mv2".
25076         (substitute_within_insn): New.
25077         (lra_coalesce): Strengthen locals "mv", "insn", "next" from rtx to
25078         rtx_insn *.  Strengthen sorted_moves from rtx * to rxt_insn **.
25079         Replace call to "substitute" with call to substitute_within_insn.
25080
25081         * lra-constraints.c (curr_insn): Strengthen from rtx to
25082         rtx_insn *.
25083         (get_equiv_with_elimination): Likewise for param "insn".
25084         (match_reload): Strengthen params "before" and "after" from rtx *
25085         to rtx_insn **.
25086         (emit_spill_move): Likewise for return type.  Add a checked cast
25087         to rtx_insn * on result of gen_move_insn for now.
25088         (check_and_process_move): Likewise for local "before".  Replace
25089         NULL_RTX with NULL when referring to insns.
25090         (process_addr_reg): Strengthen params "before" and "after" from
25091         rtx * to rtx_insn **.
25092         (insert_move_for_subreg): Likewise.
25093         (simplify_operand_subreg): Strengthen locals "before" and "after"
25094         from rtx to rtx_insn *.
25095         (process_address_1): Strengthen params "before" and "after" from
25096         rtx * to rtx_insn **.  Strengthen locals "insns", "last_insn" from
25097         rtx to rtx_insn *.
25098         (process_address): Strengthen params "before" and "after" from
25099         rtx * to rtx_insn **.
25100         (emit_inc): Strengthen local "last" from rtx to rtx_insn *.
25101         (curr_insn_transform): Strengthen locals "before" and "after"
25102         from rtx to rtx_insn *.  Replace NULL_RTX with NULL when referring
25103         to insns.
25104         (loc_equivalence_callback): Update cast of "data", changing
25105         resulting type from rtx to rtx_insn *.
25106         (substitute_pseudo_within_insn): New.
25107         (inherit_reload_reg): Strengthen param "insn" from rtx to
25108         rtx_insn *; likewise for local "new_insns".  Replace NULL_RTX with
25109         NULL when referring to insns.  Add a checked cast to rtx_insn *
25110         when using usage_insn to invoke lra_update_insn_regno_info.
25111         (split_reg): Strengthen param "insn" from rtx to rtx_insn *;
25112         likewise for locals "restore", "save".  Add checked casts to
25113         rtx_insn * when using usage_insn to invoke
25114         lra_update_insn_regno_info and lra_process_new_insns.  Replace
25115         NULL_RTX with NULL when referring to insns.
25116         (split_if_necessary): Strengthen param "insn" from rtx to
25117         rtx_insn *.
25118         (update_ebb_live_info): Likewise for params "head", "tail" and local
25119         "prev_insn".
25120         (get_last_insertion_point): Likewise for return type and local "insn".
25121         (get_live_on_other_edges): Likewise for local "last".
25122         (inherit_in_ebb): Likewise for params "head", "tail" and locals
25123         "prev_insn", "next_insn", "restore".
25124         (remove_inheritance_pseudos): Likewise for local "prev_insn".
25125         (undo_optional_reloads): Likewise for local "insn".
25126
25127         * lra-eliminations.c (lra_eliminate_regs_1): Likewise for param
25128         "insn".
25129         (lra_eliminate_regs): Replace NULL_RTX with NULL when referring to
25130         insns.
25131         (eliminate_regs_in_insn): Strengthen param "insn" from rtx to
25132         rtx_insn *.
25133         (spill_pseudos): Likewise for local "insn".
25134         (init_elimination): Likewise.
25135         (process_insn_for_elimination): Likewise for param "insn".
25136
25137         * lra-lives.c (curr_insn): Likewise.;
25138
25139         * lra-spills.c (assign_spill_hard_regs): Likewise for local "insn".
25140         (remove_pseudos): Likewise for param "insn".
25141         (spill_pseudos): Likewise for local "insn".
25142         (lra_final_code_change): Likewise for locals "insn", "curr".
25143
25144         * lra.c (lra_invalidate_insn_data): Likewise for param "insn".
25145         (lra_set_insn_deleted): Likewise.
25146         (lra_delete_dead_insn): Likewise, and for local "prev".
25147         (new_insn_reg): Likewise for param "insn".
25148         (lra_set_insn_recog_data): Likewise.
25149         (lra_update_insn_recog_data): Likewise.
25150         (lra_set_used_insn_alternative): Likewise.
25151         (get_insn_freq): Likewise.
25152         (invalidate_insn_data_regno_info): Likewise.
25153         (lra_invalidate_insn_regno_info): Likewise.
25154         (lra_update_insn_regno_info): Likewise.
25155         (lra_constraint_insn_stack): Strengthen from vec<rtx> to
25156         vec<rtx_insn *>.
25157         (lra_push_insn_1): Strengthen param "insn" from rtx to
25158         rtx_insn *.
25159         (lra_push_insn): Likewise.
25160         (lra_push_insn_and_update_insn_regno_info): Likewise.
25161         (lra_pop_insn): Likewise for return type and local "insn".
25162         (push_insns): Likewise for params "from", "to", and local "insn".
25163         (setup_sp_offset): Likewise for params "from", "last" and locals
25164         "before", "insn".
25165         (lra_process_new_insns): Likewise for params "insn", "before",
25166         "after" and local "last".
25167         (struct sloc): Likewise for field "insn".
25168         (lra_former_scratch_operand_p): Likewise for param "insn".
25169         (remove_scratches): Likewise for locals "insn", "last".
25170         (check_rtl): Likewise for local "insn".
25171         (add_auto_inc_notes): Likewise for param "insn".
25172         (update_inc_notes): Likewise for local "insn".
25173         (lra): Replace NULL_RTX with NULL when referring to insn.
25174
25175 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25176
25177         * lower-subreg.c (simple_move): Strengthen param "insn" from rtx
25178         to rtx_insn *.
25179         (resolve_reg_notes): Likewise.
25180         (resolve_simple_move): Likewise for return type, param "insn", and
25181         locals "insns", "minsn".
25182         (resolve_clobber): Strengthen param "insn" from rtx to rtx_insn *.
25183         (resolve_use): Likewise.
25184         (resolve_debug): Likewise.
25185         (find_decomposable_shift_zext): Likewise.
25186         (resolve_shift_zext): Likewise for return type, param "insn", and
25187         locals "insns", "in".  Eliminate use of NULL_RTX in favor of NULL.
25188         (decompose_multiword_subregs): Likewise for local "insn",
25189         "orig_insn", "decomposed_shift", "end".
25190
25191 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25192
25193         * basic-block.h (basic_block split_edge_and_insert): Strengthen
25194         param "insns" from rtx to rtx_insn *.
25195
25196         * loop-unroll.c (struct iv_to_split): Strengthen field "insn" from
25197         rtx to rtx_insn *.
25198         (struct iv_to_split): Likewise.
25199         (loop_exit_at_end_p): Likewise for local "insn".
25200         (split_edge_and_insert): Likewise for param "insns".
25201         (compare_and_jump_seq): Likewise for return type, param "cinsn",
25202         and locals "seq", "jump".
25203         (unroll_loop_runtime_iterations): Likewise for locals "init_code",
25204         "branch_code"; update invocations of compare_and_jump_seq to
25205         eliminate NULL_RTX in favor of NULL.
25206         (referenced_in_one_insn_in_loop_p): Strengthen local "insn" from
25207         rtx to rtx_insn *.
25208         (reset_debug_uses_in_loop): Likewise.
25209         (analyze_insn_to_expand_var): Likewise for param "insn".
25210         (analyze_iv_to_split_insn): Likewise.
25211         (analyze_insns_in_loop): Likewise for local "insn".
25212         (insert_base_initialization): Likewise for param
25213         "insn" and local "seq".
25214         (split_iv): Likewise for param "insn" and local "seq".
25215         (expand_var_during_unrolling): Likewise for param "insn".
25216         (insert_var_expansion_initialization): Likewise for local "seq".
25217         (combine_var_copies_in_loop_exit): Likewise.
25218         (combine_var_copies_in_loop_exit): Likewise for locals "seq" and
25219         "insn".
25220         (maybe_strip_eq_note_for_split_iv): Likewise for param "insn".
25221         (apply_opt_in_copies): Likewise for locals "insn", "orig_insn",
25222         "next".
25223
25224 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25225
25226         * cfgloop.h (iv_analyze): Strengthen param 1 "insn" from rtx to
25227         rtx_insn *.
25228         (iv_analyze_result): Likewise.
25229         (iv_analyze_expr): Likewise.
25230         (biv_p): Likewise.
25231
25232         * loop-iv.c (iv_get_reaching_def): Strengthen param "insn" and
25233         local "def_insn" from rtx to rtx_insn *.
25234         (get_biv_step_1): Likewise for local "insn".
25235         (iv_analyze_expr): Likewise for param "insn".
25236         (iv_analyze_def): Likewise for local "insn".
25237         (iv_analyze_op): Likewise for param "insn".
25238         (iv_analyze): Likewise.
25239         (iv_analyze_result): Likewise.
25240         (biv_p): Likewise.
25241         (suitable_set_for_replacement): Likewise.
25242         (simplify_using_initial_values): Likewise for local "insn".
25243         (iv_number_of_iterations): Likewise for param "insn".
25244         (check_simple_exit): Add checked cast to rtx_insn when invoking
25245         iv_number_of_iterations for now (until get_condition is
25246         strengthened).
25247
25248         * loop-unroll.c (analyze_iv_to_split_insn): Strengthen param
25249         "insn" from rtx to rtx_insn *.
25250         (analyze_insns_in_loop): Likewise for local "insn".
25251
25252 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25253
25254         * loop-invariant.c (struct use): Strengthen field "insn" from rtx
25255         to rtx_insn *.
25256         (struct invariant): Likewise.
25257         (hash_invariant_expr_1): Likewise for param "insn".
25258         (invariant_expr_equal_p): Likewise for param "insn1", "insn2".
25259         (find_exits): Likewise for local "insn".
25260         (create_new_invariant): Likewise for param "insn".
25261         (check_dependencies): Likewise.
25262         (find_invariant_insn): Likewise.
25263         (record_uses): Likewise.
25264         (find_invariants_insn): Likewise.
25265         (find_invariants_bb): Likewise for local "insn".
25266         (get_pressure_class_and_nregs): Likewise for param "insn".
25267         (calculate_loop_reg_pressure): Likewise for local "insn".
25268
25269 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25270
25271         * loop-doloop.c (doloop_valid_p): Strengthen local "insn" from rtx
25272         to rtx_insn *.
25273         (add_test): Likewise for locals "seq", "jump".
25274         (doloop_modify): Likewise for locals "sequence", "jump_insn".
25275
25276 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25277
25278         * rtl.h (rebuild_jump_labels): Strengthen param "f" from rtx to
25279         rtx_insn *.
25280         (rebuild_jump_labels_chain): Likewise for param "chain".
25281
25282         * cfgexpand.c (pass_expand::execute): Add checked cast to
25283         rtx_insn * when calling rebuild_jump_labels_chain in region where
25284         we know e->insns.r is non-NULL.
25285
25286         * jump.c (rebuild_jump_labels_1): Strengthen param "f" from rtx to
25287         rtx_insn *.
25288         (rebuild_jump_labels): Likewise.
25289         (rebuild_jump_labels_chain): Likewise for param "chain".
25290         (cleanup_barriers): Likewise for locals "insn", "next", "prev".
25291         (init_label_info): Likewise for param "f".
25292         (maybe_propagate_label_ref): Likewise for params "jump_insn",
25293         "prev_nonjump_insn".
25294         (mark_all_labels): Likewise for param "f" and locals "insn",
25295         "prev_nonjump_insn".
25296
25297 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25298
25299         * ira-int.h (struct ira_allocno_copy): Strengthen field "insn"
25300         from rtx to rtx_insn *insn.
25301         (ira_create_copy): Strengthen param "insn" from rtx to rtx_insn *.
25302         (ira_add_allocno_copy): Likewise.
25303         * ira-build.c (find_allocno_copy): Strengthen param "insn" from
25304         rtx to rtx_insn *.
25305         (ira_create_copy): Likewise.
25306         (ira_add_allocno_copy): Likewise.
25307         (create_bb_allocnos): Likewise for local "insn".
25308         * ira-conflicts.c (process_regs_for_copy): Likewise for param "insn".
25309         (process_reg_shuffles): Update NULL_RTX to NULL in invocation of
25310         process_regs_for_copy for rtx_insn * param.
25311         (add_insn_allocno_copies): Strengthen param "insn" from rtx to
25312         rtx_insn *insn.  Update NULL_RTX to NULL in invocation of
25313         process_regs_for_copy for rtx_insn * param.
25314         (add_copies): Strengthen local "insn" from rtx to rtx_insn *insn.
25315         * ira-costs.c (record_reg_classes): Likewise for param "insn".
25316         (record_operand_costs): Likewise.
25317         (scan_one_insn): Likewise for return type, and for param "insn".
25318         (process_bb_for_costs): Likewise for local "insn".
25319         (process_bb_node_for_hard_reg_moves): Likewise.
25320         * ira-emit.c (struct move): Likewise for field "insn".
25321         (create_move): Eliminate use of NULL_RTX when dealing with an
25322         rtx_insn *.
25323         (emit_move_list): Strengthen return type and locals "result",
25324         "insn" from rtx to rtx_insn *insn.
25325         (emit_moves): Likewise for locals "insns", "tmp".
25326         (ira_emit): Likewise for local "insn".
25327         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise for param
25328         "insn".
25329         (find_call_crossed_cheap_reg): Likewise.
25330         (process_bb_node_lives): Likewise for local "insn".
25331         * ira.c (decrease_live_ranges_number): Likewise.
25332         (compute_regs_asm_clobbered): Likewise.
25333         (build_insn_chain): Likewise.
25334         (find_moveable_pseudos): Likewise, also locals "def_insn",
25335         "use_insn", "x".  Also strengthen local "closest_uses" from rtx *
25336         to rtx_insn **.  Add a checked cast when assigning from
25337         "closest_use" into closest_uses array in a region where we know
25338         it's a non-NULL insn.
25339         (interesting_dest_for_shprep): Strengthen param "insn" from rtx
25340         to rtx_insn *.
25341         (split_live_ranges_for_shrink_wrap): Likewise for locals "insn",
25342         "last_interesting_insn", "uin".
25343         (move_unallocated_pseudos): Likewise for locals "def_insn",
25344         "move_insn", "newinsn".
25345
25346 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25347
25348         * internal-fn.c (ubsan_expand_si_overflow_addsub_check):
25349         Strengthen locals "done_label", "do_error" from rtx to
25350         rtx_code_label *.
25351         (ubsan_expand_si_overflow_addsub_check): Strengthen local "last"
25352         from rtx to rtx_insn *.  Strengthen local "sub_check from rtx to
25353         rtx_code_label *.
25354         (ubsan_expand_si_overflow_neg_check): Likewise for locals
25355         "done_label", "do_error" to rtx_code_label * and local  "last" to
25356         rtx_insn *.
25357         (ubsan_expand_si_overflow_mul_check): Likewise for locals
25358         "done_label", "do_error", "large_op0", "small_op0_large_op1",
25359         "one_small_one_large", "both_ops_large", "after_hipart_neg",
25360         "after_lopart_neg", "do_overflow", "hipart_different"  to
25361         rtx_code_label * and local  "last" to rtx_insn *.
25362
25363 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25364
25365         * init-regs.c (initialize_uninitialized_regs): Strengthen locals
25366         "insn" and "move_insn" from rtx to rtx_insn *.
25367
25368 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25369
25370         * ifcvt.c (count_bb_insns): Strengthen local "insn" from rtx to
25371         rtx_insn *.
25372         (cheap_bb_rtx_cost_p): Likewise.
25373         (first_active_insn): Likewise for return type and local "insn".
25374         (last_active_insn):  Likewise for return type and locals "insn",
25375         "head".
25376         (struct noce_if_info): Likewise for fields "jump", "insn_a",
25377         "insn_b".
25378         (end_ifcvt_sequence): Likewise for return type and locals "insn",
25379         "seq".
25380         (noce_try_move): Likewise for local "seq".
25381         (noce_try_store_flag): Likewise.
25382         (noce_try_store_flag_constants): Likewise.
25383         (noce_try_addcc): Likewise.
25384         (noce_try_store_flag_mask): Likewise.
25385         (noce_try_cmove): Likewise.
25386         (noce_try_minmax): Likewise.
25387         (noce_try_abs): Likewise.
25388         (noce_try_sign_mask): Likewise.
25389         (noce_try_bitop): Likewise.
25390         (noce_can_store_speculate_p): Likewise for local "insn".
25391         (noce_process_if_block): Likewise for locals "insn_a", "insn_b",
25392         seq".
25393         (check_cond_move_block): Likewise for local "insn".
25394         (cond_move_convert_if_block): Likewise.
25395         (cond_move_process_if_block): Likewise for locals "seq",
25396         "loc_insn".
25397         (noce_find_if_block): Likewise for local "jump".
25398         (merge_if_block): Likewise for local "last".
25399         (block_jumps_and_fallthru_p): Likewise for locals "insn", "end".
25400         (find_cond_trap): Likewise for locals "trap", "jump", "newjump".
25401         (block_has_only_trap): Likewise for return type and local "trap".
25402         (find_if_case_1): Likewise for local "jump".
25403         (dead_or_predicable): Likewise for locals "head", "end", "jump",
25404         "insn".
25405
25406 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25407
25408         * hw-doloop.h (struct hwloop_info_d): Strengthen fields
25409         "last_insn", "loop_end" from rtx to rtx_insn *.
25410
25411         * hw-doloop.c (scan_loop): Likewise for local "insn".
25412         (discover_loop): Likewise for param "tail_insn".
25413         (discover_loops): Likewise for local "tail".
25414
25415         * config/bfin/bfin.c (hwloop_optimize): For now, add a checked
25416         cast to rtx_insn * when assigning from an rtx local to a
25417         hwloop_info's "last_insn" field.
25418
25419 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25420
25421         * haifa-sched.c (bb_header): Strengthen from rtx * to rtx_insn **.
25422         (add_delay_dependencies): Strengthen local "pro" from rtx to
25423         rtx_insn *.
25424         (recompute_todo_spec): Likewise.
25425         (dep_cost_1): Likewise for locals "insn", "used".
25426         (schedule_insn): Likewise for local "dbg".
25427         (schedule_insn): Likewise for locals "pro", "next".
25428         (unschedule_insns_until): Likewise for local "con".
25429         (restore_pattern): Likewise for local "next".
25430         (estimate_insn_tick): Likewise for local "pro".
25431         (resolve_dependencies): Likewise for local "next".
25432         (fix_inter_tick): Likewise.
25433         (fix_tick_ready): Likewise for local "pro".
25434         (add_to_speculative_block): Likewise for locals "check", "twin",
25435         "pro".
25436         (sched_extend_bb): Likewise for locals "end", "insn".
25437         (init_before_recovery): Likewise for local "x".
25438         (sched_create_recovery_block): Likewise for local "barrier".
25439         (create_check_block_twin): Likewise for local "pro".
25440         (fix_recovery_deps): Likewise for locals "note", "insn", "jump",
25441         "consumer".
25442         (unlink_bb_notes): Update for change to type of bb_header.
25443         Strengthen locals "prev", "label", "note", "next" from rtx to
25444         rtx_insn *.
25445         (clear_priorities): Likewise for local "pro".
25446
25447 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25448
25449         * gcse.c (struct occr): Strengthen field "insn" from rtx to
25450         rtx_insn *.
25451         (test_insn): Likewise for this global.
25452         (oprs_unchanged_p): Strengthen param "insn" from const_rtx to
25453         const rtx_insn *.
25454         (oprs_anticipatable_p): Likewise.
25455         (oprs_available_p): Likewise.
25456         (insert_expr_in_table): Strengthen param "insn" from  rtx to
25457         rtx_insn *.
25458         (hash_scan_set): Likewise.
25459         (hash_scan_clobber): Likewise.
25460         (hash_scan_call): Likewise.
25461         (hash_scan_insn): Likewise.
25462         (compute_hash_table_work): Likewise for local "insn".
25463         (process_insert_insn): Likewise for return type and local "pat".
25464         (insert_insn_end_basic_block): Likewise for locals "new_insn",
25465         "pat", "pat_end", "maybe_cc0_setter".
25466         (pre_edge_insert): Likewise for local "insn".
25467         (pre_insert_copy_insn): Likewise for param "insn".
25468         (pre_insert_copies): Likewise for local "insn".
25469         (struct set_data): Likewise for field "insn".
25470         (single_set_gcse): Likewise for param "insn".
25471         (gcse_emit_move_after): Likewise.
25472         (pre_delete): Likewise for local "insn".
25473         (update_bb_reg_pressure): Likewise for param "from" and local
25474         "insn".
25475         (should_hoist_expr_to_dom): Likewise for param "from".
25476         (hoist_code): Likewise for local "insn".
25477         (get_pressure_class_and_nregs): Likewise for param "insn".
25478         (calculate_bb_reg_pressure): Likewise for local "insn".
25479         (compute_ld_motion_mems): Likewise.
25480
25481 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25482
25483         * genpeep.c (main): Rename param back from "uncast_ins1" to
25484         "ins1", strengthening from rtx to rtx_insn *.  Drop now-redundant
25485         checked cast.
25486
25487         * output.h (peephole): Strengthen param from rtx to rtx_insn *.
25488
25489 2014-08-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
25490
25491         PR target/62195
25492         * doc/md.texi (Machine Constraints): Update PowerPC wi constraint
25493         documentation to state it is only for VSX operations.
25494
25495         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Make wi
25496         constraint only active if VSX.
25497
25498         * config/rs6000/rs6000.md (lfiwax): Use wj constraint instead of
25499         wi cosntraint for ISA 2.07 lxsiwax/lxsiwzx instructions.
25500         (lfiwzx): Likewise.
25501
25502 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25503
25504         * fwprop.c (single_def_use_dom_walker::before_dom_children):
25505         Strengthen local "insn" from rtx to rtx_insn *.
25506         (use_killed_between): Likewise for param "target_insn".
25507         (all_uses_available_at): Likewise for param "target_insn" and
25508         local "next".
25509         (update_df_init): Likewise for params "def_insn", "insn".
25510         (update_df): Likewise for param "insn".
25511         (try_fwprop_subst): Likewise for param "def_insn" and local
25512         "insn".
25513         (free_load_extend): Likewise for param "insn".
25514         (forward_propagate_subreg): Likewise for param "def_insn" and
25515         local "use_insn".
25516         (forward_propagate_asm): Likewise for param "def_insn" and local
25517         "use_insn".
25518         (forward_propagate_and_simplify): Likewise for param "def_insn"
25519         and local "use_insn".
25520         (forward_propagate_into): Likewise for locals "def_insn" and
25521         "use_insn".
25522
25523 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25524
25525         * function.c (emit_initial_value_sets): Strengthen local "seq"
25526         from rtx to rtx_insn *.
25527         (instantiate_virtual_regs_in_insn): Likewise for param "insn" and
25528         local "seq".
25529         (instantiate_virtual_regs): Likewise for local "insn".
25530         (assign_parm_setup_reg): Likewise for locals "linsn", "sinsn".
25531         (reorder_blocks_1): Likewise for param "insns" and local "insn".
25532         (expand_function_end): Likewise for locals "insn" and "seq".
25533         (epilogue_done): Likewise for local "insn".
25534         (thread_prologue_and_epilogue_insns): Likewise for locals "prev",
25535         "last", "trial".
25536         (reposition_prologue_and_epilogue_notes): Likewise for locals
25537         "insn", "last", "note", "first".
25538         (match_asm_constraints_1): Likewise for param "insn" and local "insns".
25539         (pass_match_asm_constraints::execute): Likewise for local "insn".
25540
25541 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25542
25543         * output.h (final_scan_insn): Strengthen return type from rtx to
25544         rtx_insn *.
25545         (final_forward_branch_p): Likewise for param.
25546         (current_output_insn): Likewise for this global.
25547
25548         * final.c (rtx debug_insn): Likewise for this variable.
25549         (current_output_insn): Likewise.
25550         (get_attr_length_1): Rename param "insn" to "uncast_insn",
25551         adding "insn" back in as an rtx_insn * with a checked cast, so
25552         that macro ADJUST_INSN_LENGTH can be passed an rtx_insn * as the
25553         first param.
25554         (compute_alignments): Strengthen local "label" from rtx to
25555         rtx_insn *.
25556         (shorten_branches): Rename param from "first" to "uncast_first",
25557         introducing a new local rtx_insn * "first" using a checked cast to
25558         effectively strengthen "first" from rtx to rtx_insn * without
25559         affecting the type signature.  Strengthen locals "insn", "seq",
25560         "next", "label" from rtx to rtx_insn *.
25561         (change_scope): Strengthen param "orig_insn" and local "insn" from
25562         rtx to rtx_insn *.
25563         (final_start_function): Rename param from "first" to "uncast_first",
25564         introducing a new local rtx_insn * "first" using a checked cast to
25565         effectively strengthen "first" from rtx to rtx_insn * without
25566         affecting the type signature.  Strengthen local "insn" from rtx to
25567         rtx_insn *.
25568         (dump_basic_block_info): Strengthen param "insn" from rtx to
25569         rtx_insn *.
25570         (final): Rename param from "first" to "uncast_first",
25571         introducing a new local rtx_insn * "first" using a checked cast to
25572         effectively strengthen "first" from rtx to rtx_insn * without
25573         affecting the type signature.  Strengthen locals "insn", "next"
25574         from rtx to rtx_insn *.
25575         (output_alternate_entry_point): Strengthen param "insn" from rtx to
25576         rtx_insn *.
25577         (call_from_call_insn): Strengthen param "insn" from rtx to
25578         rtx_call_insn *.
25579         (final_scan_insn): Rename param from "insn" to "uncast_insn",
25580         introducing a new local rtx_insn * "insn" using a checked cast to
25581         effectively strengthen "insn" from rtx to rtx_insn * without
25582         affecting the type signature.  Strengthen return type and locals
25583         "next", "note", "prev", "new_rtx" from rtx to rtx_insn *.  Remove
25584         now-redundant checked cast to rtx_insn * from both invocations of
25585         debug_hooks->var_location.  Convert CALL_P into a dyn_cast,
25586         introducing a local "call_insn" for use when invoking
25587         call_from_call_insn.
25588         (notice_source_line): Strengthen param "insn" from rtx to
25589         rtx_insn *.
25590         (leaf_function_p): Likewise for local "insn".
25591         (final_forward_branch_p): Likewise.
25592         (leaf_renumber_regs): Likewise for param "first".
25593         (rest_of_clean_state): Likewise for locals "insn" and "next".
25594         (self_recursive_call_p): Likewise for param "insn".
25595         (collect_fn_hard_reg_usage): Likewise for local "insn".
25596         (get_call_fndecl): Likewise for param "insn".
25597         (get_call_cgraph_rtl_info): Likewise.
25598         (get_call_reg_set_usage): Rename param from "insn" to "uncast_insn",
25599         introducing a new local rtx_insn * "insn" using a checked cast to
25600         effectively strengthen "insn" from rtx to rtx_insn * without
25601         affecting the type signature.
25602
25603         * config/arc/arc.c (arc_final_prescan_insn): For now, add checked
25604         cast when assigning from param "insn" to current_output_insn.
25605         (arc_pad_return): Strengthen local "insn" from rtx to rtx_insn *
25606         so that we can assign it back to current_output_insn.
25607
25608 2014-08-20  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25609
25610         * config/avr/avr-mcus.def: Remove atmega26hvg, atmega64rfa2,
25611         atmega48hvf, atxmega32x1, atmxt224, atmxt224e, atmxt336s,
25612         atmxt540s and atmxt540sreva devices.
25613         * config/avr/avr-tables.opt: Regenerate.
25614         * config/avr/t-multilib: Regenerate.
25615         * doc/avr-mmcu.texi: Regenerate.
25616
25617 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25618
25619         * expr.c (convert_move): Strengthen local "insns" from rtx to
25620         rtx_insn *.
25621         (emit_block_move_via_loop): Strengthen locals "cmp_label" and
25622         "top_label" from rtx to rtx_code_label *.
25623         (move_block_to_reg): Strengthen local "insn", "last" from rtx to
25624         rtx_insn *.
25625         (emit_single_push_insn): Likewise for locals "prev", "last".
25626         (store_expr): Strengthen locals "lab1", "lab2", "label" from rtx
25627         to rtx_code_label *.
25628         (store_constructor): Likewise for locals "loop_start", "loop_end".
25629         (expand_cond_expr_using_cmove): Strengthen local "seq" from rtx to
25630         rtx_insn *.
25631         (expand_expr_real_2): Likewise.
25632         (expand_expr_real_1): Strengthen local "label" from rtx to
25633         rtx_code_label *.
25634
25635 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25636
25637         * expmed.c (store_bit_field_using_insv): Strengthen local "last"
25638         from rtx to rtx_insn *.
25639         (store_bit_field_1): Likewise.
25640         (extract_bit_field_1): Likewise.
25641         (expand_mult_const): Likewise for local "insns".
25642         (expmed_mult_highpart): Strengthen local "label" from rtx to
25643         rtx_code_label *.
25644         (expand_smod_pow2): Likewise.
25645         (expand_sdiv_pow2): Likewise.
25646         (expand_divmod): Strengthen locals "last", "insn" from rtx to
25647         rtx_insn *.  Strengthen locals "label", "label1", "label2",
25648         "label3", "label4", "label5", "lab" from rtx to rtx_code_label *.
25649         (emit_cstore): Strengthen local "last" from rtx to rtx_insn *.
25650         (emit_store_flag): Likewise.
25651         (emit_store_flag_force): Strengthen local "label" from rtx to
25652         rtx_code_label *.
25653         (do_cmp_and_jump): Likewise for param "label".
25654
25655 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25656
25657         * explow.c (force_reg): Strengthen local "insn" from rtx to
25658         rtx_insn *.
25659         (adjust_stack_1): Likewise.
25660         (allocate_dynamic_stack_space): Likewise.  Strengthen locals
25661         "final_label", "available_label", "space_available" from rtx to
25662         rtx_code_label *.
25663         (probe_stack_range): Likewise for locals "loop_lab", "end_lab".
25664         (anti_adjust_stack_and_probe): Likewise.
25665
25666 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25667
25668         * except.h (sjlj_emit_function_exit_after): Strengthen param
25669         "after" from rtx to rtx_insn *.  This is only called with
25670         result of get_last_insn (in function.c) so type-change should be
25671         self-contained.
25672
25673         * function.h (struct rtl_eh): Strengthen field "ehr_label" from
25674         rtx to rtx_code_label *, and field "sjlj_exit_after" from rtx
25675         to rtx_insn *.  These fields are only used from except.c so this
25676         type-change should be self-contained to this patch.
25677
25678         * except.c (emit_to_new_bb_before): Strengthen param "seq" and
25679         local "last" from rtx to rtx_insn *.
25680         (dw2_build_landing_pads): Likewise for local "seq".
25681         (sjlj_mark_call_sites): Likewise for locals "insn", "before", p".
25682         (sjlj_emit_function_enter): Strengthen param "dispatch_label" from
25683         rtx to rtx_code_label *.  Strengthen locals "fn_begin", "seq" from
25684         rtx to rtx_insn *.
25685         (sjlj_emit_function_exit_after): Strengthen param "after" from rtx
25686         to rtx_insn *.
25687         (sjlj_emit_function_exit): Likewise for locals "seq", "insn".
25688         (sjlj_emit_dispatch_table): Likewise for locals "seq", "seq2".
25689         (sjlj_build_landing_pads): Replace NULL_RTX with NULL when
25690         referring to an insn.  Strengthen local "dispatch_label" from
25691         rtx to rtx_code_label *.
25692         (set_nothrow_function_flags): Strengthen local "insn" from rtx to
25693         rtx_insn *.
25694         (expand_eh_return): Strengthen local "around_label" from
25695         rtx to rtx_code_label *.
25696         (convert_to_eh_region_ranges): Strengthen locals "iter",
25697         "last_action_insn", "first_no_action_insn",
25698         "first_no_action_insn_before_switch",
25699         "last_no_action_insn_before_switch", from rtx to rtx_insn *.
25700
25701 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25702
25703         * dwarf2out.c (last_var_location_insn): Strengthen this variable
25704         from rtx to rtx_insn *.
25705         (cached_next_real_insn): Likewise.
25706         (dwarf2out_end_epilogue): Replace use of NULL_RTX with NULL when
25707         working with insns.
25708         (dwarf2out_var_location): Strengthen locals "next_real",
25709         "next_note", "expected_next_loc_note", "last_start", "insn" from
25710         rtx to rtx_insn *.
25711
25712 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25713
25714         * dwarf2cfi.c (add_cfis_to_fde): Strengthen locals "insn", "next"
25715         from rtx to rtx_insn *.
25716         (create_pseudo_cfg): Likewise for local "insn".
25717
25718 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25719
25720         * df-core.c (df_bb_regno_first_def_find): Strengthen local "insn"
25721         from rtx to rtx_insn *.
25722         (df_bb_regno_last_def_find): Likewise.
25723
25724         * df-problems.c (df_rd_bb_local_compute): Likewise.
25725         (df_lr_bb_local_compute): Likewise.
25726         (df_live_bb_local_compute): Likewise.
25727         (df_chain_remove_problem): Likewise.
25728         (df_chain_create_bb): Likewise.
25729         (df_word_lr_bb_local_compute): Likewise.
25730         (df_remove_dead_eq_notes): Likewise for param "insn".
25731         (df_note_bb_compute): Likewise for local "insn".
25732         (simulate_backwards_to_point): Likewise.
25733         (df_md_bb_local_compute): Likewise.
25734
25735         * df-scan.c (df_scan_free_bb_info): Likewise.
25736         (df_scan_start_dump): Likewise.
25737         (df_scan_start_block): Likewise.
25738         (df_install_ref_incremental): Likewise for local "insn".
25739         (df_insn_rescan_all): Likewise.
25740         (df_reorganize_refs_by_reg_by_insn): Likewise.
25741         (df_reorganize_refs_by_insn_bb): Likewise.
25742         (df_recompute_luids): Likewise.
25743         (df_bb_refs_record): Likewise.
25744         (df_update_entry_exit_and_calls): Likewise.
25745         (df_bb_verify): Likewise.
25746
25747 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25748
25749         * ddg.h (struct ddg_node): Strengthen fields "insn" and
25750         "first_note" from rtx to rtx_insn *.
25751         (get_node_of_insn): Likewise for param 2 "insn".
25752         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25753
25754         * ddg.c (mem_read_insn_p): Strengthen param "insn" from rtx to
25755         rtx_insn *.
25756         (mem_write_insn_p): Likewise.
25757         (mem_access_insn_p): Likewise.
25758         (autoinc_var_is_used_p): Likewise for params "def_insn" and "use_insn".
25759         (def_has_ccmode_p): Likewise for param "insn".
25760         (add_cross_iteration_register_deps): Likewise for locals
25761         "def_insn" and "use_insn".
25762         (insns_may_alias_p): Likewise for params "insn1" and "insn2".
25763         (build_intra_loop_deps): Likewise for local "src_insn".
25764         (create_ddg): Strengthen locals "insn" and "first_note" from rtx
25765         to rtx_insn *.
25766         (get_node_of_insn): Likewise for param "insn".
25767
25768 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25769
25770         * dce.c (worklist): Strengthen from vec<rtx> to vec<rtx_insn *>.
25771         (deletable_insn_p): Strengthen param "insn" from rtx to
25772         rtx_insn *.  Add checked cast to rtx_call_insn when invoking
25773         find_call_stack_args, since this is guarded by CALL_P (insn).
25774         (marked_insn_p): Strengthen param "insn" from rtx to
25775         rtx_insn *.
25776         (mark_insn): Likewise.  Add checked cast to rtx_call_insn when
25777         invoking find_call_stack_args, since this is guarded by
25778         CALL_P (insn).
25779         (mark_nonreg_stores_1): Strengthen cast of "data" from rtx to
25780         rtx_insn *; we know this is an insn since this was called by
25781         mark_nonreg_stores.
25782         (mark_nonreg_stores_2): Likewise.
25783         (mark_nonreg_stores): Strengthen param "insn" from rtx to
25784         rtx_insn *.
25785         (find_call_stack_args): Strengthen param "call_insn" from rtx to
25786         rtx_call_insn *; strengthen locals "insn" and "prev_insn" from rtx
25787         to rtx_insn *.
25788         (remove_reg_equal_equiv_notes_for_defs): Strengthen param "insn"
25789         from rtx to rtx_insn *.
25790         (reset_unmarked_insns_debug_uses): Likewise for locals "insn",
25791         "next", "ref_insn".
25792         (delete_unmarked_insns): Likewise for locals "insn", "next".
25793         (prescan_insns_for_dce): Likewise for locals "insn", "prev".
25794         (mark_reg_dependencies): Likewise for param "insn".
25795         (rest_of_handle_ud_dce): Likewise for local "insn".
25796         (word_dce_process_block): Likewise.
25797         (dce_process_block): Likewise.
25798
25799 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25800
25801         * cse.c (struct qty_table_elem): Strengthen field "const_insn"
25802         from rtx to rtx_insn *.
25803         (struct change_cc_mode_args): Likewise for field "insn".
25804         (this_insn): Strengthen from rtx to rtx_insn *.
25805         (make_new_qty): Replace use of NULL_RTX with NULL when dealing
25806         with insn.
25807         (validate_canon_reg): Strengthen param "insn" from rtx to
25808         rtx_insn *.
25809         (canon_reg): Likewise.
25810         (fold_rtx): Likewise.  Replace use of NULL_RTX with NULL when
25811         dealing with insn.
25812         (record_jump_equiv): Strengthen param "insn" from rtx to
25813         rtx_insn *.
25814         (try_back_substitute_reg): Likewise, also for locals "prev",
25815         "bb_head".
25816         (find_sets_in_insn): Likewise for param "insn".
25817         (canonicalize_insn): Likewise.
25818         (cse_insn): Likewise.  Add a checked cast.
25819         (invalidate_from_clobbers): Likewise for param "insn".
25820         (invalidate_from_sets_and_clobbers): Likewise.
25821         (cse_process_notes_1): Replace use of NULL_RTX with NULL when
25822         dealing with insn.
25823         (cse_prescan_path): Strengthen local "insn" from rtx to
25824         rtx_insn *.
25825         (cse_extended_basic_block): Likewise for locals "insn" and
25826         "prev_insn".
25827         (cse_main): Likewise for param "f".
25828         (check_for_label_ref): Likewise for local "insn".
25829         (set_live_p): Likewise for second param ("insn").
25830         (insn_live_p): Likewise for first param ("insn") and for local
25831         "next".
25832         (cse_change_cc_mode_insn): Likewise for first param "insn".
25833         (cse_change_cc_mode_insns): Likewise for first and second params
25834         "start" and "end".
25835         (cse_cc_succs): Likewise for locals "insns", "last_insns", "insn"
25836         and "end".
25837         (cse_condition_code_reg): Likewise for locals "last_insn", "insn",
25838         "cc_src_insn".
25839
25840 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25841             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25842             Anna Tikhonova  <anna.tikhonova@intel.com>
25843             Ilya Tocar  <ilya.tocar@intel.com>
25844             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25845             Ilya Verbin  <ilya.verbin@intel.com>
25846             Kirill Yukhin  <kirill.yukhin@intel.com>
25847             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25848
25849         * config/i386/subst.md (define_subst_attr "mask_avx512bw_condition"):
25850         New.
25851         * config/i386/sse.md
25852         (define_mode_iterator VI248_AVX2): Delete.
25853         (define_mode_iterator VI2_AVX2_AVX512BW): New.
25854         (define_mode_iterator VI48_AVX2): Ditto.
25855         (define_insn <shift_insn><mode>3): Delete.
25856         (define_insn "<shift_insn><mode>3<mask_name>" with
25857         VI2_AVX2_AVX512BW): New.
25858         (define_insn "<shift_insn><mode>3<mask_name>" with
25859         VI48_AVX2): Ditto.
25860
25861 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25862             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25863             Anna Tikhonova  <anna.tikhonova@intel.com>
25864             Ilya Tocar  <ilya.tocar@intel.com>
25865             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25866             Ilya Verbin  <ilya.verbin@intel.com>
25867             Kirill Yukhin  <kirill.yukhin@intel.com>
25868             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25869
25870         * config/i386/sse.md
25871         (define_mode_iterator VI4F_BRCST32x2): New.
25872         (define_mode_attr 64x2_mode): Ditto.
25873         (define_mode_attr 32x2mode): Ditto.
25874         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"
25875         with VI4F_BRCST32x2): Ditto.
25876         (define_insn "<mask_codefor>avx512vl_broadcast<mode><mask_name>_1"
25877         with V16FI mode iterator): Ditto.
25878         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25879         with V16FI): Ditto.
25880         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>_1"
25881         with VI8F_BRCST64x2): Ditto.
25882
25883 2014-08-22  Alexander Ivchenko  <alexander.ivchenko@intel.com>
25884             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
25885             Anna Tikhonova  <anna.tikhonova@intel.com>
25886             Ilya Tocar  <ilya.tocar@intel.com>
25887             Andrey Turetskiy  <andrey.turetskiy@intel.com>
25888             Ilya Verbin  <ilya.verbin@intel.com>
25889             Kirill Yukhin  <kirill.yukhin@intel.com>
25890             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
25891
25892         * config/i386/sse.md
25893         (define_mode_iterator VI8_AVX512VL): New.
25894         (define_insn "avx512cd_maskb_vec_dup<mode>"): Macroize.
25895
25896 2014-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
25897
25898         * gcc/config/i386/sse.md (define_mode_iterator V_AVX512VL): Delete.
25899         (define_mode_iterator V48_AVX512VL): New.
25900         (define_mode_iterator V12_AVX512VL): Ditto.
25901         (define_insn <avx512>_load<mode>_mask): Split into two similar
25902         patterns which use different mode iterators: V48_AVX512VL V12_AVX512VL.
25903         Refactor output template.
25904         (define_insn "<avx512>_store<mode>_mask"): Ditto.
25905
25906 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25907
25908         * cprop.c (struct occr): Strengthen field "insn" from rtx to
25909         rtx_insn *.
25910         (reg_available_p): Likewise for param "insn".
25911         (insert_set_in_table): Likewise.
25912         (hash_scan_set): Likewise.
25913         (hash_scan_insn): Likewise.
25914         (make_set_regs_unavailable): Likewise.
25915         (compute_hash_table_work): Likewise for local "insn".
25916         (reg_not_set_p): Strengthen param "insn" from const_rtx to
25917         const rtx_insn *.
25918         (mark_oprs_set): Strengthen param "insn" from rtx to rtx_insn *.
25919         (try_replace_reg): Likewise.
25920         (find_avail_set): Likewise.
25921         (cprop_jump): Likewise for params "setcc", "jump".
25922         (constprop_register): Likewise for param "insn".
25923         (cprop_insn): Likewise.
25924         (do_local_cprop): Likewise.
25925         (local_cprop_pass): Likewise for local "insn".
25926         (bypass_block): Likewise for params "setcc" and "jump".
25927         (bypass_conditional_jumps): Likewise for locals "setcc" and
25928         "insn".
25929         (one_cprop_pass): Likewise for local "insn".
25930
25931 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25932
25933         * compare-elim.c (struct comparison_use): Strengthen field "insn"
25934         from rtx to rtx_insn *.
25935         (struct comparison): Likewise, also for field "prev_clobber".
25936         (conforming_compare): Likewise for param "insn".
25937         (arithmetic_flags_clobber_p): Likewise.
25938         (find_flags_uses_in_insn): Likewise.
25939         (find_comparison_dom_walker::before_dom_children): Likewise for
25940         locals "insn", "next", "last_clobber".
25941         (try_eliminate_compare): Likewise for locals "insn", "bb_head".
25942
25943 2014-08-22  David Malcolm  <dmalcolm@redhat.com>
25944
25945         * combine-stack-adj.c (struct csa_reflist): Strengthen field
25946         "insn" from rtx to rtx_insn *.
25947         (single_set_for_csa): Likewise for param "insn".
25948         (record_one_stack_ref): Likewise.
25949         (try_apply_stack_adjustment): Likewise.
25950         (struct record_stack_refs_data): Likewise for field "insn".
25951         (maybe_move_args_size_note): Likewise for params "last" and "insn".
25952         (prev_active_insn_bb): Likewise for return type and param "insn".
25953         (next_active_insn_bb): Likewise.
25954         (force_move_args_size_note): Likewise for params "prev" and "last"
25955         and locals "test", "next_candidate", "prev_candidate".
25956         (combine_stack_adjustments_for_block): Strengthen locals
25957         "last_sp_set", "last2_sp_set", "insn", "next" from rtx to
25958         rtx_insn *.
25959
25960 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
25961
25962         * combine.c (i2mod): Strengthen this variable from rtx to rtx_insn *.
25963         (struct reg_stat_struct): Likewise for fields "last_death", "last_set".
25964         (subst_insn): Likewise for this variable.
25965         (added_links_insn): Likewise.
25966         (struct insn_link): Likewise for field "insn".
25967         (alloc_insn_link): Likewise for param "insn".
25968         (struct undobuf): Likewise for field "other_insn".
25969         (find_single_use): Likewise for param "insn" and local "next".
25970         (combine_validate_cost): Likewise for params "i0", "i1", "i2", "i3".
25971         (delete_noop_moves): Likewise for locals "insn", "next".
25972         (create_log_links): Likewise for locals "insn", "use_insn".
25973         Strengthen local "next_use" from rtx * to rtx_insn **.
25974         (insn_a_feeds_b): Likewise for params "a", "b".
25975         (combine_instructions): Likewise for param "f" and locals "insn",
25976         "next", "prev", "first", "last_combined_insn", "link", "link1",
25977         "temp".  Replace use of NULL_RTX with NULL when referring to
25978         insns.
25979         (setup_incoming_promotions): Likewise for param "first"
25980         (set_nonzero_bits_and_sign_copies): Likewise for local "insn".
25981         (can_combine_p): Likewise for params "insn", "i3", "pred",
25982         "pred2", "succ", "succ2" and for local "p".
25983         (combinable_i3pat): Likewise for param "i3".
25984         (cant_combine_insn_p): Likewise for param "insn".
25985         (likely_spilled_retval_p): Likewise.
25986         (adjust_for_new_dest): Likewise.
25987         (update_cfg_for_uncondjump): Likewise, also for local "insn".
25988         (try_combine): Likewise for return type and for params "i3", "i2",
25989         "i1", "i0", "last_combined_insn", and for locals "insn",
25990         "cc_use_insn", "p", "first", "last", "i2_insn", "i1_insn",
25991         "i0_insn".  Eliminate local "tem" in favor of new locals
25992         "tem_note" and "tem_insn", the latter being an rtx_insn *.  Add a
25993         checked cast for now to rtx_insn * on the return type of
25994         gen_rtx_INSN.  Replace use of NULL_RTX with NULL when referring to
25995         insns.
25996         (find_split_point): Strengthen param "insn" from rtx to
25997         rtx_insn *.
25998         (simplify_set): Likewise for local "other_insn".
25999         (recog_for_combine): Likewise for param "insn".
26000         (record_value_for_reg): Likewise.
26001         (record_dead_and_set_regs_1): Likewise for local
26002         "record_dead_insn".
26003         (record_dead_and_set_regs): Likewise for param "insn".
26004         (record_promoted_value): Likewise.
26005         (check_promoted_subreg): Likewise.
26006         (get_last_value_validate): Likewise.
26007         (reg_dead_at_p): Likewise.
26008         (move_deaths): Likewise for param "to_insn".
26009         (distribute_notes): Likewise for params "from_insn", "i3", "i2"
26010         and locals "place", "place2", "cc0_setter".  Eliminate local "tem
26011         in favor of new locals "tem_note" and "tem_insn", the latter being
26012         an rtx_insn *.
26013         (distribute_links): Strengthen locals "place", "insn" from rtx to
26014         rtx_insn *.
26015
26016 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26017
26018         * cfgrtl.c (can_delete_note_p): Require a const rtx_note * rather
26019         than a const_rtx.
26020         (can_delete_label_p): Require a const rtx_code_label * rather than
26021         a const_rtx.
26022         (delete_insn): Add checked cast to rtx_code_label * when we know
26023         we're dealing with LABEL_P (insn).  Strengthen local "bb_note" from
26024         rtx to rtx_insn *.
26025         (delete_insn_chain): Strengthen locals "prev" and "current" from
26026         rtx to rtx_insn *.  Add a checked cast when assigning from
26027         "finish" (strengthening the params will come later).  Add a
26028         checked cast to rtx_note * in region where we know
26029         NOTE_P (current).
26030         (rtl_delete_block): Strengthen locals "insn" and "end" from rtx to
26031         rtx_insn *.
26032         (compute_bb_for_insn): Likewise.
26033         (free_bb_for_insn): Likewise for local "insn".
26034         (compute_bb_for_insn): Likewise.
26035         (update_bb_for_insn_chain): Strengthen params "begin", "end" and
26036         local "insn" from rtx to rtx_insn *
26037         (flow_active_insn_p): Require a const rtx_insn * rather than a
26038         const_rtx.
26039         (contains_no_active_insn_p): Strengthen local "insn" from rtx to
26040         rtx_insn *.
26041         (can_fallthru): Likewise for locals "insn" and "insn2".
26042         (bb_note): Likewise for local "note".
26043         (first_insn_after_basic_block_note): Likewise for local "note" and
26044         for return type.
26045         (rtl_split_block): Likewise for locals "insn" and "next".
26046         (unique_locus_on_edge_between_p): Likewise for locals "insn" and
26047         "end".
26048         (rtl_merge_blocks): Likewise for locals "b_head", "b_end",
26049         "a_end", "del_first", "del_last", "b_debug_start", "b_debug_end",
26050         "prev", "tmp".
26051         (try_redirect_by_replacing_jump): Likewise for locals "insn" (both of
26052         them), "kill_from", "barrier", "new_insn".
26053         (patch_jump_insn): Likewise for params "insn", "old_label".
26054         (redirect_branch_edge): Likewise for locals "old_label", "insn".
26055         (force_nonfallthru_and_redirect): Likewise for locals "insn",
26056         "old_label", "new_label".
26057         (rtl_tidy_fallthru_edge): Likewise for local "q".
26058         (rtl_split_edge): Likewise for locals "before", "last".
26059         (commit_one_edge_insertion): Likewise for locals "before",
26060         "after", "insns", "tmp", "last", adding a checked cast where
26061         currently necessary.
26062         (commit_edge_insertions): Likewise.
26063         (rtl_dump_bb): Likewise for locals "insn", "last".
26064         (print_rtl_with_bb): Likewise for local "x".
26065         (rtl_verify_bb_insns): Likewise for local "x".
26066         (rtl_verify_bb_pointers): Likewise for local "insn".
26067         (rtl_verify_bb_insn_chain): Likewise for locals "x", "last_head",
26068         "head", "end".
26069         (rtl_verify_fallthru): Likewise for local "insn".
26070         (rtl_verify_bb_layout): Likewise for locals "x" and "rtx_first".
26071         (purge_dead_edges): Likewise for local "insn".
26072         (fixup_abnormal_edges): Likewise for locals "insn", "stop", "next".
26073         (skip_insns_after_block): Likewise for return type and for locals
26074         "insn", "last_insn", "next_head", "prev".
26075         (record_effective_endpoints): Likewise for locals "next_insn",
26076         "insn", "end".
26077         (fixup_reorder_chain): Likewise for locals "bb_end_insn" and "end".
26078         (verify_insn_chain): Likewise for locals "x", "prevx", "nextx".
26079         (cfg_layout_can_duplicate_bb_p): Likewise for local "insn".
26080         (duplicate_insn_chain): For now, add checked cast from rtx to
26081         rtx_insn * when returning insn.
26082         (cfg_layout_duplicate_bb): Likewise for local "insn".
26083         (cfg_layout_delete_block): Likewise for locals "insn", "next",
26084         "prev", "remaints".
26085         (cfg_layout_merge_blocks): Likewise for local "insn", "last".
26086         (rtl_block_empty_p): Likewise.
26087         (rtl_split_block_before_cond_jump): Likewise for locals "insn",
26088         "split_point", "last".
26089         (rtl_block_ends_with_call_p): Likewise for local "insn".
26090         (need_fake_edge_p): Strengthen param "insn" from const_rtx to
26091         const rtx_insn *.
26092         (rtl_flow_call_edges_add): Strengthen locals "insn", "prev_insn",
26093         "split_at_insn" from rtx to rtx_insn *.
26094         (rtl_lv_add_condition_to_bb): Likewise for locals "seq", "jump".
26095         (rtl_can_remove_branch_p): Strengthen local "insn" from const_rtx
26096         to const rtx_insn *.
26097         (rtl_account_profile_record): Likewise.
26098
26099 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26100
26101         * cfgloopanal.c (num_loop_insns): Strengthen local "insn" from
26102         rtx to rtx_insn *.
26103         (average_num_loop_insns): Likewise.
26104         (init_set_costs): Likewise for local "seq".
26105         (seq_cost): Likewise for param "seq", from const_rtx to const
26106         rtx_insn *.
26107
26108 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26109
26110         * cfgloop.c (loop_exits_from_bb_p): Strengthen local "insn" from
26111         rtx to rtx_insn *.
26112
26113 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26114
26115         * basic-block.h (flow_find_cross_jump): Strengthen params 3 and 4
26116         "f1" and "f2" from rtx * to rtx_insn **.
26117         (flow_find_head_matching_sequence): Likewise.
26118
26119         * cfgcleanup.c (try_simplify_condjump): Strengthen local
26120         "cbranch_insn" from rtx to rtx_insn *.
26121         (thread_jump): Likewise for local "insn".
26122         (try_forward_edges): Likewise for local "last".
26123         (merge_blocks_move_predecessor_nojumps): Likewise for local "barrier".
26124         (merge_blocks_move_successor_nojumps): Likewise for locals "barrier",
26125         "real_b_end".
26126         (can_replace_by): Likewise for params "i1", "i2".
26127         (old_insns_match_p): Likewise.
26128         (merge_notes): Likewise.
26129         (walk_to_nondebug_insn): Likewise for param "i1".
26130         (flow_find_cross_jump): Strengthen params "f1" and "f2" from rtx *
26131         to rtx_insn **.  Strengthen locals "i1", "i2", "last1", "last2",
26132         "afterlast1", "afterlast2" from rtx to rtx_insn *.
26133         (flow_find_head_matching_sequence): Strengthen params "f1" and
26134         "f2" from rtx * to rtx_insn **.  Strengthen locals "i1", "i2",
26135         "last1", "last2", "beforelast1", "beforelast2" from rtx to
26136         rtx_insn *.
26137         (outgoing_edges_match): Likewise for locals "last1", "last2".
26138         (try_crossjump_to_edge): Likewise for local "insn".
26139         Replace call to for_each_rtx with for_each_rtx_in_insn.
26140
26141         (try_crossjump_to_edge): Likewise for locals "newpos1", "newpos2".
26142         (try_head_merge_bb): Likewise for locals "e0_last_head_, "jump",
26143         "e0_last", "e_last", "head", "curr", "insn".  Strengthen locals
26144         "headptr", "currptr", "nextptr" from rtx * to rtx_insn **.
26145         (try_optimize_cfg): Strengthen local "last" from rtx to
26146         rtx_insn *.
26147         (delete_dead_jumptables): Likewise for locals "insn", "next",
26148         "label".
26149
26150         * ifcvt.c (cond_exec_process_if_block): Likewise for locals
26151         "rtx then_last_head", "rtx else_last_head", "rtx then_first_tail",
26152         "rtx else_first_tail", to reflect the basic-block.h changes above.
26153
26154 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26155
26156         * cfgbuild.c (make_edges): Strengthen local "insn" from rtx to
26157         rtx_insn *.
26158         (purge_dead_tablejump_edges): Likewise.
26159         (find_bb_boundaries): Likewise for locals "insn", "end",
26160         "flow_transfer_insn".
26161
26162 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26163
26164         * caller-save.c (save_call_clobbered_regs): Strengthen locals
26165         "ins" and "prev" from rtx to rtx_insn *.
26166
26167 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26168
26169         * calls.c (emit_call_1): Strengthen local "call_insn" from rtx to
26170         rtx_insn *.
26171         (internal_arg_pointer_exp_state): Likewise for field "scan_start".
26172         (internal_arg_pointer_based_exp_scan): Likewise for locals "insn",
26173         "scan_start".
26174         (load_register_parameters): Likewise for local "before_arg".
26175         (check_sibcall_argument_overlap): Likewise for param "insn".
26176         (expand_call): Likewise for locals "normal_call_insns",
26177         "tail_call_insns", "insns", "before_call", "after_args",
26178         "before_arg", "last", "prev".  Strengthen one of the "last" from
26179         rtx to rtx_call_insn *.
26180         (fixup_tail_calls): Strengthen local "insn" from rtx to
26181         rtx_insn *.
26182         (emit_library_call_value_1): Likewise for locals "before_call" and
26183         "last".
26184
26185 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26186
26187         * builtins.c (expand_builtin_longjmp): Strengthen locals "insn"
26188         and "last" from rtx to rtx_insn *.
26189         (expand_builtin_nonlocal_goto): Likewise for local "insn".
26190         (expand_builtin_apply): Strengthen local "call_insn" from rtx to
26191         rtx_call_insn *.
26192         (expand_errno_check): Strengthen local "lab" from rtx to
26193         rtx_code_label *.
26194         (expand_builtin_mathfn): Strengthen local "insns" from rtx to
26195         rtx_insn *.
26196         (expand_builtin_mathfn_2): Likewise.
26197         (expand_builtin_mathfn_ternary): Likewise.
26198         (expand_builtin_mathfn_3): Likewise.
26199         (expand_builtin_interclass_mathfn): Likewise for local "last".
26200         (expand_builtin_int_roundingfn): Likewise for local "insns".
26201         (expand_builtin_int_roundingfn_2): Likewise.
26202         (expand_builtin_strlen): Likewise for local "before_strlen".
26203         (expand_builtin_strncmp): Likewise for local "seq".
26204         (expand_builtin_signbit): Likewise for local "last".
26205         (expand_builtin_atomic_compare_exchange): Strengthen local "label"
26206         from rtx to rtx_code_label *.
26207         (expand_stack_restore):  Strengthen local "prev" from rtx to
26208         rtx_insn *.
26209
26210 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26211
26212         * bt-load.c (struct btr_user_s): Strengthen field "insn" from rtx
26213         to rtx_insn *.
26214         (struct btr_def_s): Likewise.
26215         (insn_sets_btr_p): Strengthen param "insn" from const_rtx to
26216         const rtx_insn *.
26217         (add_btr_def): Likewise.
26218         (new_btr_user): Likewise.
26219         (compute_defs_uses_and_gen): Strengthen locals "insn", "last" from
26220         rtx to rtx_insn *.
26221         (link_btr_uses): Likewise.
26222         (move_btr_def): Likewise for locals "insp", "old_insn",
26223         "new_insn".  Add checked cast to rtx_insn * for now on result of
26224         gen_move_insn.
26225         (can_move_up): Strengthen param "insn" from const_rtx to
26226         const rtx_insn *.
26227
26228 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26229
26230         * bb-reorder.c (copy_bb_p): Strengthen local "insn" from rtx to
26231         rtx_insn *.
26232         (get_uncond_jump_length): Likewise for locals "label", "jump".
26233         (fix_up_crossing_landing_pad): Likewise for locals "new_label",
26234         "jump", "insn".
26235         (add_labels_and_missing_jumps): Likewise for local "new_jump".
26236         (fix_up_fall_thru_edges): Likewise for local "old_jump".
26237         (find_jump_block): Likewise for local "insn".
26238         (fix_crossing_conditional_branches): Likewise for locals
26239         "old_jump", "new_jump".
26240         (fix_crossing_unconditional_branches): Likewise for locals
26241         "last_insn", "indirect_jump_sequence", "jump_insn", "cur_insn".
26242         (pass_duplicate_computed_gotos::execute): Likewise for local "insn".
26243
26244 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26245
26246         * auto-inc-dec.c (struct inc_insn): Strengthen field "insn" from
26247         rtx to rtx_insn *.
26248         (struct mem_insn): Likewise for field "insn".
26249         (reg_next_use): Strengthen from rtx * to rtx_insn **.
26250         (reg_next_inc_use): Likewise.
26251         (reg_next_def): Likewise.
26252         (move_dead_notes): Strengthen params "to_insn" and "from_insn"
26253         from rtx to rtx_insn *.
26254         (move_insn_before): Likewise for param "next_insn" and local "insns".
26255         (attempt_change): Likewise for local "mov_insn".
26256         (try_merge): Likewise for param "last_insn".
26257         (get_next_ref): Likewise for return type and local "insn".
26258         Strengthen param "next_array" from rtx * to rtx_insn **.
26259         (parse_add_or_inc): Strengthen param "insn" from rtx to
26260         rtx_insn *.
26261         (find_inc): Likewise for locals "insn" and "other_insn" (three of
26262         the latter).
26263         (merge_in_block): Likewise for locals "insn", "curr",
26264         "other_insn".
26265         (pass_inc_dec::execute): Update allocations of the arrays to
26266         reflect the stronger types.
26267
26268 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26269
26270         * asan.c (asan_clear_shadow): Strengthen locals "insn", "insns"
26271         and "jump" from rtx to rtx_insn *.  Strengthen local "top_label"
26272         from rtx to rtx_code_label *.
26273
26274 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26275
26276         * alias.c (init_alias_analysis): Strengthen local "insn" from rtx
26277         to rtx_insn *.
26278
26279 2014-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
26280
26281         * config/rs6000/rs6000.c (print_operand, 'y' case): Fix code that
26282         generated a warning and prevented bootstrapping the compiler.
26283
26284 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26285
26286         * rtl.h (delete_related_insns): Strengthen return type from rtx to
26287         rtx_insn *.
26288
26289         * jump.c (delete_related_insns): Likewise, also for locals "next"
26290         and "prev".
26291
26292 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26293
26294         * genautomata.c (output_internal_insn_latency_func): When writing
26295         the function "internal_insn_latency" to insn-automata.c,
26296         strengthen params "insn" and "insn2" from rtx to rtx_insn *, thus
26297         allowing the optional guard function of (define_bypass) clauses to
26298         expect a pair of rtx_insn *, rather than a pair of rtx.
26299         (output_insn_latency_func): When writing the function
26300         "insn_latency", add an "uncast_" prefix to params "insn" and
26301         "insn2", reintroducing "insn" and "insn2" as rtx_insn * locals
26302         using checked casts from the params, thus enabling the above
26303         change to the generated "internal_insn_latency" function.
26304
26305 2014-08-21  Jan Hubicka  <hubicka@ucw.cz>
26306
26307         PR tree-optimization/62091
26308         * ipa-devirt.c (ipa_polymorphic_call_context::restrict_to_inner_type):
26309         handle correctly arrays.
26310         (extr_type_from_vtbl_ptr_store): Add debug output; handle multiple
26311         inheritance binfos.
26312         (record_known_type): Walk into inner type.
26313         (ipa_polymorphic_call_context::get_dynamic_type): Likewise; strenghten
26314         condition on no type changes.
26315
26316 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26317
26318         * genattrtab.c (write_attr_get): Within the generated get_attr_
26319         functions, rename param "insn" to "uncast_insn" and reintroduce
26320         "insn" as an local rtx_insn * using a checked cast, so that "insn"
26321         is an rtx_insn * within insn-attrtab.c
26322
26323 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26324
26325         * output.h (peephole): Strengthen return type from rtx to
26326         rtx_insn *.
26327         * rtl.h (delete_for_peephole): Likewise for both params.
26328         * genpeep.c (main): In generated "peephole" function, strengthen
26329         return type and local "insn" from rtx to rtx_insn *.  For now,
26330         rename param "ins1" to "uncast_ins1", adding "ins1" back as an
26331         rtx_insn *, with a checked cast.
26332         * jump.c (delete_for_peephole): Strengthen params "from", "to" and
26333         locals "insn", "next", "prev" from rtx to rtx_insn *.
26334
26335 2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
26336
26337         PR tree-optimization/62112
26338         * gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
26339         * gimple-iterator.h (gsi_replace): Return bool.
26340         * tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
26341         moved from ref_may_alias_global_p.
26342         (ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
26343         New overloads.
26344         (ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
26345         (stmt_kills_ref_p_1): Rename...
26346         (stmt_kills_ref_p): ... to this.
26347         * tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
26348         stmt_kills_ref_p): Declare.
26349         * tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
26350         Move the self-assignment case...
26351         (dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
26352
26353 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26354
26355         * rtl.h (try_split): Strengthen return type from rtx to rtx_insn *.
26356
26357         * emit-rtl.c (try_split): Likewise, also for locals "before" and
26358         "after".  For now, don't strengthen param "trial", which requires
26359         adding checked casts when returning it.
26360
26361 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26362
26363         * debug.h (struct gcc_debug_hooks): Strengthen param 1 of hook
26364         "label" from rtx to rtx_code_label *.  Strengthen param 1 of
26365         "var_location" hook from rtx to rtx_insn *.
26366         (debug_nothing_rtx): Delete in favor of...
26367         (debug_nothing_rtx_code_label): New prototype.
26368         (debug_nothing_rtx_rtx): Delete unused prototype.
26369         (debug_nothing_rtx_insn): New prototype.
26370
26371         * final.c (final_scan_insn): Add checked cast to rtx_insn * when
26372         invoking debug_hooks->var_location (in two places, one in a NOTE
26373         case of a switch statement, the other guarded by a CALL_P
26374         conditional.  Add checked cast to rtx_code_label * when invoking
26375         debug_hooks->label (within CODE_LABEL case of switch statement).
26376
26377         * dbxout.c (dbx_debug_hooks): Update "label" hook from
26378         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26379         "var_location" from debug_nothing_rtx to debug_nothing_rtx_insn.
26380         (xcoff_debug_hooks): Likewise.
26381         * debug.c (do_nothing_debug_hooks): Likewise.
26382         (debug_nothing_rtx): Delete in favor of...
26383         (debug_nothing_rtx_insn): New function.
26384         (debug_nothing_rtx_rtx): Delete unused function.
26385         (debug_nothing_rtx_code_label): New function.
26386         * dwarf2out.c (dwarf2_debug_hooks): Update "label" hook from
26387         debug_nothing_rtx to debug_nothing_rtx_code_label.
26388         (dwarf2out_var_location): Strengthen param "loc_note" from rtx
26389         to rtx_insn *.
26390         * sdbout.c (sdb_debug_hooks): Update "var_location" hook from
26391         debug_nothing_rtx to debug_nothing_rtx_insn.
26392         (sdbout_label): Strengthen param "insn" from rtx to
26393         rtx_code_label *.
26394         * vmsdbgout.c (vmsdbg_debug_hooks): Update "label" hook from
26395         debug_nothing_rtx to debug_nothing_rtx_code_label.  Update
26396         "var_location" hook from debug_nothing_rtx to
26397         debug_nothing_rtx_insn.
26398
26399 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26400
26401         * recog.h (insn_output_fn): Update this function typedef to match
26402         the changes below to the generated output functions, strengthening
26403         the 2nd param from rtx to rtx_insn *.
26404
26405         * final.c (get_insn_template): Add a checked cast to rtx_insn * on
26406         insn when invoking an output function, to match the new signature
26407         of insn_output_fn with a stronger second param.
26408
26409         * genconditions.c (write_header): In the generated code for
26410         gencondmd.c, strengthen the global "insn" from rtx to rtx_insn *
26411         to match the other changes in this patch.
26412
26413         * genemit.c (gen_split): Strengthen the 1st param "curr_insn" of
26414         the generated "gen_" functions from rtx to rtx_insn * within their
26415         implementations.
26416
26417         * genrecog.c (write_subroutine): Strengthen the 2nd param "insn" of
26418         the subfunctions within the generated "recog_", "split", "peephole2"
26419         function trees from rtx to rtx_insn *.  For now, the top-level
26420         generated functions ("recog", "split", "peephole2") continue to
26421         take a plain rtx for "insn", to avoid introducing dependencies on
26422         other patches.  Rename this 2nd param from "insn" to
26423         "uncast_insn", and reintroduce "insn" as a local variable of type
26424         rtx_insn *, initialized at the top of the generated function with
26425         a checked cast on "uncast_insn".
26426         (make_insn_sequence): Strengthen the 1st param "curr_insn" of
26427         the generated "gen_" functions from rtx to rtx_insn * within their
26428         prototypes.
26429
26430         * genoutput.c (process_template): Strengthen the 2nd param within
26431         the generated "output_" functions "insn" from rtx to rtx_insn *.
26432
26433 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26434
26435         * tree-profile.c (tree_profiling): Skip external functions
26436         when doing coverage instrumentation.
26437         * cgraphunit.c (compile): Do not assert that all nodes are reachable.
26438
26439 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26440
26441         * config/rs6000/altivec.h (vec_cpsgn): New #define.
26442         (vec_mergee): Likewise.
26443         (vec_mergeo): Likewise.
26444         (vec_cntlz): Likewise.
26445         * config/rs600/rs6000-c.c (altivec_overloaded_builtins): Add new
26446         entries for VEC_AND, VEC_ANDC, VEC_MERGEH, VEC_MERGEL, VEC_NOR,
26447         VEC_OR, VEC_PACKSU, VEC_XOR, VEC_PERM, VEC_SEL, VEC_VCMPGT_P,
26448         VMRGEW, and VMRGOW.
26449         * doc/extend.texi: Document various forms of vec_cpsgn,
26450         vec_splats, vec_and, vec_andc, vec_mergeh, vec_mergel, vec_nor,
26451         vec_or, vec_perm, vec_sel, vec_sub, vec_xor, vec_all_eq,
26452         vec_all_ge, vec_all_gt, vec_all_le, vec_all_lt, vec_all_ne,
26453         vec_any_eq, vec_any_ge, vec_any_gt, vec_any_le, vec_any_lt,
26454         vec_any_ne, vec_mergee, vec_mergeo, vec_packsu, and vec_cntlz.
26455
26456 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26457
26458         * config/rs6000/rs6000.c (context.h): New include.
26459         (tree-pass.h): Likewise.
26460         (make_pass_analyze_swaps): New decl.
26461         (rs6000_option_override): Register pass_analyze_swaps.
26462         (swap_web_entry): New subsclass of web_entry_base (df.h).
26463         (special_handling_values): New enum.
26464         (union_defs): New function.
26465         (union_uses): Likewise.
26466         (insn_is_load_p): Likewise.
26467         (insn_is_store_p): Likewise.
26468         (insn_is_swap_p): Likewise.
26469         (rtx_is_swappable_p): Likewise.
26470         (insn_is_swappable_p): Likewise.
26471         (chain_purpose): New enum.
26472         (chain_contains_only_swaps): New function.
26473         (mark_swaps_for_removal): Likewise.
26474         (swap_const_vector_halves): Likewise.
26475         (adjust_subreg_index): Likewise.
26476         (permute_load): Likewise.
26477         (permute_store): Likewise.
26478         (handle_special_swappables): Likewise.
26479         (replace_swap_with_copy): Likewise.
26480         (dump_swap_insn_table): Likewise.
26481         (rs6000_analyze_swaps): Likewise.
26482         (pass_data_analyze_swaps): New pass_data.
26483         (pass_analyze_swaps): New rtl_opt_pass.
26484         (make_pass_analyze_swaps): New function.
26485         * config/rs6000/rs6000.opt (moptimize-swaps): New option.
26486
26487 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26488
26489         * sel-sched-ir.h (create_insn_rtx_from_pattern): Strengthen return
26490         type from rtx to rtx_insn *.
26491         (create_copy_of_insn_rtx): Likewise.
26492         * sel-sched-ir.c (create_insn_rtx_from_pattern): Likewise.
26493         (create_copy_of_insn_rtx): Likewise, also for local "res".
26494
26495 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26496
26497         * rtl.h (find_first_parameter_load): Strengthen return type from
26498         rtx to rtx_insn *.
26499         * rtlanal.c (find_first_parameter_load): Strengthen return type
26500         from rtx to rtx_insn *.  Add checked cast for now, to postpone
26501         strengthening the params.
26502
26503 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26504
26505         PR fortran/44054
26506         * diagnostic.c: Set default caret.
26507         (diagnostic_show_locus): Use it. Tell pretty-printer that a new
26508         line is needed.
26509         * diagnostic.h (struct diagnostic_context):
26510
26511 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26512
26513         * sel-sched-ir.h (exit_insn): Strengthen from rtx to rtx_insn *.
26514         (sel_bb_head): Strengthen return type insn_t (currently just an
26515         rtx) to rtx_insn *.
26516         (sel_bb_end): Likewise.
26517
26518         * sel-sched-ir.c (exit_insn): Strengthen from rtx to rtx_insn *.
26519         (sel_bb_head): Strengthen return type and local "head" from
26520         insn_t (currently just an rtx) to rtx_insn *.
26521         (sel_bb_end): Likewise for return type.
26522         (free_nop_and_exit_insns): Replace use of NULL_RTX with NULL when
26523         working with insn.
26524
26525 2014-08-21  David Malcolm  <dmalcolm@redhat.com>
26526
26527         * basic-block.h (get_last_bb_insn): Strengthen return type from
26528         rtx to rtx_insn *.
26529         * cfgrtl.c (get_last_bb_insn): Likewise, and for locals "tmp" and
26530         end".
26531
26532 2014-08-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26533
26534         PR fortran/44054
26535         * diagnostic.c (default_diagnostic_finalizer): Move caret printing
26536         to here ...
26537         (diagnostic_report_diagnostic): ... from here.
26538         * toplev.c (general_init): Move code to c-family.
26539
26540 2014-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26541
26542         * df.h (web_entry_base): Replace existing struct web_entry with a
26543         new class web_entry_base with only the predecessor member.
26544         (unionfind_root): Remove declaration and move to class member.
26545         (unionfind_union): Remove declaration and move to friend
26546         function.
26547         (union_defs): Remove declaration.
26548         * web.c (web_entry_base::unionfind_root): Modify to be member
26549         function and adjust accessors.
26550         (unionfind_union): Modify to be friend function and adjust
26551         accessors.
26552         (web_entry): New subclass of web_entry_base containing the reg
26553         member.
26554         (union_match_dups): Modify for struct -> class changes.
26555         (union_defs): Likewise.
26556         (entry_register): Likewise.
26557         (pass_web::execute): Likewise.
26558
26559 2014-08-20  Bill Schmidt  <wschmidt@vnet.ibm.com>
26560
26561         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Provide
26562         builtin define __VEC_ELEMENT_REG_ORDER__.
26563
26564 2014-08-20  Martin Jambor  <mjambor@suse.cz>
26565             Wei Mi  <wmi@google.com>
26566
26567         PR ipa/60449
26568         PR middle-end/61776
26569         * tree-ssa-operands.c (update_stmt_operands): Remove
26570         MODIFIED_NORETURN_CALLS.
26571         * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): New func.
26572         (cleanup_control_flow_bb): Use cleanup_call_ctrl_altering_flag.
26573         (split_bb_on_noreturn_calls): Renamed from split_bbs_on_noreturn_calls.
26574         (cleanup_tree_cfg_1): Use split_bb_on_noreturn_calls.
26575         * tree-ssanames.h: Remove MODIFIED_NORETURN_CALLS.
26576         * gimple.h (enum gf_mask): Add GF_CALL_CTRL_ALTERING.
26577         (gimple_call_set_ctrl_altering): New func.
26578         (gimple_call_ctrl_altering_p): Ditto.
26579         * tree-cfg.c (gimple_call_initialize_ctrl_altering): Ditto.
26580         (make_blocks): Use gimple_call_initialize_ctrl_altering.
26581         (is_ctrl_altering_stmt): Use gimple_call_ctrl_altering_p.
26582         (execute_fixup_cfg): Use gimple_call_ctrl_altering_p and
26583         remove MODIFIED_NORETURN_CALLS.
26584
26585 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26586
26587         * coverage.c (coverage_compute_profile_id): Return non-0;
26588         also handle symbols with unique name.
26589         (coverage_end_function): Do not skip DECL_EXTERNAL functions.
26590
26591 2014-08-20  Steve Ellcey  <sellcey@mips.com>
26592
26593         PR middle-end/49191
26594         * doc/sourcebuild.texi (non_strict_align): New.
26595
26596 2014-08-20  Jan Hubicka  <hubicka@ucw.cz>
26597
26598         * cgraphunit.c (ipa_passes, compile): Reshedule
26599         symtab_remove_unreachable_nodes passes; update comments.
26600         * ipa-inline.c (pass_data_ipa_inline): Do not schedule
26601         TODO_remove_functions before the pass; the functions ought to be
26602         already removed.
26603         * ipa.c (pass_data_ipa_free_inline_summary): Enable dump; schedule
26604         TODO_remove_functions.
26605         * passes.c (pass_data_early_local_passes): Do not schedule function
26606         removal.
26607         (execute_one_pass): Fix call of symtab_remove_unreachable_nodes.
26608
26609 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26610
26611         PR c/59304
26612         * opts-common.c (set_option): Call diagnostic_classify_diagnostic
26613         before setting the option.
26614         * diagnostic.c (diagnostic_classify_diagnostic): Record
26615         command-line status.
26616
26617 2014-08-20  Richard Biener  <rguenther@suse.de>
26618
26619         PR lto/62190
26620         * tree.c (build_common_tree_nodes): Use make_or_reuse_type
26621         to build uint{16,32,64}_type_node.
26622
26623 2014-08-20  Terry Guo  <terry.guo@arm.com>
26624
26625         * config/arm/thumb1.md (64bit splitter): Replace const_double_operand
26626         with immediate_operand.
26627
26628 2014-08-20  David Malcolm  <dmalcolm@redhat.com>
26629
26630         * cfgrtl.c (duplicate_insn_chain): Convert the checked cast on
26631         "insn" from an as_a to a safe_as_a, for the case when "insn" is
26632         NULL.
26633
26634 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26635
26636         PR preprocessor/51303
26637         * incpath.c (remove_duplicates): Use cpp_warning.
26638
26639 2014-08-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
26640
26641         PR c/60975
26642         PR c/53063
26643         * doc/options.texi (CPP): Document it.
26644         * doc/invoke.texi (Wvariadic-macros): Fix documentation.
26645         * optc-gen.awk: Handle CPP.
26646         * opth-gen.awk: Likewise.
26647
26648 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26649
26650         * rtl.h (unlink_insn_chain): Strengthen return type from rtx to
26651         rtx_insn *.
26652         (duplicate_insn_chain): Likewise.
26653         * cfgrtl.c (unlink_insn_chain): Strengthen return type from rtx to
26654         rtx_insn *, also for locals "prevfirst" and "nextlast".  Add a
26655         checked cast for now (until we can strengthen the params in the
26656         same way).
26657         (duplicate_insn_chain): Likewise.
26658
26659 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26660
26661         * rtl.h (next_cc0_user): Strengthen return type from rtx to
26662         rtx_insn *.
26663         (prev_cc0_setter): Likewise.
26664
26665         * emit-rtl.c (next_cc0_user): Strengthen return type from rtx to
26666         rtx_insn *, adding checked casts for now as necessary.
26667         (prev_cc0_setter): Likewise.
26668
26669 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26670
26671         * expr.h (emit_move_insn): Strengthen return type from rtx to
26672         rtx_insn *.
26673         (emit_move_insn_1): Likewise.
26674         (emit_move_complex_push): Likewise.
26675         (emit_move_complex_parts): Likewise.
26676
26677         * expr.c (emit_move_via_integer): Strengthen return type from rtx
26678         to rtx_insn *.  Replace use of NULL_RTX with NULL when working
26679         with insns.
26680         (emit_move_complex_push): Strengthen return type from rtx to
26681         rtx_insn *.
26682         (emit_move_complex): Likewise, also for local "ret".
26683         (emit_move_ccmode): Likewise.
26684         (emit_move_multi_word): Likewise for return type and locals
26685         "last_insn", "seq".
26686         (emit_move_insn_1): Likewise for return type and locals "result",
26687         "ret".
26688         (emit_move_insn): Likewise for return type and local "last_insn".
26689         (compress_float_constant): Likewise.
26690
26691 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26692
26693         * emit-rtl.h (emit_copy_of_insn_after): Strengthen return type
26694         from rtx to rtx_insn *.
26695
26696         * rtl.h (emit_insn_before): Likewise.
26697         (emit_insn_before_noloc): Likewise.
26698         (emit_insn_before_setloc): Likewise.
26699         (emit_jump_insn_before): Likewise.
26700         (emit_jump_insn_before_noloc): Likewise.
26701         (emit_jump_insn_before_setloc): Likewise.
26702         (emit_call_insn_before): Likewise.
26703         (emit_call_insn_before_noloc): Likewise.
26704         (emit_call_insn_before_setloc): Likewise.
26705         (emit_debug_insn_before): Likewise.
26706         (emit_debug_insn_before_noloc): Likewise.
26707         (emit_debug_insn_before_setloc): Likewise.
26708         (emit_label_before): Likewise.
26709         (emit_insn_after): Likewise.
26710         (emit_insn_after_noloc): Likewise.
26711         (emit_insn_after_setloc): Likewise.
26712         (emit_jump_insn_after): Likewise.
26713         (emit_jump_insn_after_noloc): Likewise.
26714         (emit_jump_insn_after_setloc): Likewise.
26715         (emit_call_insn_after): Likewise.
26716         (emit_call_insn_after_noloc): Likewise.
26717         (emit_call_insn_after_setloc): Likewise.
26718         (emit_debug_insn_after): Likewise.
26719         (emit_debug_insn_after_noloc): Likewise.
26720         (emit_debug_insn_after_setloc): Likewise.
26721         (emit_label_after): Likewise.
26722         (emit_insn): Likewise.
26723         (emit_debug_insn): Likewise.
26724         (emit_jump_insn): Likewise.
26725         (emit_call_insn): Likewise.
26726         (emit_label): Likewise.
26727         (gen_clobber): Likewise.
26728         (emit_clobber): Likewise.
26729         (gen_use): Likewise.
26730         (emit_use): Likewise.
26731         (emit): Likewise.
26732
26733         (emit_barrier_before): Strengthen return type from rtx to
26734         rtx_barrier *.
26735         (emit_barrier_after): Likewise.
26736         (emit_barrier): Likewise.
26737
26738         * emit-rtl.c (emit_pattern_before_noloc):  Strengthen return type
26739         from rtx to rtx_insn *.  Add checked casts for now when converting
26740         "last" from rtx to rtx_insn *.
26741         (emit_insn_before_noloc): Likewise for return type.
26742         (emit_jump_insn_before_noloc): Likewise.
26743         (emit_call_insn_before_noloc): Likewise.
26744         (emit_debug_insn_before_noloc): Likewise.
26745         (emit_barrier_before): Strengthen return type and local "insn"
26746         from rtx to rtx_barrier *.
26747         (emit_label_before): Strengthen return type from rtx to
26748         rtx_insn *.  Add checked cast for now when returning param
26749         (emit_pattern_after_noloc): Strengthen return type from rtx to
26750         rtx_insn *.  Add checked casts for now when converting "last" from
26751         rtx to rtx_insn *.
26752         (emit_insn_after_noloc): Strengthen return type from rtx to
26753         rtx_insn *.
26754         (emit_jump_insn_after_noloc): Likewise.
26755         (emit_call_insn_after_noloc): Likewise.
26756         (emit_debug_insn_after_noloc): Likewise.
26757         (emit_barrier_after): Strengthen return type from rtx to
26758         rtx_barrier *.
26759         (emit_label_after): Strengthen return type from rtx to rtx_insn *.
26760         Add checked cast for now when converting "label" from rtx to
26761         rtx_insn *.
26762         (emit_pattern_after_setloc): Strengthen return type from rtx to
26763         rtx_insn *.  Add checked casts for now when converting "last" from
26764         rtx to rtx_insn *.
26765         (emit_pattern_after): Strengthen return type from rtx to
26766         rtx_insn *.
26767         (emit_insn_after_setloc): Likewise.
26768         (emit_insn_after): Likewise.
26769         (emit_jump_insn_after_setloc): Likewise.
26770         (emit_jump_insn_after): Likewise.
26771         (emit_call_insn_after_setloc): Likewise.
26772         (emit_call_insn_after): Likewise.
26773         (emit_debug_insn_after_setloc): Likewise.
26774         (emit_debug_insn_after): Likewise.
26775         (emit_pattern_before_setloc): Likewise.  Add checked casts for now
26776         when converting "last" from rtx to rtx_insn *.
26777         (emit_pattern_before): Strengthen return type from rtx to
26778         rtx_insn *.
26779         (emit_insn_before_setloc): Likewise.
26780         (emit_insn_before): Likewise.
26781         (emit_jump_insn_before_setloc): Likewise.
26782         (emit_jump_insn_before): Likewise.
26783         (emit_call_insn_before_setloc): Likewise.
26784         (emit_call_insn_before): Likewise.
26785         (emit_debug_insn_before_setloc): Likewise.
26786         (emit_debug_insn_before): Likewise.
26787         (emit_insn): Strengthen return type and locals "last", "insn",
26788         "next" from rtx to rtx_insn *.  Add checked cast to rtx_insn
26789         within cases where we know we have an insn.
26790         (emit_debug_insn): Likewise.
26791         (emit_jump_insn): Likewise.
26792         (emit_call_insn): Strengthen return type and local "insn" from rtx
26793         to rtx_insn *.
26794         (emit_label): Strengthen return type from rtx to rtx_insn *.  Add
26795         a checked cast to rtx_insn * for now on "label".
26796         (emit_barrier): Strengthen return type from rtx to rtx_barrier *.
26797         (emit_clobber): Strengthen return type from rtx to rtx_insn *.
26798         (emit_use): Likewise.
26799         (gen_use): Likewise, also for local "seq".
26800         (emit): Likewise for return type and local "insn".
26801         (rtx_insn): Likewise for return type and local "new_rtx".
26802
26803         * cfgrtl.c (emit_barrier_after_bb): Strengthen local "barrier"
26804         from rtx to rtx_barrier *.
26805
26806         * config/sh/sh.c (output_stack_adjust): Since emit_insn has
26807         changed return type from rtx to rtx_insn *, we must update
26808         "emit_fn" type, and this in turn means updating...
26809         (frame_insn): ...this.  Strengthen return type from rtx to
26810         rtx_insn *.  Introduce a new local "insn" of the appropriate type.
26811
26812 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26813
26814         * emit-rtl.c (emit_jump_table_data): Strengthen return type from
26815         rtx to rtx_jump_table_data *.  Also for local.
26816         * rtl.h (emit_jump_table_data): Likewise.
26817
26818 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26819
26820         * basic-block.h (create_basic_block_structure): Strengthen third
26821         param "bb_note" from rtx to rtx_note *.
26822         * rtl.h (emit_note_before): Strengthen return type from rtx to
26823         rtx_note *.
26824         (emit_note_after): Likewise.
26825         (emit_note): Likewise.
26826         (emit_note_copy): Likewise.  Also, strengthen param similarly.
26827         * function.h (struct rtl_data): Strengthen field
26828         "x_stack_check_probe_note" from rtx to rtx_note *.
26829
26830         * cfgexpand.c (expand_gimple_basic_block): Strengthen local "note"
26831         from rtx to rtx_note *.
26832         * cfgrtl.c (create_basic_block_structure): Strengthen third param
26833         "bb_note" from rtx to rtx_note *.
26834         (duplicate_insn_chain): Likewise for local "last".  Add a checked cast
26835         when calling emit_note_copy.
26836         * emit-rtl.c (make_note_raw): Strengthen return type from rtx to
26837         rtx_note *.
26838         (emit_note_after): Likewise.
26839         (emit_note_before): Likewise.
26840         (emit_note_copy): Likewise.  Also, strengthen param similarly.
26841         (emit_note): Likewise.
26842         * except.c (emit_note_eh_region_end): Likewise for return type.
26843         Strengthen local "next" from rtx to rtx_insn *.
26844         (convert_to_eh_region_ranges): Strengthen local "note"
26845         from rtx to rtx_note *.
26846         * final.c (change_scope): Likewise.
26847         (reemit_insn_block_notes): Likewise, for both locals named "note".
26848         Also, strengthen local "insn" from rtx to rtx_insn *.
26849         * haifa-sched.c (sched_extend_bb): Strengthen local "note" from
26850         rtx to rtx_note *.
26851         * reg-stack.c (compensate_edge): Likewise for local "after". Also,
26852         strengthen local "seq" from rtx to rtx_insn *.
26853         * reload1.c (reload_as_needed): Strengthen local "marker" from rtx
26854         to rtx_note *.
26855         * sel-sched-ir.c (bb_note_pool): Strengthen from rtx_vec_t to
26856         vec<rtx_note *>.
26857         (get_bb_note_from_pool): Strengthen return type from rtx to
26858         rtx_note *.
26859         (sel_create_basic_block): Strengthen local "new_bb_note" from
26860         insn_t to rtx_note *.
26861         * var-tracking.c (emit_note_insn_var_location): Strengthen local
26862         "note" from rtx to rtx_note *.
26863         (emit_notes_in_bb): Likewise.
26864
26865 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26866
26867         * function.h (struct rtl_data): Strengthen field
26868         "x_parm_birth_insn" from rtx to rtx_insn *.
26869         * function.c (struct assign_parm_data_all): Strengthen fields
26870         "first_conversion_insn" and "last_conversion_insn" from rtx to
26871         rtx_insn *.
26872
26873 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26874
26875         * cfgexpand.c (expand_used_vars): Strengthen return type from rtx
26876         to rtx_insn *; also for local "var_end_seq".
26877         (maybe_dump_rtl_for_gimple_stmt): Likewise for param "since".
26878         (maybe_cleanup_end_of_block): Likewise for param "last" and local
26879         "insn".
26880         (expand_gimple_cond): Likewise for locals "last2" and "last".
26881         (mark_transaction_restart_calls): Likewise for local "insn".
26882         (expand_gimple_stmt): Likewise for return type and locals "last"
26883         and "insn".
26884         (expand_gimple_tailcall): Likewise for locals "last2" and "last".
26885         (avoid_complex_debug_insns): Likewise for param "insn".
26886         (expand_debug_locations): Likewise for locals "insn", "last",
26887         "prev_insn" and "insn2".
26888         (expand_gimple_basic_block): Likewise for local "last".
26889         (construct_exit_block): Likewise for locals "head", "end",
26890         "orig_end".
26891         (pass_expand::execute): Likewise for locals "var_seq",
26892         "var_ret_seq", "next".
26893
26894 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26895
26896         * asan.h (asan_emit_stack_protection): Strengthen return type from
26897         rtx to rtx_insn *.
26898         * asan.c (asan_emit_stack_protection): Likewise.  Add local
26899         "insns" to hold the return value.
26900
26901 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26902
26903         * basic-block.h (bb_note): Strengthen return type from rtx to
26904         rtx_note *.
26905         * sched-int.h (bb_note): Likewise.
26906         * cfgrtl.c (bb_note): Likewise.  Add a checked cast to rtx_note *.
26907
26908 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26909
26910         * rtl.h (make_insn_raw): Strengthen return type from rtx to
26911         rtx_insn *.
26912
26913         * emit-rtl.c (make_insn_raw): Strengthen return type and local
26914         "insn" from rtx to rtx_insn *.
26915         (make_debug_insn_raw): Strengthen return type from rtx to
26916         rtx_insn *; strengthen local "insn" from rtx to rtx_debug_insn *.
26917         (make_jump_insn_raw):  Strengthen return type from rtx to
26918         rtx_insn *; strengthen local "insn" from rtx to rtx_jump_insn *.
26919         (make_call_insn_raw):  Strengthen return type from rtx to
26920         rtx_insn *; strengthen local "insn" from rtx to rtx_call_insn *.
26921         (emit_pattern_before_noloc): Strengthen return type of "make_raw"
26922         callback from rtx to rtx_insn *; likewise for local "insn" and
26923         "next", adding a checked cast to rtx_insn in the relevant cases of
26924         the switch statement.
26925         (emit_pattern_after_noloc): Strengthen return type of "make_raw"
26926         callback from rtx to rtx_insn *.
26927         (emit_pattern_after_setloc): Likewise.
26928         (emit_pattern_after): Likewise.
26929         (emit_pattern_before_setloc): Likewise.
26930         (emit_pattern_before): Likewise.
26931
26932 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26933
26934         * emit-rtl.c (last_call_insn): Strengthen return type from rtx to
26935         rtx_call_insn *.
26936         * rtl.h (is_a_helper <rtx_call_insn *>::test): New overload,
26937         accepting an rtx_insn *.
26938         (last_call_insn): Strengthen return type from rtx to
26939         rtx_call_insn *.
26940
26941 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26942
26943         * rtl.h (delete_trivially_dead_insns): Strengthen initial param
26944         "insns" from rtx to rtx_insn *.
26945         * cse.c (delete_trivially_dead_insns): Likewise, also do it for
26946         locals "insn" and "prev".
26947
26948 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26949
26950         * rtl.h (tablejump_p): Strengthen third param from rtx * to
26951         rtx_jump_table_data **.
26952
26953         * cfgbuild.c (make_edges): Introduce local "table", using it in
26954         place of "tmp" for jump table data.
26955         (find_bb_boundaries): Strengthen local "table" from rtx to
26956         rtx_jump_table_data *.
26957         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
26958         (outgoing_edges_match): Likewise for locals "table1" and "table2".
26959         (try_crossjump_to_edge): Likewise.
26960         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise for local
26961         "table".
26962         (patch_jump_insn): Introduce local "table", using it in place of
26963         "tmp" for jump table data.
26964         (force_nonfallthru_and_redirect): Introduce local "table", so that
26965         call to tablejump_p can receive an rtx_jump_table_data **.  Update
26966         logic around the call to overwrite "note" appropriately if
26967         tablejump_p returns non-zero.
26968         (get_last_bb_insn): Introduce local "table", using it in place of
26969         "tmp" for jump table data.
26970         * dwarf2cfi.c (create_trace_edges): Likewise.
26971
26972         * config/arm/arm.c (get_jump_table_size): Strengthen param "insn"
26973         from rtx to rtx_jump_table_data *.
26974         (create_fix_barrier): Strengthen local "tmp" from rtx to
26975         rtx_jump_table_data *.
26976         (arm_reorg): Likewise for local "table".
26977
26978         * config/s390/s390.c (s390_chunkify_start): Likewise.
26979
26980         * config/spu/spu.c (spu_emit_branch_hint): Likewise.
26981
26982         * jump.c (delete_related_insns): Strengthen local "lab_next" from
26983         rtx to rtx_jump_table_data *.
26984
26985         * rtlanal.c (tablejump_p): Strengthen param "tablep" from rtx * to
26986         rtx_jump_table_data **.  Add a checked cast when writing through
26987         the pointer: we know there that local "table" is non-NULL and that
26988         JUMP_TABLE_DATA_P (table) holds.
26989         (label_is_jump_target_p): Introduce local "table", using it in
26990         place of "tmp" for jump table data.
26991
26992 2014-08-19  Marek Polacek  <polacek@redhat.com>
26993
26994         PR c++/62153
26995         * doc/invoke.texi: Document -Wbool-compare.
26996
26997 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
26998
26999         * rtl.h (entry_of_function): Strengthen return type from rtx to
27000         rtx_insn *.
27001         * cfgrtl.c (entry_of_function): Likewise.
27002
27003 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27004
27005         * emit-rtl.h (get_insns): Strengthen return type from rtx to
27006         rtx_insn *, adding a checked cast for now.
27007         (get_last_insn): Likewise.
27008
27009 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27010
27011         * rtl.h (gen_label_rtx): Strengthen return type from rtx to
27012         rtx_code_label *.
27013
27014         * emit-rtl.c (gen_label_rtx): Likewise.
27015
27016 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27017
27018         * rtl.h (previous_insn): Strengthen return type from rtx to
27019         rtx_insn *.
27020         (next_insn): Likewise.
27021         (prev_nonnote_insn): Likewise.
27022         (prev_nonnote_insn_bb): Likewise.
27023         (next_nonnote_insn): Likewise.
27024         (next_nonnote_insn_bb): Likewise.
27025         (prev_nondebug_insn): Likewise.
27026         (next_nondebug_insn): Likewise.
27027         (prev_nonnote_nondebug_insn): Likewise.
27028         (next_nonnote_nondebug_insn): Likewise.
27029         (prev_real_insn): Likewise.
27030         (next_real_insn): Likewise.
27031         (prev_active_insn): Likewise.
27032         (next_active_insn): Likewise.
27033
27034         * emit-rtl.c (next_insn): Strengthen return type from rtx to
27035         rtx_insn *, adding a checked cast.
27036         (previous_insn): Likewise.
27037         (next_nonnote_insn): Likewise.
27038         (next_nonnote_insn_bb): Likewise.
27039         (prev_nonnote_insn): Likewise.
27040         (prev_nonnote_insn_bb): Likewise.
27041         (next_nondebug_insn): Likewise.
27042         (prev_nondebug_insn): Likewise.
27043         (next_nonnote_nondebug_insn): Likewise.
27044         (prev_nonnote_nondebug_insn): Likewise.
27045         (next_real_insn): Likewise.
27046         (prev_real_insn): Likewise.
27047         (next_active_insn): Likewise.
27048         (prev_active_insn): Likewise.
27049
27050         * config/sh/sh-protos.h (sh_find_set_of_reg): Convert function ptr
27051         param "stepfunc" so that it returns an rtx_insn * rather than an
27052         rtx, to track the change to prev_nonnote_insn_bb, which is the
27053         only function this is called with.
27054         * config/sh/sh.c (sh_find_set_of_reg): Likewise.
27055
27056 2014-08-19  Jan Hubicka  <hubicka@ucw.cz>
27057
27058         * ipa-visibility.c (update_visibility_by_resolution_info): Fix
27059         assert.
27060
27061 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27062
27063         * coretypes.h (class rtx_debug_insn): Add forward declaration.
27064         (class rtx_nonjump_insn): Likewise.
27065         (class rtx_jump_insn): Likewise.
27066         (class rtx_call_insn): Likewise.
27067         (class rtx_jump_table_data): Likewise.
27068         (class rtx_barrier): Likewise.
27069         (class rtx_code_label): Likewise.
27070         (class rtx_note): Likewise.
27071
27072         * rtl.h (class rtx_debug_insn): New, a subclass of rtx_insn,
27073         adding the invariant DEBUG_INSN_P (X).
27074         (class rtx_nonjump_insn): New, a subclass of rtx_insn, adding
27075         the invariant NONJUMP_INSN_P (X).
27076         (class rtx_jump_insn): New, a subclass of rtx_insn, adding
27077         the invariant JUMP_P (X).
27078         (class rtx_call_insn): New, a subclass of rtx_insn, adding
27079         the invariant CALL_P (X).
27080         (class rtx_jump_table): New, a subclass of rtx_insn, adding the
27081         invariant JUMP_TABLE_DATA_P (X).
27082         (class rtx_barrier): New, a subclass of rtx_insn, adding the
27083         invariant BARRIER_P (X).
27084         (class rtx_code_label): New, a subclass of rtx_insn, adding
27085         the invariant LABEL_P (X).
27086         (class rtx_note): New, a subclass of rtx_insn, adding
27087         the invariant NOTE_P(X).
27088         (is_a_helper <rtx_debug_insn *>::test): New.
27089         (is_a_helper <rtx_nonjump_insn *>::test): New.
27090         (is_a_helper <rtx_jump_insn *>::test): New.
27091         (is_a_helper <rtx_call_insn *>::test): New.
27092         (is_a_helper <rtx_jump_table_data *>::test): New functions,
27093         overloaded for both rtx and rtx_insn *.
27094         (is_a_helper <rtx_barrier *>::test): New.
27095         (is_a_helper <rtx_code_label *>::test): New functions, overloaded
27096         for both rtx and rtx_insn *.
27097         (is_a_helper <rtx_note *>::test): New.
27098
27099 2014-08-19  Marek Polacek  <polacek@redhat.com>
27100
27101         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO,
27102         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27103         * config/i386/i386.h (CLZ_DEFINED_VALUE_AT_ZERO,
27104         CTZ_DEFINED_VALUE_AT_ZERO): Return 0/1 rather than bool.
27105
27106 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27107
27108         * sel-sched-ir.h (BND_TO): insn_t will eventually be an
27109         rtx_insn *.  To help with transition, for now, convert from an
27110         access macro into a pair of functions: BND_TO, returning an
27111         rtx_insn *, and...
27112         (SET_BND_TO): New function, for use where BND_TO is used as an
27113         lvalue.
27114
27115         * sel-sched-ir.c (blist_add): Update lvalue usage of BND_TO to
27116         SET_BND_TO.
27117         (BND_TO): New function, adding a checked cast.
27118         (SET_BND_TO): New function.
27119
27120         * sel-sched.c (move_cond_jump): Update lvalue usage of BND_TO to
27121         SET_BND_TO.
27122         (compute_av_set_on_boundaries): Likewise.
27123
27124 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27125
27126         * config/i386/i386.md (*ctz<mode>2_falsedep_1): Don't clear
27127         destination if it is used in source.
27128         (*clz<mode>2_lzcnt_falsedep_1): Likewise.
27129         (*popcount<mode>2_falsedep_1): Likewise.
27130
27131 2014-08-19  H.J. Lu  <hongjiu.lu@intel.com>
27132
27133         PR other/62168
27134         * configure.ac: Set install_gold_as_default to no first.
27135         * configure: Regenerated.
27136
27137 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27138
27139         * sel-sched-ir.h (BB_NOTE_LIST): struct sel_region_bb_info_def's
27140         "note_list" field will eventually be an rtx_insn *.  To help with
27141         transition, for now, convert from an access macro into a pair of
27142         functions: BB_NOTE_LIST, returning an rtx_insn *, and...
27143         (SET_BB_NOTE_LIST): New function, for use where BB_NOTE_LIST is
27144         used as an lvalue.
27145
27146         * sel-sched.c (create_block_for_bookkeeping): Update lvalue usage
27147         of BB_NOTE_LIST to SET_BB_NOTE_LIST.
27148
27149         * sel-sched-ir.c (init_bb): Likewise.
27150         (sel_restore_notes): Likewise.
27151         (move_bb_info): Likewise.
27152         (BB_NOTE_LIST): New function, adding a checked cast to rtx_insn *.
27153         (SET_BB_NOTE_LIST): New function.
27154
27155 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27156
27157         * sel-sched-ir.h (VINSN_INSN_RTX): struct vinsn_def's "insn_rtx"
27158         field will eventually be an rtx_insn *.  To help with transition,
27159         for now, convert from an access macro into a pair of functions:
27160         VINSN_INSN_RTX, returning an rtx_insn *, and...
27161         (SET_VINSN_INSN_RTX): New function, for use where VINSN_INSN_RTX
27162         is used as an lvalue.
27163
27164         * sel-sched-ir.c (vinsn_init): Replace VINSN_INSN_RTX with
27165         SET_VINSN_INSN_RTX where it's used as an lvalue.
27166         (VINSN_INSN_RTX): New function.
27167         (SET_VINSN_INSN_RTX): New function.
27168
27169 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27170
27171         * sched-int.h (DEP_PRO): struct _dep's "pro" and "con" fields will
27172         eventually be rtx_insn *, but to help with transition, for now,
27173         convert from an access macro into a pair of functions: DEP_PRO
27174         returning an rtx_insn * and...
27175         (SET_DEP_PRO): New function, for use where DEP_PRO is used as an
27176         lvalue, returning an rtx&.
27177         (DEP_CON): Analogous changes to DEP_PRO above.
27178         (SET_DEP_CON): Likewise.
27179
27180         * haifa-sched.c (create_check_block_twin): Replace DEP_CON used as
27181         an lvalue to SET_DEP_CON.
27182         * sched-deps.c (init_dep_1): Likewise for DEP_PRO and DEP_CON.
27183         (sd_copy_back_deps): Likewise for DEP_CON.
27184         (DEP_PRO): New function, adding a checked cast for now.
27185         (DEP_CON): Likewise.
27186         (SET_DEP_PRO): New function.
27187         (SET_DEP_CON): Likewise.
27188
27189 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27190
27191         * config.gcc (*-*-cygwin*): Use __cxa_atexit by default.
27192         (extra_options): Add i386/cygwin.opt.
27193         * config/i386/cygwin.h (STARTFILE_SPEC): Use crtbeginS.o if shared.
27194         (CPP_SPEC): Accept -pthread.
27195         (LINK_SPEC): Ditto.
27196         (GOMP_SELF_SPECS): Update comment.
27197         * config/i386/cygwin.opt: New file for -pthread flag.
27198
27199 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27200
27201         * df-core.c (DF_REF_INSN): New, using a checked cast for now.
27202         * df.h (DF_REF_INSN): Convert from a macro to a function, so
27203         that we can return an rtx_insn *.
27204
27205 2014-08-19  Yaakov Selkowitz  <yselkowi@redhat.com>
27206
27207         * config/i386/cygwin.h (LINK_SPEC): Pass --tsaware flag only
27208         when building executables, not DLLs.  Add --large-address-aware
27209         under the same conditions.
27210         * config/i386/cygwin-w64.h (LINK_SPEC): Pass --tsaware flag only
27211         when building executables, not DLLs.  Add --large-address-aware
27212         under the same conditions when using -m32.
27213
27214         * config/i386/cygwin-stdint.h: Throughout, make type
27215         definitions dependent on target architecture, not host.
27216
27217 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27218
27219         * rtl.h (PREV_INSN): Convert to an inline function.  Strengthen
27220         the return type from rtx to rtx_insn *,  which will enable various
27221         conversions in followup patches.  For now this is is done by a
27222         checked cast.
27223         (NEXT_INSN): Likewise.
27224         (SET_PREV_INSN): Convert to an inline function.  This is intended
27225         for use as an lvalue, and so returns an rtx& to allow in-place
27226         modification.
27227         (SET_NEXT_INSN): Likewise.
27228
27229 2014-07-08  Mark Wielaard  <mjw@redhat.com>
27230
27231         PR debug/59051
27232         * dwarf2out.c (modified_type_die): Handle TYPE_QUAL_RESTRICT.
27233
27234 2014-08-19  Marek Polacek  <polacek@redhat.com>
27235
27236         PR c/61271
27237         * cgraphunit.c (handle_alias_pairs): Fix condition.
27238
27239 2014-08-19  Richard Biener  <rguenther@suse.de>
27240
27241         * gimple-fold.c (fold_gimple_assign): Properly build a
27242         null-pointer constant when devirtualizing addresses.
27243
27244 2014-07-07  Mark Wielaard  <mjw@redhat.com>
27245
27246         * dwarf2out.c (decl_quals): New function.
27247         (modified_type_die): Take one cv_quals argument instead of two,
27248         one for const and one for volatile.
27249         (add_type_attribute): Likewise.
27250         (generic_parameter_die): Call add_type_attribute with one modifier
27251         argument.
27252         (base_type_for_mode): Likewise.
27253         (add_bounds_info): Likewise.
27254         (add_subscript_info): Likewise.
27255         (gen_array_type_die): Likewise.
27256         (gen_descr_array_type_die): Likewise.
27257         (gen_entry_point_die): Likewise.
27258         (gen_enumeration_type_die): Likewise.
27259         (gen_formal_parameter_die): Likewise.
27260         (gen_subprogram_die): Likewise.
27261         (gen_variable_die): Likewise.
27262         (gen_const_die): Likewise.
27263         (gen_field_die): Likewise.
27264         (gen_pointer_type_die): Likewise.
27265         (gen_reference_type_die): Likewise.
27266         (gen_ptr_to_mbr_type_die): Likewise.
27267         (gen_inheritance_die): Likewise.
27268         (gen_subroutine_type_die): Likewise.
27269         (gen_typedef_die): Likewise.
27270         (force_type_die): Likewise.
27271
27272 2014-08-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27273
27274         * configure.ac (gcc_cv_as_comdat_group_group): Only default to no
27275         if unset.
27276         * configure: Regenerate.
27277
27278 2014-08-19  Richard Biener  <rguenther@suse.de>
27279
27280         * lto-streamer-out.c (DFS::DFS_write_tree_body): Stream
27281         DECL_EXTERNALs in BLOCKs as non-references.
27282         * tree-streamer-out.c (streamer_write_chain): Likewise.
27283
27284 2014-08-19  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27285             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27286             Anna Tikhonova  <anna.tikhonova@intel.com>
27287             Ilya Tocar  <ilya.tocar@intel.com>
27288             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27289             Ilya Verbin  <ilya.verbin@intel.com>
27290             Kirill Yukhin  <kirill.yukhin@intel.com>
27291             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27292
27293         * config/i386/sse.md
27294         (define_mode_iterator VI48_AVX512F): Delete.
27295         (define_mode_iterator VI48_AVX512F_AVX512VL): New.
27296         (define_mode_iterator VI2_AVX512VL): Ditto.
27297         (define_insn "<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name><round_name>"):
27298         Delete.
27299         (define_insn
27300         ("<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>"):
27301         New.
27302         (define_insn "avx512cd_maskw_vec_dup<mode>"): Macroize.
27303         (define_insn "<avx2_avx512f>_ashrv<mode><mask_name>"): Delete.
27304         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27305         with VI48_AVX512F_AVX512VL): New.
27306         (define_insn "<avx2_avx512bw>_ashrv<mode><mask_name>",
27307         with VI2_AVX512VL): Ditto.
27308
27309 2014-08-19  Marek Polacek  <polacek@redhat.com>
27310
27311         * doc/invoke.texi: Document -Wc99-c11-compat.
27312
27313 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27314
27315         * rtl.h (PREV_INSN): Split macro in two: the existing one,
27316         for rvalues, and...
27317         (SET_PREV_INSN): New macro, for use as an lvalue.
27318         (NEXT_INSN, SET_NEXT_INSN): Likewise.
27319
27320         * caller-save.c (save_call_clobbered_regs): Convert lvalue use of
27321         PREV_INSN/NEXT_INSN into SET_PREV_INSN/SET_NEXT_INSN.
27322         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
27323         (fixup_abnormal_edges): Likewise.
27324         (unlink_insn_chain): Likewise.
27325         (fixup_reorder_chain): Likewise.
27326         (cfg_layout_delete_block): Likewise.
27327         (cfg_layout_merge_blocks): Likewise.
27328         * combine.c (update_cfg_for_uncondjump): Likewise.
27329         * emit-rtl.c (link_insn_into_chain): Likewise.
27330         (remove_insn): Likewise.
27331         (delete_insns_since): Likewise.
27332         (reorder_insns_nobb): Likewise.
27333         (emit_insn_after_1): Likewise.
27334         * final.c (rest_of_clean_state): Likewise.
27335         (final_scan_insn): Likewise.
27336         * gcse.c (can_assign_to_reg_without_clobbers_p): Likewise.
27337         * haifa-sched.c (concat_note_lists): Likewise.
27338         (remove_notes): Likewise.
27339         (restore_other_notes): Likewise.
27340         (move_insn): Likewise.
27341         (unlink_bb_notes): Likewise.
27342         (restore_bb_notes): Likewise.
27343         * jump.c (delete_for_peephole): Likewise.
27344         * optabs.c (emit_libcall_block_1): Likewise.
27345         * reorg.c (emit_delay_sequence): Likewise.
27346         (fill_simple_delay_slots): Likewise.
27347         * sel-sched-ir.c (sel_move_insn): Likewise.
27348         (sel_remove_insn): Likewise.
27349         (get_bb_note_from_pool): Likewise.
27350         * sel-sched.c (move_nop_to_previous_block): Likewise.
27351
27352         * config/bfin/bfin.c (reorder_var_tracking_notes): Likewise.
27353         * config/c6x/c6x.c (gen_one_bundle): Likewise.
27354         (c6x_gen_bundles): Likewise.
27355         (hwloop_optimize): Likewise.
27356         * config/frv/frv.c (frv_function_prologue): Likewise.
27357         (frv_register_nop): Likewise.
27358         * config/ia64/ia64.c (ia64_init_dfa_pre_cycle_insn): Likewise.
27359         (ia64_reorg): Likewise.
27360         * config/mep/mep.c (mep_reorg_addcombine): Likewise.
27361         (mep_make_bundle): Likewise.
27362         (mep_bundle_insns): Likewise.
27363         * config/picochip/picochip.c (reorder_var_tracking_notes): Likewise.
27364         * config/tilegx/tilegx.c (reorder_var_tracking_notes): Likewise.
27365         * config/tilepro/tilepro.c (reorder_var_tracking_notes): Likewise.
27366
27367 2014-08-19  David Malcolm  <dmalcolm@redhat.com>
27368
27369         * basic-block.h (BB_HEAD): Convert to a function.  Strengthen the
27370         return type from rtx to rtx_insn *.
27371         (BB_END): Likewise.
27372         (BB_HEADER): Likewise.
27373         (BB_FOOTER): Likewise.
27374         (SET_BB_HEAD): Convert to a function.
27375         (SET_BB_END): Likewise.
27376         (SET_BB_HEADER): Likewise.
27377         (SET_BB_FOOTER): Likewise.
27378
27379         * cfgrtl.c (BB_HEAD): New function, from macro of same name.
27380         Strengthen the return type from rtx to rtx_insn *.  For now, this
27381         is done by adding a checked cast, but this will eventually
27382         become a field lookup.
27383         (BB_END): Likewise.
27384         (BB_HEADER): Likewise.
27385         (BB_FOOTER): Likewise.
27386         (SET_BB_HEAD): New function, from macro of same name.  This is
27387         intended for use as an lvalue, and so returns an rtx& to allow
27388         in-place modification.
27389         (SET_BB_END): Likewise.
27390         (SET_BB_HEADER): Likewise.
27391         (SET_BB_FOOTER): Likewise.
27392
27393 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27394
27395         * basic-block.h (BB_HEAD): Split macro in two: the existing one,
27396         for rvalues, and...
27397         (SET_BB_HEAD): New macro, for use as a lvalue.
27398         (BB_END, SET_BB_END): Likewise.
27399         (BB_HEADER, SET_BB_HEADER): Likewise.
27400         (BB_FOOTER, SET_BB_FOOTER): Likewise.
27401
27402         * bb-reorder.c (add_labels_and_missing_jumps): Convert lvalue use
27403         of BB_* macros into SET_BB_* macros.
27404         (fix_crossing_unconditional_branches): Likewise.
27405         * caller-save.c (save_call_clobbered_regs): Likewise.
27406         (insert_one_insn): Likewise.
27407         * cfgbuild.c (find_bb_boundaries): Likewise.
27408         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Likewise.
27409         (outgoing_edges_match): Likewise.
27410         (try_optimize_cfg): Likewise.
27411         * cfgexpand.c (expand_gimple_cond): Likewise.
27412         (expand_gimple_tailcall): Likewise.
27413         (expand_gimple_basic_block): Likewise.
27414         (construct_exit_block): Likewise.
27415         * cfgrtl.c (delete_insn): Likewise.
27416         (create_basic_block_structure): Likewise.
27417         (rtl_delete_block): Likewise.
27418         (rtl_split_block): Likewise.
27419         (emit_nop_for_unique_locus_between): Likewise.
27420         (rtl_merge_blocks): Likewise.
27421         (block_label): Likewise.
27422         (try_redirect_by_replacing_jump): Likewise.
27423         (emit_barrier_after_bb): Likewise.
27424         (fixup_abnormal_edges): Likewise.
27425         (record_effective_endpoints): Likewise.
27426         (relink_block_chain): Likewise.
27427         (fixup_reorder_chain): Likewise.
27428         (fixup_fallthru_exit_predecessor): Likewise.
27429         (cfg_layout_duplicate_bb): Likewise.
27430         (cfg_layout_split_block): Likewise.
27431         (cfg_layout_delete_block): Likewise.
27432         (cfg_layout_merge_blocks): Likewise.
27433         * combine.c (update_cfg_for_uncondjump): Likewise.
27434         * emit-rtl.c (add_insn_after): Likewise.
27435         (remove_insn): Likewise.
27436         (reorder_insns): Likewise.
27437         (emit_insn_after_1): Likewise.
27438         * haifa-sched.c (get_ebb_head_tail): Likewise.
27439         (restore_other_notes): Likewise.
27440         (move_insn): Likewise.
27441         (sched_extend_bb): Likewise.
27442         (fix_jump_move): Likewise.
27443         * ifcvt.c (noce_process_if_block): Likewise.
27444         (dead_or_predicable): Likewise.
27445         * ira.c (update_equiv_regs): Likewise.
27446         * reg-stack.c (change_stack): Likewise.
27447         * sel-sched-ir.c (sel_move_insn): Likewise.
27448         * sel-sched.c (move_nop_to_previous_block): Likewise.
27449
27450         * config/c6x/c6x.c (hwloop_optimize): Likewise.
27451         * config/ia64/ia64.c (emit_predicate_relation_info): Likewise.
27452
27453 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27454
27455         * rtl.h (for_each_rtx_in_insn): New function.
27456         * rtlanal.c (for_each_rtx_in_insn): Likewise.
27457
27458 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27459
27460         * coretypes.h (class rtx_insn): Add forward declaration.
27461
27462         * rtl.h: Include is-a.h.
27463         (struct rtx_def): Add dummy "desc" and "tag" GTY options as a
27464         workaround to ensure gengtype knows inheritance is occurring,
27465         whilst continuing to use the pre-existing special-casing for
27466         rtx_def.
27467         (class rtx_insn): New subclass of rtx_def, adding the
27468         invariant that we're dealing with something we can sanely use
27469         INSN_UID, NEXT_INSN, PREV_INSN on.
27470         (is_a_helper <rtx_insn *>::test): New.
27471         (is_a_helper <const rtx_insn *>::test): New.
27472
27473 2014-08-18  David Malcolm  <dmalcolm@redhat.com>
27474
27475         * is-a.h (template<T, U> safe_as_a <U *p>) New function.
27476
27477 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27478
27479         * ipa-visibility.c (update_visibility_by_resolution_info): Do no turn UNDEF
27480         comdats as extern.
27481
27482 2014-08-18  Jan Hubicka  <hubicka@ucw.cz>
27483
27484         * gimple-fold.c (fold_gimple_assign): Do not intorudce referneces
27485         to BUILT_IN_UNREACHABLE.
27486
27487 2014-08-18  Uros Bizjak  <ubizjak@gmail.com>
27488
27489         PR target/62011
27490         * config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI):
27491         New tune flag.
27492         * config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BMI): New define.
27493         * config/i386/i386.md (unspec) <UNSPEC_INSN_FALSE_DEP>: New unspec.
27494         (ffs<mode>2): Do not expand with tzcnt for
27495         TARGET_AVOID_FALSE_DEP_FOR_BMI.
27496         (ffssi2_no_cmove): Ditto.
27497         (*tzcnt<mode>_1): Disable for TARGET_AVOID_FALSE_DEP_FOR_BMI.
27498         (ctz<mode>2): New expander.
27499         (*ctz<mode>2_falsedep_1): New insn_and_split pattern.
27500         (*ctz<mode>2_falsedep): New insn.
27501         (*ctz<mode>2): Rename from ctz<mode>2.
27502         (clz<mode>2_lzcnt): New expander.
27503         (*clz<mode>2_lzcnt_falsedep_1): New insn_and_split pattern.
27504         (*clz<mode>2_lzcnt_falsedep): New insn.
27505         (*clz<mode>2): Rename from ctz<mode>2.
27506         (popcount<mode>2): New expander.
27507         (*popcount<mode>2_falsedep_1): New insn_and_split pattern.
27508         (*popcount<mode>2_falsedep): New insn.
27509         (*popcount<mode>2): Rename from ctz<mode>2.
27510         (*popcount<mode>2_cmp): Remove.
27511         (*popcountsi2_cmp_zext): Ditto.
27512
27513 2014-08-18  Ajit Agarwal  <ajitkum@xilinx.com>
27514
27515         * config/microblaze/microblaze.c (microblaze_elf_asm_cdtor): New.
27516         (microblaze_elf_asm_constructor,microblaze_elf_asm_destructor): New.
27517         * config/microblaze/microblaze.h
27518         (TARGET_ASM_CONSTRUCTOR,TARGET_ASM_DESTRUCTOR): New Macros.
27519
27520 2014-08-18  H.J. Lu  <hongjiu.lu@intel.com>
27521
27522         PR other/62168
27523         * configure.ac: Set install_gold_as_default to no for
27524         --enable-gold=no.
27525         * configure: Regenerated.
27526
27527 2014-08-18 Roman Gareev  <gareevroman@gmail.com>
27528
27529         * Makefile.in: Add definition of ISLLIBS, HOST_ISLLIBS.
27530         * config.in: Add undef of HAVE_isl.
27531         * configure: Regenerate.
27532         * configure.ac: Add definition of HAVE_isl.
27533         * graphite-blocking.c: Add checking of HAVE_isl.
27534         * graphite-dependences.c: Likewise.
27535         * graphite-interchange.c: Likewise.
27536         * graphite-isl-ast-to-gimple.c: Likewise.
27537         * graphite-optimize-isl.c: Likewise.
27538         * graphite-poly.c: Likewise.
27539         * graphite-scop-detection.c: Likewise.
27540         * graphite-sese-to-poly.c: Likewise.
27541         * graphite.c: Likewise.
27542         * toplev.c: Replace the checking of HAVE_cloog with the checking
27543         of HAVE_isl.
27544
27545 2014-08-18  Richard Biener  <rguenther@suse.de>
27546
27547         PR tree-optimization/62090
27548         * builtins.c (fold_builtin_snprintf): Move to gimple-fold.c.
27549         (fold_builtin_3): Do not fold snprintf.
27550         (fold_builtin_4): Likewise.
27551         * gimple-fold.c (gimple_fold_builtin_snprintf): New function
27552         moved from builtins.c.
27553         (gimple_fold_builtin_with_strlen): Fold snprintf and sprintf.
27554         (gimple_fold_builtin): Do not fold sprintf here.
27555
27556 2014-08-18  Richard Biener  <rguenther@suse.de>
27557
27558         * gimple-fold.c (maybe_fold_reference): Move re-gimplification
27559         code to ...
27560         (maybe_canonicalize_mem_ref_addr): ... this function.
27561         (fold_stmt_1): Apply it here before all simplification.
27562
27563 2014-08-18  Ilya Enkovich  <ilya.enkovich@intel.com>
27564
27565         PR ipa/61800
27566         * cgraph.h (cgraph_node::create_indirect_edge): Add
27567         compute_indirect_info param.
27568         * cgraph.c (cgraph_node::create_indirect_edge): Compute
27569         indirect_info only when it is required.
27570         * cgraphclones.c (cgraph_clone_edge): Do not recompute
27571         indirect_info fore cloned indirect edge.
27572
27573 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27574             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27575             Anna Tikhonova  <anna.tikhonova@intel.com>
27576             Ilya Tocar  <ilya.tocar@intel.com>
27577             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27578             Ilya Verbin  <ilya.verbin@intel.com>
27579             Kirill Yukhin  <kirill.yukhin@intel.com>
27580             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27581
27582         * config/i386/sse.md
27583         (define_mode_iterator VI8_AVX2_AVX512BW): New.
27584         (define_insn "<sse2_avx2>_psadbw"): Add evex version.
27585
27586 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27587             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27588             Anna Tikhonova  <anna.tikhonova@intel.com>
27589             Ilya Tocar  <ilya.tocar@intel.com>
27590             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27591             Ilya Verbin  <ilya.verbin@intel.com>
27592             Kirill Yukhin  <kirill.yukhin@intel.com>
27593             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27594
27595         * config/i386/sse.md
27596         (define_mode_iterator VF1_AVX512VL): New.
27597         (define_insn "ufloatv16siv16sf2<mask_name><round_name>"): Delete.
27598         (define_insn "ufloat<sseintvecmodelower><mode>2<mask_name><round_name>"):
27599         New.
27600
27601 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27602             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27603             Anna Tikhonova  <anna.tikhonova@intel.com>
27604             Ilya Tocar  <ilya.tocar@intel.com>
27605             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27606             Ilya Verbin  <ilya.verbin@intel.com>
27607             Kirill Yukhin  <kirill.yukhin@intel.com>
27608             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27609
27610         * config/i386/i386.c: Rename ufloatv8siv8df_mask to ufloatv8siv8df2_mask.
27611         * config/i386/i386.md
27612         (define_code_iterator any_float): New.
27613         (define_code_attr floatsuffix): New.
27614         * config/i386/sse.md
27615         (define_mode_iterator VF1_128_256VL): New.
27616         (define_mode_iterator VF2_512_256VL): New.
27617         (define_insn "float<si2dfmodelower><mode>2<mask_name>"): Remove unnecessary
27618         TARGET check.
27619         (define_insn "ufloatv8siv8df<mask_name>"): Delete.
27620         (define_insn "<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>"):
27621         New.
27622         (define_mode_attr qq2pssuff): New.
27623         (define_mode_attr sselongvecmode): New.
27624         (define_mode_attr sselongvecmodelower): New.
27625         (define_mode_attr sseintvecmode3): New.
27626         (define_insn "<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>"):
27627         New.
27628         (define_insn "*<floatsuffix>floatv2div2sf2"): New.
27629         (define_insn "<floatsuffix>floatv2div2sf2_mask"): New.
27630         (define_insn "ufloat<si2dfmodelower><mode>2<mask_name>"): New.
27631         (define_insn "ufloatv2siv2df2<mask_name>"): New.
27632
27633 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27634             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27635             Anna Tikhonova  <anna.tikhonova@intel.com>
27636             Ilya Tocar  <ilya.tocar@intel.com>
27637             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27638             Ilya Verbin  <ilya.verbin@intel.com>
27639             Kirill Yukhin  <kirill.yukhin@intel.com>
27640             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27641
27642         * config/i386/sse.md
27643         (define_mode_iterator VF2_AVX512VL): New.
27644         (define_mode_attr sseintvecmode2): New.
27645         (define_insn "ufix_truncv2dfv2si2<mask_name>"): Add masking.
27646         (define_insn "fix_truncv4dfv4si2<mask_name>"): New.
27647         (define_insn "ufix_truncv4dfv4si2<mask_name>"): Ditto.
27648         (define_insn
27649         "<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>"):
27650         Ditto.
27651         (define_insn "fix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27652         Ditto.
27653         (define_insn "ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>"):
27654         Ditto.
27655
27656 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27657             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27658             Anna Tikhonova  <anna.tikhonova@intel.com>
27659             Ilya Tocar  <ilya.tocar@intel.com>
27660             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27661             Ilya Verbin  <ilya.verbin@intel.com>
27662             Kirill Yukhin  <kirill.yukhin@intel.com>
27663             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27664
27665         * config/i386/i386.md
27666         (define_insn "*movoi_internal_avx"): Add evex version.
27667         (define_insn "*movti_internal"): Ditto.
27668
27669 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27670             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27671             Anna Tikhonova  <anna.tikhonova@intel.com>
27672             Ilya Tocar  <ilya.tocar@intel.com>
27673             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27674             Ilya Verbin  <ilya.verbin@intel.com>
27675             Kirill Yukhin  <kirill.yukhin@intel.com>
27676             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27677
27678         * config/i386/i386.md
27679         (define_attr "isa"): Add avx512dq, noavx512dq.
27680         (define_attr "enabled"): Ditto.
27681         * config/i386/sse.md
27682         (define_insn "vec_extract_hi_<mode><mask_name>"): Support masking.
27683
27684 2014-08-18  Alexander Ivchenko  <alexander.ivchenko@intel.com>
27685             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
27686             Anna Tikhonova  <anna.tikhonova@intel.com>
27687             Ilya Tocar  <ilya.tocar@intel.com>
27688             Andrey Turetskiy  <andrey.turetskiy@intel.com>
27689             Ilya Verbin  <ilya.verbin@intel.com>
27690             Kirill Yukhin  <kirill.yukhin@intel.com>
27691             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
27692
27693         * config/i386/i386.c
27694         (ix86_expand_special_args_builtin): Handle avx512vl_storev8sf_mask,
27695         avx512vl_storev8si_mask, avx512vl_storev4df_mask, avx512vl_storev4di_mask,
27696         avx512vl_storev4sf_mask, avx512vl_storev4si_mask, avx512vl_storev2df_mask,
27697         avx512vl_storev2di_mask, avx512vl_loadv8sf_mask, avx512vl_loadv8si_mask,
27698         avx512vl_loadv4df_mask, avx512vl_loadv4di_mask, avx512vl_loadv4sf_mask,
27699         avx512vl_loadv4si_mask, avx512vl_loadv2df_mask, avx512vl_loadv2di_mask,
27700         avx512bw_loadv64qi_mask, avx512vl_loadv32qi_mask, avx512vl_loadv16qi_mask,
27701         avx512bw_loadv32hi_mask, avx512vl_loadv16hi_mask, avx512vl_loadv8hi_mask.
27702         * config/i386/i386.md (define_mode_attr ssemodesuffix): Allow V32HI mode.
27703         * config/i386/sse.md
27704         (define_mode_iterator VMOVE): Allow V4TI mode.
27705         (define_mode_iterator V_AVX512VL): New.
27706         (define_mode_iterator V): New handling for AVX512VL.
27707         (define_insn "avx512f_load<mode>_mask"): Delete.
27708         (define_insn "<avx512>_load<mode>_mask"): New.
27709         (define_insn "avx512f_store<mode>_mask"): Delete.
27710         (define_insn "<avx512>_store<mode>_mask"): New.
27711
27712
27713 2014-08-18  Yury Gribov  <y.gribov@samsung.com>
27714
27715         PR sanitizer/62089
27716         * asan.c (instrument_derefs): Fix bitfield check.
27717
27718 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27719
27720         * config/rs6000/constraints.md ("S"): Require TARGET_POWERPC64.
27721         * config/rs6000/htm.md (ttest): Remove clobber.
27722         * config/rs6000/predicates.md (any_mask_operand): New predicate.
27723         (and_operand): Reformat.
27724         (and_2rld_operand): New predicate.
27725         * config/rs6000/rs6000-protos.h (rs6000_split_logical): Remove last
27726         parameter.
27727         * config/rs6000/rs6000.c (rs6000_split_logical_inner): Remove last
27728         parameter.  Handle AND directly.
27729         (rs6000_split_logical_di): Remove last parameter.
27730         (rs6000_split_logical): Remove last parameter.  Remove obsolete
27731         comment.
27732         * config/rs6000/rs6000.md (BOOL_REGS_AND_CR0): Delete.
27733         (one_cmpl<mode>2): Adjust call of rs6000_split_logical.
27734         (ctz<mode>2, ffs<mode>2): Delete clobber.  Reformat.
27735         (andsi3, andsi3_mc, andsi3_nomc, *andsi3_internal2_mc,
27736         *andsi3_internal3_mc, *andsi3_internal4, *andsi3_internal5_mc,
27737         and 5 anonymous splitters):  Delete.
27738         (and<mode>3): New expander.
27739         (*and<mode>3, *and<mode>3_dot, *and<mode>3_dot2): New.
27740         (and<mode>3_imm, *and<mode>3_imm_dot, *and<mode>3_imm_dot2): New.
27741         (*and<mode>3_mask, *and<mode>3_mask_dot, *and<mode>3_mask_dot2): New.
27742         (ior<mode>, xor<mode>3): Adjust call of rs6000_split_logical.
27743         (floatdisf2_internal1): Remove clobbers.
27744         (anddi3, anddi3_mc, anddi3_nomc, anddi3_internal2_mc,
27745         *anddi3_internal3_mc, and 4 anonymous splitters): Delete.
27746         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): New.
27747         (and<mode>3 for BOOL_128): Remove clobber.
27748         (*and<mode>3_internal for BOOL_128): Remove clobber.  Adjust call of
27749         rs6000_split_logical.
27750         (*bool<mode>3_internal for BOOL_128): Adjust call of
27751         rs6000_split_logical.
27752         (*boolc<mode>3_internal1 for BOOL_128,
27753         *boolc<mode>3_internal2 for BOOL_128,
27754         *boolcc<mode>3_internal1 for BOOL_128,
27755         *boolcc<mode>3_internal2 for BOOL_128,
27756         *eqv<mode>3_internal1 for BOOL_128,
27757         *eqv<mode>3_internal2 for BOOL_128,
27758         *one_cmpl<mode>3_internal for BOOL_128): Ditto.
27759         * config/rs6000/vector.md (*vec_reload_and_plus_<mptrsize): Remove
27760         clobber.
27761         (*vec_reload_and_reg_<mptrsize>): Delete.
27762
27763 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27764
27765         * config/rs6000/rs6000.md (*boolccsi3_internal1, *boolccsi3_internal2
27766         and split, *boolccsi3_internal3 and split): Delete.
27767         (*boolccdi3_internal1, *boolccdi3_internal2 and split,
27768         *boolccdi3_internal3 and split): Delete.
27769         (*boolcc<mode>3, *boolcc<mode>3_dot, *boolcc<mode>3_dot2): New.
27770         (*eqv<mode>3): Move.  Add TODO comment.  Fix attributes.
27771
27772 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27773
27774         * config/rs6000/rs6000.md (*boolcsi3_internal1, *boolcsi3_internal2
27775         and split, *boolcsi3_internal3 and split): Delete.
27776         (*boolcdi3_internal1, *boolcdi3_internal2 and split,
27777         *boolcdi3_internal3 and split): Delete.
27778         (*boolc<mode>3, *boolc<mode>3_dot, *boolc<mode>3_dot2): New.
27779
27780 2014-08-17  Segher Boessenkool  <segher@kernel.crashing.org>
27781
27782         * config/rs6000/rs6000.c (print_operand) <'e'>: New.
27783         <'u'>: Also support printing the low-order 16 bits.
27784         * config/rs6000/rs6000.md (iorsi3, xorsi3, *boolsi3_internal1,
27785         *boolsi3_internal2 and split, *boolsi3_internal3 and split): Delete.
27786         (iordi3, xordi3, *booldi3_internal1, *booldi3_internal2 and split,
27787         *booldi3_internal3 and split): Delete.
27788         (ior<mode>3, xor<mode>3, *bool<mode>3, *bool<mode>3_dot,
27789         *bool<mode>3_dot2): New.
27790         (two anonymous define_splits for non_logical_cint_operand): Merge.
27791
27792 2014-08-17  Marek Polacek  <polacek@redhat.com>
27793             Manuel López-Ibáñez  <manu@gcc.gnu.org>
27794
27795         PR c/62059
27796         * diagnostic.c (adjust_line): Add gcc_checking_assert.
27797         (diagnostic_show_locus): Don't print caret diagnostic
27798         if a column is larger than the line_width.
27799
27800 2014-08-17 Roman Gareev  <gareevroman@gmail.com>
27801
27802         * common.opt: Make the ISL AST generator to be the main code generator
27803         of Graphite.
27804
27805 2014-08-16  Gerald Pfeifer  <gerald@pfeifer.com>
27806
27807         * wide-int.h (generic_wide_int): Declare as class instead of struct.
27808
27809 2014-08-16  John David Anglin  <danglin@gcc.gnu.org>
27810
27811         PR target/61641
27812         * config/pa/pa-protos.h (pa_output_addr_vec, pa_output_addr_diff_vec):
27813         Declare.
27814         * config/pa/pa.c (pa_reorg): Remove code to insert brtab marker insns.
27815         (pa_output_addr_vec, pa_output_addr_diff_vec): New.
27816         * config/pa/pa.h (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC):
27817         Define.
27818         * config/pa/pa.md (begin_brtab): Delete insn.
27819         (end_brtab): Likewise.
27820
27821 2014-08-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27822
27823         * doc/cppopts.texi (ftrack-macro-expansion): Add missing @code.
27824
27825 2014-08-15  Jan Hubicka  <hubicka@ucw.cz>
27826
27827         * ipa-utils.h (ipa_polymorphic_call_context): Turn into class; add ctors.
27828         (possible_polymorphic_call_targets, dump_possible_polymorphic_call_targets,
27829         possible_polymorphic_call_target_p, possible_polymorphic_call_target_p): Simplify.
27830         (get_dynamic_type): Remove.
27831         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Remove.
27832         (clear_speculation): Bring to ipa-deivrt.h
27833         (get_class_context): Rename to ...
27834         (ipa_polymorphic_call_context::restrict_to_inner_class): ... this one.
27835         (contains_type_p): Update.
27836         (get_dynamic_type): Rename to ...
27837         ipa_polymorphic_call_context::get_dynamic_type(): ... this one.
27838         (possible_polymorphic_call_targets): UPdate.
27839         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Update.
27840         * ipa-prop.c (ipa_analyze_call_uses): Update.
27841
27842 2014-08-15  Oleg Endo  <olegendo@gcc.gnu.org>
27843
27844         * doc/invoke.texi (SH options): Document missing processor variant
27845         options.  Remove references to Hitachi.  Undocument deprecated mspace
27846         option.
27847
27848 2014-08-15  Jason Merrill  <jason@redhat.com>
27849
27850         * tree.c (type_hash_canon): Uncomment assert.
27851
27852 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27853
27854         * input.h (in_system_header_at): Add comment.
27855
27856 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27857
27858         PR fortran/44054
27859         * diagnostic.c (build_message_string): Make it extern.
27860         * diagnostic.h (build_message_string): Make it extern.
27861
27862 2014-08-15  Vladimir Makarov  <vmakarov@redhat.com>
27863
27864         * config/rs6000/rs6000.c (rs6000_emit_move): Use SDmode for
27865         load/store from/to non-floating class pseudo.
27866
27867 2014-08-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27868
27869         * input.c (diagnostic_file_cache_fini): Fix typo in comment.
27870
27871 2014-08-15  Richard Biener  <rguenther@suse.de>
27872
27873         * tree-ssa-structalias.c (readonly_id): Rename to string_id.
27874         (get_constraint_for_ssa_var): Remove dead code.
27875         (get_constraint_for_1): Adjust.
27876         (find_what_var_points_to): Likewise.
27877         (init_base_vars): Likewise.  STRING_CSTs do not contain pointers.
27878
27879 2014-08-15  Ilya Tocar  <tocarip@gmail.com>
27880
27881         PR target/61878
27882         * config/i386/avx512fintrin.h (_mm512_mask_cmpge_epi32_mask): New.
27883         (_mm512_mask_cmpge_epu32_mask): Ditto.
27884         (_mm512_cmpge_epu32_mask): Ditto.
27885         (_mm512_mask_cmpge_epi64_mask): Ditto.
27886         (_mm512_cmpge_epi64_mask): Ditto.
27887         (_mm512_mask_cmpge_epu64_mask): Ditto.
27888         (_mm512_cmpge_epu64_mask): Ditto.
27889         (_mm512_mask_cmple_epi32_mask): Ditto.
27890         (_mm512_cmple_epi32_mask): Ditto.
27891         (_mm512_mask_cmple_epu32_mask): Ditto.
27892         (_mm512_cmple_epu32_mask): Ditto.
27893         (_mm512_mask_cmple_epi64_mask): Ditto.
27894         (_mm512_cmple_epi64_mask): Ditto.
27895         (_mm512_mask_cmple_epu64_mask): Ditto.
27896         (_mm512_cmple_epu64_mask): Ditto.
27897         (_mm512_mask_cmplt_epi32_mask): Ditto.
27898         (_mm512_cmplt_epi32_mask): Ditto.
27899         (_mm512_mask_cmplt_epu32_mask): Ditto.
27900         (_mm512_cmplt_epu32_mask): Ditto.
27901         (_mm512_mask_cmplt_epi64_mask): Ditto.
27902         (_mm512_cmplt_epi64_mask): Ditto.
27903         (_mm512_mask_cmplt_epu64_mask): Ditto.
27904         (_mm512_cmplt_epu64_mask): Ditto.
27905         (_mm512_mask_cmpneq_epi32_mask): Ditto.
27906         (_mm512_mask_cmpneq_epu32_mask): Ditto.
27907         (_mm512_cmpneq_epu32_mask): Ditto.
27908         (_mm512_mask_cmpneq_epi64_mask): Ditto.
27909         (_mm512_cmpneq_epi64_mask): Ditto.
27910         (_mm512_mask_cmpneq_epu64_mask): Ditto.
27911         (_mm512_cmpneq_epu64_mask): Ditto.
27912         (_mm512_castpd_ps): Ditto.
27913         (_mm512_castpd_si512): Ditto.
27914         (_mm512_castps_pd): Ditto.
27915         (_mm512_castps_si512): Ditto.
27916         (_mm512_castsi512_ps): Ditto.
27917         (_mm512_castsi512_pd): Ditto.
27918         (_mm512_castpd512_pd128): Ditto.
27919         (_mm512_castps512_ps128): Ditto.
27920         (_mm512_castsi512_si128): Ditto.
27921         (_mm512_castpd512_pd256): Ditto.
27922         (_mm512_castps512_ps256): Ditto.
27923         (_mm512_castsi512_si256): Ditto.
27924         (_mm512_castpd128_pd512): Ditto.
27925         (_mm512_castps128_ps512): Ditto.
27926         (_mm512_castsi128_si512): Ditto.
27927         (_mm512_castpd256_pd512): Ditto.
27928         (_mm512_castps256_ps512): Ditto.
27929         (_mm512_castsi256_si512): Ditto.
27930         (_mm512_cmpeq_epu32_mask): Ditto.
27931         (_mm512_mask_cmpeq_epu32_mask): Ditto.
27932         (_mm512_mask_cmpeq_epu64_mask): Ditto.
27933         (_mm512_cmpeq_epu64_mask): Ditto.
27934         (_mm512_cmpgt_epu32_mask): Ditto.
27935         (_mm512_mask_cmpgt_epu32_mask): Ditto.
27936         (_mm512_mask_cmpgt_epu64_mask): Ditto.
27937         (_mm512_cmpgt_epu64_mask): Ditto.
27938         * config/i386/i386-builtin-types.def: Add V16SF_FTYPE_V8SF,
27939         V16SI_FTYPE_V8SI, V16SI_FTYPE_V4SI, V8DF_FTYPE_V2DF.
27940         * config/i386/i386.c (enum ix86_builtins): Add
27941         IX86_BUILTIN_SI512_SI256, IX86_BUILTIN_PD512_PD256,
27942         IX86_BUILTIN_PS512_PS256, IX86_BUILTIN_SI512_SI,
27943         IX86_BUILTIN_PD512_PD, IX86_BUILTIN_PS512_PS.
27944         (bdesc_args): Add __builtin_ia32_si512_256si,
27945         __builtin_ia32_ps512_256ps, __builtin_ia32_pd512_256pd,
27946         __builtin_ia32_si512_si, __builtin_ia32_ps512_ps,
27947         __builtin_ia32_pd512_pd.
27948         (ix86_expand_args_builtin): Handle new FTYPEs.
27949         * config/i386/sse.md (castmode): Add 512-bit modes.
27950         (AVX512MODE2P): New.
27951         (avx512f_<castmode><avxsizesuffix>_<castmode): New.
27952         (avx512f_<castmode><avxsizesuffix>_256<castmode): Ditto.
27953
27954 2014-08-15  Richard Biener  <rguenther@suse.de>
27955
27956         * fold-const.c (tree_swap_operands_p): Put all constants
27957         last, also strip sign-changing NOPs when considering further
27958         canonicalization.  Canonicalize also when optimizing for size.
27959
27960 2014-08-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27961
27962         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
27963         one_match > zero_match case to just before simple_sequence.
27964
27965 2014-08-15  Richard Biener  <rguenther@suse.de>
27966
27967         * data-streamer.h (streamer_string_index, string_for_index):
27968         Remove.
27969         * data-streamer-out.c (streamer_string_index): Make static.
27970         * data-streamer-in.c (string_for_index): Likewise.
27971         * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
27972         * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.
27973
27974 2014-08-15  Richard Biener  <rguenther@suse.de>
27975
27976         PR tree-optimization/62031
27977         * tree-data-ref.c (dr_analyze_indices): Do not set
27978         DR_UNCONSTRAINED_BASE.
27979         (dr_may_alias_p): All indirect accesses have to go the
27980         formerly DR_UNCONSTRAINED_BASE path.
27981         * tree-data-ref.h (struct indices): Remove
27982         unconstrained_base member.
27983         (DR_UNCONSTRAINED_BASE): Remove.
27984
27985 2014-08-15  Jakub Jelinek  <jakub@redhat.com>
27986
27987         PR middle-end/62092
27988         * gimplify.c (gimplify_adjust_omp_clauses_1): Don't remove
27989         OMP_CLAUSE_SHARED for global vars if the global var is mentioned
27990         in OMP_CLAUSE_MAP in some outer target region.
27991
27992 2014-08-15  Bin Cheng  <bin.cheng@arm.com>
27993
27994         * tree-ssa-loop-ivopts.c (ivopts_data): New field
27995         name_expansion_cache.
27996         (tree_ssa_iv_optimize_init): Initialize name_expansion_cache.
27997         (tree_ssa_iv_optimize_finalize): Free name_expansion_cache.
27998         (strip_wrap_conserving_type_conversions, expr_equal_p): Delete.
27999         (difference_cannot_overflow_p): New parameter.  Use affine
28000         expansion for equality check.
28001         (iv_elimination_compare_lt): Pass new argument.
28002
28003 2014-08-14  DJ Delorie  <dj@redhat.com>
28004
28005         * config/rl78/rl78-real.md (addqi3_real): Allow adding global
28006         variables to the accumulator.
28007
28008         * config/rl78/predicates.md (rl78_near_mem_operand): New.
28009         * config/rl78/rl78-virt.md (movqi_virt_mm, movqi_virt)
28010         (movhi_virt_mm): Split out near mem-mem moves to avoid problems
28011         with far-far moves.
28012
28013         * config/rl78/rl78-expand.md (umulqihi3): Disable for G10.
28014         * config/rl78/rl78-virt.md (umulhi3_shift_virt): Likewise.
28015         (umulqihi3_virt): Likewise.
28016         * config/rl78/rl78-real.md (umulhi3_shift_real): Likewise.
28017         (umulqihi3_real): Likewise.
28018
28019         * config/rl78/rl78-virt.md (movhi_virt): Allow const->far moves.
28020
28021 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28022
28023         PR tree-optimization/62091
28024         * tree-ssa-alias.c (walk_aliased_vdefs_1): Do not clear
28025         function_entry_reached.
28026         (walk_aliased_vdefs): Clear it here.
28027         * ipa-devirt.c (check_stmt_for_type_change): Handle static storage.
28028
28029 2014-08-14  Jan Hubicka  <hubicka@ucw.cz>
28030
28031         * ipa-utils.h (compare_virtual_tables): Declare.
28032         * ipa-devirt.c (odr_subtypes_equivalent_p): New function
28033
28034 2014-08-14  Marek Polacek  <polacek@redhat.com>
28035
28036         DR 458
28037         * ginclude/stdatomic.h (__atomic_type_lock_free): Remove.
28038         (ATOMIC_*_LOCK_FREE): Map to __GCC_ATOMIC_*_LOCK_FREE.
28039
28040 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28041
28042         * emit-rtl.h (mem_attrs_eq_p): Remove duplicate declaration.
28043
28044 2014-08-14  Tom de Vries  <tom@codesourcery.com>
28045
28046         PR rtl-optimization/62004
28047         PR rtl-optimization/62030
28048         * ifcvt.c (rtx_interchangeable_p): New function.
28049         (noce_try_move, noce_process_if_block): Use rtx_interchangeable_p.
28050         * emit-rtl.h (mem_attrs_eq_p): Declare.
28051
28052 2014-08-14  Roman Gareev  <gareevroman@gmail.com>
28053
28054         * graphite-scop-detection.c:
28055         Add inclusion of cp-tree.h.
28056         (graphite_can_represent_scev): Disables the handling of SSA_NAME nodes
28057         in case they are pointers to object types
28058
28059 2014-08-14  Richard Biener  <rguenther@suse.de>
28060
28061         * BASE-VER: Change to 5.0.0
28062
28063 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28064             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28065             Anna Tikhonova  <anna.tikhonova@intel.com>
28066             Ilya Tocar  <ilya.tocar@intel.com>
28067             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28068             Ilya Verbin  <ilya.verbin@intel.com>
28069             Kirill Yukhin  <kirill.yukhin@intel.com>
28070             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28071
28072         * config/i386/sse.md (define_mode_attr avx512): New.
28073         (define_mode_attr sse2_avx_avx512f): Allow V8HI, V16HI, V32HI, V2DI,
28074         V4DI modes.
28075         (define_mode_attr sse2_avx2): Allow V64QI, V32HI, V4TI modes.
28076         (define_mode_attr ssse3_avx2): Ditto.
28077         (define_mode_attr sse4_1_avx2): Allow V64QI, V32HI, V8DI modes.
28078         (define_mode_attr avx2_avx512bw): New.
28079         (define_mode_attr ssedoublemodelower): New.
28080         (define_mode_attr ssedoublemode): Allow V8SF, V8SI, V4DI, V4DF, V4SI,
28081         V32HI, V64QI modes.
28082         (define_mode_attr ssebytemode): Allow V8DI modes.
28083         (define_mode_attr sseinsnmode): Allow V4TI, V32HI, V64QI modes.
28084         (define_mode_attr sseintvecmodelower): Allow V8DF, V4TI modes.
28085         (define_mode_attr ssePSmode2): New.
28086         (define_mode_attr ssescalarsize): Allow V64QI, V32QI, V16QI, V8HI,
28087         V16HI, V32HI modes.
28088         (define_mode_attr dbpsadbwmode): New.
28089         (define_mode_attr bcstscalarsuff): Allow V64QI, V32QI, V16QI, V32HI,
28090         V16HI, V8HI, V8SI, V4SI, V4DI, V2DI, V8SF, V4SF, V4DF, V2DF modes.
28091         (vi8_sse4_1_avx2_avx512): New.
28092         (define_insn <sse4_1_avx2>_movntdqa): Use <vi8_sse4_1_avx2_avx512>
28093         mode attribute.
28094         (define_mode_attr blendbits): Move before its immediate use.
28095
28096 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28097             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28098             Anna Tikhonova  <anna.tikhonova@intel.com>
28099             Ilya Tocar  <ilya.tocar@intel.com>
28100             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28101             Ilya Verbin  <ilya.verbin@intel.com>
28102             Kirill Yukhin  <kirill.yukhin@intel.com>
28103             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28104
28105         * config/i386/sse.md: Allow V64QI, V32QI, V32HI, V4HI modes.
28106         * config/i386/subst.md
28107         (define_mode_iterator SUBST_V): Update.
28108         (define_mode_iterator SUBST_A): Ditto.
28109         (define_subst_attr "mask_operand7"): New.
28110         (define_subst_attr "mask_operand10"): New.
28111         (define_subst_attr "mask_operand_arg34") : New.
28112         (define_subst_attr "mask_expand_op3"): New.
28113         (define_subst_attr "mask_mode512bit_condition"): Handle TARGET_AVX512VL.
28114         (define_subst_attr "sd_mask_mode512bit_condition"): Ditto.
28115         (define_subst_attr "mask_avx512vl_condition"): New.
28116         (define_subst_attr "round_mask_operand4"): Ditto.
28117         (define_subst_attr "round_mask_scalar_op3"): Delete.
28118         (define_subst_attr "round_mask_op4"): New.
28119         (define_subst_attr "round_mode512bit_condition"): Allow V8DImode,
28120         V16SImode.
28121         (define_subst_attr "round_modev8sf_condition"): New.
28122         (define_subst_attr "round_modev4sf_condition"): GET_MODE instead of
28123         <MODE>mode.
28124         (define_subst_attr "round_saeonly_mask_operand4"): New.
28125         (define_subst_attr "round_saeonly_mask_op4"): New.
28126         (define_subst_attr "round_saeonly_mode512bit_condition"): Allow
28127         V8DImode, V16SImode.
28128         (define_subst_attr "round_saeonly_modev8sf_condition"): New.
28129         (define_subst_attr "mask_expand4_name" "mask_expand4"): New.
28130         (define_subst_attr "mask_expand4_args"): New.
28131         (define_subst "mask_expand4"): New.
28132
28133 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28134             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28135             Anna Tikhonova  <anna.tikhonova@intel.com>
28136             Ilya Tocar  <ilya.tocar@intel.com>
28137             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28138             Ilya Verbin  <ilya.verbin@intel.com>
28139             Kirill Yukhin  <kirill.yukhin@intel.com>
28140             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28141
28142         * config/i386/i386.md
28143         (define_attr "isa"): Add avx512bw,noavx512bw.
28144         (define_attr "enabled"): Ditto.
28145         (define_split): Add 32/64-bit mask logic.
28146         (define_insn "*k<logic>qi"): New.
28147         (define_insn "*k<logic>hi"): New.
28148         (define_insn "*anddi_1"): Add mask version.
28149         (define_insn "*andsi_1"): Ditto.
28150         (define_insn "*<code><mode>_1"): Ditto.
28151         (define_insn "*<code>hi_1"): Ditto.
28152         (define_insn "kxnor<mode>"): New.
28153         (define_insn "kunpcksi"): New.
28154         (define_insn "kunpckdi"): New.
28155         (define_insn "*one_cmpl<mode>2_1"): Add mask version.
28156         (define_insn "*one_cmplhi2_1"): Ditto.
28157
28158 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28159             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28160             Anna Tikhonova  <anna.tikhonova@intel.com>
28161             Ilya Tocar  <ilya.tocar@intel.com>
28162             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28163             Ilya Verbin  <ilya.verbin@intel.com>
28164             Kirill Yukhin  <kirill.yukhin@intel.com>
28165             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28166
28167         * config/i386/i386.c (ix86_preferred_simd_mode): Allow V64QImode and
28168         V32HImode.
28169
28170 2014-08-14  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28171             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28172             Anna Tikhonova  <anna.tikhonova@intel.com>
28173             Ilya Tocar  <ilya.tocar@intel.com>
28174             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28175             Ilya Verbin  <ilya.verbin@intel.com>
28176             Kirill Yukhin  <kirill.yukhin@intel.com>
28177             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28178
28179         * config/i386/i386.c (print_reg): Сorrectly print 64-bit mask
28180         registers.
28181         (inline_secondary_memory_needed): Allow 64 bit wide mask registers.
28182         (ix86_hard_regno_mode_ok): Allow 32/64-bit mask registers and
28183         xmm/ymm16+ when availble.
28184         * config/i386/i386.h
28185         (HARD_REGNO_NREGS): Add mask regs.
28186         (VALID_AVX512F_REG_MODE): Ditto.
28187         (VALID_AVX512F_REG_MODE) : Define.
28188         (VALID_MASK_AVX512BW_MODE): Ditto.
28189         (reg_class) (MASK_REG_P(X)): Define.
28190         * config/i386/i386.md: Do not split long moves with mask register,
28191         use kmovb if avx512bw is availible.
28192         (movdi_internal): Handle mask registers.
28193
28194 2014-08-14  Richard Biener  <rguenther@suse.de>
28195
28196         PR tree-optimization/62081
28197         * tree-ssa-loop.c (pass_fix_loops): New pass.
28198         (pass_tree_loop::gate):  Do not fixup loops here.
28199         * tree-pass.h (make_pass_fix_loops): Declare.
28200         * passes.def: Schedule pass_fix_loops before GIMPLE loop passes.
28201
28202 2014-08-14  Richard Biener  <rguenther@suse.de>
28203
28204         * tree.c (type_hash_lookup, type_hash_add): Merge into ...
28205         (type_hash_canon): ... this and avoid 2nd lookup for the add.
28206
28207 2014-08-14  Richard Biener  <rguenther@suse.de>
28208
28209         PR tree-optimization/62090
28210         * builtins.c (fold_builtin_sprintf): Move to gimple-fold.c.
28211         (fold_builtin_2): Do not fold sprintf.
28212         (fold_builtin_3): Likewise.
28213         * gimple-fold.c (gimple_fold_builtin_sprintf): New function
28214         moved from builtins.c.
28215         (gimple_fold_builtin): Fold sprintf.
28216
28217 2014-08-14  Richard Biener  <rguenther@suse.de>
28218
28219         PR rtl-optimization/62079
28220         * recog.c (peephole2_optimize): If peep2_do_cleanup_cfg
28221         run cleanup_cfg.
28222
28223 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28224
28225         * ipa-devirt.c (get_polymorphic_call_info): Use fndecl instead of
28226         current_function_decl.
28227
28228 2014-08-14  Ilya Enkovich  <ilya.enkovich@intel.com>
28229
28230         * cgraph.c (cgraph_node::function_symbol): Fix wrong
28231         cgraph_function_node to cgraph_node::function_symbol
28232         refactoring.
28233
28234 2014-08-14  Zhenqiang Chen  <zhenqiang.chen@arm.com>
28235
28236         * config/arm/arm.c (arm_option_override): Set max_insns_skipped
28237         to MAX_INSN_PER_IT_BLOCK when optimize_size for THUMB2.
28238
28239 2014-08-13  Chen Gang  gang.chen.5i5j@gmail.com
28240
28241         * microblaze/microblaze.md: Remove redundant '@' to avoid compiling
28242         warning.
28243
28244 2014-08-13  Roman Gareev  <gareevroman@gmail.com>
28245
28246         * gcc.dg/graphite/pr35356-2.c: Update according to the ISL code
28247         generator.
28248
28249 2014-08-12  Jakub Jelinek  <jakub@redhat.com>
28250
28251         PR target/62025
28252         * sched-deps.c (find_inc): Check if inc_insn doesn't clobber
28253         any registers that are used in mem_insn.
28254
28255 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28256
28257         * config/mips/mips.h (ASM_SPEC): Pass float options to assembler.
28258
28259 2014-08-12  Steve Ellcey  <sellcey@mips.com>
28260
28261         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Remove fp64 multilib.
28262         (MULTILIB_DIRNAMES): Ditto.
28263         * config/mips/t-mti-elf (MULTILIB_OPTIONS): Ditto.
28264         * config/mips/t-mti-elf (MULTILIB_EXCEPTIONS): Ditto.
28265         * config/mips/t-mti-linux (MULTILIB_OPTIONS): Ditto.
28266         * config/mips/t-mti-linux (MULTILIB_DIRNAMES): Ditto.
28267         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Ditto.
28268         * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Ditto.
28269
28270 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28271
28272         PR target/61413
28273         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix definition
28274         of __ARM_SIZEOF_WCHAR_T.
28275
28276 2014-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
28277
28278         PR target/62098
28279         * config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
28280         Remove unnecessary attributes.
28281
28282 2014-08-12  Yury Gribov  <y.gribov@samsung.com>
28283
28284         * internal-fn.c (init_internal_fns): Fix off-by-one.
28285
28286 2014-08-12  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28287             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28288             Anna Tikhonova  <anna.tikhonova@intel.com>
28289             Ilya Tocar  <ilya.tocar@intel.com>
28290             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28291             Ilya Verbin  <ilya.verbin@intel.com>
28292             Kirill Yukhin  <kirill.yukhin@intel.com>
28293             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28294
28295         * config/i386/i386.c (standard_sse_constant_opcode): Use
28296         vpxord/vpternlog if avx512 is availible.
28297
28298 2014-08-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28299
28300         PR middle-end/62103
28301         * gimple-fold.c (fold_ctor_reference): Don't fold in presence of
28302         bitfields, that is when size doesn't match the size of type or the
28303         size of the constructor.
28304
28305 2014-08-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
28306
28307         * config/rs6000/constraints.md (wh constraint): New constraint,
28308         for FP registers if direct move is available.
28309         (wi constraint): New constraint, for VSX/FP registers that can
28310         handle 64-bit integers.
28311         (wj constraint): New constraint for VSX/FP registers that can
28312         handle 64-bit integers for direct moves.
28313         (wk constraint): New constraint for VSX/FP registers that can
28314         handle 64-bit doubles for direct moves.
28315         (wy constraint): Make documentation match implementation.
28316
28317         * config/rs6000/rs6000.c (struct rs6000_reg_addr): Add
28318         scalar_in_vmx_p field to simplify tests of whether SFmode or
28319         DFmode can go in the Altivec registers.
28320         (rs6000_hard_regno_mode_ok): Use scalar_in_vmx_p field.
28321         (rs6000_setup_reg_addr_masks): Likewise.
28322         (rs6000_debug_print_mode): Add debug support for scalar_in_vmx_p
28323         field, and wh/wi/wj/wk constraints.
28324         (rs6000_init_hard_regno_mode_ok): Setup scalar_in_vmx_p field, and
28325         the wh/wi/wj/wk constraints.
28326         (rs6000_preferred_reload_class): If SFmode/DFmode can go in the
28327         upper registers, prefer VSX registers unless the operation is a
28328         memory operation with REG+OFFSET addressing.
28329
28330         * config/rs6000/vsx.md (VSr mode attribute): Add support for
28331         DImode.  Change SFmode to use ww constraint instead of d to allow
28332         SF registers in the upper registers.
28333         (VSr2): Likewise.
28334         (VSr3): Likewise.
28335         (VSr5): Fix thinko in comment.
28336         (VSa): New mode attribute that is an alternative to wa, that
28337         returns the VSX register class that a mode can go in, but may not
28338         be the preferred register class.
28339         (VS_64dm): New mode attribute for appropriate register classes for
28340         referencing 64-bit elements of vectors for direct moves and normal
28341         moves.
28342         (VS_64reg): Likewise.
28343         (vsx_mov<mode>): Change wa constraint to <VSa> to limit the
28344         register allocator to only registers the data type can handle.
28345         (vsx_le_perm_load_<mode>): Likewise.
28346         (vsx_le_perm_store_<mode>): Likewise.
28347         (vsx_xxpermdi2_le_<mode>): Likewise.
28348         (vsx_xxpermdi4_le_<mode>): Likewise.
28349         (vsx_lxvd2x2_le_<mode>): Likewise.
28350         (vsx_lxvd2x4_le_<mode>): Likewise.
28351         (vsx_stxvd2x2_le_<mode>): Likewise.
28352         (vsx_add<mode>3): Likewise.
28353         (vsx_sub<mode>3): Likewise.
28354         (vsx_mul<mode>3): Likewise.
28355         (vsx_div<mode>3): Likewise.
28356         (vsx_tdiv<mode>3_internal): Likewise.
28357         (vsx_fre<mode>2): Likewise.
28358         (vsx_neg<mode>2): Likewise.
28359         (vsx_abs<mode>2): Likewise.
28360         (vsx_nabs<mode>2): Likewise.
28361         (vsx_smax<mode>3): Likewise.
28362         (vsx_smin<mode>3): Likewise.
28363         (vsx_sqrt<mode>2): Likewise.
28364         (vsx_rsqrte<mode>2): Likewise.
28365         (vsx_tsqrt<mode>2_internal): Likewise.
28366         (vsx_fms<mode>4): Likewise.
28367         (vsx_nfma<mode>4): Likewise.
28368         (vsx_eq<mode>): Likewise.
28369         (vsx_gt<mode>): Likewise.
28370         (vsx_ge<mode>): Likewise.
28371         (vsx_eq<mode>_p): Likewise.
28372         (vsx_gt<mode>_p): Likewise.
28373         (vsx_ge<mode>_p): Likewise.
28374         (vsx_xxsel<mode>): Likewise.
28375         (vsx_xxsel<mode>_uns): Likewise.
28376         (vsx_copysign<mode>3): Likewise.
28377         (vsx_float<VSi><mode>2): Likewise.
28378         (vsx_floatuns<VSi><mode>2): Likewise.
28379         (vsx_fix_trunc<mode><VSi>2): Likewise.
28380         (vsx_fixuns_trunc<mode><VSi>2): Likewise.
28381         (vsx_x<VSv>r<VSs>i): Likewise.
28382         (vsx_x<VSv>r<VSs>ic): Likewise.
28383         (vsx_btrunc<mode>2): Likewise.
28384         (vsx_b2trunc<mode>2): Likewise.
28385         (vsx_floor<mode>2): Likewise.
28386         (vsx_ceil<mode>2): Likewise.
28387         (vsx_<VS_spdp_insn>): Likewise.
28388         (vsx_xscvspdp): Likewise.
28389         (vsx_xvcvspuxds): Likewise.
28390         (vsx_float_fix_<mode>2): Likewise.
28391         (vsx_set_<mode>): Likewise.
28392         (vsx_extract_<mode>_internal1): Likewise.
28393         (vsx_extract_<mode>_internal2): Likewise.
28394         (vsx_extract_<mode>_load): Likewise.
28395         (vsx_extract_<mode>_store): Likewise.
28396         (vsx_splat_<mode>): Likewise.
28397         (vsx_xxspltw_<mode>): Likewise.
28398         (vsx_xxspltw_<mode>_direct): Likewise.
28399         (vsx_xxmrghw_<mode>): Likewise.
28400         (vsx_xxmrglw_<mode>): Likewise.
28401         (vsx_xxsldwi_<mode>): Likewise.
28402         (vsx_xscvdpspn): Tighten constraints to only use register classes
28403         the types use.
28404         (vsx_xscvspdpn): Likewise.
28405         (vsx_xscvdpspn_scalar): Likewise.
28406
28407         * config/rs6000/rs6000.h (enum rs6000_reg_class_enum): Add wh, wi,
28408         wj, and wk constraints.
28409         (GPR_REG_CLASS_P): New helper macro for register classes targeting
28410         general purpose registers.
28411
28412         * config/rs6000/rs6000.md (f32_dm): Use wh constraint for SDmode
28413         direct moves.
28414         (zero_extendsidi2_lfiwz): Use wj constraint for direct move of
28415         DImode instead of wm.  Use wk constraint for direct move of DFmode
28416         instead of wm.
28417         (extendsidi2_lfiwax): Likewise.
28418         (lfiwax): Likewise.
28419         (lfiwzx): Likewise.
28420         (movdi_internal64): Likewise.
28421
28422         * doc/md.texi (PowerPC and IBM RS6000): Document wh, wi, wj, and
28423         wk constraints. Make the wy constraint documentation match them
28424         implementation.
28425
28426 2014-08-11  Mircea Namolaru  <mircea.namolaru@inria.fr>
28427
28428         Replacement of isl_int by isl_val
28429         * graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
28430         (compute_bounds_for_param): use isl_val instead of isl_int
28431         (compute_bounds_for_loop): likewise
28432         * graphite-interchange.c: include isl/val.h, isl/val_gmp.h
28433         (build_linearized_memory_access): use isl_val instead of isl_int
28434         (pdr_stride_in_loop): likewise
28435         * graphite-optimize-isl.c:
28436         (getPrevectorMap): use isl_val instead of isl_int
28437         * graphite-poly.c:
28438         (pbb_number_of_iterations_at_time): use isl_val instead of isl_int
28439         graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
28440         (extern the_isl_ctx): declare
28441         (build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
28442         (extract_affine_gmp): likewise
28443         (wrap): likewise
28444         (build_loop_iteration_domains): likewise
28445         (add_param_constraints): likewise
28446
28447 2014-08-11  Richard Biener  <rguenther@suse.de>
28448
28449         PR tree-optimization/62075
28450         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Properly
28451         handle uses in patterns.
28452
28453 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28454             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28455             Anna Tikhonova  <anna.tikhonova@intel.com>
28456             Ilya Tocar  <ilya.tocar@intel.com>
28457             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28458             Ilya Verbin  <ilya.verbin@intel.com>
28459             Kirill Yukhin  <kirill.yukhin@intel.com>
28460             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28461
28462         * common/config/i386/i386-common.c
28463         (OPTION_MASK_ISA_AVX512VL_SET): Define.
28464         (OPTION_MASK_ISA_AVX512F_UNSET): Update.
28465         (ix86_handle_option): Handle OPT_mavx512vl.
28466         * config/i386/cpuid.h (bit_AVX512VL): Define.
28467         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vl,
28468         set -mavx512vl accordingly.
28469         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28470         OPTION_MASK_ISA_AVX512VL.
28471         * config/i386/i386.c (ix86_target_string): Handle -mavx512vl.
28472         (ix86_option_override_internal): Define PTA_AVX512VL, handle
28473         PTA_AVX512VL and OPTION_MASK_ISA_AVX512VL.
28474         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512vl.
28475         * config/i386/i386.h (TARGET_AVX512VL): Define.
28476         (TARGET_AVX512VL_P(x)): Ditto.
28477         * config/i386/i386.opt: Add mavx512vl.
28478
28479 2014-08-11  Felix Yang  <fei.yang0953@gmail.com>
28480
28481         PR tree-optimization/62073
28482         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that DEF1 has
28483         a basic block.
28484
28485 2014-08-11  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28486             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28487             Anna Tikhonova  <anna.tikhonova@intel.com>
28488             Ilya Tocar  <ilya.tocar@intel.com>
28489             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28490             Ilya Verbin  <ilya.verbin@intel.com>
28491             Kirill Yukhin  <kirill.yukhin@intel.com>
28492             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28493
28494         * common/config/i386/i386-common.c
28495         (OPTION_MASK_ISA_AVX512BW_SET) : Define.
28496         (OPTION_MASK_ISA_AVX512BW_UNSET): Ditto.
28497         (OPTION_MASK_ISA_AVX512VL_UNSET) : Ditto.
28498         (ix86_handle_option): Handle OPT_mavx512bw.
28499         * config/i386/cpuid.h (bit_AVX512BW): Define.
28500         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512bw,
28501         set -mavx512bw accordingly.
28502         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28503         OPTION_MASK_ISA_AVX512BW.
28504         * config/i386/i386.c (ix86_target_string): Handle -mavx512bw.
28505         (ix86_option_override_internal): Define PTA_AVX512BW, handle
28506         PTA_AVX512BW and OPTION_MASK_ISA_AVX512BW.
28507         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512bw.
28508         * config/i386/i386.h (TARGET_AVX512BW): Define.
28509         (TARGET_AVX512BW_P(x)): Ditto.
28510         * config/i386/i386.opt: Add mavx512bw.
28511
28512 2014-08-11  Richard Biener  <rguenther@suse.de>
28513
28514         PR tree-optimization/62070
28515         * tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge):
28516         Remove SSA checking.
28517
28518 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28519
28520         * asan.c (asan_check_flags): New enum.
28521         (build_check_stmt_with_calls): Removed function.
28522         (build_check_stmt): Split inlining logic to
28523         asan_expand_check_ifn.
28524         (instrument_derefs): Rename parameter.
28525         (instrument_mem_region_access): Rename parameter.
28526         (instrument_strlen_call): Likewise.
28527         (asan_expand_check_ifn): New function.
28528         (asan_instrument): Remove old code.
28529         (pass_sanopt::execute): Change handling of
28530         asan-instrumentation-with-call-threshold.
28531         (asan_clear_shadow): Fix formatting.
28532         (asan_function_start): Likewise.
28533         (asan_emit_stack_protection): Likewise.
28534         * doc/invoke.texi (asan-instrumentation-with-call-threshold):
28535         Update description.
28536         * internal-fn.c (expand_ASAN_CHECK): New function.
28537         * internal-fn.def (ASAN_CHECK): New internal function.
28538         * params.def (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD):
28539         Update description.
28540         (PARAM_ASAN_USE_AFTER_RETURN): Likewise.
28541         * tree.c: Small comment fix.
28542
28543 2014-08-11  Yury Gribov  <y.gribov@samsung.com>
28544
28545         * gimple.c (gimple_call_fnspec): Support internal functions.
28546         (gimple_call_return_flags): Use const.
28547         * Makefile.in (GTFILES): Add internal-fn.h to list of GC files.
28548         * internal-fn.def: Add fnspec information.
28549         * internal-fn.h (internal_fn_fnspec): New function.
28550         (init_internal_fns): Declare new function.
28551         * internal-fn.c (internal_fn_fnspec_array): New global variable.
28552         (init_internal_fns): New function.
28553         * tree-core.h: Update macro call.
28554         * tree.c (build_common_builtin_nodes): Initialize internal fns.
28555
28556 2014-08-10  Gerald Pfeifer  <gerald@pfeifer.com>
28557
28558         * lto-streamer.h (struct output_block::symbol): Change from
28559         struct symtab_node to plain symtab_node.
28560         (referenced_from_this_partition_p): Change first parameter
28561         from struct symtab_node to plain symtab_node.
28562
28563 2014-08-10  Marek Polacek  <polacek@redhat.com>
28564
28565         PR c/51849
28566         * gcc/doc/invoke.texi: Document -Wc90-c99-compat.
28567
28568 2014-08-09  Jan Hubicka  <hubicka@ucw.cz>
28569
28570         * ipa-devirt.c (get_dynamic_type): Handle case when instance is in
28571         DECL correctly; do not give up on types in static storage.
28572
28573 2014-08-09  Paolo Carlini  <paolo.carlini@oracle.com>
28574
28575         * doc/invoke.texi ([Wnarrowing]): Update for non-constants in C++11.
28576
28577 2014-08-09  Roman Gareev  <gareevroman@gmail.com>
28578
28579         * graphite-isl-ast-to-gimple.c:
28580         (translate_isl_ast_node_user): Use nb_loops instead of loop->num + 1.
28581
28582         * gcc.dg/graphite/isl-ast-gen-user-1.c: New testcase.
28583
28584 2014-08-08  Guozhi Wei  <carrot@google.com>
28585
28586         * config/rs6000/rs6000.md (*movdi_internal64): Add a new constraint.
28587
28588 2014-08-08  Cary Coutant  <ccoutant@google.com>
28589
28590         * dwarf2out.c (get_skeleton_type_unit): Remove.
28591         (output_skeleton_debug_sections): Remove skeleton type units.
28592         (output_comdat_type_unit): Likewise.
28593         (dwarf2out_finish): Likewise.
28594
28595 2014-08-07  Yi Yang  <ahyangyi@google.com>
28596
28597         * predict.c (expr_expected_value_1): Remove the redundant assignment.
28598
28599 2014-08-08  Richard Biener  <rguenther@suse.de>
28600
28601         * lto-streamer.h (struct lto_input_block): Make it a class
28602         with a constructor.
28603         (LTO_INIT_INPUT_BLOCK, LTO_INIT_INPUT_BLOCK_PTR): Remove.
28604         (struct lto_function_header, struct lto_simple_header,
28605         struct lto_simple_header_with_strings,
28606         struct lto_decl_header, struct lto_function_header): Make
28607         a simple inheritance hieararchy.  Remove unused fields.
28608         (struct lto_asm_header): Remove.
28609         * lto-streamer-out.c (produce_asm): Adjust.
28610         (lto_output_toplevel_asms): Likewise.
28611         (produce_asm_for_decls): Likewise.
28612         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
28613         * data-streamer-in.c (string_for_index): Likewise.
28614         * ipa-inline-analysis.c (inline_read_section): Likewise.
28615         * ipa-prop.c (ipa_prop_read_section): Likewise.
28616         (read_replacements_section): Likewise.
28617         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28618         * lto-section-in.c (lto_create_simple_input_block): Likewise.
28619         (lto_destroy_simple_input_block): Likewise.
28620         * lto-streamer-in.c (lto_read_body_or_constructor): Likewise.
28621         (lto_input_toplevel_asms): Likewise.
28622
28623 2014-08-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28624             Maxim Kuznetsov  <maxim.kuznetsov@intel.com>
28625             Anna Tikhonova  <anna.tikhonova@intel.com>
28626             Ilya Tocar  <ilya.tocar@intel.com>
28627             Andrey Turetskiy  <andrey.turetskiy@intel.com>
28628             Ilya Verbin  <ilya.verbin@intel.com>
28629             Kirill Yukhin  <kirill.yukhin@intel.com>
28630             Michael Zolotukhin  <michael.v.zolotukhin@intel.com>
28631
28632         * common/config/i386/i386-common.c
28633         (OPTION_MASK_ISA_AVX512DQ_SET): Define.
28634         (OPTION_MASK_ISA_AVX512DQ_UNSET): Ditto.
28635         (ix86_handle_option): Handle OPT_mavx512dq.
28636         * config/i386/cpuid.h (bit_AVX512DQ): Define.
28637         * config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512dq,
28638         set -mavx512dq accordingly.
28639         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
28640         OPTION_MASK_ISA_AVX512DQ.
28641         * config/i386/i386.c (ix86_target_string): Handle -mavx512dq.
28642         (ix86_option_override_internal): Define PTA_AVX512DQ, handle
28643         PTA_AVX512DQ and OPTION_MASK_ISA_AVX512DQ.
28644         (ix86_valid_target_attribute_inner_p): Handle OPT_mavx512dq.
28645         * config/i386/i386.h (TARGET_AVX512DQ): Define.
28646         (TARGET_AVX512DQ_P(x)): Ditto.
28647         * config/i386/i386.opt: Add mavx512dq.
28648
28649 2014-08-08  Richard Biener  <rguenther@suse.de>
28650
28651         * builtins.c (c_getstr, readonly_data_expr, init_target_chars,
28652         target_percent, target_percent_s): Export.
28653         (var_decl_component_p, fold_builtin_memory_op, fold_builtin_memset,
28654         fold_builtin_bzero, fold_builtin_strcpy, fold_builtin_strncpy,
28655         fold_builtin_strcat, fold_builtin_fputs, fold_builtin_memory_chk,
28656         fold_builtin_stxcpy_chk, fold_builtin_stxncpy_chk,
28657         fold_builtin_sprintf_chk_1, fold_builtin_snprintf_chk_1):
28658         Move to gimple-fold.c.
28659         (fold_builtin_2): Remove handling of bzero, fputs, fputs_unlocked,
28660         strcat and strcpy.
28661         (fold_builtin_3): Remove handling of memset, bcopy, memcpy,
28662         mempcpy, memmove, strncpy, strcpy_chk and stpcpy_chk.
28663         (fold_builtin_4): Remove handling of memcpy_chk, mempcpy_chk,
28664         memmove_chk, memset_chk, strncpy_chk and stpncpy_chk.
28665         (rewrite_call_expr_array): Remove.
28666         (fold_builtin_sprintf_chk): Likewise.
28667         (fold_builtin_snprintf_chk): Likewise.
28668         (fold_builtin_varargs): Remove handling of sprintf_chk,
28669         vsprintf_chk, snprintf_chk and vsnprintf_chk.
28670         (gimple_fold_builtin_sprintf_chk): Remove.
28671         (gimple_fold_builtin_snprintf_chk): Likewise.
28672         (gimple_fold_builtin_varargs): Likewise.
28673         (fold_call_stmt): Do not call gimple_fold_builtin_varargs.
28674         * predict.c (optimize_bb_for_size_p): Handle NULL bb.
28675         * gimple.c (gimple_seq_add_seq_without_update): New function.
28676         * gimple.h (gimple_seq_add_seq_without_update): Declare.
28677         * gimple-fold.c: Include output.h.
28678         (gsi_replace_with_seq_vops): New function, split out from ...
28679         (gimplify_and_update_call_from_tree): ... here.
28680         (replace_call_with_value): New function.
28681         (replace_call_with_call_and_fold): Likewise.
28682         (var_decl_component_p): Moved from builtins.c.
28683         (gimple_fold_builtin_memory_op): Moved from builtins.c
28684         fold_builtin_memory_op and rewritten to GIMPLE.
28685         (gimple_fold_builtin_memset): Likewise.
28686         (gimple_fold_builtin_strcpy): Likewise.
28687         (gimple_fold_builtin_strncpy): Likewise.
28688         (gimple_fold_builtin_strcat): Likewise.
28689         (gimple_fold_builtin_fputs): Likewise.
28690         (gimple_fold_builtin_memory_chk): Likewise.
28691         (gimple_fold_builtin_stxcpy_chk): Likewise.
28692         (gimple_fold_builtin_stxncpy_chk): Likewise.
28693         (gimple_fold_builtin_snprintf_chk): Likewise.
28694         (gimple_fold_builtin_sprintf_chk): Likewise.
28695         (gimple_fold_builtin_strlen): New function.
28696         (gimple_fold_builtin_with_strlen): New function split out from
28697         gimple_fold_builtin.
28698         (gimple_fold_builtin): Change signature and handle
28699         bzero, memset, bcopy, memcpy, mempcpy and memmove folding
28700         here.  Call gimple_fold_builtin_with_strlen.
28701         (gimple_fold_call): Adjust.
28702
28703 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28704
28705         * calls.c (precompute_arguments): Check
28706         promoted_for_signed_and_unsigned_p and set the promoted mode.
28707         (promoted_for_signed_and_unsigned_p): New function.
28708         (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p
28709         and set the promoted mode.
28710         * expr.h (promoted_for_signed_and_unsigned_p): New function definition.
28711         * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if
28712         SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED.
28713
28714
28715 2014-08-08  Kugan Vivekanandarajah  <kuganv@linaro.org>
28716
28717         * calls.c (precompute_arguments): Use new SUBREG_PROMOTED_SET
28718         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28719         (expand_call): Likewise.
28720         * cfgexpand.c (expand_gimple_stmt_1): Use SUBREG_PROMOTED_SIGN
28721         to get promoted mode.
28722         * combine.c (record_promoted_value): Skip > 0 comparison with
28723         SUBREG_PROMOTED_UNSIGNED_P as it now returns only 0 or 1.
28724         * expr.c (convert_move): Use SUBREG_CHECK_PROMOTED_SIGN instead
28725         of SUBREG_PROMOTED_UNSIGNED_P.
28726         (convert_modes): Likewise.
28727         (store_expr): Use SUBREG_PROMOTED_SIGN to get promoted mode.
28728         Use SUBREG_CHECK_PROMOTED_SIGN instead of SUBREG_PROMOTED_UNSIGNED_P.
28729         (expand_expr_real_1): Use new SUBREG_PROMOTED_SET instead of
28730         SUBREG_PROMOTED_UNSIGNED_SET.
28731         * function.c (assign_parm_setup_reg): Use new SUBREG_PROMOTED_SET
28732         instead of SUBREG_PROMOTED_UNSIGNED_SET.
28733         * ifcvt.c (noce_emit_cmove): Updated to use SUBREG_PROMOTED_GET and
28734         SUBREG_PROMOTED_SET.
28735         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Use
28736         SUBREG_PROMOTED_SET instead of SUBREG_PROMOTED_UNSIGNED_SET.
28737         * optabs.c (widen_operand): Use SUBREG_CHECK_PROMOTED_SIGN instead
28738         of SUBREG_PROMOTED_UNSIGNED_P.
28739         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Remove.
28740         (SUBREG_PROMOTED_SET): New define.
28741         (SUBREG_PROMOTED_GET): Likewise.
28742         (SUBREG_PROMOTED_SIGN): Likewise.
28743         (SUBREG_PROMOTED_SIGNED_P): Likewise.
28744         (SUBREG_CHECK_PROMOTED_SIGN): Likewise.
28745         (SUBREG_PROMOTED_UNSIGNED_P): Updated.
28746         * rtlanal.c (unsigned_reg_p): Use new SUBREG_PROMOTED_GET
28747         instead of SUBREG_PROMOTED_UNSIGNED_GET.
28748         (nonzero_bits1): Skip > 0 comparison with the results as
28749         SUBREG_PROMOTED_UNSIGNED_P now returns only 0 or 1.
28750         (num_sign_bit_copies1): Use SUBREG_PROMOTED_SIGNED_P instead
28751         of !SUBREG_PROMOTED_UNSIGNED_P.
28752         * simplify-rtx.c (simplify_unary_operation_1): Use new
28753         SUBREG_PROMOTED_SIGNED_P instead of !SUBREG_PROMOTED_UNSIGNED_P.
28754         (simplify_subreg): Use new SUBREG_PROMOTED_SIGNED_P,
28755         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_SET instead of
28756         SUBREG_PROMOTED_UNSIGNED_P and SUBREG_PROMOTED_UNSIGNED_SET.
28757
28758 2014-08-07  Jan Hubicka  <hubicka@ucw.cz>
28759
28760         * ipa-devirt.c: Include gimple-pretty-print.h
28761         (referenced_from_vtable_p): Exclude DECL_EXTERNAL from
28762         further tests.
28763         (decl_maybe_in_construction_p): Fix conditional on cdtor check
28764         (get_polymorphic_call_info): Fix return value
28765         (type_change_info): New sturcture based on ipa-prop
28766         variant.
28767         (noncall_stmt_may_be_vtbl_ptr_store): New predicate
28768         based on ipa-prop variant.
28769         (extr_type_from_vtbl_ptr_store): New function
28770         based on ipa-prop variant.
28771         (record_known_type): New function.
28772         (check_stmt_for_type_change): New function.
28773         (get_dynamic_type): New function.
28774         * ipa-prop.c (ipa_analyze_call_uses): Use get_dynamic_type.
28775         * tree-ssa-pre.c: ipa-utils.h
28776         (eliminate_dom_walker::before_dom_children): Use ipa-devirt
28777         machinery; sanity check with ipa-prop devirtualization.
28778         * trans-mem.c (ipa_tm_insert_gettmclone_call): Clear
28779         polymorphic flag.
28780
28781 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
28782
28783         * Makefile.in: Remove references to pointer-set.c and pointer-set.h.
28784         * alias.c, cfgexpand.c, cgraphbuild.c,
28785         config/aarch64/aarch64-builtins.c, config/aarch64/aarch64.c,
28786         config/alpha/alpha.c, config/darwin.c, config/i386/i386.c,
28787         config/i386/winnt.c, config/ia64/ia64.c, config/m32c/m32c.c,
28788         config/mep/mep.c, config/mips/mips.c, config/rs6000/rs6000.c,
28789         config/s390/s390.c, config/sh/sh.c, config/sparc/sparc.c,
28790         config/spu/spu.c, config/stormy16/stormy16.c, config/tilegx/tilegx.c,
28791         config/tilepro/tilepro.c, config/xtensa/xtensa.c, dominance.c,
28792         dse.c, except.c, gengtype.c, gimple-expr.c,
28793         gimple-ssa-strength-reduction.c, gimplify.c, ifcvt.c,
28794         ipa-visibility.c, lto-streamer.h, omp-low.c, predict.c, stmt.c,
28795         tree-affine.c, tree-cfg.c, tree-eh.c, tree-inline.c, tree-nested.c,
28796         tree-scalar-evolution.c, tree-ssa-loop-im.c, tree-ssa-loop-niter.c,
28797         tree-ssa-phiopt.c, tree-ssa-structalias.c, tree-ssa-uninit.c,
28798         tree-ssa.c, tree.c, var-tracking.c, varpool.c: Remove includes of
28799         pointer-set.h.
28800         * pointer-set.c: Remove file.
28801         * pointer-set.h: Remove file.
28802
28803 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28804
28805         * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
28806         * config/arm/types.md (f_sels, f_seld): Delete.
28807
28808 2014-08-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28809
28810         * config/aarch64/aarch64.md (absdi2): Set simd attribute.
28811         (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
28812         (aarch64_movdi_<mode>high): Likewise.
28813         (aarch64_mov<mode>high_di): Likewise.
28814         (aarch64_movdi_<mode>low): Likewise.
28815         (aarch64_mov<mode>low_di): Likewise.
28816         (aarch64_movtilow_tilow): Likewise.
28817         Add comment explaining usage of fp,simd attributes and of
28818         TARGET_FLOAT and TARGET_SIMD.
28819
28820 2014-08-07  Ian Bolton  <ian.bolton@arm.com>
28821             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28822
28823         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
28824         Use MOVN when one of the half-words is 0xffff.
28825
28826 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
28827
28828         * config/arm/thumb1.md (*thumb1_movqi_insn): Copy of thumb1_movhi_insn.
28829
28830 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28831
28832         * haifa-sched.c (SCHED_SORT): Delete.  Macro used exactly once.
28833         (enum rfs_decition:RFS_*): New constants wrapped in an enum.
28834         (rfs_str): String corresponding to RFS_* constants.
28835         (rank_for_schedule_stats_t): New typedef.
28836         (rank_for_schedule_stats): New static variable.
28837         (rfs_result): New static function.
28838         (rank_for_schedule): Track statistics for deciding heuristics.
28839         (rank_for_schedule_stats_diff, print_rank_for_schedule_stats): New
28840         static functions.
28841         (ready_sort): Use them for debug printouts.
28842         (schedule_block): Init statistics state.  Print statistics on
28843         rank_for_schedule decisions.
28844
28845 2014-08-07  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28846
28847         * haifa-sched.c (rank_for_schedule): Fix INSN_TICK-based heuristics.
28848
28849 2014-08-07  Ilya Tocar  <ilya.tocar@intel.com>
28850
28851         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Fix
28852         constraint.
28853
28854 2014-08-07  Trevor Saunders  <tsaunders@mozilla.com>
28855
28856         * hash-map.h (default_hashmap_traits): Adjust overloads of hash
28857         function to not conflict.
28858         * alias.c, cfgexpand.c, dse.c, except.h, gimple-expr.c,
28859         gimple-ssa-strength-reduction.c, gimple-ssa.h, ifcvt.c,
28860         lto-streamer-out.c, lto-streamer.h, tree-affine.c, tree-affine.h,
28861         tree-predcom.c, tree-scalar-evolution.c, tree-ssa-loop-im.c,
28862         tree-ssa-loop-niter.c, tree-ssa.c, value-prof.c: Use hash_map instead
28863         of pointer_map.
28864
28865 2014-08-07  Marek Polacek  <polacek@redhat.com>
28866
28867         * fold-const.c (fold_binary_loc): Add folding of
28868         (PTR0 - (PTR1 p+ A) -> (PTR0 - PTR1) - A.
28869
28870 2013-08-07  Ilya Enkovich  <ilya.enkovich@intel.com>
28871
28872         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size
28873         instead of type size.
28874         (ASM_FINISH_DECLARE_OBJECT): Likewise.
28875
28876 2014-08-07  Marat Zakirov  <m.zakirov@samsung.com>
28877
28878         * config/arm/thumb1.md (*thumb1_movhi_insn): Handle stack pointer.
28879         (*thumb1_movqi_insn): Likewise.
28880         * config/arm/thumb2.md (*thumb2_movhi_insn): Likewise.
28881
28882 2014-08-07  Tom de Vries  <tom@codesourcery.com>
28883
28884         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
28885         (glibc_2_11_or_earlier): Remove effective-target keywords.
28886
28887 2014-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
28888
28889         * config/arm/arm.c (bdesc_2arg): Fix typo.
28890         (arm_atomic_assign_expand_fenv): Remove The default implementation.
28891
28892 2014-08-07  Zhenqiang Chen  <zhenqiang.chen@arm.com>
28893
28894         * tree-ssa-loop-ivopts.c (get_address_cost): Try aligned offset.
28895
28896 2014-08-06  Vladimir Makarov  <vmakarov@redhat.com>
28897
28898         PR debug/61923
28899         * haifa-sched.c (advance_one_cycle): Fix dump.
28900         (schedule_block): Don't advance cycle if we are already at the
28901         beginning of the cycle.
28902
28903 2014-08-06  Martin Jambor  <mjambor@suse.cz>
28904
28905         PR ipa/61393
28906         * cgraphclones.c (cgraph_node::create_clone): Also copy tm_clone.
28907
28908 2014-08-06  Richard Biener  <rguenther@suse.de>
28909
28910         PR lto/62034
28911         * lto-streamer-in.c (lto_input_tree_1): Assert we do not read
28912         SCCs here.
28913         (lto_input_tree): Pop SCCs here.
28914
28915 2014-08-06  Richard Biener  <rguenther@suse.de>
28916
28917         PR tree-optimization/61320
28918         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Properly
28919         handle misaligned loads.
28920
28921 2014-08-06  Alan Lawrence  <alan.lawrence@arm.com>
28922
28923         * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
28924         (aarch64_expand_vec_perm_const): Check for dup before zip.
28925
28926 2014-08-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28927
28928         * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
28929         CONST_INT_P instead of GET_CODE and compare.
28930         (aarch64_select_cc_mode): Likewise.
28931         (aarch64_print_operand): Likewise.
28932         (aarch64_rtx_costs): Likewise.
28933         (aarch64_simd_valid_immediate): Likewise.
28934         (aarch64_simd_check_vect_par_cnst_half): Likewise.
28935         (aarch64_simd_emit_pair_result_insn): Likewise.
28936
28937 2014-08-05  David Malcolm  <dmalcolm@redhat.com>
28938
28939         * gdbhooks.py (find_gcc_source_dir): New helper function.
28940         (class PassNames): New class, locating and parsing passes.def.
28941         (class BreakOnPass): New command "break-on-pass".
28942
28943 2014-08-05  Trevor Saunders  <tsaunders@mozilla.com>
28944
28945         * tree-ssa.c (redirect_edge_var_map_dup): insert newe before
28946         getting olde.
28947
28948 2014-08-05  Richard Biener  <rguenther@suse.de>
28949
28950         PR rtl-optimization/61672
28951         * emit-rtl.h (mem_attrs_eq_p): Declare.
28952         * emit-rtl.c (mem_attrs_eq_p): Export.  Handle NULL mem-attrs.
28953         * cse.c (exp_equiv_p): Use mem_attrs_eq_p.
28954         * cfgcleanup.c (merge_memattrs): Likewise.
28955         Include emit-rtl.h.
28956
28957 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28958
28959         * config/aarch64/arm_neon.h (vqdmlals_lane_s32): Use scalar types
28960         rather than singleton vectors.
28961         (vqdmlsls_lane_s32): Likewise.
28962
28963 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28964
28965         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_laneq<mode>):
28966         Use VSDQ_HSI mode iterator.
28967         (aarch64_sqrdmulh_laneq<mode>): Likewise.
28968         (aarch64_sq<r>dmulh_laneq<mode>_internal): New define_insn.
28969         * config/aarch64/aarch64-simd-builtins.def (sqdmulh_laneq):
28970         Use BUILTIN_VDQHS macro.
28971         (sqrdmulh_laneq): Likewise.
28972         * config/aarch64/arm_neon.h (vqdmlalh_laneq_s16): New intrinsic.
28973         (vqdmlals_laneq_s32): Likewise.
28974         (vqdmlslh_laneq_s16): Likewise.
28975         (vqdmlsls_laneq_s32): Likewise.
28976         (vqdmulhh_laneq_s16): Likewise.
28977         (vqdmulhs_laneq_s32): Likewise.
28978         (vqrdmulhh_laneq_s16): Likewise.
28979         (vqrdmulhs_laneq_s32): Likewise.
28980
28981 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28982
28983         * config/aarch64/arm_neon.h (vmul_f64): New intrinsic.
28984         (vmuld_laneq_f64): Likewise.
28985         (vmuls_laneq_f32): Likewise.
28986         (vmul_n_f64): Likewise.
28987         (vmuld_lane_f64): Reimplement in C.
28988         (vmuls_lane_f32): Likewise.
28989
28990 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28991
28992         * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
28993         to reservation.
28994         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
28995
28996 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28997
28998         * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
28999         (rbitsi2): Likewise.
29000         (*arm_rev): Set predicable and predicable_short_it attributes.
29001
29002 2014-08-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29003
29004         * convert.c (convert_to_integer): Guard transformation to lrint by
29005         -fno-math-errno.
29006
29007 2014-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
29008
29009         * config/aarch64/aarch64-builtins.c
29010         (aarch64_simd_builtin_type_mode): Delete.
29011         (v8qi_UP): Remap to V8QImode.
29012         (v4hi_UP): Remap to V4HImode.
29013         (v2si_UP): Remap to V2SImode.
29014         (v2sf_UP): Remap to V2SFmode.
29015         (v1df_UP): Remap to V1DFmode.
29016         (di_UP): Remap to DImode.
29017         (df_UP): Remap to DFmode.
29018         (v16qi_UP):V16QImode.
29019         (v8hi_UP): Remap to V8HImode.
29020         (v4si_UP): Remap to V4SImode.
29021         (v4sf_UP): Remap to V4SFmode.
29022         (v2di_UP): Remap to V2DImode.
29023         (v2df_UP): Remap to V2DFmode.
29024         (ti_UP): Remap to TImode.
29025         (ei_UP): Remap to EImode.
29026         (oi_UP): Remap to OImode.
29027         (ci_UP): Map to CImode.
29028         (xi_UP): Remap to XImode.
29029         (si_UP): Remap to SImode.
29030         (sf_UP): Remap to SFmode.
29031         (hi_UP): Remap to HImode.
29032         (qi_UP): Remap to QImode.
29033         (aarch64_simd_builtin_datum): Make mode a machine_mode.
29034         (VAR1): Build builtin name.
29035         (aarch64_init_simd_builtins): Remove dead code.
29036
29037 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29038
29039         * graphite-isl-ast-to-gimple.c:
29040         (set_options): New function.
29041         (scop_to_isl_ast): Add calling of set_options.
29042
29043 2014-08-05  Jakub Jelinek  <jakub@redhat.com>
29044
29045         * loop-unroll.c (struct iv_to_split): Remove n_loc and loc fields.
29046         (analyze_iv_to_split_insn): Don't initialize them.
29047         (get_ivts_expr): Removed.
29048         (allocate_basic_variable, insert_base_initialization): Use
29049         SET_SRC instead of *get_ivts_expr.
29050         (split_iv): Use &SET_SRC instead of get_ivts_expr.
29051
29052 2014-08-05  Roman Gareev  <gareevroman@gmail.com>
29053
29054         * graphite-isl-ast-to-gimple.c: Add a new struct ast_build_info.
29055         (translate_isl_ast_for_loop): Add checking of the
29056         flag_loop_parallelize_all.
29057         (ast_build_before_for): New function.
29058         (scop_to_isl_ast): Add checking of the
29059         flag_loop_parallelize_all.
29060         * graphite-dependences.c: Move the defenition of the
29061         scop_get_dependences from graphite-optimize-isl.c to this file.
29062         (apply_schedule_on_deps): Add checking of the ux's emptiness.
29063         (carries_deps): Add checking of the x's value.
29064         * graphite-optimize-isl.c: Move the defenition of the
29065         scop_get_dependences to graphite-dependences.c.
29066         * graphite-poly.h: Add declarations of scop_get_dependences
29067         and carries_deps.
29068
29069 2014-08-04  Rohit  <rohitarulraj@freescale.com>
29070
29071         PR target/60102
29072         * config/rs6000/rs6000.c (rs6000_reg_names): Add SPE high register
29073         names.
29074         (alt_reg_names): Likewise.
29075         (rs6000_dwarf_register_span): For SPE high registers, replace
29076         dwarf register numbers with GCC hard register numbers.
29077         (rs6000_init_dwarf_reg_sizes_extra): Likewise.
29078         (rs6000_dbx_register_number): For SPE high registers, return dwarf
29079         register number for the corresponding GCC hard register number.
29080         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Update based on 32
29081         newly added GCC hard register numbers for SPE high registers.
29082         (DWARF_FRAME_REGISTERS):  Likewise.
29083         (DWARF_REG_TO_UNWIND_COLUMN): Likewise.
29084         (DWARF_FRAME_REGNUM): Likewise.
29085         (FIXED_REGISTERS): Likewise.
29086         (CALL_USED_REGISTERS): Likewise.
29087         (CALL_REALLY_USED_REGISTERS): Likewise.
29088         (REG_ALLOC_ORDER): Likewise.
29089         (enum reg_class): Likewise.
29090         (REG_CLASS_NAMES): Likewise.
29091         (REG_CLASS_CONTENTS): Likewise.
29092         (SPE_HIGH_REGNO_P): New macro to identify SPE high registers.
29093
29094 2014-08-04  Richard Biener  <rguenther@suse.de>
29095
29096         * gimple-fold.h (gimple_fold_builtin): Remove.
29097         * gimple-fold.c (gimple_fold_builtin): Make static.
29098         * tree-ssa-ccp.c (pass_fold_builtins::execute): Use
29099         fold_stmt, not gimple_fold_builtin.
29100
29101 2014-08-04  Martin Liska <mliska@suse.cz>
29102
29103         * cgraph.h (csi_end_p): Removed.
29104         (csi_next): Likewise.
29105         (csi_node): Likewise.
29106         (csi_start): Likewise.
29107         (cgraph_node_in_set_p): Likewise.
29108         (cgraph_node_set_size): Likewise.
29109         (vsi_end_p): Likewise.
29110         (vsi_next): Likewise.
29111         (vsi_node): Likewise.
29112         (vsi_start): Likewise.
29113         (varpool_node_set_size): Likewise.
29114         (cgraph_node_set_nonempty_p): Likewise.
29115         (varpool_node_set_nonempty_p): Likewise.
29116         * cgraphunit.c (cgraph_process_new_functions): vec replaces
29117         cgraph_node_set.
29118         * ipa-inline-transform.c: Likewise.
29119         * ipa-utils.c (cgraph_node_set_new): Removed.
29120         (cgraph_node_set_add): Likewise.
29121         (cgraph_node_set_remove): Likewise.
29122         (cgraph_node_set_find): Likewise.
29123         (dump_cgraph_node_set): Likewise.
29124         (debug_cgraph_node_set): Likewise.
29125         (free_cgraph_node_set): Likewise.
29126         (varpool_node_set_new): Likewise.
29127         (varpool_node_set_add): Likewise.
29128         (varpool_node_set_remove): Likewise.
29129         (varpool_node_set_find): Likewise.
29130         (dump_varpool_node_set): Likewise.
29131         (free_varpool_node_set): Likewise.
29132         (debug_varpool_node_set): Likewise.
29133         * tree-emutls.c (struct tls_var_data):
29134         (emutls_index): Removed.
29135         (emutls_decl): Likewise.
29136         (gen_emutls_addr): Function implementation uses newly added
29137         hash_map<varpool_node *, tls_var_data>.
29138         (clear_access_vars): Likewise.
29139         (create_emultls_var): Likewise.
29140         (ipa_lower_emutls): Likewise.
29141         (reset_access): New function.
29142
29143 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29144
29145         * config/i386/i386.c (ix86_option_override_internal): Add
29146         PTA_RDRND and PTA_MOVBE for bdver4.
29147
29148 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29149             James Greenhalgh  <james.greenhalgh@arm.com>
29150
29151         * doc/md.texi (clrsb): Document.
29152         (clz): Change reference to x into operand 1.
29153         (ctz): Likewise.
29154         (popcount): Likewise.
29155
29156 2014-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29157
29158         PR target/61713
29159         * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
29160         move to subtarget in serial version if result is ignored.
29161
29162 2014-08-04  Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29163             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29164
29165         * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
29166         to any two insns.  Update comment.  Rename to sched_macro_fuse_insns.
29167         (sched_analyze_insn): Update use of try_group_insn to
29168         sched_macro_fuse_insns.
29169         * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
29170         arguments that are not conditional jumps.
29171
29172 2014-08-04 Ganesh Gopalasubramanian  <Ganesh.Gopalasubramanian@amd.com>
29173
29174         * config/i386/driver-i386.c (host_detect_local_cpu): Handle AMD's extended
29175         family information. Handle BTVER2 cpu with cpuid family value.
29176
29177 2014-08-04  Tom de Vries  <tom@codesourcery.com>
29178
29179         * doc/sourcebuild.texi (glibc, glibc_2_12_or_later)
29180         (glibc_2_11_or_earlier): Document effective-target keywords.
29181
29182 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29183
29184         * ipa-devirt.c (odr_type_warn_count): Add type.
29185         (possible_polymorphic_call_targets): Set it.
29186         (ipa_devirt): Use it.
29187
29188 2014-08-01  Jan Hubicka  <hubicka@ucw.cz>
29189
29190         * doc/invoke.texi (Wsuggest-final-types, Wsuggest-final-methods):
29191         Document.
29192         * ipa-devirt.c: Include hash-map.h
29193         (struct polymorphic_call_target_d): Add type_warning and decl_warning.
29194         (clear_speculation): Break out of ...
29195         (get_class_context): ... here; speed up handling obviously useless
29196         speculations.
29197         (odr_type_warn_count, decl_warn_count): New structures.
29198         (final_warning_record): New structure.
29199         (final_warning_records): New static variable.
29200         (possible_polymorphic_call_targets): Cleanup handling of
29201         speculative info; do not build speculation when user do not care;
29202         record info about warnings when asked for.
29203         (add_decl_warning): New function.
29204         (type_warning_cmp): New function.
29205         (decl_warning_cmp): New function.
29206         (ipa_devirt): Handle -Wsuggest-final-methods and -Wsuggest-final-types.
29207         (gate): Enable pass when warnings are requested.
29208         * common.opt (Wsuggest-final-types, Wsuggest-final-methods): New
29209         options.
29210
29211 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29212
29213         * hash-map.h (default_hashmap_traits::mark_key_deleted):
29214         Fix cast.
29215         (hash_map::remove): New method.
29216         (hash_map::traverse): New method.
29217         * cgraph.h, except.c, except.h, gimple-ssa-strength-reduction.c,
29218         ipa-utils.c, lto-cgraph.c, lto-streamer.h, omp-low.c, predict.c,
29219         tree-cfg.c, tree-cfgcleanup.c, tree-eh.c, tree-eh.h, tree-inline.c,
29220         tree-inline.h, tree-nested.c, tree-sra.c, tree-ssa-loop-im.c,
29221         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-structalias.c,
29222         tree-ssa.c, tree-ssa.h, var-tracking.c: Use hash_map instead of
29223         pointer_map.
29224
29225 2014-08-02  Trevor Saunders  <tsaunders@mozilla.com>
29226
29227         * hash-set.h: new File.
29228         * cfgexpand.c, cfgloop.c, cgraph.c, cgraphbuild.c, cgraphunit.c,
29229         cprop.c, cse.c, gimple-walk.c, gimple-walk.h, gimplify.c, godump.c,
29230         ipa-devirt.c, ipa-pure-const.c, ipa-visibility.c, ipa.c, lto-cgraph.c,
29231         lto-streamer-out.c, stmt.c, tree-cfg.c, tree-core.h, tree-eh.c,
29232         tree-inline.c, tree-inline.h, tree-nested.c, tree-pretty-print.c,
29233         tree-ssa-loop-niter.c, tree-ssa-phiopt.c, tree-ssa-threadedge.c,
29234         tree-ssa-uninit.c, tree.c, tree.h, value-prof.c, varasm.c,
29235         varpool.c: Use hash_set instead of pointer_set.
29236
29237 2014-08-01  Alan Lawrence  <alan.lawrence@arm.com>
29238
29239         * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
29240
29241 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29242
29243         * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
29244         for frame access when strict_p is false.
29245
29246 2014-08-01  Renlin Li <renlin.li@arm.com>
29247 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29248
29249         * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
29250         aarch64_offset_7bit_signed_scaled_p, remove static and use it.
29251         * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
29252         Declaration.
29253         * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
29254         predicate.
29255         * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
29256         aarch64_mem_pair_offset.
29257
29258 2014-08-01  Jiong Wang <jiong.wang@arm.com>
29259
29260         * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
29261         offset.
29262         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
29263         * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
29264
29265 2014-08-01  Matthew Fortune  <matthew.fortune@imgtec.com>
29266
29267         * config/mips/mips.h (REGISTER_PREFIX): Define macro.
29268
29269 2014-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
29270
29271         PR regression/61510
29272         * cgraphunit.c (analyze_functions): Use get_create rather than get
29273         for decls which are clones of abstract functions.
29274
29275 2014-08-01  Martin Liska  <mliska@suse.cz>
29276
29277         * gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
29278         * ipa-prop.h (count_formal_params): Global function created from static.
29279         * ipa-prop.c (count_formal_params): Likewise.
29280         * ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
29281         profiles for semantically equivalent functions.
29282         * passes.c (do_per_function): If we load body of a function
29283         during WPA, this condition should behave same.
29284         * varpool.c (ctor_for_folding): More tolerant assert for variable
29285         aliases created during WPA.
29286
29287 2014-08-01  Martin Liska  <mliska@suse.cz>
29288
29289         * doc/invoke.texi (Options That Control Optimization): Documentation
29290         for -foptimize-strlen introduced. Optimization levels default options
29291         fixed.
29292
29293 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
29294
29295         * opts.c (common_handle_option): Handle -fsanitize=alignment.
29296         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_CTOR_CALL.
29297         (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn): Change return
29298         type to bool.
29299         * stor-layout.h (min_align_of_type): New prototype.
29300         * asan.c (pass_sanopt::execute): Don't perform gsi_next if
29301         ubsan_expand* told us not to do it.  Remove the extra gsi_end_p
29302         check.
29303         * ubsan.c: Include builtins.h.
29304         (ubsan_expand_bounds_ifn): Change return type to bool,
29305         always return true.
29306         (ubsan_expand_null_ifn): Change return type to bool, change
29307         argument to gimple_stmt_iterator *.  Handle both null and alignment
29308         sanitization, take type from ckind argument's type rather than
29309         first argument.
29310         (instrument_member_call): Removed.
29311         (instrument_mem_ref): Remove t argument, add mem and base arguments.
29312         Handle both null and alignment sanitization, don't say whole
29313         struct access is member access.  Build 3 argument IFN_UBSAN_NULL
29314         call instead of 2 argument.
29315         (instrument_null): Adjust instrument_mem_ref caller.  Don't
29316         instrument calls here.
29317         (pass_ubsan::gate, pass_ubsan::execute): Handle SANITIZE_ALIGNMENT
29318         like SANITIZE_NULL.
29319         * stor-layout.c (min_align_of_type): New function.
29320         * flag-types.h (enum sanitize_code): Add SANITIZE_ALIGNMENT.
29321         Or it into SANITIZE_UNDEFINED.
29322         * doc/invoke.texi (-fsanitize=alignment): Document.
29323
29324 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29325
29326         * tree-ssa-tail-merge.c (same_succ_hash): Convert to inchash.
29327
29328 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29329
29330         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Convert to
29331         inchash.
29332         (vn_reference_compute_hash): Dito.
29333         (vn_nary_op_compute_hash): Dito.
29334         (vn_phi_compute_hash): Dito.
29335         * tree-ssa-sccvn.h (vn_hash_constant_with_type): Dito.
29336
29337 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29338
29339         * tree-ssa-dom.c (iterative_hash_exprs_commutative):
29340         Rename to inchash:add_expr_commutative. Convert to inchash.
29341         (iterative_hash_hashable_expr): Rename to
29342         inchash:add_hashable_expr. Convert to inchash.
29343         (avail_expr_hash): Dito.
29344
29345 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29346
29347         * ipa-devirt.c (polymorphic_call_target_hasher::hash):
29348         Convert to inchash.
29349
29350 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29351
29352         * asan.c (asan_mem_ref_hasher::hash): Convert to inchash.
29353
29354 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29355
29356         * Makefile.in (OBJS): Add rtlhash.o
29357         * dwarf2out.c (addr_table_entry_do_hash): Convert to inchash.
29358         (loc_checksum): Dito.
29359         (loc_checksum_ordered): Dito.
29360         (hash_loc_operands): Dito.
29361         (hash_locs): Dito.
29362         (hash_loc_list): Dito.
29363         * rtl.c (iterative_hash_rtx): Moved to rtlhash.c
29364         * rtl.h (iterative_hash_rtx): Moved to rtlhash.h
29365         * rtlhash.c: New file.
29366         * rtlhash.h: New file.
29367
29368 2014-07-31  Andi Kleen  <ak@linux.intel.com>
29369
29370         * inchash.h (inchash): Change inchash class to namespace.
29371         (class hash): ... Rename from inchash.
29372         (add_object): Move from macro to class template.
29373         * lto-streamer-out.c (hash_tree): Change inchash
29374         to inchash::hash.
29375         * tree.c (build_type_attribute_qual_variant): Dito.
29376         (type_hash_list): Dito.
29377         (attribute_hash_list): Dito.
29378         (iterative_hstate_expr): Rename to inchash::add_expr
29379         (build_range_type_1): Change inchash to inchash::hash
29380         and use hash::add_expr.
29381         (build_array_type_1): Dito.
29382         (build_function_type): Dito
29383         (build_method_type_directly): Dito.
29384         (build_offset_type): Dito.
29385         (build_complex_type): Dito.
29386         (make_vector_type): Dito.
29387         * tree.h (iterative_hash_expr): Dito.
29388
29389 2014-07-31  Chen Gang  <gang.chen.5i5j@gmail.com>
29390
29391         * gcc.c (do_spec_1): Allocate enough space for saved_suffix.
29392
29393 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29394
29395         * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
29396         correct alphabetical position.
29397         (vpaddd_f64): Rewrite using builtins.
29398         (vpaddd_s64): Move to correct alphabetical position.
29399         (vpaddd_u64): New.
29400
29401 2014-07-31  Oleg Endo  <olegendo@gcc.gnu.org>
29402
29403         PR target/61844
29404         * config/sh/sh.c (sh_legitimate_address_p,
29405         sh_legitimize_reload_address): Handle reg+reg address modes when
29406         ALLOW_INDEXED_ADDRESS is false.
29407         * config/sh/predicates.md (general_movsrc_operand,
29408         general_movdst_operand): Likewise.
29409
29410 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29411
29412         * config/aarch64/aarch64-builtins.c
29413         (aarch64_gimple_fold_builtin): Don't fold reduction operations for
29414         BYTES_BIG_ENDIAN.
29415
29416 2014-07-31  James Greenhalgh  <james.greenhalgh@arm.com>
29417
29418         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
29419         the generated mask based on BYTES_BIG_ENDIAN.
29420         (aarch64_simd_check_vect_par_cnst_half): New.
29421         * config/aarch64/aarch64-protos.h
29422         (aarch64_simd_check_vect_par_cnst_half): New.
29423         * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
29424         the check out to aarch64_simd_check_vect_par_cnst_half.
29425         (vect_par_cnst_lo_half): Likewise.
29426         * config/aarch64/aarch64-simd.md
29427         (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
29428         (move_hi_quad_<mode>): Always generate a low mask.
29429
29430 2014-07-30  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29431
29432         * doc/invoke.texi (AVR Options): Add documentation about
29433         __AVR_DEVICE_NAME__ built-in macro.
29434
29435 2014-07-31  Charles Baylis  <charles.baylis@linaro.org>
29436
29437         PR target/61948
29438         * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
29439         constraints are satisfied.
29440         (<shift>di3_neon): Likewise.
29441
29442 2014-07-31  Richard Biener  <rguenther@suse.de>
29443
29444         PR tree-optimization/61964
29445         * tree-ssa-tail-merge.c (gimple_equal_p): Handle non-SSA LHS solely
29446         by structural equality.
29447
29448 2014-07-31  Yury Gribov  <y.gribov@samsung.com>
29449
29450         * doc/cpp.texi (__SANITIZE_ADDRESS__): Updated description.
29451         * doc/invoke.texi (-fsanitize=kernel-address): Describe new option.
29452         * flag-types.h (SANITIZE_USER_ADDRESS, SANITIZE_KERNEL_ADDRESS):
29453         New enums.
29454         * gcc.c (sanitize_spec_function): Support new option.
29455         (SANITIZER_SPEC): Remove now redundant check.
29456         * opts.c (common_handle_option): Support new option.
29457         (finish_options): Check for incompatibilities.
29458         * toplev.c (process_options): Split userspace-specific checks.
29459
29460 2014-07-31  Richard Biener  <rguenther@suse.de>
29461
29462         * lto-streamer.h (struct output_block): Remove global.
29463         (struct data_in): Remove labels, num_named_labels and
29464         num_unnamed_labels.
29465         * lto-streamer-in.c (lto_data_in_delete): Do not free labels.
29466         * lto-streamer-out.c (produce_asm_for_decls): Do not set global.
29467
29468 2014-07-31  Marc Glisse  <marc.glisse@inria.fr>
29469
29470         PR c++/60517
29471         * common.opt (-Wreturn-local-addr): Moved from c.opt.
29472         * gimple-ssa-isolate-paths.c: Include diagnostic-core.h and intl.h.
29473         (isolate_path): New argument to avoid inserting a trap.
29474         (find_implicit_erroneous_behaviour): Handle returning the address
29475         of a local variable.
29476         (find_explicit_erroneous_behaviour): Likewise.
29477
29478 2014-07-31  Bingfeng Mei <bmei@broadcom.com>
29479
29480         PR lto/61868
29481         * toplev.c (init_random_seed): Move piece of code never called to
29482         set_random_seed.
29483         (set_random_seed): see above.
29484
29485 2014-07-31  Tom de Vries  <tom@codesourcery.com>
29486
29487         * tree-ssa-loop.c (pass_tree_loop_init::execute): Remove dead code.
29488
29489 2014-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
29490
29491         * ira.c (insn_contains_asm_1, insn_contains_asm): Delete.
29492         (compute_regs_asm_clobbered): Use extract_asm_operands instead.
29493
29494 2014-07-31  Richard Biener  <rguenther@suse.de>
29495
29496         * data-streamer.h (streamer_write_data_stream): Declare here,
29497         renamed from ...
29498         * lto-streamer.h (lto_output_data_stream): ... this.  Remove.
29499         * lto-cgraph.c (lto_output_node): Adjust.
29500         (lto_output_varpool_node): Likewise.
29501         * data-streamer-out.c (streamer_string_index): Likewise.
29502         (streamer_write_data_stream, lto_append_block): Move from ...
29503         * lto-section-out.c (lto_output_data_stream,
29504         lto_append_block): ... here.
29505
29506 2014-07-30  Mike Stump  <mikestump@comcast.net>
29507
29508         * configure.ac: Also check for popen.
29509         * tree-loop-distribution.c (dot_rdg): Autoconfize popen use.
29510         * configure: Regenerate.
29511         * config.in:  Regenerate.
29512
29513 2014-07-30  Martin Jambor  <mjambor@suse.cz>
29514
29515         * tree-sra.c (sra_ipa_modify_assign): Change type of the first
29516         parameter to gimple.
29517
29518 2014-07-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29519
29520         * config/s390/s390.c (s390_emit_tpf_eh_return): Pass original return
29521         address as second parameter to __tpf_eh_return routine.
29522
29523 2014-07-30  Jiong Wang  <jiong.wang@arm.com>
29524
29525         * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
29526         Thumb2.
29527
29528 2014-07-30  Tom Tromey  <tromey@redhat.com>
29529
29530         PR c/59855
29531         * doc/invoke.texi (Warning Options): Document -Wdesignated-init.
29532         * doc/extend.texi (Type Attributes): Document designated_init
29533         attribute.
29534
29535 2014-07-30  Roman Gareev  <gareevroman@gmail.com>
29536
29537         * graphite-isl-ast-to-gimple.c:
29538         (gcc_expression_from_isl_ast_expr_id): Add calling of fold_convert.
29539         (gcc_expression_from_isl_expression): Pass type to
29540         gcc_expression_from_isl_ast_expr_id.
29541
29542 2014-07-30  Richard Biener  <rguenther@suse.de>
29543
29544         * lto-streamer.h (lto_write_data): New function.
29545         * langhooks.c (lhd_append_data): Do not free block.
29546         * lto-section-out.c (lto_write_data): New function writing
29547         raw data to the current section.
29548         (lto_write_stream): Adjust for langhook semantic change.
29549         (lto_destroy_simple_output_block): Write header directly.
29550         * lto-opts.c (lto_write_options): Write options directly.
29551         * lto-streamer-out.c (produce_asm): Write heaeder directly.
29552         (lto_output_toplevel_asms): Likewise.
29553         (copy_function_or_variable): Copy data directly.
29554         (write_global_references): Output index table directly.
29555         (lto_output_decl_state_refs): Likewise.
29556         (write_symbol): Write data directly.
29557         (produce_symtab): Adjust.
29558         (produce_asm_for_decls): Output header and refs directly.
29559
29560 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29561
29562         * ipa-devirt.c (polymorphic_call_target_d): Rename nonconstruction_targets
29563         to speculative_targets
29564         (get_class_context): Fix handling of contextes without outer type;
29565         avoid matching non-polymorphic types in LTO.
29566         (possible_polymorphic_call_targets): Trun nonconstruction_targetsp
29567         parameter to speculative_targetsp; handle speculation.
29568         (dump_possible_polymorphic_call_targets): Update dumping.
29569
29570 2014-07-29  Jan Hubicka  <hubicka@ucw.cz>
29571
29572         * common.opt (Wodr): Enable by default.
29573
29574 2014-07-29  Olivier Hainque  <hainque@adacore.com>
29575
29576         * config/vxworksae.h (VXWORKS_OVERRIDE_OPTIONS): Define.
29577
29578 2014-07-29  H.J. Lu  <hongjiu.lu@intel.com>
29579
29580         PR bootstrap/61914
29581         * gengtype.c (strtoken): New function.
29582         (create_user_defined_type): Replace strtok with strtoken.
29583
29584 2014-07-29  Nathan Sidwell  <nathan@acm.org>
29585
29586         * gcov-io.c (gcov_var): Make hidden.
29587         * gcov-tool.c (gcov_list, gcov_exit): Remove declarations.
29588         (gcov_do_dump): Declare.
29589         (gcov_output_files): Call gcov_do_dump, not gcov_exit).
29590
29591 2014-07-29  Martin Jambor  <mjambor@suse.cz>
29592
29593         * tree-sra.c (sra_modify_constructor_assign): Change type of stmt
29594         parameter to gimple.
29595         (sra_modify_assign): Likewise.
29596
29597 2014-07-29  Richard Biener  <rguenther@suse.de>
29598
29599         PR middle-end/52478
29600         * expr.c (expand_expr_real_2): Revert last change.
29601
29602 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29603
29604         * cgraph.c (cgraph_node::create_indirect_edge): Copy speculative data.
29605         * cgraph.h (cgraph_indirect_call_info): Add speculative data.
29606         * gimple-fold.c (fold_gimple_assign): Fix check for virtual
29607         call.
29608         * ipa-devirt.c (ipa_dummy_polymorphic_call_context): Update
29609         (contains_type_p): Forward declare.
29610         (polymorphic_call_target_hasher::hash): Hash speculative info.
29611         (polymorphic_call_target_hasher::equal): Compare speculative info.
29612         (get_class_context): Handle speuclation.
29613         (contains_type_p): Update.
29614         (get_polymorphic_call_info_for_decl): Update.
29615         (walk_ssa_copies): Break out from ...
29616         (get_polymorphic_call_info): ... here; set speculative context
29617         before giving up.
29618         * ipa-prop.c (ipa_write_indirect_edge_info,
29619         ipa_read_indirect_edge_info): Stream speculative context.
29620         * ipa-utils.h (ipa_polymorphic_call_context): Add speculative info
29621         (SPECULATIVE_OFFSET, SPECULATIVE_OUTER_TYPE,
29622         SPECULATIVE_MAYBE_DERIVED_TYPE).
29623         (possible_polymorphic_call_targets overriders): Update.
29624         (dump_possible_polymorphic_call_targets overriders): Update.
29625         (dump_possible_polymorphic_call_target_p overriders): Update.
29626
29627 2014-07-28  Jan Hubicka  <hubicka@ucw.cz>
29628
29629         * gimple-fold.c (fold_gimple_assign): Fix condition guarding
29630         ipa-devirt path; fix thinko there.
29631
29632 2014-07-28  Trevor Saunders  <tsaunders@mozilla.com>
29633
29634         * config/i386/i386.c (ix86_return_in_memory): Replace one
29635         ATTRIBUTE_UNUSED where the attribute can actually sometimes be unused.
29636
29637 2014-07-28  Marek Polacek  <polacek@redhat.com>
29638
29639         * doc/invoke.texi (-Wno-odr): Fix @item entry.  Tweak wording.
29640
29641 2014-07-28  Peter Bergner  <bergner@vnet.ibm.com>
29642
29643         * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
29644         * config/rs6000/sysv4.h (CC1_SPEC): Undefine it before defining it.
29645         * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
29646         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29647         (USE_LD_AS_NEEDED): Likewise.
29648         (ASM_APP_ON): Likewise.
29649         (ASM_APP_OFF): Likewise.
29650         (TARGET_POSIX_IO): Likewise.
29651         * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
29652         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
29653         (USE_LD_AS_NEEDED): Likewise.
29654         (ASM_APP_ON): Likewise.
29655         (ASM_APP_OFF): Likewise.
29656         (TARGET_POSIX_IO): Likewise.
29657
29658 2014-07-28  Eric Botcazou  <ebotcazou@adacore.com>
29659
29660         PR middle-end/61734
29661         * fold-const.c (fold_comparison): Disable X - Y CMP 0 to X CMP Y for
29662         operators other than the equality operators.
29663
29664 2014-07-28  Richard Biener  <rguenther@suse.de>
29665
29666         PR middle-end/52478
29667         * optabs.c (gen_int_libfunc): For -ftrapv libfuncs make
29668         sure to register SImode ones, not only >= word_mode ones.
29669         * expr.c (expand_expr_real_2): When expanding -ftrapv
29670         binops do not use OPTAB_LIB_WIDEN.
29671
29672 2014-07-28  Richard Sandiford  <rdsandiford@googlemail.com>
29673
29674         PR middle-end/61919
29675         * tree-outof-ssa.c (insert_partition_copy_on_edge)
29676         (insert_value_copy_on_edge, insert_rtx_to_part_on_edge)
29677         (insert_part_to_rtx_on_edge): Copy partition_to_pseudo rtxes before
29678         inserting them in the insn stream.
29679
29680 2014-07-28  Marek Polacek  <polacek@redhat.com>
29681
29682         PR middle-end/61913
29683         * common.opt (Wodr): Add Var.
29684
29685 2014-07-28  Richard Biener  <rguenther@suse.de>
29686
29687         PR tree-optimization/61921
29688         * tree-ssa-structalias.c (create_variable_info_for_1): Check
29689         if there is a varpool node before dereferencing it.
29690
29691 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29692
29693         * graphite-sese-to-poly.c:
29694         (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the
29695         id of the pbb), which contains pointer to the pbb1.
29696
29697         * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase.
29698
29699 2014-07-28  Roman Gareev  <gareevroman@gmail.com>
29700
29701         * graphite-isl-ast-to-gimple.c:
29702         (graphite_create_new_guard): New function.
29703         (translate_isl_ast_node_if): New function.
29704         (translate_isl_ast): Add calling of translate_isl_ast_node_if.
29705
29706         * gcc.dg/graphite/isl-ast-gen-if-1.c: New testcase.
29707
29708 2014-07-27  Anthony Green  <green@moxielogic.com>
29709
29710         * config.gcc: Add moxie-*-moxiebox* configuration.
29711         * config/moxie/moxiebox.h: New file.
29712
29713 2014-07-26  Andrew Pinski  <apinski@cavium.com>
29714
29715         * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
29716         from the read only register.
29717
29718 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29719
29720         * ira-costs.c (find_costs_and_classes): For -O0, use the best class
29721         as the allocation class if it isn't likely to be spilled.
29722
29723 2014-07-26  Richard Sandiford  <rdsandiford@googlemail.com>
29724
29725         * rtl.h (tls_referenced_p): Declare.
29726         * rtlanal.c (tls_referenced_p_1, tls_referenced_p): New functions.
29727         * config/mips/mips.c (mips_tls_symbol_ref_1): Delete.
29728         (mips_cannot_force_const_mem): Use tls_referenced_p.
29729         * config/pa/pa-protos.h (pa_tls_referenced_p): Delete.
29730         * config/pa/pa.h (CONSTANT_ADDRESS_P): Use tls_referenced_p
29731         instead of pa_tls_referenced_p.
29732         * config/pa/pa.c (hppa_legitimize_address, pa_cannot_force_const_mem)
29733         (pa_emit_move_sequence, pa_emit_move_sequence): Likewise.
29734         (pa_legitimate_constant_p): Likewise.
29735         (pa_tls_symbol_ref_1, pa_tls_referenced_p): Delete.
29736         * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Delete.
29737         (rs6000_cannot_force_const_mem, rs6000_emit_move)
29738         (rs6000_address_for_altivec): Use tls_referenced_p instead of
29739         rs6000_tls_referenced_p.
29740         (rs6000_tls_symbol_ref_1): Delete.
29741
29742 2014-07-26  Marc Glisse  <marc.glisse@inria.fr>
29743
29744         PR target/44551
29745         * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
29746         Optimize inverse of a VEC_CONCAT.
29747
29748 2014-07-25  Xinliang David Li  <davidxl@google.com>
29749
29750         * params.def: New parameter.
29751         * coverage.c (get_coverage_counts): Check new flag.
29752         (coverage_compute_profile_id): Check new flag.
29753         (coverage_begin_function): Check new flag.
29754         (coverage_end_function): Check new flag.
29755         * value-prof.c (coverage_node_map_initialized_p): New function.
29756         (init_node_map): Populate map with all functions.
29757         * doc/invoke.texi: Document new parameter.
29758
29759 2014-07-25  Jan Hubicka  <hubicka@ucw.cz>
29760             Richard Biener <rguenther@suse.de>
29761
29762         * lto-streamer-out.c (struct sccs): Turn to ...
29763         (class DFS): ... this one; refactor the DFS walk so it can
29764         be re-done on per-SCC basis.
29765         (DFS::DFS): New constructor.
29766         (DFS::~DFS): New destructor.
29767         (hash_tree): Add new MAP argument holding in-SCC hash values;
29768         remove POINTER_TYPE hashing hack.
29769         (scc_entry_compare): Rename to ...
29770         (DFS::scc_entry_compare): ... this one.
29771         (hash_scc): Rename to ...
29772         (DFS::hash_scc): ... this one; pass output_block instead
29773         of streamer_cache; work harder to get unique and stable SCC
29774         hashes.
29775         (DFS_write_tree): Rename to ...
29776         (DFS::DFS_write_tree): ... this one; add SINGLE_P parameter.
29777         (lto_output_tree): Update.
29778
29779 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29780
29781         * lto-streamer-out.c (hash_tree): Convert to inchash.
29782
29783 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29784
29785         * tree.c (build_type_attribute_qual_variant): Use inchash.
29786         (type_hash_list): Dito.
29787         (attribute_hash_list): Dito
29788         (iterative_hstate_expr): Dito.
29789         (iterative_hash_expr): Dito.
29790         (build_range_type_1): Dito.
29791         (build_array_type_1): Dito.
29792         (build_function_type): Dito.
29793         (build_method_type_directly): Dito.
29794         (build_offset_type): Dito.
29795         (build_complex_type): Dito.
29796         (make_vector_type): Dito.
29797         * tree.h (iterative_hash_expr): Add compat wrapper.
29798         (iterative_hstate_expr): Add.
29799
29800 2014-07-25  Andi Kleen  <ak@linux.intel.com>
29801
29802         * Makefile.in (OBJS): Add inchash.o.
29803         (PLUGIN_HEADERS): Add inchash.h.
29804         * ipa-devirt.c: Include inchash.h.
29805         * lto-streamer-out.c: Dito.
29806         * tree-ssa-dom.c: Dito.
29807         * tree-ssa-pre.c: Dito.
29808         * tree-ssa-sccvn.c: Dito.
29809         * tree-ssa-tail-merge.c: Dito.
29810         * asan.c: Dito.
29811         * tree.c (iterative_hash_hashval_t): Move to ...
29812         (iterative_hash_host_wide_int): Move to ...
29813         * inchash.c: Here. New file.
29814         * tree.h (iterative_hash_hashval_t): Move to ...
29815         (iterative_hash_host_wide_int): Move to ...
29816         * inchash.h: Here. New file.
29817
29818 2014-07-25  Richard Biener  <rguenther@suse.de>
29819
29820         PR middle-end/61762
29821         PR middle-end/61894
29822         * fold-const.c (native_encode_int): Add and handle offset
29823         parameter to do partial encodings of expr.
29824         (native_encode_fixed): Likewise.
29825         (native_encode_real): Likewise.
29826         (native_encode_complex): Likewise.
29827         (native_encode_vector): Likewise.
29828         (native_encode_string): Likewise.
29829         (native_encode_expr): Likewise.
29830         * fold-const.c (native_encode_expr): Add offset parameter
29831         defaulting to -1.
29832         * gimple-fold.c (fold_string_cst_ctor_reference): Remove.
29833         (fold_ctor_reference): Handle all reads from tcc_constant
29834         ctors.
29835
29836 2014-07-25  Richard Biener  <rguenther@suse.de>
29837
29838         * tree-inline.c (estimate_move_cost): Mark speed_p argument
29839         as possibly unused.
29840
29841 2014-07-23  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
29842
29843         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Add __AVR_DEVICE_NAME__.
29844
29845 2014-07-24  Kyle McMartin  <kyle@redhat.com>
29846
29847         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define.
29848
29849 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29850
29851         * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align_p):
29852         Add prototype.
29853         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): New
29854         function.
29855         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Call it.
29856         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
29857         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
29858
29859 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29860
29861         * config/rs6000/rs6000.c (rs6000_function_arg_boundary): In the AIX
29862         and ELFv2 ABI, do not use the "mode == BLKmode" check to test for
29863         aggregate types.  Instead, *all* aggregate types, except for single-
29864         element or homogeneous float/vector aggregates, are quadword-aligned
29865         if required by their type alignment.  Issue -Wpsabi note when a type
29866         is now treated differently than before.
29867
29868 2014-07-24  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
29869
29870         * config/rs6000/rs6000.c (rs6000_function_arg): If a float argument
29871         does not fit fully into floating-point registers, and there is still
29872         space in the register parameter area, use GPRs to pass those parts
29873         of the argument.  Issue -Wpsabi note if any parameter is now treated
29874         differently than before.
29875         (rs6000_arg_partial_bytes): Update.
29876
29877 2014-07-24  Uros Bizjak  <ubizjak@gmail.com>
29878
29879         * config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
29880
29881 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
29882
29883         * rtl.h (target_rtl): Remove lang_dependent_initialized.
29884         * toplev.c (initialize_rtl): Don't use it.  Move previously
29885         "language-dependent" calls to...
29886         (backend_init): ...here.
29887         (lang_dependent_init_target): Don't set lang_dependent_initialized.
29888         Assert that RTL initialization hasn't happend yet.
29889
29890 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
29891
29892         PR rtl-optimization/61629
29893         * reginfo.c (reinit_regs): Only call ira_init and recog_init if
29894         they have already been initialized.
29895
29896 2014-07-24  Richard Sandiford  <rdsandiford@googlemail.com>
29897
29898         PR middle-end/61268
29899         * function.c (assign_parm_setup_reg): Prevent invalid sharing of
29900         DECL_INCOMING_RTL and entry_parm.
29901         (get_arg_pointer_save_area): Likewise arg_pointer_save_area.
29902         * calls.c (load_register_parameters): Likewise argument values.
29903         (emit_library_call_value_1, store_one_arg): Likewise argument
29904         save areas.
29905         * config/i386/i386.c (assign_386_stack_local): Likewise the local
29906         stack slot.
29907         * explow.c (validize_mem): Modify the argument in-place.
29908
29909 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29910
29911         * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
29912         (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
29913
29914 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29915
29916         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
29917         (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
29918
29919 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29920
29921         * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
29922         (aarch64_save_callee_saves): New parameter "skip_wb".
29923         (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
29924
29925 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
29926
29927         * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
29928         "wb_candidate2".
29929         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
29930
29931 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
29932
29933         * graphite-isl-ast-to-gimple.c:
29934         (graphite_create_new_loop): Add calling of isl_id_free to properly
29935         decrement reference counts.
29936
29937         * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
29938
29939 2014-07-24  Martin Liska  <mliska@suse.cz>
29940         * config/mips/mips.c (mips_start_unique_function): Correct cgraph_node
29941         function used.
29942         * config/rs6000/rs6000.c (call_ABI_of_interest): Likewise.
29943         (rs6000_code_end): Likewise.
29944
29945 2014-07-24  Martin Liska  <mliska@suse.cz>
29946
29947         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): Correct
29948         symtab_node funtion used.
29949         (rs6000_xcoff_declare_object_name): Likewise.
29950
29951 2014-07-24  Martin Liska  <mliska@suse.cz>
29952
29953         * cgraphunit.c (compile): Correct function used.
29954
29955 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
29956
29957         * lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
29958         as non-indexable.
29959
29960 2014-07-24  Jan Hubicka  <hubicka@ucw.cz>
29961
29962         PR lto/61802
29963         * varasm.c (bss_initializer_p): Handle offlined ctors.
29964         (align_variable, get_variable_align): Likewise.
29965         (make_decl_one_only): Likewise.
29966         (default_binds_local_p_1): Likewise.
29967         (decl_binds_to_current_def_p): Likewise.
29968         (get_variable_section): Get constructor if it is offlined.
29969         (assemble_variable_contents): Sanity check that the caller
29970         streamed in the ctor in LTO.
29971
29972 2014-07-24  Roman Gareev  <gareevroman@gmail.com>
29973
29974         * graphite-isl-ast-to-gimple.c:
29975         (binary_op_to_tree): Add calling of translate_isl_ast_node_block.
29976         (gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
29977         isl_ast_op_pdiv_r to the different case.
29978
29979         * gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.
29980
29981 2014-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29982
29983         PR middle-end/61876
29984         * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
29985         when flag_errno_math is on.
29986
29987 2014-07-24  Martin Liska  <mliska@suse.cz>
29988
29989         * cgraph.h (varpool_node):
29990         (availability get_availability (void)):
29991         created from cgraph_variable_initializer_availability
29992         (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
29993         created from: cgraph_variable_initializer_availability
29994         (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
29995         (void finalize_named_section_flags (void)):
29996         created from varpool_finalize_named_section_flags
29997         (bool assemble_decl (void)): created from varpool_assemble_decl
29998         (void analyze (void)): created from varpool_analyze_node
29999         (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
30000         void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
30001         (void remove_initializer (void)): created from varpool_remove_initializer
30002         (tree get_constructor (void)): created from varpool_get_constructor
30003         (bool externally_visible_p (void)): created from varpool_externally_visible_p
30004         (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
30005         (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
30006         (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
30007         (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
30008         (static void finalize_decl (tree decl)): created from varpool_finalize_decl
30009         (static bool output_variables (void)): created from varpool_output_variables
30010         (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
30011         created from varpool_extra_name_alias
30012         (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
30013         (static void dump_varpool (FILE *f)): created from dump_varpool
30014         (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
30015         (static varpool_node *create_empty (void)): created from varpool_create_empty_node
30016         (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
30017         (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
30018         (void assemble_aliases (void)): created from assemble_aliases
30019
30020 2014-07-24  Martin Liska  <mliska@suse.cz>
30021
30022         * cgraph.h (symtab_node):
30023         (void register_symbol (void)): created from symtab_register_node
30024         (void remove (void)): created from symtab_remove_node
30025         (void dump (FILE *f)): created from dump_symtab_node
30026         (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
30027         (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
30028         (struct ipa_ref *add_reference (symtab_node *referred_node,
30029         enum ipa_ref_use use_type)): created from add_reference
30030         (struct ipa_ref *add_reference (symtab_node *referred_node,
30031         enum ipa_ref_use use_type, gimple stmt)): created from add_reference
30032         (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
30033         gimple stmt)): created from maybe_add_reference
30034         (bool semantically_equivalent_p (symtab_node *target)): created from
30035         symtab_semantically_equivalent_p
30036         (void remove_from_same_comdat_group (void)): created from
30037         remove_from_same_comdat_group
30038         (void add_to_same_comdat_group (symtab_node *old_node)): created from
30039         symtab_add_to_same_comdat_group
30040         (void dissolve_same_comdat_group_list (void)): created from
30041         symtab_dissolve_same_comdat_group_list
30042         (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
30043         (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
30044         created from symtab_alias_ultimate_target
30045         (inline symtab_node *next_defined_symbol (void)): created from
30046         symtab_next_defined_symbol
30047         (bool resolve_alias (symtab_node *target)): created from
30048         symtab_resolve_alias
30049         (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
30050         void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
30051         (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
30052         (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
30053         (void set_section (const char *section)): created from set_section_1
30054         (enum availability get_availability (void)): created from symtab_node_availability
30055         (void make_decl_local (void)): created from symtab_make_decl_local
30056         (bool real_symbol_p (void)): created from symtab_read_node
30057         (can_be_discarded_p (void)): created from symtab_can_be_discarded
30058         (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
30059         (inline bool in_same_comdat_group_p (symtab_node *target)): created from
30060         symtab_in_same_comdat_p;
30061         (bool address_taken_from_non_vtable_p (void)): created from
30062         address_taken_from_non_vtable_p
30063         (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
30064         (static void dump_table (FILE *)): created from dump_symtab
30065         (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
30066         (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
30067         (static bool used_from_object_file_p_worker (symtab_node *node)): created from
30068         symtab_used_from_object_file_p
30069         (void dump_base (FILE *)): created from dump_symtab_base
30070         (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
30071         (void unregister (void)): created from symtab_unregister_node
30072         (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
30073         (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
30074         (static bool noninterposable_alias (symtab_node *node, void *data)): created from
30075         symtab_nonoverwritable_alias_1
30076         * cgraph.h (cgraph_node):
30077         (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
30078         created from cgraph_remove_node_and_inline_clones
30079         (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
30080         (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
30081         bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
30082         (cgraph_node *function_symbol (enum availability *avail = NULL)):
30083         created from cgraph_function_node
30084         (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
30085         vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
30086         struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
30087         created from cgraph_create_clone
30088         (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
30089         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
30090         created from cgraph_create_virtual_clone
30091         (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
30092         (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
30093         bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
30094         (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
30095         vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
30096         bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
30097         created from cgraph_function_version_info
30098         (struct cgraph_function_version_info *insert_new_function_version (void)):
30099         created from insert_new_cgraph_node_version
30100         (struct cgraph_function_version_info *function_version (void)): created from
30101         get_cgraph_node_version
30102         (void analyze (void)): created from analyze_function
30103         (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
30104         HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
30105         tree real_alias) cgraph_add_thunk
30106         (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
30107         (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
30108         created from cgraph_function_or_thunk_node
30109         (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
30110         created from expand_thunk
30111         (void reset (void)): created from cgraph_reset_node
30112         (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
30113         (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
30114         (void remove (void)): created from cgraph_remove_node
30115         (void dump (FILE *f)): created from dump_cgraph_node
30116         (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
30117         (bool get_body (void)): created from cgraph_get_body
30118         (void release_body (void)): created from cgraph_release_function_body
30119         (void unnest (void)): created from cgraph_unnest_node
30120         (void make_local (void)): created from cgraph_make_node_local
30121         (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
30122         (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
30123         gcov_type count, int freq)): created from cgraph_create_edge
30124         (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
30125         gcov_type count, int freq)): created from cgraph_create_indirect_edge
30126         (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
30127         gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
30128         created from cgraph_create_edge_including_clones
30129         (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
30130         (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
30131         (void remove_callers (void)): created from cgraph_node_remove_callers
30132         (void remove_callees (void)): created from cgraph_node_remove_callees
30133         (enum availability get_availability (void)): created from cgraph_function_body_availability
30134         (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
30135         (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
30136         (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
30137         (void call_duplication_hooks (cgraph_node *node2)): created from
30138         cgraph_call_node_duplication_hooks
30139         (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
30140         void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
30141         (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
30142         void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
30143         (void call_function_insertion_hooks (void)):
30144         created from cgraph_call_function_insertion_hooks
30145         (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
30146         (bool local_p (void)): created from cgraph_local_node
30147         (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
30148         (bool cannot_return_p (void)): created from cgraph_node_cannot_return
30149         (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
30150         (inline bool only_called_directly_or_aliased_p (void)):
30151         created from cgraph_only_called_directly_or_aliased_p
30152         (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
30153         created from cgraph_will_be_removed_from_program_if_no_direct_calls
30154         (bool can_remove_if_no_direct_calls_and_refs_p (void)):
30155         created from cgraph_can_remove_if_no_direct_calls_and_refs_p
30156         (bool can_remove_if_no_direct_calls_p (void)):
30157         created from cgraph_can_remove_if_no_direct_calls_p
30158         (inline bool has_gimple_body_p (void)):
30159         created from cgraph_function_with_gimple_body_p
30160         (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
30161         (static void dump_cgraph (FILE *f)): created from dump_cgraph
30162         (static inline void debug_cgraph (void)): created from debug_cgraph
30163         (static void record_function_versions (tree decl1, tree decl2)):
30164         created from record_function_versions
30165         (static void delete_function_version (tree decl)):
30166         created from delete_function_version
30167         (static void add_new_function (tree fndecl, bool lowered)):
30168         created from cgraph_add_new_function
30169         (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
30170         (static cgraph_node * create (tree decl)): created from cgraph_create_node
30171         (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
30172         (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
30173         (static cgraph_node *get_for_asmname (tree asmname)):
30174         created from cgraph_node_for_asm
30175         (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
30176         created from cgraph_same_body_alias
30177         (static bool used_from_object_file_p_worker (cgraph_node *node,
30178         void *): new function
30179         (static bool non_local_p (cgraph_node *node, void *)):
30180         created from cgraph_non_local_node_p_1
30181         (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
30182         created from verify_cgraph
30183         (static bool make_local (cgraph_node *node, void *)):
30184         created from cgraph_make_node_local
30185         (static cgraph_node *create_alias (tree alias, tree target)):
30186         created from cgraph_create_function_alias
30187         (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
30188         gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
30189         created from cgraph_create_edge_1
30190         * cgraph.h (varpool_node):
30191         (void remove (void)): created from varpool_remove_node
30192         (void dump (FILE *f)): created from dump_varpool_node
30193
30194 2014-07-24  Richard Biener  <rguenther@suse.de>
30195
30196         PR ipa/61823
30197         * tree-ssa-structalias.c (create_variable_info_for_1):
30198         Use varpool_get_constructor.
30199         (create_variable_info_for): Likewise.
30200
30201 2014-07-24  Jiong Wang  <jiong.wang@arm.com>
30202
30203         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
30204         subtract outgoing area size when restoring stack_pointer_rtx.
30205
30206 2014-07-24  Nick Clifton  <nickc@redhat.com>
30207
30208         * config/rx/rx.md (stack_push): Adjust RTL to account for the fact
30209         that operations are taking place in parallel.
30210         * config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.
30211
30212 2014-07-24  Thomas Schwinge  <thomas@codesourcery.com>
30213
30214         * omp-low.c (extract_omp_for_data): Add missing break statement.
30215
30216 2014-07-24  Richard Biener  <rguenther@suse.de>
30217
30218         * tree-inline.h (estimate_move_cost): Add speed_p parameter.
30219         * tree-inline.c (estimate_move_cost): Add speed_p parameter
30220         and adjust MOVE_RATIO query accordingly.
30221         (estimate_num_insns): Adjust callers.
30222         * ipa-prop.c (ipa_populate_param_decls): Likewise.
30223         * ipa-cp.c (gather_context_independent_values,
30224         estimate_local_effects): Likewise.
30225         * ipa-split.c (consider_split): Likewise.
30226
30227 2014-07-24  Trevor Saunders  <tsaunders@mozilla.com>
30228
30229         * config/i386/driver-i386.c: Remove names of unused arguments and
30230         unnecessary unused attributes.
30231         * config/i386/host-mingw32.c: Likewise.
30232         * config/i386/i386.c: Likewise.
30233         * config/i386/winnt-stubs.c: Likewise.
30234         * config/i386/winnt.c: Likewise.
30235
30236 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30237
30238         * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
30239         (aarch64_gen_loadwb_pair): New helper function.
30240         (aarch64_expand_epilogue): Simplify code using new helper functions.
30241         * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
30242
30243 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30244
30245         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
30246         (aarch64_gen_storewb_pair): New helper function.
30247         (aarch64_expand_prologue): Simplify code using new helper functions.
30248         * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
30249
30250 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30251
30252         * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
30253         Rename to aarch64_save_callee_saves, remove restore code.
30254         (aarch64_restore_callee_saves): New function.
30255
30256 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30257
30258         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
30259         (aarch64_save_callee_saves): New function to handle reg save
30260         for both core and vectore regs.
30261
30262 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30263
30264         * config/aarch64/aarch64.c (aarch64_gen_load_pair)
30265         (aarch64_gen_store_pair): New helper function.
30266         (aarch64_save_or_restore_callee_save_registers)
30267         (aarch64_save_or_restore_fprs): Use new helper functions.
30268
30269 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30270
30271         * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
30272         (aarch64_save_or_restore_callee_save_registers)
30273         (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
30274
30275 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30276
30277         * config/aarch64/aarch64.c
30278         (aarch64_save_or_restore_callee_save_registers)
30279         (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
30280
30281 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30282
30283         * config/aarch64/aarch64.c
30284         (aarch64_save_or_restore_callee_save_registers)
30285         (aarch64_save_or_restore_fprs): Remove 'increment'.
30286
30287 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30288
30289         * config/aarch64/aarch64.c
30290         (aarch64_save_or_restore_callee_save_registers)
30291         (aarch64_save_or_restore_fprs): Use register offset in
30292         cfun->machine->frame.reg_offset.
30293
30294 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30295
30296         * config/aarch64/aarch64.c
30297         (aarch64_save_or_restore_callee_save_registers)
30298         (aarch64_save_or_restore_fprs): Remove base_rtx.
30299
30300 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30301
30302         * config/aarch64/aarch64.c
30303         (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
30304         to 'start_offset'.  Remove local variable 'start_offset'.
30305
30306 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30307
30308         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
30309         type to HOST_WIDE_INT.
30310
30311 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30312
30313         * config/aarch64/aarch64.c (aarch64_expand_prologue)
30314         (aarch64_save_or_restore_fprs)
30315         (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
30316
30317 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30318
30319         * config/arm/t-rtems-eabi: Add
30320         mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard,
30321         mthumb/march=armv7-m/mfpu=fpv4-sp-d16/mfloat-abi=hard,
30322         mbig-endian/mthumb/march=armv7-r, and
30323         mbig-endian/mthumb/march=armv7-r/mfpu=vfpv3-d16/mfloat-abi=hard
30324         multilibs.
30325
30326 2014-07-23  Sebastian Huber  <sebastian.huber@embedded-brains.de>
30327             Chris Johns <chrisj@rtems.org>
30328             Joel Sherrill <joel.sherrill@oarcorp.com>
30329
30330         * config.gcc: Add nios2-*-rtems*.
30331         * config/nios2/rtems.h: New file.
30332         * gcc/config/nios2/t-rtems: New file.
30333
30334 2014-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
30335
30336         PR target/61396
30337         * config/rs6000/rs6000.c (paired_expand_vector_init): Only allow
30338         constant numbers, not general constants.
30339         (rs6000_expand_vector_init): Ditto.
30340
30341 2014-07-23  Nathan Sidwell  <nathan@acm.org>
30342
30343         * gcov-tool.c (gcov_list): Declare here.
30344         (set_gcov_list): Remove.
30345         (gcov_output_files): Set gcov_list directly.
30346
30347 2014-07-23  Host Schirmeier  <horst@schirmeier.com>
30348
30349         * doc/invoke.texi: -O3 enables -ftree-loop-distribute-patterns.
30350
30351 2014-07-23  Jiong Wang  <jiong.wang@arm.com>
30352
30353         * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
30354         callee-saved registers are available for padding purpose
30355         and r3 is not mandatory, then prefer use those callee-saved
30356         instead of r3.
30357
30358 2014-07-23  Richard Biener  <rguenther@suse.de>
30359
30360         * params.def (PARAM_MAX_COMBINE_INSNS): New.
30361         * combine.c: Include statistics.h and params.h.
30362         (combine_instructions): Guard three and four insn combines
30363         with max-combine-insns value.  Record statistics for combines
30364         performed.
30365         * doc/invoke.texi (max-combine-insns): Document new param.
30366
30367 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30368
30369         * graphite-isl-ast-to-gimple.c:
30370         (translate_isl_ast_node_block): New function.
30371         (translate_isl_ast): Add calling of translate_isl_ast_node_block.
30372
30373         * gcc.dg/graphite/isl-ast-gen-blocks-1.c: New testcase.
30374         * gcc.dg/graphite/isl-ast-gen-blocks-2.c: New testcase.
30375
30376 2014-07-23  Roman Gareev  <gareevroman@gmail.com>
30377
30378         * graphite-isl-ast-to-gimple.c:
30379         (get_max_schedule_dimensions): New function.
30380         (extend_schedule): Likewise.
30381         (generate_isl_schedule): Add calling of extend_schedule and
30382         get_max_schedule_dimensions.
30383
30384 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30385
30386         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
30387         (case UNSPEC): Handle UNSPEC_RBIT.
30388
30389 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30390
30391         * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
30392         (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
30393
30394 2014-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30395
30396         * config/aarch64/arm_neon.h (vbsl_f64): New intrinsic.
30397
30398 2014-07-22  Roman Gareev  <gareevroman@gmail.com>
30399
30400         * graphite-isl-ast-to-gimple.c:
30401         Add inclusion of gimple-ssa.h, tree-into-ssa.h.
30402         (ivs_params_clear):
30403         (build_iv_mapping): New function.
30404         (translate_isl_ast_node_user): Likewise.
30405         (translate_isl_ast): Add calling of translate_isl_ast_node_user.
30406
30407         * gcc.dg/graphite/isl-ast-gen-single-loop-1.c: New testcase.
30408         * gcc.dg/graphite/isl-ast-gen-single-loop-2.c: New testcase.
30409         * gcc.dg/graphite/isl-ast-gen-single-loop-3.c: New testcase.
30410
30411 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30412
30413         PR target/55701
30414         * config/arm/arm.md (setmem): New pattern.
30415         * config/arm/arm-protos.h (struct tune_params): New fields.
30416         (arm_gen_setmem): New prototype.
30417         * config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
30418         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
30419         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
30420         (arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
30421         (arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
30422         (arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
30423         (arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
30424         (arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
30425         (arm_const_inline_cost): New function.
30426         (arm_block_set_max_insns): New function.
30427         (arm_block_set_non_vect_profit_p): New function.
30428         (arm_block_set_vect_profit_p): New function.
30429         (arm_block_set_unaligned_vect): New function.
30430         (arm_block_set_aligned_vect): New function.
30431         (arm_block_set_unaligned_non_vect): New function.
30432         (arm_block_set_aligned_non_vect): New function.
30433         (arm_block_set_vect, arm_gen_setmem): New functions.
30434
30435 2014-07-21  Bin Cheng  <bin.cheng@arm.com>
30436
30437         * config/arm/arm.c (output_move_neon): Handle REG explicitly.
30438
30439 2014-07-21  Uros Bizjak  <ubizjak@gmail.com>
30440
30441         PR target/61855
30442         * config/i386/avx512fintrin.h: Move constants for mantissa extraction
30443         out of #ifdef __OPTIMIZE__.
30444
30445 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30446
30447         * cse.c (exp_equiv_p) <MEM>: For GCSE, return 0 for expressions with
30448         different trapping status if -fnon-call-exceptions is enabled.
30449
30450 2014-07-20  Eric Botcazou  <ebotcazou@adacore.com>
30451
30452         * expr.c (store_field): Handle VOIDmode for calls that return values
30453         in multiple locations.
30454
30455 2014-07-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30456
30457         * config/rs6000/altivec.md (unspec enum):  Fix typo in UNSPEC_VSLDOI.
30458         (altivec_vsldoi_<mode>): Likewise.
30459
30460 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30461
30462         * graphite-isl-ast-to-gimple.c: Fixes a formatting issue related
30463         to the number of characters in the line.
30464
30465 2014-07-20  Roman Gareev  <gareevroman@gmail.com>
30466
30467         * graphite-isl-ast-to-gimple.c: Add using of
30468         build_nonstandard_integer_type instead of int128_integer_type_node.
30469
30470 2014-07-19  Eric Botcazou  <ebotcazou@adacore.com>
30471
30472         * toplev.c (output_stack_usage): Adjust the location of the warning.
30473
30474 2014-07-19  Daniel Cederman  <cederman@gaisler.com>
30475
30476         * config/sparc/sync.md (*membar_storeload_leon3): New insn.
30477         (*membar_storeload): Disable for LEON3.
30478
30479 2014-07-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30480
30481         PR rtl-optimization/61461
30482         * sched-vis.c (print_pattern) <ADDR_VEC, ADDR_DIFF_VEC>: Fixed.
30483
30484 2014-07-18  Uros Bizjak  <ubizjak@gmail.com>
30485
30486         PR target/61794
30487         * config/i386/sse.md (avx512f_vextract<shuffletype>32x4_1_maskm):
30488         Fix instruction constraint.
30489         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
30490
30491 2014-07-18  Jonathan Wakely  <jwakely@redhat.com>
30492
30493         * doc/extend.texi (Template Instantiation): Remove stray parenthesis.
30494
30495 2014-07-18  Chung-Ju Wu  <jasonwucj@gmail.com>
30496
30497         * config/nds32/nds32.c (nds32_can_eliminate): Follow the
30498         GNU coding standards.
30499         (nds32_register_move_cost): Likewise.
30500         (nds32_memory_move_cost): Likewise.
30501         (nds32_address_cost): Likewise.
30502
30503 2014-07-18  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
30504
30505         * config/mmix/mmix.c (mmix_intval): Drop unused automatic variable.
30506
30507 2014-07-17  John David Anglin  <danglin@gcc.gnu.org>
30508
30509         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Remove defines for
30510         __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2
30511         and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
30512         (HAVE_sync_compare_and_swapqi): Define.
30513         (HAVE_sync_compare_and_swaphi): Likewise.
30514         (HAVE_sync_compare_and_swapsi): Likewise.
30515
30516 2014-07-17  Richard Sandiford  <rdsandiford@googlemail.com>
30517
30518         * config/mips/p5600.md: Add missing cpu tests.
30519
30520 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30521
30522         * config/aarch64/arm_neon.h (vfma_f64): New intrinsic.
30523         (vmla_f64): Likewise.
30524         (vfms_f64): Likewise.
30525         (vmls_f64): Likewise.
30526
30527 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30528
30529         * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
30530         (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
30531
30532 2014-07-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30533
30534         * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
30535         (vmlal_high_lane_s32): Likewise.
30536         (vmlal_high_lane_u16): Likewise.
30537         (vmlal_high_lane_u32): Likewise.
30538         (vmlsl_high_lane_s16): Likewise.
30539         (vmlsl_high_lane_s32): Likewise.
30540         (vmlsl_high_lane_u16): Likewise.
30541         (vmlsl_high_lane_u32): Likewise.
30542
30543 2014-07-17  Terry Guo  <terry.guo@arm.com>
30544
30545         * config/arm/types.md (alu_reg): Replaced by alu_sreg and alu_dsp_reg.
30546         (alus_reg): Renamed to alus_sreg.
30547         * config/arm/arm-fixed.md: Change type of non-dsp instructions
30548         from alu_reg to alu_sreg.  Change type of dsp instructions from
30549         alu_reg to alu_dsp_reg.
30550         * config/arm/thumb1.md: Likewise.
30551         * config/arm/thumb2.md: Likewise.
30552         * config/arm/arm.c (cortexa7_older_only): Use new ALU type names.
30553         * config/arm/arm1020e.md (1020alu_op): Replace alu_reg and alus_reg
30554         with alu_sreg and alus_sreg.
30555         * config/arm/arm1026ejs.md (alu_op): Likewise.
30556         * config/arm/arm1136jfs.md (11_alu_op): Likewise.
30557         * config/arm/arm926ejs.md (9_alu_op): Likewise.
30558         * config/arm/fa526.md (526_alu_op): Likewise.
30559         * config/arm/fa606te.md (606te_alu_op): Likewise.
30560         * config/arm/fa626te.md (626te_alu_op): Likewise.
30561         * config/arm/fa726te.md (726te_alu_op): Likewise.
30562         * config/arm/fmp626.md (mp626_alu_op): Likewise.
30563         * config/arm/arm.md (core_cycles): Replace alu_reg and alus_reg with
30564         alu_sreg, alu_dsp_reg and alus_sreg.
30565         * config/arm/cortex-a15.md (cortex_a15_alu): Likewise.
30566         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30567         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30568         * config/arm/cortex-a7.md (cortex_a7_alu_sreg): Likewise.
30569         * config/arm/cortex-a8.md (cortex_a8_alu): Likewise.
30570         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30571         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30572         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30573         * config/arm/marvell-pj4.md (pj4_alu, pj4_alu_conds): Likewise.
30574         * config/aarch64/aarch64.md (*addsi3_aarch64, *addsi3_aarch64_uxtw,
30575         subsi3, *adddi3_aarch64, *subsi3_uxtw, subdi3, absdi2, neg<mode>2,
30576         *negsi2_uxtw, tlsle_small_<mode>): Rename type alu_reg to alu_sreg.
30577         (add<mode>3_compare0, *addsi3_compare0_uxtw, *add<mode>3nr_compare0,
30578         sub<mode>3_compare0, *compare_neg<mode>, *neg<mode>2_compare0,
30579         subsi3_compare0_uxtw, *negsi2_compare0_uxtw, *cmp<mode>): Rename type
30580         alus_reg to alus_sreg.
30581
30582 2014-07-17  Andreas Schwab  <schwab@linux-m68k.org>
30583
30584         * real.c (encode_ieee_extended_motorola): Clear integer bit in the
30585         infinity format.
30586
30587 2014-07-17  Richard Biener  <rguenther@suse.de>
30588
30589         PR rtl-optimization/61801
30590         * sched-deps.c (sched_analyze_2): For ASM_OPERANDS and ASM_INPUT
30591         don't set reg_pending_barrier if it appears in a debug-insn.
30592
30593 2014-07-16  DJ Delorie  <dj@redhat.com>
30594
30595         * config/rx/rx.c (rx_option_override): Fix alignment values.
30596         (rx_align_for_label): Likewise.
30597
30598 2014-07-17  Hans-Peter Nilsson  <hp@axis.com>
30599
30600         PR target/61737.
30601         * config/cris/cris.c (TARGET_LEGITIMATE_CONSTANT_P)
30602         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
30603         (cris_cannot_force_const_mem, cris_legitimate_constant_p): New
30604         functions.
30605         (cris_print_index, cris_print_operand, cris_constant_index_p)
30606         (cris_side_effect_mode_ok): Replace CONSTANT_P with CRIS_CONSTANT_P.
30607         (cris_address_cost): Ditto last CONSTANT_P.
30608         (cris_symbol_type_of): Rename from cris_pic_symbol_type_of.  All
30609         callers changed.  Yield cris_offsettable_symbol for non-PIC
30610         constant symbolic expressions including labels.  Yield cris_unspec
30611         for all unspecs.
30612         (cris_expand_pic_call_address): New parameter MARKERP.  Set its
30613         target to pic_offset_table_rtx for calls that will likely go
30614         through PLT, const0_rtx when they can't.  All callers changed.
30615         Assert flag_pic.  Use CONSTANT_P, not CONSTANT_ADDRESS_P, for
30616         symbolic expressions to be PICified.  Remove second, redundant,
30617         assert on can_create_pseudo_p returning non-zero.  Use
30618         replace_equiv_address_nv, not replace_equiv_address, for final
30619         operand update.
30620         * config/cris/cris.md ("movsi"): Move variable t to pattern
30621         toplevel. Adjust assert for new cris_symbol_type member.  Use
30622         CONSTANT_P instead of CONSTANT_ADDRESS_P.
30623         ("*movsi_internal") <case 9>: Make check for valid unspec operands
30624         for lapc stricter.
30625         <case CRIS_UNSPEC_PCREL, CRIS_UNSPEC_PLT_PCREL>: Clear condition codes.
30626         ("call", "call_value"): Use second incoming operand as a marker
30627         for pic-offset-table-register being used.
30628         ("*expanded_call_non_v32", "*expanded_call_v32")
30629         ("*expanded_call_value_non_v32", "*expanded_call_value_v32"): For
30630         second incoming operand to CALL, match cris_call_type_marker.
30631         ("*expanded_call_value_side"): Ditto.  Disable before reload_completed.
30632         ("*expanded_call_side"): Ditto.  Fix typo in comment.
30633         (moverside, movemside peepholes): Check for CRIS_CONSTANT_P, not
30634         CONSTANT_P.
30635         * config/cris/predicates.md ("cris_call_type_marker"): New predicate.
30636         * config/cris/cris.h (CRIS_CONSTANT_P): New macro.
30637         (enum cris_symbol_type): Rename from cris_pic_symbol_type.  All
30638         users changed.  Add members cris_offsettable_symbol and cris_unspec.
30639         (cris_symbol_type): Rename from cris_pic_symbol_type.
30640         * config/cris/constraints.md ("T"): Use CRIS_CONSTANT_P, not
30641         just CONSTANT_P.
30642         * config/cris/cris-protos.h (cris_symbol_type_of,
30643         cris_expand_pic_call_address): Adjust prototypes.
30644         (cris_legitimate_constant_p): New prototype.
30645
30646         * config.gcc (crisv32-*-linux* | cris-*-linux*): Do not override
30647         an existing tmake_file.  Don't add t-slibgcc and t-linux.
30648
30649 2014-07-17  Jason Merrill  <jason@redhat.com>
30650
30651         PR c++/61623
30652         * symtab.c (symtab_remove_from_same_comdat_group): Also
30653         set_comdat_group to NULL_TREE.
30654         (verify_symtab): Fix diagnostic.
30655
30656 2014-07-16  David Wohlferd  <dw@LimeGreenSocks.com>
30657
30658         PR target/61662
30659         * config/i386/ia32intrin.h: Use __LP64__ to determine size of long.
30660
30661 2014-07-16  Dodji Seketeli  <dodji@redhat.com>
30662
30663         Support location tracking for built-in macro tokens
30664         * input.h (is_location_from_builtin_token): New function declaration.
30665         * input.c (is_location_from_builtin_token): New function definition.
30666         * toplev.c (general_init): Tell libcpp what the pre-defined
30667         spelling location for built-in tokens is.
30668
30669 2014-07-16  Jakub Jelinek  <jakub@redhat.com>
30670
30671         * omp-low.c (create_omp_child_function): Don't set DECL_NAMELESS
30672         on the FUNCTION_DECL.
30673
30674 2014-07-16  Richard Biener  <rguenther@suse.de>
30675
30676         PR other/61782
30677         * doc/extend.texi (always_inline): Clarify.
30678
30679 2014-07-15  Eric Christopher  <echristo@gmail.com>
30680
30681         * doc/invoke.texi (Link Options): Document -z option.
30682
30683 2014-07-15  Uros Bizjak  <ubizjak@gmail.com>
30684
30685         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): New.
30686         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
30687
30688 2014-07-15  Jan Hubicka  <hubicka@ucw.cz>
30689
30690         * fold-const.c (fold_checksum_tree): Fix typo in previous patch.
30691
30692 2014-07-15  Bernd Schmidt  <bernds@codesourcery.com>
30693
30694         * asan.c (asan_finish_file): Use varpool_finalize_decl instead of
30695         varpool_assemble_decl.
30696         * varpool.c (varpool_assemble_decl): Assert that node->definition is
30697         true.
30698
30699 2014-07-15  Michael Matz  <matz@suse.de>
30700
30701         PR rtl-optimization/61772
30702         * ifcvt.c (dead_or_predicable): Check jump to be free of side effects.
30703
30704 2014-07-15  Richard Biener  <rguenther@suse.de>
30705
30706         * opts.c (default_options_table): Disable bit-ccp at -Og.
30707
30708 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30709
30710         * fold-const.c (fold_checksum_tree): Move checking of DECL_RESULT.
30711
30712 2014-07-14  Jan Hubicka  <hubicka@ucw.cz>
30713
30714         * tree.c (tree_code_size): Add TRANSLATION_UNIT_DECL,
30715         NAMESPACE_DECL, IMPORTED_DECL and NAMELIST_DECL;
30716         call langhook for unknown declaration.
30717         (find_decls_types_r): Do not walk DECL_ARGUMENT_FLD.
30718         * tree.h (DECL_ARGUMENTS): Update.
30719         * print-tree.c (print_node): Update.
30720         * tree-core.h (tree_decl_non_common): Remove arguments.
30721         (tree_function_decl): Add arguments.
30722
30723 2014-07-14  Richard Earnshaw  <rearnsha@arm.com>
30724
30725         * aarch64.md (add_losym_<mode>): Set type to alu_imm.
30726
30727 2014-07-14  Richard Biener  <rguenther@suse.de>
30728
30729         PR tree-optimization/61779
30730         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Always try
30731         simplifying a condition.
30732
30733 2014-07-14  Richard Biener  <rguenther@suse.de>
30734
30735         * builtins.c (c_strlen): Make only_value == 2 really only
30736         affect warning generation.
30737
30738 2014-07-14  Richard Biener  <rguenther@suse.de>
30739
30740         PR tree-optimization/61757
30741         PR tree-optimization/61783
30742         PR tree-optimization/61787
30743         * tree-ssa-dom.c (record_equality): Revert canonicalization
30744         change and add comment.
30745         (propagate_rhs_into_lhs): Revert previous fix, removing
30746         loop depth restriction again.
30747
30748 2014-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30749
30750         * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
30751         * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
30752         * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
30753         * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
30754         * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
30755         * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
30756         * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
30757
30758 2014-07-14  Richard Biener  <rguenther@suse.de>
30759
30760         * cgraph.h (decl_in_symtab_p): Make inline.
30761
30762 2014-07-14  Jakub Jelinek  <jakub@redhat.com>
30763
30764         PR middle-end/61294
30765         * doc/invoke.texi (-Wmemset-transposed-args): Document.
30766
30767         PR target/61656
30768         * config/i386/i386.c (classify_argument): Don't merge classes above
30769         number of words.
30770
30771 2014-07-13  Jan Hubicka  <hubicka@ucw.cz>
30772
30773         * cgraph.h (symtab_node): Add nonzero_address.
30774         (decl_in_symtab_p): Break out from ...
30775         (symtab_get_node): ... here.
30776         * fold-const.c: Include cgraph.h
30777         (tree_single_nonzero_warnv_p): Use symtab to determine
30778         if symbol is non-zero.
30779         * symtab.c (symtab_node::nonzero_address): New method.
30780
30781 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30782
30783         * ipa-devirt.c (odr_subtypes_equivalent_p): Disable temporary hack
30784         forgotten in previous commit.
30785
30786 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30787
30788         * tree.c (type_in_anonymous_namespace_p): Ignore TREE_PUBLIC
30789         on builtin types.
30790         * ipa-devirt.c: Include stor-layout.h and intl.h
30791         (odr_subtypes_equivalent_p): New function.
30792         (warn_odr): New function.
30793         (warn_type_mismatch): New function.
30794         (odr_types_equivalent_p): New function.
30795         (add_type_duplicate): Use it.
30796         * common.opt (Wodr): New flag.
30797         * doc/invoke.texi (Wodr): Document new warning.
30798
30799 2014-07-12  Jan Hubicka  <hubicka@ucw.cz>
30800
30801         * timevar.def (TV_IPA_LTO_DECL_INIT_IO): Remove.
30802         (TV_IPA_LTO_CTORS_IN, TV_IPA_LTO_CTORS_OUT): New timevar.
30803         * cgraph.c (cgraph_get_body): Push GIMPLE_IN timevar.
30804         (varpool_get_constructor): Push CTORS_IN timevar.
30805         * lto-streamer-out.c (lto_output): Push TV_IPA_LTO_CTORS_OUT timevar.
30806
30807 2014-07-12  Uros Bizjak  <ubizjak@gmail.com>
30808
30809         * config/i386/i386-builtin-types.def: Add USHORT_FTYPE_VOID.
30810         Remove VOID_FTYPE_PUSHORT.
30811         * config/i386/i386.c (bdesc_special_args) <__builtin_ia32_fnstsw>:
30812         Change code to USHORT_FTYPE_VOID.
30813         (ix86_expand_special_args_builtin): Handle USHORT_FTYPE_VOID.
30814         (ix86_expand_builtin): Remove IX86_BUILTIN_FNSTSW handling.
30815         (ix86_atomic_assign_expand_fenv): Update for
30816         __builtin_ia32_fnstsw changes.
30817         * config/i386/i386.md (x86_fnstsw_1): Set length unconditionally to 2.
30818         (fnstsw): Change operand 0 to nonimmediate operand.
30819
30820 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30821
30822         * vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
30823         (varpool_get_constructor): New function.
30824         (varpool_ctor_useable_for_folding_p): Break out from ...
30825         (ctor_for_folding): ... here; use varpool_get_constructor.
30826         (varpool_assemble_decl): Likewise.
30827         * lto-streamer.h (struct output_block): Turn cgraph_node
30828         to symbol filed.
30829         (lto_input_variable_constructor): Declare.
30830         * ipa-visibility.c (function_and_variable_visibility): Use
30831         varpool_get_constructor.
30832         * cgraph.h (varpool_get_constructor): Declare.
30833         (varpool_ctor_useable_for_folding_p): New function.
30834         * lto-streamer-out.c (get_symbol_initial_value): Take encoder
30835         parameter; return error_mark_node for non-trivial constructors.
30836         (lto_write_tree_1, DFS_write_tree): Update use of
30837         get_symbol_initial_value.
30838         (output_function): Update initialization of symbol.
30839         (output_constructor): New function.
30840         (copy_function): Rename to ..
30841         (copy_function_or_variable): ... this one; handle vars too.
30842         (lto_output): Output variable sections.
30843         * lto-streamer-in.c (input_constructor): New function.
30844         (lto_read_body): Rename from ...
30845         (lto_read_body_or_constructor): ... this one; handle vars too.
30846         (lto_input_variable_constructor): New function.
30847         * ipa-prop.c (ipa_prop_write_jump_functions,
30848         ipa_prop_write_all_agg_replacement): Update.
30849         * lto-cgraph.c (compute_ltrans_boundary): Use it.
30850         (output_cgraph_opt_summary): Set symbol to NULL.
30851
30852 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30853
30854         * ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
30855         non-polymorphic types.
30856         * ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
30857         * ipa-devirt.c (types_same_for_odr): Do not explode when one
30858         of types is not polymorphic.
30859
30860 2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>
30861
30862         * lra-constraints.c (remove_inheritance_pseudos): Process
30863         destination pseudo too.
30864
30865 2014-07-11  Rong Xu  <xur@google.com>
30866
30867         * gcov-tool.c (gcov_output_files): Fix build error introduced in
30868         commit r212448.
30869
30870 2014-07-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
30871
30872         * config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
30873         * config/avr/avr-devices.c (AVR_MCU): Same.
30874         (avr_mcu_types): add text start value to end of device list.
30875         * config/avr/avr-mcus.def: Add text section start for all devices.
30876         (ata5782): Add new avr5 device.
30877         (ata5831): Same.
30878         * config/avr/avr-tables.opt: Regenerate.
30879         * config/avr/avr.h: Add declaration for text section start handler.
30880         (EXTRA_SPEC_FUNCTIONS): Add text section start handler to
30881         SPEC functions.
30882         (LINK_SPEC): Include text section start handler to linker spec.
30883         * config/avr/driver-avr.c (avr_device_to_text_start): New function to
30884         pass -Ttext option to linker if the text section start for the device
30885         is not zero.
30886         * config/avr/t-multilib: Regenerate.
30887         * doc/avr-mmcu.texi: Regenerate.
30888
30889 2014-07-11  David Edelsohn  <dje.gcc@gmail.com>
30890
30891         * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
30892         * config/rs6000/aix52.h (LINK_SPEC): Same.
30893         * config/rs6000/aix53.h (LINK_SPEC): Same.
30894         * config/rs6000/aix61.h (LINK_SPEC): Same.
30895         * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.
30896
30897 2014-07-11  Roman Gareev  <gareevroman@gmail.com>
30898
30899         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): New function.
30900         (graphite_verify): New function.
30901         (ivs_params_clear): New function.
30902         (gcc_expression_from_isl_ast_expr_id): New function.
30903         (gcc_expression_from_isl_expr_int): New function.
30904         (binary_op_to_tree): New function.
30905         (ternary_op_to_tree): New function.
30906         (unary_op_to_tree): New function.
30907         (nary_op_to_tree): New function.
30908         (gcc_expression_from_isl_expr_op): New function.
30909         (gcc_expression_from_isl_expression): New function.
30910         (graphite_create_new_loop): New function.
30911         (translate_isl_ast_for_loop): New function.
30912         (get_upper_bound): New function.
30913         (graphite_create_new_loop_guard): New function.
30914         (translate_isl_ast_node_for): New function.
30915         (translate_isl_ast): New function.
30916         (add_parameters_to_ivs_params): New function.
30917         (scop_to_isl_ast): New parameter ip.
30918         (graphite_regenerate_ast_isl): Add generation of GIMPLE code.
30919
30920 2014-07-11  Jan Hubicka  <hubicka@ucw.cz>
30921
30922         * config/xtensa/predicates.md (call expander): Update for
30923         DECL_SECTION_NAME being string.
30924
30925 2014-07-11  Richard Biener  <rguenther@suse.de>
30926
30927         PR middle-end/61473
30928         * builtins.c (fold_builtin_memory_op): Inline memory moves that
30929         can be implemented with a single load followed by a single store.
30930         (c_strlen): Only warn when only_value is not 2.
30931
30932 2014-07-11  Evgeny Stupachenko  <evstupac@gmail.com>
30933
30934         * config/i386/i386.c (expand_vec_perm_pblendv): Disable for AVX.
30935
30936 2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>
30937
30938         PR target/61561
30939         * config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
30940         (*movhi_bytes): Likewise.
30941         (*arm_movqi_insn): Likewise.
30942
30943 2014-07-11  Uros Bizjak  <ubizjak@gmail.com>
30944
30945         PR target/56858
30946         * config/alpha/alpha.c: Include tree-pass.h, context.h
30947         and pass_manager.h.
30948         (pass_data_handle_trap_shadows): New pass.
30949         (pass_handle_trap_shadows::gate): New pass gate function.
30950         (make_pass_handle_trap_shadows): New function.
30951         (rest_of_handle_trap_shadows): Ditto.
30952
30953         (alpha_align_insns_1): Rename from alpha_align_insns.
30954         (pass_data_align_insns): New pass.
30955         (pass_align_insns::gate): New pass gate function.
30956         (make_pass_aling_insns): New function.
30957         (rest_of_align_insns): Ditto.
30958         (alpha_align_insns): Ditto.
30959
30960         (alpha_option_override): Declare handle_trap_shadows info
30961         and align_insns_info.  Register handle_trap_shadows and align_insns
30962         passes here.
30963         (alpha_reorg): Do not call alpha_trap_shadows and
30964         alpha_align_insn from here.
30965
30966         (alpha_pad_function_end): Do not skip BARRIERs.
30967
30968 2014-07-10  Rong Xu  <xur@google.com>
30969
30970         Add gcov-tool: an offline gcda profile processing tool support.
30971         * gcov-io.c (gcov_position): Make avaialble to gcov-tool.
30972         (gcov_is_error): Ditto.
30973         (gcov_read_string): Ditto.
30974         (gcov_read_sync): Ditto.
30975         * gcov-io.h: Move counter defines to gcov-counter.def.
30976         * gcov-dump.c (tag_counters): Use gcov-counter.def.
30977         * coverage.c: Ditto.
30978         * gcov-tool.c: Offline gcda profile processing tool.
30979         (unlink_gcda_file): Remove one gcda file.
30980         (unlink_profile_dir): Remove gcda files from the profile path.
30981         (gcov_output_files): Output gcda files to an output dir.
30982         (profile_merge): Merge two profiles in directory.
30983         (print_merge_usage_message): Print merge usage.
30984         (merge_usage): Print merge usage and exit.
30985         (do_merge): Driver for profile merge sub-command.
30986         (profile_rewrite): Rewrite profile.
30987         (print_rewrite_usage_message): Print rewrite usage.
30988         (rewrite_usage): Print rewrite usage and exit.
30989         (do_rewrite): Driver for profile rewrite sub-command.
30990         (print_usage): Print gcov-info usage and exit.
30991         (print_version): Print gcov-info version.
30992         (process_args): Process arguments.
30993         (main): Main routine for gcov-tool.
30994         * Makefile.in: Build and install gcov-tool.
30995         * gcov-counter.def: New file split from gcov-io.h.
30996         * doc/gcc.texi: Include gcov-tool.texi.
30997         * doc/gcov-tool.texi: Document for gcov-tool.
30998
30999 2014-07-10  Richard Biener  <rguenther@suse.de>
31000
31001         PR tree-optimization/61757
31002         * tree-ssa-dom.c (loop_depth_of_name): Restore.
31003         (propagate_rhs_into_lhs): Revert part of last change.
31004
31005 2014-07-10  Thomas Schwinge  <thomas@codesourcery.com>
31006
31007         * fold-const.c (fold_checksum_tree): Look at DECL_VINDEX only for
31008         FUNCTION_DECLs.
31009
31010 2014-07-10  Eric Botcazou  <ebotcazou@adacore.com>
31011
31012         PR middle-end/53590
31013         * function.c (allocate_struct_function): Revert r188667 change.
31014
31015         * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
31016
31017 2014-07-10  Tom G. Christensen  <tgc@jupiterrise.com>
31018
31019         * doc/install.texi: Remove links to defunct package providers for
31020         Solaris.
31021
31022 2014-07-09  Tom de Vries  <tom@codesourcery.com>
31023
31024         * final.c (get_call_fndecl): Declare.
31025         (self_recursive_call_p): New function.
31026         (collect_fn_hard_reg_usage): Handle self-recursive function calls.
31027
31028 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31029
31030         * ipa-devirt.c (record_node): Walk through aliases.
31031
31032 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31033
31034         * lto-streamer-out.c (hash_scc): Avoid quadratic hashing loop.
31035
31036 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31037
31038         Revert:
31039         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31040
31041 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31042
31043         * ipa-visibility.c (function_and_variable_visibility): Remove
31044         temporary hack disabling local aliases on AIX.
31045
31046 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31047
31048         * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
31049         * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
31050
31051 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31052
31053         * rs6000/rs6000-protos.h (rs6000_xcoff_declare_object_name): Declare.
31054         * rs6000/rs6000.c: Inline output of .set instruction.
31055         (declare_alias_data): New struct.
31056         (rs6000_declare_alias): New function.
31057         (rs6000_xcoff_declare_function_name): Use it.
31058         (rs6000_xcoff_declare_object_name): New function.
31059         * config/rs6000/xcoff.h: Define ASM_DECLARE_OBJECT_NAME.
31060         (ASM_OUTPUT_DEF): Turn to empty definition.
31061
31062 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31063
31064         PR bootstrap/61679
31065         * hash-table.h: use hash_table::value_type instead of
31066         Descriptor::value_type in the return types of several methods.
31067
31068 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31069
31070         * tree-pass.h (pass_data): Remove has_execute member.
31071         * passes.c (execute_one_pass): Don't check pass->has_execute.
31072         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
31073         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
31074         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
31075         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
31076         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
31077         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
31078         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
31079         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
31080         gimple-low.c, gimple-ssa-isolate-paths.c,
31081         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
31082         ipa-comdats.c, ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c,
31083         ipa-inline.c, ipa-profile.c, ipa-pure-const.c, ipa-reference.c,
31084         ipa-split.c, ipa-visibility.c, ipa.c, ira.c, jump.c, loop-init.c,
31085         lower-subreg.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
31086         postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
31087         reg-stack.c, regcprop.c, reginfo.c, regrename.c, reorg.c, sched-rgn.c,
31088         stack-ptr-mod.c, store-motion.c, tracer.c, trans-mem.c,
31089         tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c, tree-complex.c,
31090         tree-eh.c, tree-emutls.c, tree-if-conv.c, tree-into-ssa.c,
31091         tree-loop-distribution.c, tree-nrv.c, tree-object-size.c,
31092         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
31093         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
31094         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
31095         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
31096         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
31097         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
31098         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
31099         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
31100         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
31101         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
31102         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
31103         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c,
31104         web.c: Remove initializer for pass_data::has_execute.
31105
31106 2014-07-08  Trevor Saunders  <tsaunders@mozilla.com>
31107
31108         * graphite-htab.h: Use hash_map instead of hash_table.
31109         * graphite-clast-to-gimple.c: Adjust.
31110         * passes.c: Use hash_map instead of hash_table.
31111         * sese.c: Likewise.
31112         * sese.h: Remove now unused code.
31113
31114 2014-07-08  Sriraman Tallam  <tmsriram@google.com>
31115
31116         PR target/61599
31117         * config/i386/i386.c (ix86_in_large_data_p): Check for size less
31118         than zero.
31119
31120 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31121
31122         PR rtl-optimization/61673
31123         * combine.c (simplify_comparison): Test just mode's sign bit
31124         in tmode rather than the sign bit and any bits above it.
31125
31126 2014-07-08  Roman Gareev  <gareevroman@gmail.com>
31127
31128         * graphite-isl-ast-to-gimple.c (generate_isl_context):
31129         Add __isl_give to the declaration.
31130         (generate_isl_schedule): Likewise.
31131         (scop_to_isl_ast): Likewise.
31132
31133 2014-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31134
31135         * config/arm/arm.c (cortexa5_extra_costs): New table.
31136         (arm_cortex_a5_tune): Use cortexa5_extra_costs.
31137
31138 2014-07-08  Jakub Jelinek  <jakub@redhat.com>
31139
31140         PR tree-optimization/61725
31141         * tree-vrp.c (extract_range_basic): Don't assume vr0 is unsigned
31142         range, use range_includes_zerop_p instead of integer_zerop on
31143         vr0->min, only use log2 of max if min is not negative.
31144
31145 2014-07-08  Richard Biener  <rguenther@suse.de>
31146
31147         * tree-ssa-dom.h (loop_depth_of_name): Remove.
31148         * tree-ssa-dom.c (record_equivalences_from_phis): Remove
31149         restriction on loop depth difference.
31150         (record_equality): Likewise.
31151         (propagate_rhs_into_lhs): Likewise.  Simplify condition.
31152         (loop_depth_of_name): Remove.
31153         * tree-ssa-copy.c (copy_prop_visit_phi_node): Remove
31154         restriction on loop depth difference.
31155         (init_copy_prop): Likewise.
31156
31157 2014-07-08  Jan Hubicka  <hubicka@ucw.cz>
31158
31159         * tree-ssa-alias.c (walk_aliased_vdefs_1): Add FUNCTION_ENTRY_REACHED
31160         parameter.
31161         (walk_aliased_vdefs): Likewise.
31162         * tree-ssa-alias.h (walk_aliased_vdefs): Likewise.
31163         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers
31164         (detect_type_change_from_memory_writes): Check if entry was reached.
31165
31166 2014-07-08  Richard Biener  <rguenther@suse.de>
31167
31168         PR tree-optimization/61681
31169         * tree-ssa-structalias.c (find_what_var_points_to): Expand
31170         NONLOCAL inside ESCAPED.
31171
31172 2014-07-08  Richard Biener  <rguenther@suse.de>
31173
31174         PR tree-optimization/61680
31175         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
31176         Handle properly all read-write dependences with group accesses.
31177
31178 2014-07-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
31179
31180         PR tree-optimization/61576
31181         * tree-if-conv.c (is_cond_scalar_reduction): Add check that basic
31182         block containing reduction statement is predecessor of phi basi block.
31183
31184 2014-07-08  Marek Polacek  <polacek@redhat.com>
31185
31186         PR c/60226
31187         * fold-const.c (round_up_loc): Change the parameter type.
31188         Remove assert.
31189         * fold-const.h (round_up_loc): Adjust declaration.
31190         * stor-layout.c (finalize_record_size): Check for too large types.
31191
31192 2014-07-07  Jan Hubicka  <hubicka@ucw.cz>
31193
31194         * symtab.c: Include calls.h.
31195         (symtab_nonoverwritable_alias_1): Check sanity of the local alias.
31196
31197 2014-07-07  Maciej W. Rozycki  <macro@codesourcery.com>
31198
31199         * config/rs6000/rs6000.c (output_vec_const_move): Handle
31200         little-endian code generation.
31201         * config/rs6000/spe.md (spe_evmergehi): Rename to...
31202         (vec_perm00_v2si): ... this.  Handle little-endian code generation.
31203         (spe_evmergehilo): Rename to...
31204         (vec_perm01_v2si): ... this.  Handle little-endian code generation.
31205         (spe_evmergelo): Rename to...
31206         (vec_perm11_v2si): ... this.  Handle little-endian code generation.
31207         (spe_evmergelohi): Rename to...
31208         (vec_perm10_v2si): ... this.  Handle little-endian code generation.
31209         (spe_evmergehi, spe_evmergehilo): New expanders.
31210         (spe_evmergelo, spe_evmergelohi): Likewise.
31211         (*frob_<SPE64:mode>_<DITI:mode>): Handle little-endian code generation.
31212         (*frob_tf_ti): Likewise.
31213         (*frob_<mode>_di_2): Likewise.
31214         (*frob_tf_di_8_2): Likewise.
31215         (*frob_di_<mode>): Likewise.
31216         (*frob_ti_tf): Likewise.
31217         (*frob_<DITI:mode>_<SPE64:mode>_2): Likewise.
31218         (*frob_ti_<mode>_8_2): Likewise.
31219         (*frob_ti_tf_2): Likewise.
31220         (mov_si<mode>_e500_subreg0): Rename to...
31221         (mov_si<mode>_e500_subreg0_be): ... this.  Restrict to the big
31222         endianness only.
31223         (*mov_si<mode>_e500_subreg0_le): New instruction pattern.
31224         (*mov_si<mode>_e500_subreg0_elf_low): Rename to...
31225         (*mov_si<mode>_e500_subreg0_elf_low_be): ... this.  Restrict to
31226         the big endianness only.
31227         (*mov_si<mode>_e500_subreg0_elf_low_le): New instruction pattern.
31228         (*mov_si<mode>_e500_subreg0_2): Rename to...
31229         (*mov_si<mode>_e500_subreg0_2_be): ... this.  Restrict to the
31230         big big endianness only.
31231         (*mov_si<mode>_e500_subreg0_2_le): New instruction pattern.
31232         (*mov_si<mode>_e500_subreg4): Rename to...
31233         (*mov_si<mode>_e500_subreg4_be): ... this.  Restrict to the big
31234         endianness only.
31235         (mov_si<mode>_e500_subreg4_le): New instruction pattern.
31236         (*mov_si<mode>_e500_subreg4_elf_low): Rename to...
31237         (*mov_si<mode>_e500_subreg4_elf_low_be): ... this.  Restrict to
31238         the big endianness only.
31239         (*mov_si<mode>_e500_subreg4_elf_low_le): New instruction/splitter
31240         pattern.
31241         (*mov_si<mode>_e500_subreg4_2): Rename to...
31242         (*mov_si<mode>_e500_subreg4_2_be): ... this.  Restrict to the big
31243         endianness only.
31244         (*mov_si<mode>_e500_subreg4_2_le): New instruction pattern.
31245         (*mov_sitf_e500_subreg8): Rename to...
31246         (*mov_sitf_e500_subreg8_be): ... this.  Restrict to the big
31247         endianness only.
31248         (*mov_sitf_e500_subreg8_le): New instruction pattern.
31249         (*mov_sitf_e500_subreg8_2): Rename to...
31250         (*mov_sitf_e500_subreg8_2_be): ... this.  Restrict to the big
31251         endianness only.
31252         (*mov_sitf_e500_subreg8_2_le): New instruction pattern.
31253         (*mov_sitf_e500_subreg12): Rename to...
31254         (*mov_sitf_e500_subreg12_be): ... this.  Restrict to the big
31255         endianness only.
31256         (*mov_sitf_e500_subreg12_le): New instruction pattern.
31257         (*mov_sitf_e500_subreg12_2): Rename to...
31258         (*mov_sitf_e500_subreg12_2_be): ... this.  Restrict to the big
31259         endianness only.
31260         (*mov_sitf_e500_subreg12_2_le): New instruction pattern.
31261
31262 2014-07-07  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31263
31264         * asan.c (instrument_strlen_call): Do not instrument first byte
31265         in strlen if already instrumented.
31266
31267 2014-07-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31268
31269         * config/arm/arm.opt (mwords-little-endian): Delete.
31270         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Remove handling
31271         of TARGET_LITTLE_WORDS.
31272         (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
31273         * config/arm/arm.c (arm_option_override): Remove TARGET_LITTLE_WORDS
31274         warning.
31275         * doc/invoke.texi: Remove references to -mwords-little-endian.
31276
31277 2014-07-07  Jakub Jelinek  <jakub@redhat.com>
31278
31279         * expmed.c (struct init_expmed_rtl): Change all fields but
31280         pow2 and cint from struct rtx_def to rtx.
31281         (init_expmed_one_conv, init_expmed_one_mode): Adjust for that change.
31282         (init_expmed): Likewise.  Allocate all the 18 rtxes and ggc_free them
31283         at the end again.
31284
31285 2014-07-06  Marek Polacek  <polacek@redhat.com>
31286
31287         PR c/6940
31288         * doc/invoke.texi: Document -Wsizeof-array-argument.
31289
31290 2014-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
31291
31292         * wide-int.h (wide_int_storage): Change declaration from struct
31293         to class.
31294
31295 2014-07-05  Jan Hubicka  <hubicka@ucw.cz>
31296
31297         * cgraph.c (cgraph_create_indirect_edge): Update call of
31298         get_polymorphic_call_info.
31299         * ipa-utils.h (get_polymorphic_call_info): Add parameter CALL.
31300         (possible_polymorphic_call_targets): Add parameter call.
31301         (decl_maybe_in_construction_p): New predicate.
31302         (get_polymorphic_call_info): Add parameter call;
31303         use decl_maybe_in_construction_p.
31304         * gimple-fold.c (fold_gimple_assign): Update use of
31305         possible_polymorphic_call_targets.
31306         (gimple_fold_call): Likewise.
31307         * ipa-prop.c: Inlcude calls.h
31308         (ipa_binfo_from_known_type_jfunc): Check that known type is record.
31309         (param_type_may_change_p): New predicate.
31310         (detect_type_change_from_memory_writes): Break out from ...
31311         (detect_type_change): ... this one; use param_type_may_change_p.
31312         (detect_type_change_ssa): Use param_type_may_change_p.
31313         (compute_known_type_jump_func): Use decl_maybe_in_construction_p.
31314
31315 2014-07-05  Charles Baylis  <charles.baylis@linaro.org>
31316
31317         PR target/49423
31318         * config/arm/arm-protos.h (arm_legitimate_address_p,
31319         arm_is_constant_pool_ref): Add prototypes.
31320         * config/arm/arm.c (arm_legitimate_address_p): Remove static.
31321         (arm_is_constant_pool_ref) New function.
31322         * config/arm/arm.md (unaligned_loadhis, arm_zero_extendhisi2_v6,
31323         arm_zero_extendqisi2_v6): Use Uh constraint for memory operand.
31324         (arm_extendhisi2, arm_extendhisi2_v6): Use Uh constraint for memory
31325         operand. Remove pool_range and neg_pool_range attributes.
31326         (arm_extendqihi_insn, arm_extendqisi, arm_extendqisi_v6): Remove
31327         pool_range and neg_pool_range attributes.
31328         * config/arm/constraints.md (Uh): New constraint.
31329         (Uq): Don't allow constant pool references.
31330
31331 2014-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
31332
31333         * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): New.
31334         (move_lo_quad_internal_be_<mode>): Likewise.
31335         (move_lo_quad_<mode>): Convert to define_expand.
31336         (aarch64_simd_move_hi_quad_<mode>): Gate on BYTES_BIG_ENDIAN.
31337         (aarch64_simd_move_hi_quad_be_<mode>): New.
31338         (move_hi_quad_<mode>): Use appropriate insn for BYTES_BIG_ENDIAN.
31339         (aarch64_combinez<mode>): Gate on BYTES_BIG_ENDIAN.
31340         (aarch64_combinez_be<mode>): New.
31341         (aarch64_combine<mode>): Convert to define_expand.
31342         (aarch64_combine_internal<mode>): New.
31343         (aarch64_simd_combine<mode>): Remove bogus RTL description.
31344
31345 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31346
31347         * doc/md.texi (@subsection Constraint Modifier Characters): Clarify
31348         combination of earlyclobber and read/write modifiers.
31349
31350 2014-07-04  Tom de Vries  <tom@codesourcery.com>
31351
31352         * config/aarch64/aarch64-simd.md
31353         (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
31354
31355 2014-07-04  Richard Earnshaw  <rearnsha@arm.com>
31356
31357         PR target/61714
31358         * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Define.
31359
31360 2014-07-04  Jakub Jelinek  <jakub@redhat.com>
31361
31362         PR middle-end/61654
31363         * cgraphunit.c (expand_thunk): Call free_dominance_info.
31364
31365         PR tree-optimization/61684
31366         * tree-ssa-ifcombine.c (recognize_single_bit_test): Make sure
31367         rhs1 of conversion is a SSA_NAME before using SSA_NAME_DEF_STMT on it.
31368
31369 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31370             Kito Cheng  <kito@0xlab.org>
31371             Monk Chiang  <sh.chiang04@gmail.com>
31372
31373         * config/nds32/nds32.c (nds32_have_prologue_p): Move to ...
31374         (nds32_symbol_load_store_p): Move to ...
31375         (nds32_fp_as_gp_check_available): Move to ...
31376         * config/nds32/nds32-fp-as-gp.c: ... here.
31377         * config/nds32/nds32-protos.h (nds32_symbol_load_store_p): Remove
31378         extern declaration.
31379
31380 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31381             Kito Cheng  <kito@0xlab.org>
31382             Monk Chiang  <sh.chiang04@gmail.com>
31383
31384         * config/nds32/nds32.c (nds32_expand_load_multiple): Move to ...
31385         (nds32_expand_store_multiple): Move to ...
31386         (nds32_expand_movmemqi): Move to ...
31387         * config/nds32/nds32-memory-manipulation.c: ... here.
31388
31389 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31390             Kito Cheng  <kito@0xlab.org>
31391             Monk Chiang  <sh.chiang04@gmail.com>
31392
31393         * config/nds32/nds32.c (nds32_byte_to_size): Move to ...
31394         (nds32_output_casesi_pc_relative): Move to ...
31395         (nds32_output_casesi): Move to ...
31396         (nds32_mem_format): Move to ...
31397         (nds32_output_16bit_store): Move to ...
31398         (nds32_output_16bit_load): Move to ...
31399         (nds32_output_32bit_store): Move to ...
31400         (nds32_output_32bit_load): Move to ...
31401         (nds32_output_32bit_load_s): Move to ...
31402         (nds32_output_stack_push): Move to ...
31403         (nds32_output_stack_pop): Move to ...
31404         * config/nds32/nds32-md-auxiliary.c: ... here.
31405
31406 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31407             Ling-Hua Tseng  <uranus@tinlans.org>
31408
31409         * config/nds32/nds32-pipelines-auxiliary.c: Add comment to describe
31410         the purpose of this file.
31411
31412 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31413             Kito Cheng  <kito@0xlab.org>
31414             Monk Chiang  <sh.chiang04@gmail.com>
31415
31416         * config/nds32/nds32.c (nds32_rtx_costs): Move implementation to ...
31417         (nds32_address_cost): Move implementation to ...
31418         * config/nds32/nds32-cost.c: ... here.
31419         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Declare.
31420         (nds32_address_cost_impl): Declare.
31421
31422 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31423             Kito Cheng  <kito@0xlab.org>
31424             Monk Chiang  <sh.chiang04@gmail.com>
31425
31426         * config/nds32/nds32.c
31427         (nds32_consecutive_registers_load_store_p): Move to ...
31428         (nds32_valid_multiple_load_store): Move to ...
31429         (nds32_valid_stack_push_pop): Move to ...
31430         (nds32_can_use_bclr_p): Move to ...
31431         (nds32_can_use_bset_p): Move to ...
31432         (nds32_can_use_btgl_p): Move to ...
31433         (nds32_can_use_bitci_p): Move to ...
31434         * config/nds32/nds32-predicates.c: ... here.
31435
31436 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31437             Kito Cheng  <kito@0xlab.org>
31438             Monk Chiang  <sh.chiang04@gmail.com>
31439
31440         * config/nds32/nds32.c
31441         (nds32_expand_builtin_null_ftype_reg): Move to ...
31442         (nds32_expand_builtin_reg_ftype_imm): Move to ...
31443         (nds32_expand_builtin_null_ftype_reg_imm): Move to ...
31444         (nds32_init_builtins): Move implementation to ...
31445         (nds32_expand_builtin): Move implementation to ...
31446         * config/nds32/nds32-intrinsic.c: ... here.
31447         * config/nds32/nds32-protos.h (nds32_init_builtins_impl): Declare.
31448         (nds32_expand_builtin_impl): Declare.
31449
31450 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31451             Kito Cheng  <kito@0xlab.org>
31452             Monk Chiang  <sh.chiang04@gmail.com>
31453
31454         * config/nds32/nds32.c (nds32_emit_section_head_template): Move to ...
31455         (nds32_emit_section_tail_template): Move to ...
31456         (nds32_emit_isr_jmptbl_section): Move to ...
31457         (nds32_emit_isr_vector_section): Move to ...
31458         (nds32_emit_isr_reset_conten): Move to ...
31459         (nds32_check_isr_attrs_conflict): Move to ...
31460         (nds32_construct_isr_vectors_information): Move to ...
31461         (nds32_asm_file_start): Move implementation to ...
31462         (nds32_asm_file_end): Move implementation to ...
31463         * config/nds32/nds32-isr.c: ... here.
31464         * config/nds32/nds32-protos.h
31465         (nds32_check_isr_attrs_conflict): Declare.
31466         (nds32_construct_isr_vectors_information): Declare.
31467         (nds32_asm_file_start_for_isr): Declare.
31468         (nds32_asm_file_end_for_isr): Declare.
31469
31470 2014-07-04  Chung-Ju Wu  <jasonwucj@gmail.com>
31471             Kito Cheng  <kito@0xlab.org>
31472             Monk Chiang  <sh.chiang04@gmail.com>
31473
31474         * config.gcc (nds32*): Add new modules to extra_objs.
31475         (nds32le-*-*): Use t-nds32 makefile fragment for new modules.
31476         (nds32be-*-*): Likewise.
31477         * config/nds32/nds32-cost.c: New file.
31478         * config/nds32/nds32-fp-as-gp.c: New file.
31479         * config/nds32/nds32-intrinsic.c: New file.
31480         * config/nds32/nds32-isr.c: New file.
31481         * config/nds32/nds32-md-auxiliary.c: New file.
31482         * config/nds32/nds32-memory-manipulation.c: New file.
31483         * config/nds32/nds32-pipelines-auxiliary.c: New file.
31484         * config/nds32/nds32-predicates.c: New file.
31485         * config/nds32/t-nds32: New file.
31486
31487 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31488
31489         PR tree-optimization/61682
31490         * wide-int.cc (wi::mul_internal): Handle high correctly for umul_ppmm
31491         using cases and when one of the operands is equal to 1.
31492
31493 2014-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
31494
31495         * config/rs6000/rs6000.md (rotl<mode>3, ashl<mode>3, lshr<mode>3,
31496         ashr<mode>3): Correct mode of operands[2].
31497         (rotl<mode>3_dot, rotl<mode>3_dot2, ashl<mode>3_dot, ashl<mode>3_dot2,
31498         lshr<mode>3_dot, lshr<mode>3_dot2, ashr<mode>3_dot, ashr<mode>3_dot2):
31499         Correct mode of operands[2].  Fix split condition.
31500
31501 2014-07-03  Richard Earnshaw  <rearnsha@arm.com>
31502
31503         * arm.md (arch): Add armv6_or_vfpv3.
31504         (arch_enabled): Add test for the above.
31505         * vfp.md (divsf_vfp, divdf_vfp): Add earlyclobber when code can run
31506         on VFP9.
31507         (sqrtsf_vfp, sqrtdf_vfp): Likewise.
31508
31509 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
31510
31511         * gcov-io.c (gcov_read_words): Don't call memmove if excess is 0.
31512         * data-streamer-in.c (streamer_read_hwi): Shift UHWI 1 instead of
31513         HWI 1 and negate the unsigned value.
31514         * expmed.c (expand_sdiv_pow2): For modes wider than word always
31515         use AND instead of shift.
31516         * wide-int-print.cc (print_decs): Negate UHWI instead of HWI.
31517
31518 2014-07-03  Marek Polacek  <polacek@redhat.com>
31519
31520         * doc/invoke.texi (-fsanitize=bounds): Tweak wording.
31521         (-fsanitize=float-divide-by-zero): Move to the table with
31522         -fsanitize=undefined suboptions.
31523         (-fsanitize=float-cast-overflow): Likewise.
31524
31525 2014-07-03  Maciej W. Rozycki  <macro@codesourcery.com>
31526
31527         * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Use
31528         BYTES_BIG_ENDIAN rather than WORDS_BIG_ENDIAN to check for byte
31529         endianness.
31530
31531 2014-07-03  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31532
31533         * loop-invariant.c (struct invariant): Add a new member: eqno;
31534         (find_identical_invariants): Update eqno;
31535         (create_new_invariant): Init eqno;
31536         (get_inv_cost): Compute comp_cost with eqno;
31537
31538 2014-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
31539
31540         * genconfig.c (have_rotate_flag, have_rotatert_flag): New variables.
31541         (walk_insn_part) <ROTATE, ROTATERT>: New cases.
31542         (main): Conditionally write HAVE_rotate resp. HAVE_rotatert.
31543         * simplify-rtx.c (simplify_binary_operation_1) <ROTATE, ROTATERT>:
31544         Only do the transformation if both HAVE_rotate and HAVE_rotatert.
31545
31546 2014-07-02  Christian Bruel  <christian.bruel@st.com>
31547
31548         PR target/29349
31549         PR target/53513
31550         * mode-switching.c (struct bb_info): Add mode_out, mode_in caches.
31551         (make_preds_opaque): Delete.
31552         (clear_mode_bit, mode_bit_p, set_mode_bit): New macros.
31553         (commit_mode_sets): New function.
31554         (optimize_mode_switching): Handle current_mode to mode_switching_emit.
31555         Process all modes at once.
31556         * basic-block.h (pre_edge_lcm_avs): Declare.
31557         * lcm.c (pre_edge_lcm_avs): Renamed from pre_edge_lcm.
31558         Call clear_aux_for_edges. Fix comments.
31559         (pre_edge_lcm): New wrapper function to call pre_edge_lcm_avs.
31560         (pre_edge_rev_lcm): Idem.
31561         * config/epiphany/epiphany.c (emit_set_fp_mode): Add prev_mode
31562         parameter.
31563         * config/epiphany/epiphany-protos.h (emit_set_fp_mode): Idem.
31564         * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute):
31565         Idem.
31566         * config/i386/i386.c (x96_emit_mode_set): Idem.
31567         * config/sh/sh.c (sh_emit_mode_set): Likewise. Handle PR toggle.
31568         * config/sh/sh.md (toggle_pr):  Defined if TARGET_FPU_SINGLE.
31569         (fpscr_toggle) Disallow from delay slot.
31570         * target.def (emit_mode_set): Add prev_mode parameter.
31571         * doc/tm.texi: Regenerate.
31572
31573 2014-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31574
31575         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
31576         variable i.
31577
31578 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31579
31580         * ipa-utils.h (method_class_type, vtable_pointer_value_to_binfo,
31581         vtable_pointer_value_to_vtable): Constify.
31582         (contains_polymorphic_type_p): Declare.
31583         * ipa-devirt.c (method_class_type, vtable_pointer_value_to_binfo,
31584         vtable_pointer_value_to_vtable): Constify.
31585         (contains_polymorphic_type_p): New predicate.
31586         * ipa-prop.c (ipa_set_jf_known_type): Allow types containing
31587         polymorphic types.
31588         (ipa_set_ancestor_jf): Likewise.
31589         (detect_type_change): Return false in easy cases.
31590         (compute_complex_assign_jump_func): Require type to contain
31591         polymorphic type.
31592         (compute_known_type_jump_func): Likewise.
31593
31594 2014-07-01  Jan Hubicka  <hubicka@ucw.cz>
31595
31596         * tree.c (decls_same_for_odr, decls_same_for_odr, types_same_for_odr):
31597         Remove.
31598         (type_in_anonymous_namespace_p): Constify argument.
31599         * tree.h (types_same_for_odr, type_in_anonymous_namespace_p): Constify.
31600         * ipa-devirt.c (odr_type_d): Add ODR_VIOLATED field.
31601         (main_odr_variant): New function.
31602         (hash_type_name): Make static; update assert; do not ICE on
31603         non-records.
31604         (types_same_for_odr): Bring here from tree.c; simplify and remove
31605         old structural comparing code that doesn't work for templates.
31606         (odr_hasher::equal): Update assert.
31607         (add_type_duplicate): Return true when bases should be computed;
31608         replace incomplete loader by complete; do not output duplicated
31609         warnings; do not ICE on non-records; set odr_violated flag.
31610         (get_odr_type): Be ready to replace incomplete type by complete
31611         one; work on ODR variants instead of main variants; reorder item
31612         in array so bases have still smaller indexes.
31613         (dump_type_inheritance_graph): Be ready for holdes in odr_types array.
31614         (possible_polymorphic_call_targets): Do not ICE when BINFO is NULL.
31615
31616 2014-07-01  Cary Coutant  <ccoutant@google.com>
31617
31618         * dwarf2out.c (remove_addr_table_entry): Remove unnecessary hash table
31619         lookup.
31620         (resolve_addr_in_expr): When replacing the rtx in a location list
31621         entry, get a new address table entry.
31622         (dwarf2out_finish): Call index_location_lists even if there are no
31623         addr_index_table entries yet.
31624
31625 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31626
31627         * config/i386/winnt.c (i386_pe_section_type_flags): Revert previous
31628         change for not being obvious.
31629
31630 2014-07-01  Trevor Saunders  <tsaunders@mozilla.com>
31631
31632         * config/i386/winnt.c (i386_pe_section_type_flags): Remove name of
31633         unused argument.
31634
31635 2014-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31636
31637         * config/aarch64/arm_neon.h (vcage_f64): New intrinsic.
31638         (vcagt_f64): Likewise.
31639         (vcale_f64): Likewise.
31640         (vcaled_f64): Likewise.
31641         (vcales_f32): Likewise.
31642         (vcalt_f64): Likewise.
31643         (vcaltd_f64): Likewise.
31644         (vcalts_f32): Likewise.
31645
31646 2014-07-01  Marek Polacek  <polacek@redhat.com>
31647
31648         * doc/invoke.texi: Document -Wint-conversion.
31649
31650 2014-07-01  Marek Polacek  <polacek@redhat.com>
31651
31652         PR c/58286
31653         * doc/invoke.texi: Document -Wincompatible-pointer-types.
31654
31655 2014-07-01  Martin Liska  <mliska@suse.cz>
31656
31657         IPA REF alias refactoring
31658         * cgraph.h (iterate_direct_aliases): New function.
31659         (FOR_EACH_ALIAS): New macro iterates all direct aliases for a node.
31660         * cgraph.c (cgraph_for_node_thunks_and_aliases): Usage of
31661         FOR_EACH_ALIAS added.
31662         (cgraph_for_node_and_aliases): Likewise.
31663         * cgraphunit.c (assemble_thunks_and_aliases): Likewise.
31664         * ipa-inline.c (reset_edge_caches): Likewise.
31665         (update_caller_keys): Likewise.
31666         * trans-mem.c (ipa_tm_execute): Likewise.
31667         *varpool.c (varpool_analyze_node): Likewise.
31668         (varpool_for_node_and_aliases): Likewise.
31669         * ipa-ref.h (first_alias): New function.
31670         (last_alias): Likewise.
31671         (has_aliases_p): Likewise.
31672         * ipa-ref.c (ipa_ref::remove_reference): Removal function
31673         is sensitive to IPA_REF_ALIASes.
31674         * symtab.c (symtab_node::add_reference): Node of IPA_REF_ALIAS type
31675         are put at the beginning of the list.
31676         (symtab_node::iterate_direct_aliases): New function.
31677
31678 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31679
31680         Revert:
31681         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31682         type is complete.
31683         (write_ts_type_common_tree_pointers): Do not stream fields not set
31684         for incomplete types; do not stream duplicated fields for variants;
31685         sanity check that variant and type match.
31686         (write_ts_type_non_common_tree_pointers): Likewise.
31687         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31688         TYPE_SIZE whether type is complete.
31689         (lto_input_ts_type_common_tree_pointers): Do same changes as in
31690         write_ts_type_common_tree_pointers
31691         (lto_input_ts_type_non_common_tree_pointers): Likewise.
31692
31693 2014-06-30  Joseph Myers  <joseph@codesourcery.com>
31694
31695         * var-tracking.c (add_stores): Return instead of asserting if old
31696         and new values for conditional store are the same.
31697
31698 2014-06-30  Richard Henderson  <rth@redhat.com>
31699
31700         PR rtl-opt/61608
31701         PR target/39284
31702         * bb-reorder.c (pass_duplicate_computed_gotos::execute): Cleanup
31703         the cfg if there were any changes.
31704         * passes.def: Revert move of peephole2 after reorder_blocks;
31705         move duplicate_computed_gotos before peephole2.
31706
31707 2014-06-30  Uros Bizjak  <ubizjak@gmail.com>
31708
31709         * except.c (emit_note_eh_region_end): New helper function.
31710         (convert_to_eh_region_ranges): Use emit_note_eh_region_end to
31711         emit EH_REGION_END note.
31712         * jump.c (cleanup_barriers): Do not split a call and its
31713         corresponding CALL_ARG_LOCATION note.
31714
31715 2014-06-30  Jeff Law  <law@redhat.com>
31716
31717         PR tree-optimization/61607
31718         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Look
31719         deeper into the SSA_NAME_VALUE chain.
31720
31721 2014-06-30  Marek Polacek  <polacek@redhat.com>
31722
31723         * convert.c (convert_to_integer): Don't instrument conversions if the
31724         function has no_sanitize_undefined attribute.
31725         * ubsan.c: Don't run the ubsan pass if the function has
31726         no_sanitize_undefined attribute.
31727
31728 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31729
31730         * doc/invoke.texi (-fsanitize=bounds): Move to the table with
31731         -fsanitize=undefined suboptions.
31732
31733 2014-06-30  Alan Lawrence  <alan.lawrence@arm.com>
31734
31735         * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
31736         * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
31737         against bigendian and adjust indices.
31738
31739 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31740
31741         * doc/install.texi (Specific, aarch64*-*-*): Fix markup.  Reword a bit.
31742
31743 2014-06-30  Marcus Shawcroft  <marcus.shawcroft@arm.com>
31744
31745         PR target/61633
31746         * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3):
31747         Add alternative; make early clobber.  Adjust both split patterns
31748         to use operand 0 as the working register.
31749
31750 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
31751
31752         * ira-build.c (sort_conflict_id_map): Don't call qsort if num is 0,
31753         as ira_object_id_map might be NULL, or 1.
31754
31755 2014-06-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
31756
31757         * loop-invariant.c (get_inv_cost): Handle register class.
31758         (gain_for_invariant): Check the register pressure of the inv
31759         and its overlapped register class, other than all.
31760
31761 2014-06-30  Gerald Pfeifer  <gerald@pfeifer.com>
31762
31763         * doc/invoke.texi (Optimize Options): Fix descriptions of
31764         ipa-cp-loop-hint-bonus and ipa-cp-array-index-hint-bonus.
31765
31766 2014-06-29  David Wohlferd <dw@LimeGreenSocks.com>
31767
31768         * doc/extend.texi (Function Attributes): Update 'naked' attribute
31769         documentation.
31770
31771 2014-06-29  Tobias Grosser <tobias@grosser.es>
31772
31773         PR bootstrap/61650
31774         * graphite-isl-ast-to-gimple.c: Add missing guards.
31775
31776 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31777
31778         * Makefile.in: Add the compilation of graphite-isl-ast-to-gimple.o.
31779         * common.opt: Add new switch fgraphite-code-generator=[isl|cloog].
31780         * flag-types.h: Add new enum fgraphite_generator.
31781         * graphite-isl-ast-to-gimple.c: New.
31782         * graphite-isl-ast-to-gimple.h: New.
31783         * graphite.c (graphite_transform_loops): Add choice of Graphite
31784         code generator, which depends on flag_graphite_code_gen.
31785
31786 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31787
31788         * graphite-dependences.c (subtract_commutative_associative_deps):
31789         Add NULL checking of the following variables: must_raw_no_source,
31790         may_raw_no_source, must_war_no_source, may_war_no_source,
31791         must_waw_no_source, may_waw_no_source, must_raw, may_raw,
31792         must_war, may_war, must_waw, may_waw.
31793
31794 2014-06-29  Roman Gareev  <gareevroman@gmail.com>
31795
31796         * graphite-clast-to-gimple.c: gloog is renamed to
31797         graphite_regenerate_ast_cloog.  gloog_error is renamed to
31798         graphite_regenerate_error.
31799         * graphite-clast-to-gimple.h: The definition of the struct
31800         bb_pbb_def is moved to graphite-htab.h.
31801         Add inclusion of the hash-table.h.
31802         * graphite-htab.h: The declaration of the function gloog is moved
31803         to graphite-clast-to-gimple.h and renamed to
31804         graphite_regenerate_ast_cloog.
31805         * graphite.c (graphite_transform_loops): gloog is renamed
31806         to graphite_regenerate_ast_cloog.
31807
31808 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31809
31810         * tree-streamer-out.c (pack_ts_type_common_value_fields): Stream if
31811         type is complete.
31812         (write_ts_type_common_tree_pointers): Do not stream fields not set
31813         for incomplete types; do not stream duplicated fields for variants;
31814         sanity check that variant and type match.
31815         (write_ts_type_non_common_tree_pointers): Likewise.
31816         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Mark in
31817         TYPE_SIZE whether type is complete.
31818         (lto_input_ts_type_common_tree_pointers): Do same changes as in
31819         write_ts_type_common_tree_pointers
31820         (lto_input_ts_type_non_common_tree_pointers): Likewise.
31821
31822 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31823
31824         * cgraph.c (dump_cgraph_node): Dump init&fini priorities.
31825
31826 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31827
31828         * tree-inline.c (remap_type_1): Do not duplicate fields
31829         that are shared in between type and its main variant.
31830
31831 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31832
31833         * ipa-prop.c (ipa_set_jf_known_type): Record always the main variant
31834         of the type.
31835         (ipa_set_ancestor_jf) Likewise.
31836         (check_stmt_for_type_change): Check that we work on main variant.
31837         (detect_type_change): Look into main variant.
31838         (compute_known_type_jump_func): Check that main variant has BINFO.
31839
31840 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31841
31842         * ipa-devirt.c (set_type_binfo): New function.
31843         (add_type_duplicate): Use it.
31844         (get_odr_type): Sanity check that binfos points to main variants.
31845         (get_class_context): Be sure the context's outer_type is main variant.
31846         (contains_type_p): Walk main variant.
31847         (get_polymorphic_call_info_for_decl): Set outer_type to be
31848         main variant.
31849         (get_polymorphic_call_info): Likewise.
31850         (possible_polymorphic_call_targets): Sanity check that we operate
31851         on main variant.
31852
31853 2014-06-28  Jan Hubicka  <hubicka@ucw.cz>
31854
31855         * stor-layout.c (finish_builtin_struct): Copy fields into the variants.
31856
31857 2014-06-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
31858
31859         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Revert
31860         accidental change due to wide-int branch merge.
31861
31862 2014-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31863
31864         * configure.ac (gcc_cv_as_compress_debug): Check for assembler
31865         compressed debug support.
31866         (gcc_cv_ld_compress_debug): Check for linker compressed debug support.
31867         * configure: Regenerate.
31868         * config.in: Regenerate.
31869         * common.opt (compressed_debug_sections): New enum.
31870         (gz, gz=): New options.
31871         * gcc.c (LINK_COMPRESS_DEBUG_SPEC, ASM_COMPRESS_DEBUG_SPEC): Define.
31872         (LINK_COMMAND_SPEC): Invoke LINK_COMPRESS_DEBUG_SPEC.
31873         (asm_options): Invoke ASM_COMPRESS_DEBUG_SPEC.
31874         * config/darwin.h (LINK_COMMAND_SPEC_A): Invoke
31875         LINK_COMPRESS_DEBUG_SPEC.
31876         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Likewise.
31877         * opts.c (common_handle_option): Handle OPT_gz, OPT_gz_.
31878         * doc/invoke.texi (Option Summary, Debugging Options): Add -gz[=type].
31879         (Debugging Options): Document -gz[=type].
31880
31881 2014-06-27  Martin Jambor  <mjambor@suse.cz>
31882
31883         PR ipa/61160
31884         * cgraphclones.c (duplicate_thunk_for_node): Removed parameter
31885         args_to_skip, use those from node instead.  Copy args_to_skip and
31886         combined_args_to_skip from node to the new thunk.
31887         (redirect_edge_duplicating_thunks): Removed parameter args_to_skip.
31888         (cgraph_create_virtual_clone): Moved computation of
31889         combined_args_to_skip...
31890         (cgraph_clone_node): ...here, simplify it to bitmap_ior..
31891
31892 2014-06-27  trevor Saunders  <tsaunders@mozilla.com>
31893
31894         * config/i386/winnt.c (i386_pe_section_type_flags): Remove
31895         redundant diagnostic machinary.
31896
31897 2014-06-27  Richard Biener  <rguenther@suse.de>
31898
31899         * tree-ssa-math-opts.c (bswap_replace): Fix
31900         SLOW_UNALIGNED_ACCESS test to only apply to unaligned object.
31901
31902 2014-06-27  Martin Liska  <mliska@suse.cz>
31903
31904         * gimple.h (gimple_location_safe): New function introduced.
31905         * cgraphunit.c (walk_polymorphic_call_targets): Usage
31906         of gimple_location_safe replaces gimple_location.
31907         (gimple_fold_call): Likewise.
31908         * ipa-devirt.c (ipa_devirt): Likewise.
31909         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
31910         * ipa.c (walk_polymorphic_call_targets): Likewise.
31911         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
31912
31913 2014-06-27  Jakub Jelinek  <jakub@redhat.com>
31914
31915         PR tree-optimization/57233
31916         PR tree-optimization/61299
31917         * tree-vect-generic.c (get_compute_type, count_type_subparts): New
31918         functions.
31919         (expand_vector_operations_1): Use them.  If {L,R}ROTATE_EXPR
31920         would be lowered to scalar shifts, check if corresponding
31921         shifts and vector BIT_IOR_EXPR are supported and don't lower
31922         or lower just to narrower vector type in that case.
31923         * expmed.c (expand_shift_1): Fix up handling of vector
31924         shifts and rotates.
31925
31926 2014-06-26  Uros Bizjak  <ubizjak@gmail.com>
31927
31928         PR target/61586
31929         * config/alpha/alpha.c (alpha_handle_trap_shadows): Handle BARRIER RTX.
31930
31931 2014-06-26  Jan Hubicka  <hubicka@ucw.cz>
31932
31933         * doc/invoke.texi (-fsemantic-interposition): Document.
31934         * common.opt (fsemantic-interposition): New flag.
31935         * varasm.c (decl_replaceable_p): Use it.
31936
31937 2014-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31938
31939         PR target/61542
31940         * config/rs6000/vsx.md (vsx_extract_v4sf): Fix bug with element
31941         extraction other than index 3.
31942
31943 2014-06-26  Teresa Johnson  <tejohnson@google.com>
31944
31945         * doc/invoke.texi: Fix typo.
31946         * dumpfile.c: Add support for documented -fdump-* options
31947         optimized/missed/note/optall.
31948
31949 2014-06-26  Martin Jambor  <mjambor@suse.cz>
31950
31951         * params.def (PARAM_ALLOW_LOAD_DATA_RACES)
31952         (PARAM_ALLOW_PACKED_LOAD_DATA_RACES)
31953         (PARAM_ALLOW_PACKED_STORE_DATA_RACES): Removed.
31954         (PARAM_ALLOW_STORE_DATA_RACES): Set default to zero.
31955         * opts.c (default_options_optimization): Set
31956         PARAM_ALLOW_STORE_DATA_RACES to one at -Ofast.
31957         * doc/invoke.texi (allow-load-data-races)
31958         (allow-packed-load-data-races, allow-packed-store-data-races): Removed.
31959         (allow-store-data-races): Document the new default.
31960
31961 2014-06-26  Martin Jambor  <mjambor@suse.cz>
31962
31963         * ipa-prop.c (ipa_impossible_devirt_target): No longer static,
31964         renamed to ipa_impossible_devirt_target.  Fix typo.
31965         * ipa-prop.h (ipa_impossible_devirt_target): Declare.
31966         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use
31967         ipa_impossible_devirt_target.
31968
31969 2014-06-26  Richard Biener  <rguenther@suse.de>
31970
31971         PR tree-optimization/61607
31972         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust comment
31973         explaining why we restrict copies on loop depth.
31974         * tree-ssa-dom.c (cprop_operand): Remove restriction on
31975         on loop depth.
31976         (record_equivalences_from_phis): Instead add it here.
31977
31978 2014-06-26  Bernd Schmidt  <bernds@codesourcery.com>
31979
31980         * Makefile.in (COLLECT2_OBJS): Add collect-utils.o.
31981         (LTO_WRAPPER_OBJS): New variable.
31982         (lto-wrapper$(exeext)): Use it.
31983         * collect2.c: Include "collect-utils.h".
31984         (verbose, debug): Remove variables.
31985         (at_file_supplied): No longer static.
31986         (tool_name): New variable.
31987         (do_wait, fork_execute, maybe_unlink): Don't declare.
31988         (tool_cleanup): No longer static.
31989         (notice): Remove function.
31990         (maybe_run_lto_and_relink, main, do_dsymutil): Add new arg to
31991         fork_execute calls.
31992         (collect_wait, do_wait, collect_execute): Remove functions.
31993         (maybe_unlink): No longer static.
31994         * collect2.h (verbose, debug): Don't declare.
31995         (at_file_supplied): Declare.
31996         * collect-utils.c (utils_cleanup): New arg from_signal.  All callers
31997         changed.
31998         (collect_execute): Replace with implementation from collect2, plus a
31999         new arg use_atfile.  All callers changed.
32000         (collect_wait): Replace with implementation from collect2.
32001         (maybe_unlink_file): Remove function.
32002         (fork_execute): Replace with implementation from collect2, plus a
32003         new arg use_atfile.  All callers changed.
32004         (do_wait): Add call to utils_cleanup to the error path.
32005         * collect-utils.h (collect_execute, fork_execute, utils_cleanup)
32006         (tool_cleanup): Adjust declarations.
32007         * lto-wrapper.c (tool_cleanup): Add unused bool argument.
32008         * tlink.c: Include "collect-utils.h".
32009         (tlink_execute): New arg use_atfile.  All callers changed.
32010         (tlink_init, tlink_execute): Remove declarations.
32011
32012         * collect-utils.c (save_temps): New variable.
32013         (do_wait): Use it instead of debug.  Use fatal_error.
32014         * collect-utils.h (save_temps): Declare.
32015         * collect2.c (verbose): Rename from vflag.  All uses changed.
32016         (tool_cleanup): New function, copied from collect_atexit.
32017         (collect_atexit, handler): Just call it.
32018         * collect2.h (verbose): Declaration renamed from vflag.
32019         * lto-wrapper.c (maybe_unlink, run_gcc): Use save_temps instead of
32020         debug.
32021
32022         * Makefile.in (ALL_HOST_BACKEND_OBJS): Add collect-utils.o.
32023         (lto-wrapper$(exeext)): Link with collect-utils.o.
32024         * collect-utils.c: New file.
32025         * collect-utils.h: New file.
32026         * lto-wrapper.c: Include "collect-utils.h".
32027         (args_name): Delete variable.
32028         (tool_name): New variable.
32029         (tool_cleanup): New function.
32030         (maybe_unlink): Renamed from maybe_unlink_file.  All callers changed.
32031         (lto_wrapper_cleanup, fatal_signal, collect_execute, collect_wait)
32032         (fork_execute): Remove functions.
32033
32034 2014-06-26  Nick Clifton  <nickc@redhat.com>
32035
32036         * config/frv/frv.c (frv_in_small_data_p): Remove redundant assert.
32037
32038         * doc/extend.texi (Function Attributes): Fix typo in description
32039         of RX vector attribute.
32040
32041 2014-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
32042
32043         * config.gcc (supported_defaults): Error when passing either
32044         --with-tune or --with-arch in conjunction with --with-cpu for ARM.
32045
32046 2014-06-26  Richard Biener  <rguenther@suse.de>
32047
32048         * tree-ssa-dom.c (cprop_operand): Remove restriction on
32049         propagating volatile pointers.
32050
32051 2014-06-26  Richard Biener  <rguenther@suse.de>
32052
32053         PR tree-optimization/61607
32054         * tree-ssa-threadupdate.c (ssa_redirect_edges): Cancel the
32055         loop if we redirected its latch edge.
32056         (thread_block_1): Do not cancel loops prematurely.
32057
32058 2014-06-25  Jan Hubicka  <hubicka@ucw.cz>
32059
32060         * toplev.c (backend_init_target): Move init_emit_regs and
32061         init_regs to...
32062         (backend_init) ... here; skip ira_init_once and backend_init_target.
32063         (target_reinit) ... and here; clear
32064         this_target_rtl->lang_dependent_initialized.
32065         (lang_dependent_init_target): Clear
32066         this_target_rtl->lang_dependent_initialized;
32067         break out rtl initialization to ...
32068         (initialize_rtl): ... here; call also backend_init_target
32069         and ira_init_once.
32070         * toplev.h (initialize_rtl): New function.
32071         * function.c: Include toplev.h
32072         (init_function_start): Call initialize_rtl.
32073         * rtl.h (target_rtl): Add target_specific_initialized,
32074         lang_dependent_initialized.
32075
32076 2014-06-25  Paul Gortmaker  <paul.gortmaker@windriver.com>
32077             Jakub Jelinek  <jakub@redhat.com>
32078
32079         * gcc.c (set_multilib_dir): Malloc "." pointer as well.
32080
32081 2014-06-25  Tom de Vries  <tom@codesourcery.com>
32082
32083         * config/arm/arm.c (arm_emit_call_insn): Remove clobber of CC_REGNUM.
32084
32085 2014-06-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32086
32087         * tree-ssa-forwprop.c (associate_plusminus): For widening conversions
32088         check for undefined overflow in (T)(P + A) - (T)P -> (T)A.
32089         Issue a strict overflow warning if appropriate.
32090
32091 2014-06-25  Martin Liska  <mliska@suse.cz>
32092
32093         IPA REF refactoring
32094         * Makefile.in: Removed header file (ipa-ref-inline.h).
32095         * cgraph.c (cgraph_turn_edge_to_speculative): New IPA REF function
32096         called.
32097         (cgraph_speculative_call_info): Likewise.
32098         (cgraph_for_node_thunks_and_aliases): Likewise.
32099         (cgraph_for_node_and_aliases): Likewise.
32100         (verify_cgraph_node): Likewise.
32101         * cgraph.h: Batch of IPA REF functions become member functions of
32102         symtab_node: add_reference, maybe_add_reference, clone_references,
32103         clone_referring, clone_reference, find_reference,
32104         remove_stmt_references, remove_all_references,
32105         remove_all_referring, dump_references, dump_referring,
32106         has_alias_p, iterate_reference, iterate_referring.
32107         * cgraphbuild.c (record_reference): New IPA REF function used.
32108         (record_type_list): Likewise.
32109         (record_eh_tables): Likewise.
32110         (mark_address): Likewise.
32111         (mark_load): Likewise.
32112         (mark_store): Likewise.
32113         (pass_build_cgraph_edges): Likewise.
32114         (rebuild_cgraph_edge): Likewise.
32115         (cgraph_rebuild_references): Likewise.
32116         (pass_remove_cgraph_callee_edges): Likewise.
32117         * cgraphclones.c (cgraph_clone_node): Likewise.
32118         (cgraph_create_virtual_clone): Likewise.
32119         (cgraph_materialize_clone): Likewise.
32120         (cgraph_materialize_all_clones): Likewise.
32121         * cgraphunit.c (cgraph_reset_node): Likewise.
32122         (cgraph_reset_node): Likewise.
32123         (analyze_function): Likewise.
32124         (assemble_thunks_and_aliases): Likewise.
32125         (expand_function): Likewise.
32126         * ipa-comdats.c (propagate_comdat_group): Likewise.
32127         (enqueue_references): Likewise.
32128         * ipa-cp.c (ipcp_discover_new_direct_edges): Likewise.
32129         (create_specialized_node): Likewise.
32130         * ipa-devirt.c (referenced_from_vtable_p): Likewise.
32131         * ipa-inline-transform.c (can_remove_node_now_p_1): Likewise.
32132         * ipa-inline.c (reset_edge_caches): Likewise.
32133         (update_caller_keys): Likewise.
32134         (execute): Likewise.
32135         * ipa-prop.c (remove_described_reference): Likewise.
32136         (propagate_controlled_uses): Likewise.
32137         (ipa_edge_duplication_hook): Likewise.
32138         (ipa_modify_call_arguments): Likewise.
32139         * ipa-pure-const.c (propagate_pure_const): Likewise.
32140         * ipa-ref-inline.h: Header file removed, functions moved
32141         to symtab_node class.
32142         * ipa-ref.c (remove_reference): New class member function.
32143         (cannot_lead_to_return): New class member function.
32144         (referring_ref_list): Likewise.
32145         (referred_ref_list): Likewise.
32146         Rest of functions moved to symtab_node class.
32147         * ipa-ref.h: New member functions remove_reference,
32148         cannot_lead_to_return, referring_ref_list, referred_ref_list added
32149         to ipa_ref class.
32150         ipa_ref_list class has new member functions: first_reference,
32151         first_referring, clear, nreferences.
32152         * ipa-reference.c (analyze_function): New IPA REF function used.
32153         (write_node_summary_p): Likewise.
32154         (ipa_reference_write_optimization_summary): Likewise.
32155         * ipa-split.c (split_function): Likewise.
32156         * ipa-utils.c (ipa_reverse_postorder): Likewise.
32157         * ipa-visibility.c (cgraph_non_local_node_p_1): Likewise.
32158         (function_and_variable_visibility): Likewise.
32159         * ipa.c (has_addr_references_p): Likewise.
32160         (process_references): Argument type changed.
32161         (symtab_remove_unreachable_nodes): New IPA REF function used.
32162         (process_references): Likewise.
32163         (set_writeonly_bit): Likewise.
32164         * lto-cgraph.c: Implementation of new symtab_node member functions
32165         that uses new IPA REF functions.
32166         * lto-streamer-in.c (fixup_call_stmt_edges_1): New IPA REF
32167         function used.
32168         * lto-streamer-out.c (output_symbol_p): Likewise.
32169         * lto-streamer.h (referenced_from_this_partition_p): Argument type
32170         changed.
32171         * symtab.c: Implementation of new IPA REF API.
32172         * trans-mem.c (ipa_tm_create_version_alias): New IPA REF function used.
32173         (ipa_tm_create_version): Likewise.
32174         (ipa_tm_execute): Likewise.
32175         * tree-emutls.c (gen_emutls_addr): Likewise.
32176         * tree-inline.c (copy_bb): Likewise.
32177         (delete_unreachable_blocks_update_callgraph): Likewise.
32178         * varpool.c (varpool_remove_unreferenced_decls): Likewise.
32179         (varpool_for_node_and_aliases): Likewise.
32180
32181 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32182
32183         * config/i386/winnt.c (i386_find_on_wrapper_list): Fix typo.
32184
32185 2014-06-25  Trevor Saunders  <tsaunders@mozilla.com>
32186
32187         PR bootstrap/61598
32188         * fold-const.c (fold_checksum_tree): Use a hash_table of const
32189         tree_node * instead of tree_node *.
32190         (fold): Adjust.
32191         (print_fold_checksum): Likewise.
32192         (fold_check_failed): Likewise.
32193         (debug_fold_checksum): Likewise.
32194         (fold_build1_stat_loc): Likewise.
32195         (fold_build2_stat_loc): Likewise.
32196         (fold_build3_stat_loc): Likewise.
32197         (fold_build_call_array_loc): Likewise.
32198
32199 2014-06-25  David Edelsohn  <dje.gcc@gmail.com>
32200
32201         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Replace
32202         implementation with call to...
32203         * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): New
32204         function.
32205         * config/rs6000/rs6000-protos.h (rs6000_xcoff_declare_function_name):
32206         Declare.
32207
32208 2014-06-25  Marc Glisse  <marc.glisse@inria.fr>
32209
32210         PR tree-optimization/57742
32211         * tree-ssa-strlen.c (handle_builtin_memset): Update strinfo
32212         after replacing the statement.
32213
32214 2014-06-25  Nick Clifton  <nickc@redhat.com>
32215
32216         * config/v850/v850.c (GHS_default_section_names): Change to const
32217         char * type.
32218         (GHS_current_section_names): Likewise.
32219         (v850_insert_attributes): Do not build strings, just assign the
32220         names directly.  Change the type of 'chosen_section' to const
32221         char*.
32222         * config/v850/v850-c.c (ghs_pragma_section): Assign the alias
32223         directly to the array entry.
32224         * config/v850/v850.h (GHS_default_section_names): Change to const
32225         char * type.
32226         (GHS_current_section_names): Likewise.
32227
32228 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
32229
32230         * langhooks-def.h (LANG_HOOKS_OMP_CLAUSE_LINEAR_CTOR): Define.
32231         (LANG_HOOKS_DECLS): Add it.
32232         * gimplify.c (gimplify_omp_for): Make sure OMP_CLAUSE_LINEAR_STEP
32233         has correct type.
32234         * tree.h (OMP_CLAUSE_LINEAR_ARRAY): Define.
32235         * langhooks.h (struct lang_hooks_for_decls): Add
32236         omp_clause_linear_ctor hook.
32237         * omp-low.c (lower_rec_input_clauses): Set max_vf even if
32238         OMP_CLAUSE_LINEAR_ARRAY is set.  Don't fold_convert
32239         OMP_CLAUSE_LINEAR_STEP.  For OMP_CLAUSE_LINEAR_ARRAY in
32240         combined simd loop use omp_clause_linear_ctor hook.
32241
32242 2014-06-24  Cong Hou  <congh@google.com>
32243
32244         * tree-vect-patterns.c (vect_recog_sad_pattern): New function for SAD
32245         pattern recognition.
32246         (type_conversion_p): PROMOTION is true if it's a type promotion
32247         conversion, and false otherwise.  Return true if the given expression
32248         is a type conversion one.
32249         * tree-vectorizer.h: Adjust the number of patterns.
32250         * tree.def: Add SAD_EXPR.
32251         * optabs.def: Add sad_optab.
32252         * cfgexpand.c (expand_debug_expr): Add SAD_EXPR case.
32253         * expr.c (expand_expr_real_2): Likewise.
32254         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
32255         * gimple.c (get_gimple_rhs_num_ops): Likewise.
32256         * optabs.c (optab_for_tree_code): Likewise.
32257         * tree-cfg.c (estimate_operator_cost): Likewise.
32258         * tree-ssa-operands.c (get_expr_operands): Likewise.
32259         * tree-vect-loop.c (get_initial_def_for_reduction): Likewise.
32260         * config/i386/sse.md: Add SSE2 and AVX2 expand for SAD.
32261         * doc/generic.texi: Add document for SAD_EXPR.
32262         * doc/md.texi: Add document for ssad and usad.
32263
32264 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32265
32266         * config/i386/winnt.c (i386_pe_section_type_flags): Fix const
32267         qualification in cast.
32268
32269 2014-06-24  Jan Hubicka  <hubicka@ucw.cz>
32270
32271         * tree.c (find_decls_types_r): Do not check DECL_VINDEX for TYPE_DECL.
32272         * tree.h (DECL_VINDEX, DECL_SAVED_TREE): Restrict to DECL_FUNCTION.
32273         * tree-core.h (tree_decl_non_common): Move saved_tree and vindex...
32274         (tree_function_decl): ... here.
32275         * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Move
32276         streaming of vindex to ...
32277         (write_ts_function_decl_tree_pointers): ... here.
32278         * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
32279         Do not stream DECL_VINDEX.
32280         (lto_input_ts_function_decl_tree_pointers): Stream it here.
32281
32282 2014-06-24  Catherine Moore  <clm@codesourcery.com>
32283             Sandra Loosemore  <sandra@codesourcery.com>
32284
32285         * config/mips/mips.c (mips_order_regs_for_local_alloc): Delete.
32286         * config/mips/mips.h (ADJUST_REG_ALLOC_ORDER): Delete.
32287         * config/mips/mips-protos.h (mips_order_regs_for_local_alloc): Delete.
32288
32289 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32290
32291         * doc/invoke.texi (Warning Options): Remove duplicated
32292         -Wmaybe-uninitialized.
32293
32294 2014-06-24  Marc Glisse  <marc.glisse@inria.fr>
32295
32296         PR tree-optimization/57742
32297         * tree-ssa-strlen.c (get_string_length): Ignore malloc.
32298         (handle_builtin_malloc, handle_builtin_memset): New functions.
32299         (strlen_optimize_stmt): Call them.
32300         * passes.def: Move strlen after loop+dom but before vrp.
32301
32302 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32303
32304         PR target/61570
32305         * config/i386/driver-i386.c (host_detect_local_cpu): For unknown
32306         model family 6 CPU with has_longmode never use a CPU without
32307         64-bit support.
32308
32309 2014-06-24  H.J. Lu  <hongjiu.lu@intel.com>
32310
32311         PR target/61570
32312         * config/i386/driver-i386.c (host_detect_local_cpu): Revert
32313         the last change.
32314
32315 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32316
32317         * alloc-pool.c (alloc_pool_hash): Use hash_map instead of hash_table.
32318         * dominance.c (iterate_fix_dominators): Use hash_map instead of
32319         pointer_map.
32320         * hash-map.h: New file.
32321         * ipa-comdats.c: Use hash_map instead of pointer_map.
32322         * ipa.c: Likewise.
32323         * lto-section-out.c: Adjust.
32324         * lto-streamer.h: Replace pointer_map with hash_map.
32325         * symtab.c (verify_symtab): Likewise.
32326         * tree-ssa-strlen.c (decl_to_stridxlist_htab): Likewise.
32327         * tree-ssa-uncprop.c (val_ssa_equiv): Likewise.
32328         * tree-streamer.h: Likewise.
32329         * tree-streamer.c: Adjust.
32330         * pointer-set.h: Remove pointer_map.
32331
32332 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32333
32334         * hash-table.h: Add a template arg to choose between storing values
32335         and storing pointers to values, and then provide partial
32336         specializations for both.
32337         * tree-browser.c (tree_upper_hasher): Provide the type the hash table
32338         should store, not the type values should point to.
32339         * tree-into-ssa.c (var_info_hasher): Likewise.
32340         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
32341         * tree-complex.c: Adjust.
32342         * tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
32343         table instead of int_tree_map *.
32344         * tree-parloops.c: Adjust.
32345         * tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
32346         type is being stored.
32347         * tree-vectorizer.c: Adjust.
32348
32349 2014-06-24  Trevor Saunders  <tsaunders@mozilla.com>
32350
32351         * hash-table.h: Remove a layer of indirection from hash_table so that
32352         it contains the hash table's data instead of a pointer to the data.
32353         * alloc-pool.c, asan.c, attribs.c, bitmap.c, cfg.c,
32354         config/arm/arm.c, config/i386/winnt.c, config/ia64/ia64.c,
32355         config/mips/mips.c, config/sol2.c, coverage.c, cselib.c,
32356         data-streamer-out.c, dse.c, dwarf2cfi.c, dwarf2out.c, except.c,
32357         fold-const.c, gcse.c, ggc-common.c,
32358         gimple-ssa-strength-reduction.c, gimplify.c,
32359         graphite-clast-to-gimple.c, graphite-dependences.c,
32360         graphite-htab.h, graphite.c, haifa-sched.c, ipa-devirt.c,
32361         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
32362         loop-iv.c, loop-unroll.c, lto-streamer-in.c, lto-streamer-out.c,
32363         lto-streamer.c, lto-streamer.h, passes.c, plugin.c,
32364         postreload-gcse.c, sese.c, statistics.c, store-motion.c,
32365         trans-mem.c, tree-browser.c, tree-cfg.c, tree-complex.c,
32366         tree-eh.c, tree-into-ssa.c, tree-parloops.c, tree-sra.c,
32367         tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-dom.c,
32368         tree-ssa-live.c, tree-ssa-loop-im.c,
32369         tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
32370         tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
32371         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
32372         tree-ssa-threadupdate.c, tree-ssa-uncprop.c,
32373         tree-vect-data-refs.c, tree-vect-loop.c, tree-vectorizer.c,
32374         tree-vectorizer.h, valtrack.c, valtrack.h, var-tracking.c,
32375         vtable-verify.c, vtable-verify.h: Adjust.
32376
32377 2014-06-24  Richard Biener  <rguenther@suse.de>
32378
32379         PR tree-optimization/61572
32380         * tree-ssa-sink.c (statement_sink_location): Do not sink
32381         loads from hard registers.
32382
32383 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
32384
32385         * gimplify.c (gimplify_omp_for): For #pragma omp for simd iterator
32386         not mentioned in clauses use private clause if the iterator is
32387         declared in #pragma omp for simd, and when adding lastprivate
32388         instead, add it to the outer #pragma omp for too.  Diagnose
32389         if the variable is private in outer context.  For simd collapse > 1
32390         loops, replace all iterators with temporaries.
32391         * omp-low.c (lower_rec_input_clauses): Handle LINEAR clause the
32392         same even in collapse > 1 loops.
32393
32394         * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_MAP,
32395         OMP_CLAUSE_TO, OMP_CLAUSE_FROM): Make sure OMP_CLAUSE_SIZE is
32396         non-NULL.
32397         <case OMP_CLAUSE_ALIGNED>: Gimplify OMP_CLAUSE_ALIGNED_ALIGNMENT.
32398         (gimplify_adjust_omp_clauses_1): Make sure OMP_CLAUSE_SIZE is
32399         non-NULL.
32400         (gimplify_adjust_omp_clauses): Likewise.
32401         * omp-low.c (lower_rec_simd_input_clauses,
32402         lower_rec_input_clauses, expand_omp_simd): Handle non-constant
32403         safelen the same as safelen(1).
32404         * tree-nested.c (convert_nonlocal_omp_clauses,
32405         convert_local_omp_clauses): Handle OMP_CLAUSE_ALIGNED.  For
32406         OMP_CLAUSE_{MAP,TO,FROM} if not decl use walk_tree.
32407         (convert_nonlocal_reference_stmt, convert_local_reference_stmt):
32408         Fixup handling of GIMPLE_OMP_TARGET.
32409         (convert_tramp_reference_stmt, convert_gimple_call): Handle
32410         GIMPLE_OMP_TARGET.
32411
32412 2014-06-24  Chung-Lin Tang  <cltang@codesourcery.com>
32413
32414         PR tree-optimization/61554
32415         * tree-ssa-propagate.c: Include "bitmap.h".
32416         (substitute_and_fold_dom_walker): Add 'bitmap need_eh_cleanup' member,
32417         properly update constructor/destructor.
32418         (substitute_and_fold_dom_walker::before_dom_children):
32419         Remove call to gimple_purge_dead_eh_edges, add bb->index to
32420         need_eh_cleaup instead.
32421         (substitute_and_fold): Call gimple_purge_all_dead_eh_edges on
32422         need_eh_cleanup.
32423
32424 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32425
32426         * varpool.c (dump_varpool_node): Dump used_by_single_function.
32427         * tree-pass.h (make_pass_ipa_single_use): New pass.
32428         * cgraph.h (used_by_single_function): New flag.
32429         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node):
32430         Stream it.
32431         * passes.def (pass_ipa_single_use): Scedule.
32432         * ipa.c (BOTTOM): New macro.
32433         (meet): New function
32434         (propagate_single_user): New function.
32435         (ipa_single_use): New function.
32436         (pass_data_ipa_single_use): New pass.
32437         (pass_ipa_single_use): New pass.
32438         (pass_ipa_single_use::gate): New gate.
32439         (make_pass_ipa_single_use): New function.
32440
32441 2014-06-23  Kai Tietz  <ktietz@redhat.com>
32442
32443         PR target/39284
32444         * passes.def (peephole2): Move peephole2 pass before sched2 pass.
32445         * config/i386/i386.md (peehole2): Combine memories and indirect jumps.
32446
32447 2014-06-23  Richard Biener  <rguenther@suse.de>
32448
32449         * tree-ssa-loop.c (gate_loop): New function.
32450         (pass_tree_loop::gate): Call it.
32451         (pass_data_tree_no_loop, pass_tree_no_loop,
32452         make_pass_tree_no_loop): New.
32453         * tree-vectorizer.c: Include tree-scalar-evolution.c
32454         (pass_slp_vectorize::execute): Initialize loops and SCEV if
32455         required.
32456         (pass_slp_vectorize::clone): New method.
32457         * timevar.def (TV_TREE_NOLOOP): New.
32458         * tree-pass.h (make_pass_tree_no_loop): Declare.
32459         * passes.def (pass_tree_no_loop): New pass group with
32460         SLP vectorizer.
32461
32462 2014-06-23  H.J. Lu  <hongjiu.lu@intel.com>
32463
32464         PR target/61570
32465         * config/i386/driver-i386.c (host_detect_local_cpu): Set arch
32466         to x86-64 if a 32-bit processor supports SSE2 and 64-bit.
32467
32468 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32469
32470         * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
32471         "yes" where needed.
32472
32473 2014-06-23  Alan Modra  <amodra@gmail.com>
32474
32475         PR bootstrap/61583
32476         * tree-vrp.c (remove_range_assertions): Do not set is_unreachable
32477         to zero on debug statements.
32478
32479 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32480
32481         PR target/60825
32482         * config/aarch64/aarch64-builtins.c (aarch64_types_unop_qualifiers):
32483         Ignore third operand if present by marking qualifier_internal.
32484
32485         * config/aarch64/aarch64-simd-builtins.def (abs): Comment.
32486
32487         * config/aarch64/arm_neon.h (int64x1_t, uint64x1_t): Typedef to GCC
32488         vector extension.
32489         (aarch64_vget_lane_s64, aarch64_vdup_lane_s64,
32490         arch64_vdupq_lane_s64, aarch64_vdupq_lane_u64): Remove macro.
32491         (vqadd_s64, vqadd_u64, vqsub_s64, vqsub_u64, vqneg_s64, vqabs_s64,
32492         vcreate_s64, vcreate_u64, vreinterpret_s64_f64, vreinterpret_u64_f64,
32493         vcombine_u64, vbsl_s64, vbsl_u64, vceq_s64, vceq_u64, vceqz_s64,
32494         vceqz_u64, vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64,
32495         vcgtz_s64, vcle_s64, vcle_u64, vclez_s64, vclt_s64, vclt_u64,
32496         vcltz_s64, vdup_n_s64, vdup_n_u64, vld1_s64, vld1_u64, vmov_n_s64,
32497         vmov_n_u64, vqdmlals_lane_s32, vqdmlsls_lane_s32,
32498         vqdmulls_lane_s32, vqrshl_s64, vqrshl_u64, vqrshl_u64, vqshl_s64,
32499         vqshl_u64, vqshl_n_s64, vqshl_n_u64, vqshl_n_s64, vqshl_n_u64,
32500         vqshlu_n_s64, vrshl_s64, vrshl_u64, vrshr_n_s64, vrshr_n_u64,
32501         vrsra_n_s64, vrsra_n_u64, vshl_n_s64, vshl_n_u64, vshl_s64,
32502         vshl_u64, vshr_n_s64, vshr_n_u64, vsli_n_s64, vsli_n_u64,
32503         vsqadd_u64, vsra_n_s64, vsra_n_u64, vsri_n_s64, vsri_n_u64,
32504         vst1_s64, vst1_u64, vtst_s64, vtst_u64, vuqadd_s64): Wrap existing
32505         logic in GCC vector extensions
32506
32507         (vpaddd_s64, vaddd_s64, vaddd_u64, vceqd_s64, vceqd_u64, vceqzd_s64
32508         vceqzd_u64, vcged_s64, vcged_u64, vcgezd_s64, vcgtd_s64, vcgtd_u64,
32509         vcgtzd_s64, vcled_s64, vcled_u64, vclezd_s64, vcltd_s64, vcltd_u64,
32510         vcltzd_s64, vqdmlals_s32, vqdmlsls_s32, vqmovnd_s64, vqmovnd_u64
32511         vqmovund_s64, vqrshld_s64, vqrshld_u64, vqrshrnd_n_s64,
32512         vqrshrnd_n_u64, vqrshrund_n_s64, vqshld_s64, vqshld_u64,
32513         vqshld_n_u64, vqshrnd_n_s64, vqshrnd_n_u64, vqshrund_n_s64,
32514         vrshld_u64, vrshrd_n_u64, vrsrad_n_u64, vshld_n_u64, vshld_s64,
32515         vshld_u64, vslid_n_u64, vsqaddd_u64, vsrad_n_u64, vsrid_n_u64,
32516         vsubd_s64, vsubd_u64, vtstd_s64, vtstd_u64): Fix type signature.
32517
32518         (vabs_s64): Use GCC vector extensions; call __builtin_aarch64_absdi.
32519
32520         (vget_high_s64, vget_high_u64): Reimplement with GCC vector
32521         extensions.
32522
32523         (__GET_LOW, vget_low_u64): Wrap result using vcreate_u64.
32524         (vget_low_s64): Use __GET_LOW macro.
32525         (vget_lane_s64, vget_lane_u64, vdupq_lane_s64, vdupq_lane_u64): Use
32526         gcc vector extensions, add call to __builtin_aarch64_lane_boundsi.
32527         (vdup_lane_s64, vdup_lane_u64,): Add __builtin_aarch64_lane_bound_si.
32528         (vdupd_lane_s64, vdupd_lane_u64): Fix type signature, add
32529         __builtin_aarch64_lane_boundsi, use GCC vector extensions.
32530
32531         (vcombine_s64): Use GCC vector extensions; remove cast.
32532         (vqaddd_s64, vqaddd_u64, vqdmulls_s32, vqshld_n_s64, vqshlud_n_s64,
32533         vqsubd_s64, vqsubd_u64, vrshld_s64, vrshrd_n_s64, vrsrad_n_s64,
32534         vshld_n_s64, vshrd_n_s64, vslid_n_s64, vsrad_n_s64, vsrid_n_s64):
32535         Fix type signature; remove cast.
32536
32537 2014-06-23  Alan Lawrence  <alan.lawrence@arm.com>
32538
32539         PR target/60825
32540         * config/aarch64/aarch64.c (aarch64_simd_mangle_map): Add entry for
32541         V1DFmode.
32542         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_type_mode):
32543         add V1DFmode
32544         (BUILTIN_VD1): New.
32545         (BUILTIN_VD_RE): Remove.
32546         (aarch64_init_simd_builtins): Add V1DF to modes/modenames.
32547         (aarch64_fold_builtin): Update reinterpret patterns, df becomes v1df.
32548         * config/aarch64/aarch64-simd-builtins.def (create): Make a v1df
32549         variant but not df.
32550         (vreinterpretv1df*, vreinterpret*v1df): New.
32551         (vreinterpretdf*, vreinterpret*df): Remove.
32552         * config/aarch64/aarch64-simd.md (aarch64_create,
32553         aarch64_reinterpret*): Generate V1DFmode pattern not DFmode.
32554         * config/aarch64/iterators.md (VD_RE): Include V1DF, remove DF.
32555         (VD1): New.
32556         * config/aarch64/arm_neon.h (float64x1_t): typedef with gcc extensions.
32557         (vcreate_f64): Remove cast, use v1df builtin.
32558         (vcombine_f64): Remove cast, get elements with gcc vector extensions.
32559         (vget_low_f64, vabs_f64, vceq_f64, vceqz_f64, vcge_f64, vgfez_f64,
32560         vcgt_f64, vcgtz_f64, vcle_f64, vclez_f64, vclt_f64, vcltz_f64,
32561         vdup_n_f64, vdupq_lane_f64, vld1_f64, vld2_f64, vld3_f64, vld4_f64,
32562         vmov_n_f64, vst1_f64): Use gcc vector extensions.
32563         (vget_lane_f64, vdupd_lane_f64, vmulq_lane_f64, ): Use gcc extensions,
32564         add range check using __builtin_aarch64_im_lane_boundsi.
32565         (vfma_lane_f64, vfmad_lane_f64, vfma_laneq_f64, vfmaq_lane_f64,
32566         vfms_lane_f64, vfmsd_lane_f64, vfms_laneq_f64, vfmsq_lane_f64): Fix
32567         type signature, use gcc vector extensions.
32568         (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64,
32569         vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16,
32570         vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32,
32571         vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16,
32572         vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpret_s8_f64,
32573         vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_s64_f64,
32574         vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64,
32575         vreinterpret_u64_f64): Use v1df builtin not df.
32576
32577 2014-06-23  James Greenhalgh  <james.greenhalgh@arm.com>
32578
32579         * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
32580         vector registers.
32581
32582 2014-06-23  Jan Hubicka  <hubicka@ucw.cz>
32583
32584         * lto-cgraph.c (lto_output_node, input_node): Set/get init/fini
32585         priority directly.
32586
32587 2014-06-23  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32588
32589         * loop-invariant.c (pre_check_invariant_p): New function.
32590         (find_invariant_insn): Call pre_check_invariant_p.
32591
32592 2014-06-22  Richard Henderson  <rth@redhat.com>
32593
32594         PR target/61565
32595         * compare-elim.c (struct comparison): Add eh_note.
32596         (find_comparison_dom_walker::before_dom_children): Don't eliminate
32597         a redundant comparison in a different EH region.  Purge EH edges if
32598         necessary.
32599
32600 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32601
32602         * config/rs6000/rs6000.md (maybe_var_shift): New define_attr.
32603         (var_shift): Use it.
32604         (rotl<mode>3, *rotlsi3_64, *rotl<mode>3_dot, *rotl<mode>3_dot2,
32605         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
32606         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
32607         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
32608         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
32609         *rotlsi3_internal12be, ashl<mode>3, *ashlsi3_64, *ashl<mode>3_dot,
32610         *ashl<mode>3_dot2, lshr<mode>3, *lshrsi3_64, *lshr<mode>3_dot,
32611         *lshr<mode>3_dot2, *ashr<mode>3, *ashrsi3_64, *ashr<mode>3_dot,
32612         *ashr<mode>3_dot2, *rotldi3_internal4, *rotldi3_internal5,
32613         *rotldi3_internal6, *rotldi3_internal7le, *rotldi3_internal7be,
32614         *rotldi3_internal8le, *rotldi3_internal8be, *rotldi3_internal9le,
32615         *rotldi3_internal9be, *rotldi3_internal10le, *rotldi3_internal10be,
32616         *rotldi3_internal11le, *rotldi3_internal11be, *rotldi3_internal12le,
32617         *rotldi3_internal12be, *rotldi3_internal13le, *rotldi3_internal13be,
32618         *rotldi3_internal14le, *rotldi3_internal14be, *rotldi3_internal15le,
32619         *rotldi3_internal15be): Use the new attribute.  Merge register and
32620         integer alternatives.
32621
32622 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32623
32624         * config/rs6000/rs6000.md (ashrsi3, two anonymous define_insns and
32625         define_splits, ashrdi3, *ashrdi3_internal1, *ashrdi3_internal2 and
32626         split, *ashrdi3_internal3 and split): Delete, merge into...
32627         (ashr<mode>3): New expander.
32628         (*ashr<mode>3, ashr<mode>3_dot, ashr<mode>3_dot2): New.
32629         (*ashrsi3_64): Fix formatting.  Replace "i" by "n".
32630
32631 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32632
32633         * config/rs6000/rs6000.md (rotlsi3, *rotlsi3_internal2 and split,
32634         *rotlsi3_internal3 and split, rotldi3, *rotldi3_internal2 and split,
32635         *rotldi3_internal3 and split): Delete, merge into...
32636         (rotl<mode>3, rotl<mode>3_dot, rotl<mode>3_dot2): New.
32637         (*rotlsi3_64): Fix formatting.  Fix condition.  Replace "i" by "n".
32638         Use "rotlw" extended mnemonic.
32639
32640 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32641
32642         * config/rs6000/rs6000.md (ashlsi3, two anonymous define_insns
32643         and define_splits, ashldi3, *ashldi3_internal1, *ashldi3_internal2
32644         and split, *ashldi3_internal3 and split): Delete, merge into...
32645         (ashl<mode>3, ashl<mode>3_dot, ashl<mode>3_dot2): New.
32646         (*ashlsi3_64): Fix formatting.  Replace "i" by "n".
32647
32648 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32649
32650         * config/rs6000/rs6000.md ("hH"): New define_mode_attr.
32651         (lshrsi3, two anonymous define_insns and define_splits,
32652         lshrdi3, *lshrdi3_internal1, *lshrdi3_internal2 and split,
32653         *lshrdi3_internal3 and split): Delete, merge into...
32654         (lshr<mode>3, lshr<mode>3_dot, lshr<mode>3_dot2): New.
32655         (*lshrsi3_64): Fix formatting.  Replace "i" by "n".
32656
32657 2014-06-22  Segher Boessenkool  <segher@kernel.crashing.org>
32658
32659         * config/rs6000/rs6000.md (lshrsi3, and its two dot patterns):
32660         Remove "O" alternative.
32661
32662 2014-06-22  Richard Sandiford  <rdsandiford@googlemail.com>
32663
32664         * config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
32665         (mips_move_from_gpr_cost): Likewise.
32666         (mips_register_move_cost): Update accordingly.
32667         (mips_secondary_reload_class): Remove name of in_p.
32668
32669 2014-06-22  Marc Glisse  <marc.glisse@inria.fr>
32670
32671         PR target/61503
32672         * config/i386/i386.md (x86_64_shrd, x86_shrd,
32673         ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.
32674
32675 2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
32676
32677         * config/nios2/nios2.c: Include "builtins.h".
32678
32679 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32680
32681         * cgraph.h (tls_model_names): New variable.
32682         * print-tree.c (print_node): Simplify.
32683         * varpool.c (tls_model_names): New variable.
32684         (dump_varpool_node): Output tls model.
32685
32686 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32687
32688         * ipa-visibility.c (function_and_variable_visibility): Disable
32689         temporarily local aliases for some targets.
32690
32691 2014-06-20  Marek Polacek  <polacek@redhat.com>
32692
32693         * asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
32694         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
32695         into SANITIZE_UNDEFINED.
32696         * doc/invoke.texi: Describe -fsanitize=bounds.
32697         * gimplify.c (gimplify_call_expr): Add gimplification of internal
32698         functions created in the FEs.
32699         * internal-fn.c: Move "internal-fn.h" after "tree.h".
32700         (expand_UBSAN_BOUNDS): New function.
32701         * internal-fn.def (UBSAN_BOUNDS): New internal function.
32702         * internal-fn.h: Don't define internal functions here.
32703         * opts.c (common_handle_option): Add -fsanitize=bounds.
32704         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
32705         BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
32706         * tree-core.h: Define internal functions here.
32707         (struct tree_base): Add ifn field.
32708         * tree-pretty-print.c: Include "internal-fn.h".
32709         (dump_generic_node): Handle functions without CALL_EXPR_FN.
32710         * tree.c (get_callee_fndecl): Likewise.
32711         (build_call_expr_internal_loc): New function.
32712         * tree.def (CALL_EXPR): Update description.
32713         * tree.h (CALL_EXPR_IFN): Define.
32714         (build_call_expr_internal_loc): Declare.
32715         * ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
32716         types.
32717         (ubsan_type_descriptor): Change bool parameter to enum
32718         ubsan_print_style.  Adjust the code.  Add handling of
32719         UBSAN_PRINT_ARRAY.
32720         (ubsan_expand_bounds_ifn): New function.
32721         (ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
32722         (ubsan_build_overflow_builtin): Likewise.
32723         (instrument_bool_enum_load): Likewise.
32724         (ubsan_instrument_float_cast): Likewise.
32725         * ubsan.h (enum ubsan_print_style): New enum.
32726         (ubsan_expand_bounds_ifn): Declare.
32727         (ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
32728
32729 2014-06-20  Maciej W. Rozycki  <macro@codesourcery.com>
32730
32731         * config/rs6000/rs6000.md: Append `DONE' to preparation
32732         statements of `bswap' pattern splitters.
32733
32734 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32735
32736         * target.def (call_fusage_contains_non_callee_clobbers): Update
32737         definition.
32738         * doc/tm.texi: Regenerate.
32739
32740 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32741             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32742
32743         PR sanitizer/61547
32744         * asan.c (instrument_strlen_call): Fixed instrumentation of
32745         trailing byte.
32746
32747 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32748
32749         PR ipa/61540
32750         * ipa-prop.c (impossible_devirt_target): New function.
32751         (try_make_edge_direct_virtual_call): Use it, also instead of
32752         asserting.
32753
32754 2014-06-20  Yury Gribov  <y.gribov@samsung.com>
32755             Max Ostapenko  <m.ostapenko@partner.samsung.com>
32756
32757         PR sanitizer/61530
32758         * asan.c (build_check_stmt): Add condition.
32759
32760 2014-06-20  Martin Jambor  <mjambor@suse.cz>
32761
32762         PR ipa/61211
32763         * cgraph.c (clone_of_p): Allow skipped_branch to deal with
32764         expanded clones.
32765
32766 2014-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32767
32768         * config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
32769         Update comments.
32770         (VCONQ): Make comment more helpful.
32771         (VCON): Delete.
32772         * config/aarch64/aarch64-simd.md
32773         (aarch64_sqdmulh_lane<mode>):
32774         Use VCOND for operands 2.  Update lane checking and flipping logic.
32775         (aarch64_sqrdmulh_lane<mode>): Likewise.
32776         (aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
32777         (aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
32778         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
32779         attribute of operand 3 to VCOND.
32780         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
32781         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
32782         (aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
32783         (aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
32784         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
32785         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
32786         define_insn.
32787         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
32788         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
32789         (aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
32790         (aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
32791         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
32792         (aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
32793         operand to VCOND.  Update lane flipping and bounds checking logic.
32794         (aarch64_sqdmlal2_lane<mode>): Likewise.
32795         (aarch64_sqdmlsl_lane<mode>): Likewise.
32796         (aarch64_sqdmull_lane<mode>): Likewise.
32797         (aarch64_sqdmull2_lane<mode>): Likewise.
32798         (aarch64_sqdmlal_laneq<mode>):
32799         Replace VCON usage with VCONQ.
32800         Emit aarch64_sqdmlal_laneq<mode>_internal insn.
32801         (aarch64_sqdmlal2_laneq<mode>): Emit
32802         aarch64_sqdmlal2_laneq<mode>_internal insn.
32803         Replace VCON with VCONQ.
32804         (aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
32805         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
32806         (aarch64_sqdmull_laneq<mode>): Emit
32807         aarch64_sqdmull_laneq<mode>_internal insn.
32808         Replace VCON with VCONQ.
32809         (aarch64_sqdmull2_laneq<mode>): Emit
32810         aarch64_sqdmull2_laneq<mode>_internal insn.
32811         (aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
32812         * config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
32813         of 3rd argument to int16x4_t.
32814         (vqdmlalh_lane_s16): Likewise.
32815         (vqdmlslh_lane_s16): Likewise.
32816         (vqdmull_high_lane_s16): Likewise.
32817         (vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
32818         (vqdmlal_lane_s16): Don't create temporary int16x8_t value.
32819         (vqdmlsl_lane_s16): Likewise.
32820         (vqdmull_lane_s16): Don't create temporary int16x8_t value.
32821         (vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
32822         (vqdmlals_lane_s32): Likewise.
32823         (vqdmlsls_lane_s32): Likewise.
32824         (vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
32825         (vqdmulls_lane_s32): Likewise.
32826         (vqdmlal_lane_s32): Don't create temporary int32x4_t value.
32827         (vqdmlsl_lane_s32): Likewise.
32828         (vqdmull_lane_s32): Don't create temporary int32x4_t value.
32829         (vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
32830         (vqrdmulhh_lane_s16): Likewise.
32831         (vqdmlsl_high_lane_s16): Likewise.
32832         (vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
32833         (vqdmlsl_high_lane_s32): Likewise.
32834         (vqrdmulhs_lane_s32): Likewise.
32835
32836 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32837
32838         * final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
32839         get_call_reg_set_usage.
32840
32841 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32842
32843         * final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
32844         it contains all call_used_regs.
32845
32846 2014-06-20  Tom de Vries  <tom@codesourcery.com>
32847
32848         * final.c (collect_fn_hard_reg_usage): Add and use variable
32849         function_used_regs.
32850
32851 2014-06-20  Jan Hubicka  <hubicka@ucw.cz>
32852
32853         * cgraph.h (struct symtab_node): Add field in_init_priority_hash
32854         (set_init_priority, get_init_priority, set_fini_priority,
32855         get_fini_priority): New methods.
32856         * tree.c (init_priority_for_decl): Remove.
32857         (init_ttree): Do not initialize init priority.
32858         (decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
32859         (decl_priority_info): Remove.
32860         (decl_init_priority_insert): Rewrite.
32861         (decl_fini_priority_insert): Rewrite.
32862         * tree.h (tree_priority_map_eq, tree_priority_map_hash,
32863         tree_priority_map_marked_p): Remove.
32864         * lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
32865         * lto-streamer-out.c (hash_tree): Do not hash priorities.
32866         * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
32867         not output priorities.
32868         (pack_ts_function_decl_value_fields): Likewise.
32869         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
32870         not input priorities.
32871         (unpack_ts_function_decl_value_fields): Likewise.
32872         * symtab.c (symbol_priority_map): Declare.
32873         (init_priority_hash): Declare.
32874         (symtab_unregister_node): Unregister from priority hash, too.
32875         (symtab_node::get_init_priority, cgraph_node::get_fini_priority):
32876         New methods.
32877         (symbol_priority_map_eq, symbol_priority_map_hash): New functions.
32878         (symbol_priority_info): New function.
32879         (symtab_node::set_init_priority, cgraph_node::set_fini_priority):
32880         New methods.
32881         * tree-core.h (tree_priority_map): Remove.
32882
32883 2014-06-20  Jakub Jelinek  <jakub@redhat.com>
32884
32885         * tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
32886         0xff to uint64_t before shifting it up.
32887
32888 2014-06-20  Julian Brown  <julian@codesourcery.com>
32889             Chung-Lin Tang  <cltang@codesourcery.com>
32890
32891         * config/arm/arm.c (arm_output_mi_thunk): Fix offset for
32892         TARGET_THUMB1_ONLY. Add comments.
32893
32894 2014-06-19  Tom de Vries  <tom@codesourcery.com>
32895
32896         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
32897         return type to void.
32898         * config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.
32899
32900 2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
32901
32902         * loop-invariant.c (get_inv_cost): Skip invariants, which are marked
32903         as "move", from depends_on.
32904
32905 2014-06-19  Terry Guo  <terry.guo@arm.com>
32906
32907         * config/arm/thumb1.md (define_split): Split 64bit constant in earlier
32908         stage.
32909
32910 2014-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
32911
32912         * config/rs6000/rs6000.h (FIXED_REGISTERS): Update comment.
32913         Remove cr5.
32914         (REG_ALLOC_ORDER): Update comment.  Move cr5 earlier.
32915
32916 2014-06-18  Kaz Kojima  <kkojima@gcc.gnu.org>
32917
32918         PR target/61550
32919         * config/sh/sh.c (prepare_move_operands): Don't process TLS
32920         addresses here if reload in progress or completed.
32921
32922 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
32923
32924         * config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
32925         "TARGET_MIPS16 ? M16_REGS : GR_REGS".
32926         * config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
32927         (mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
32928         (mips_register_priority): New function that implements the target
32929         hook TARGET_REGISTER_PRIORITY.
32930         (mips_spill_class): Likewise for TARGET_SPILL_CLASS.
32931         (mips_lra_p): Likewise for TARGET_LRA_P.
32932         (TARGET_REGISTER_PRIORITY): Define macro.
32933         (TARGET_SPILL_CLASS): Likewise.
32934         (TARGET_LRA_P): Likewise.
32935         * config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
32936         classes.
32937         (REG_CLASS_NAMES): Likewise.
32938         (REG_CLASS_CONTENTS): Likewise.
32939         (BASE_REG_CLASS): Use M16_SP_REGS.
32940         * config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
32941         New set attribute to enable alternatives depending on the register
32942         allocator used.
32943         (*mul_acc_si_r3900, *mul_sub_si): Likewise.
32944         (*lea64): Disable pattern for MIPS16.
32945         * config/mips/mips.opt (mlra): New option.
32946
32947 2014-06-18  Robert Suchanek  <robert.suchanek@imgtec.com>
32948
32949         * lra-constraints.c (base_to_reg): New function.
32950         (process_address): Use new function.
32951
32952 2014-06-18  Tom de Vries  <tom@codesourcery.com>
32953
32954         * config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Declare.
32955         * config/aarch64/aarch64.c
32956         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine as true.
32957         (aarch64_emit_call_insn): New function.
32958         (aarch64_load_symref_appropriately): Use aarch64_emit_call_insn instead
32959         of emit_call_insn.
32960         * config/aarch64/aarch64.md (define_expand "call_internal")
32961         (define_expand "call_value_internal", define_expand "sibcall_internal")
32962         (define_expand "sibcall_value_internal"): New.
32963         (define_expand "call", define_expand "call_value")
32964         (define_expand "sibcall", define_expand "sibcall_value"): Use internal
32965         expand variant and aarch64_emit_call_insn.
32966
32967 2014-06-18  Radovan Obradovic  <robradovic@mips.com>
32968             Tom de Vries  <tom@codesourcery.com>
32969
32970         * config/arm/arm-protos.h (arm_emit_call_insn): Add bool parameter.
32971         * config/arm/arm.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
32972         Redefine to true.
32973         (arm_emit_call_insn): Add and use sibcall parameter.  Add IP and CC
32974         clobbers to CALL_INSN_FUNCTION_USAGE.
32975         (define_expand "sibcall_internal")
32976         (define_expand "sibcall_value_internal"): New.
32977         (define_expand "call", define_expand "call_value"): Add argument to
32978         arm_emit_call_insn.
32979         (define_expand "sibcall"): Use sibcall_internal and arm_emit_call_insn.
32980         (define_expand "sibcall_value"): Use sibcall_value_internal and
32981         arm_emit_call_insn.
32982
32983 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32984
32985         * config/arm/bpabi.c (__gnu_uldivmod_helper): Remove.
32986
32987 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32988
32989         * config/arm/bpabi-v6m.S (__aeabi_uldivmod): Perform division using
32990         __udivmoddi4.
32991
32992 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32993
32994         * config/arm/bpabi.S (__aeabi_ldivmod, __aeabi_uldivmod,
32995         push_for_divide, pop_for_divide): Use .cfi_* directives for DWARF
32996         annotations. Fix DWARF information.
32997
32998 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
32999
33000         * config/arm/bpabi.S (__aeabi_ldivmod): Perform division using
33001         __udivmoddi4, and fixups for negative operands.
33002
33003 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33004
33005         * config/arm/bpabi.S (__aeabi_ldivmod): Optimise stack manipulation.
33006
33007 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33008
33009         * config/arm/bpabi.S (__aeabi_uldivmod): Perform division using call
33010         to __udivmoddi4.
33011
33012 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33013
33014         * config/arm/bpabi.S (__aeabi_uldivmod): Optimise stack pointer
33015         manipulation.
33016
33017 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33018
33019         * config/arm/bpabi.S (__aeabi_uldivmod, __aeabi_ldivmod): Add comment
33020         describing register usage on function entry and exit.
33021
33022 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33023
33024         * config/arm/bpabi.S (__aeabi_uldivmod): Fix whitespace.
33025         (__aeabi_ldivmod): Fix whitespace.
33026
33027 2014-06-18  Andreas Schwab  <schwab@suse.de>
33028
33029         * doc/md.texi (Standard Names): Use @itemx for grouped items.
33030         Remove blank line after @item.
33031
33032 2014-06-18  Richard Henderson  <rth@redhat.com>
33033
33034         PR target/61545
33035         * config/aarch64/aarch64.md (tlsdesc_small_<PTR>): Clobber CC_REGNUM.
33036
33037 2014-06-18  Charles Baylis  <charles.baylis@linaro.org>
33038
33039         * config/arm/arm.c (neon_vector_mem_operand): Allow register
33040         POST_MODIFY for neon loads and stores.
33041         (arm_print_operand): Output post-index register for neon loads and
33042         stores.
33043
33044 2014-06-18  Richard Biener  <rguenther@suse.de>
33045
33046         * tree-ssa-dce.c (perform_tree_ssa_dce): Fixup bogus commit.
33047
33048 2014-06-18  Richard Biener  <rguenther@suse.de>
33049
33050         * tree-pass.h (make_pass_dce_loop): Remove.
33051         * passes.def: Replace pass_dce_loop with pass_dce.
33052         * tree-ssa-dce.c (perform_tree_ssa_dce): If something
33053         changed free niter estimates and reset the scev cache.
33054         (tree_ssa_dce_loop, pass_data_dce_loop, pass_dce_loop,
33055         make_pass_dce_loop): Remove.
33056         * tree-ssa-copy.c: Include tree-ssa-loop-niter.h.
33057         (fini_copy_prop): Return whether something changed.  Always
33058         let substitute_and_fold perform DCE and free niter estimates
33059         and reset the scev cache if so.
33060         (execute_copy_prop): If sth changed schedule cleanup-cfg.
33061         (pass_data_copy_prop): Do not unconditionally schedule
33062         cleanup-cfg or update-ssa.
33063
33064 2014-06-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
33065
33066         PR tree-optimization/61518
33067         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
33068         reduction var is used in reduction stmt or phi-function only.
33069
33070 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33071
33072         * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
33073
33074 2014-06-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33075
33076         PR tree-optimization/61517
33077         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adapt to return a stmt
33078         whose rhs's first tree is the source expression instead of the
33079         expression itself.
33080         (find_bswap_or_nop): Likewise.
33081         (bsap_replace): Rename stmt in cur_stmt. Pass gsi by value and src as a
33082         gimple stmt whose rhs's first tree is the source. In the memory source
33083         case, move the stmt to be replaced close to one of the original load to
33084         avoid the problem of a store between the load and the stmt's original
33085         location.
33086         (pass_optimize_bswap::execute): Adapt to change in bswap_replace's
33087         signature.
33088
33089 2014-06-18  Andreas Schwab  <schwab@suse.de>
33090
33091         PR rtl-optimization/54555
33092         * postreload.c (move2add_use_add2_insn): Substitute
33093         STRICT_LOW_PART only if it is cheaper.
33094
33095 2014-06-18  Uros Bizjak  <ubizjak@gmail.com>
33096
33097         * config/i386/i386.md (*sibcall_memory): Rename from *sibcall_intern.
33098         Do not use unspec as call operand.  Use memory_operand instead of
33099         memory_nox32_operand and add "m" operand constraint.  Disable
33100         pattern for TARGET_X32.
33101         (*sibcall_pop_memory): Ditto.
33102         (*sibcall_value_memory): Ditto.
33103         (*sibcall_value_pop_memory): Ditto.
33104         (sibcall peepholes): Merge SImode and DImode patterns using
33105         W mode iterator.  Use memory_operand instead of memory_nox32_operand.
33106         Disable pattern for TARGET_X32.  Check if eliminated register is
33107         really dead after call insn.  Generate call RTX without unspec operand.
33108         (sibcall_value peepholes): Ditto.
33109         (sibcall_pop peepholes): Fix call insn RTXes.  Use memory_operand
33110         instead of memory_nox32_operand.  Check if eliminated register is
33111         really dead after call insn. Generate call RTX without unspec operand.
33112         (sibcall_value_pop peepholes): Ditto.
33113         * config/i386/predicates.md (memory_nox32_operand): Remove predicate.
33114
33115 2014-06-18  Terry Guo  <terry.guo@arm.com>
33116
33117         PR target/61544
33118         * config/arm/arm.c (thumb1_reorg): Move to next basic block if we
33119         reach the head.
33120
33121 2014-06-18  Olivier Hainque  <hainque@adacore.com>
33122
33123         * tree-core.h (tree_block): Add an "end_locus" field, allowing
33124         memorization of the end of block source location.
33125         * tree.h (BLOCK_SOURCE_END_LOCATION): New accessor.
33126         * gimplify.c (gimplify_bind_expr): Propagate the block start and
33127         end source location info we have on the block entry/exit code we
33128         generate.
33129
33130 2014-06-18  Richard Biener  <rguenther@suse.de>
33131
33132         * common.opt (fssa-phiopt): New option.
33133         * opts.c (default_options_table): Enable -fssa-phiopt with -O1+
33134         but not with -Og.
33135         * tree-ssa-phiopt.c (pass_phiopt): Add gate method.
33136         * doc/invoke.texi (-fssa-phiopt): Document.
33137
33138 2014-06-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33139
33140         * genattrtab.c (n_bypassed): New variable.
33141         (process_bypasses): Initialise n_bypassed.
33142         Count number of bypassed reservations.
33143         (make_automaton_attrs): Allocate space for bypassed reservations
33144         rather than number of bypasses.
33145
33146 2014-06-18  Richard Biener  <rguenther@suse.de>
33147
33148         * tree-ssa-propagate.c (replace_phi_args_in): Return whether
33149         we propagated anything.
33150         (substitute_and_fold_dom_walker::before_dom_children): Something
33151         changed if we propagated into PHI arguments.
33152         * tree-ssa-pre.c (eliminate): Always schedule cfg-cleanup if
33153         we removed a stmt.
33154
33155 2014-06-18  Evgeny Stupachenko  <evstupac@gmail.com>
33156
33157         * config/i386/i386.c (ix86_reassociation_width): Add alternative for
33158         vector case.
33159         * config/i386/i386.h (TARGET_VECTOR_PARALLEL_EXECUTION): New.
33160         * config/i386/x86-tune.def (X86_TUNE_VECTOR_PARALLEL_EXECUTION): New.
33161         * tree-vect-data-refs.c (vect_shift_permute_load_chain): New.
33162         Introduces alternative way of loads group permutaions.
33163         (vect_transform_grouped_load): Try alternative way of permutations.
33164
33165 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33166
33167         * gimplify.c (omp_notice_variable): If n is non-NULL and no flags
33168         changed in ORT_TARGET region, don't jump to do_outer.
33169         (struct gimplify_adjust_omp_clauses_data): New type.
33170         (gimplify_adjust_omp_clauses_1): Adjust for data being
33171         a struct gimplify_adjust_omp_clauses_data pointer instead
33172         of tree *.  Pass pre_p as a new argument to
33173         lang_hooks.decls.omp_finish_clause hook.
33174         (gimplify_adjust_omp_clauses): Add pre_p argument, adjust
33175         splay_tree_foreach to pass both list_p and pre_p.
33176         (gimplify_omp_parallel, gimplify_omp_task, gimplify_omp_for,
33177         gimplify_omp_workshare, gimplify_omp_target_update): Adjust
33178         gimplify_adjust_omp_clauses callers.
33179         * langhooks.c (lhd_omp_finish_clause): New function.
33180         * langhooks-def.h (lhd_omp_finish_clause): New prototype.
33181         (LANG_HOOKS_OMP_FINISH_CLAUSE): Define to lhd_omp_finish_clause.
33182         * langhooks.h (struct lang_hooks_for_decls): Add a new
33183         gimple_seq * argument to omp_finish_clause hook.
33184         * omp-low.c (scan_sharing_clauses): Call scan_omp_op on
33185         non-DECL_P OMP_CLAUSE_DECL if ctx->outer.
33186         (scan_omp_parallel, lower_omp_for): When adding
33187         _LOOPTEMP_ clause var, add it to outer ctx's decl_map as identity.
33188         * tree-core.h (OMP_CLAUSE_MAP_TO_PSET): New map kind.
33189         * tree-nested.c (convert_nonlocal_omp_clauses,
33190         convert_local_omp_clauses): Handle various OpenMP 4.0 clauses.
33191         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_MAP_TO_PSET.
33192
33193 2014-06-17  Andrew MacLeod  <amacleod@redhat.com>
33194
33195         * tree-dfa.h (get_addr_base_and_unit_offset_1): Move from here.
33196         * tree-dfa.c (get_addr_base_and_unit_offset_1): To here.
33197
33198 2014-06-17  Xinliang David Li  <davidxl@google.com>
33199
33200         * tree-pretty-print.c (dump_function_header): Print cgraph uid.
33201         * passes.c (pass_init_dump_file): Do not set initialize
33202         flag to false unconditionally.
33203
33204 2014-06-17  Richard Biener  <rguenther@suse.de>
33205
33206         * genopinit.c (main): Use vec<>::qsort method.
33207         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
33208         Likewise.
33209         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Likewise.
33210
33211 2014-06-17  Matthew Fortune  <matthew.fortune@imgtec.com>
33212
33213         * config/mips/mips-protos.h (mips_expand_fcc_reload): Remove.
33214         * config/mips/mips.c (mips_expand_fcc_reload): Remove.
33215         (mips_move_to_gpr_cost): Remove ST_REGS case.
33216         (mips_move_from_gpr_cost): Likewise.
33217         (mips_register_move_cost): Likewise.
33218         (mips_secondary_reload_class): Likewise.
33219
33220 2014-06-17  Richard Biener  <rguenther@suse.de>
33221
33222         * passes.def (pass_all_early_optimizations): Remove copy-prop pass.
33223         (pass_all_optimizations): Move 3rd copy-prop pass from after
33224         fre to before ifcombine/phiopt.
33225
33226 2014-06-17  Richard Biener  <rguenther@suse.de>
33227
33228         * tree-switch-conversion.c (collect_switch_conv_info): Simplify
33229         and allow all blocks to be forwarders.
33230
33231 2014-06-17  Yufeng Zhang  <yufeng.zhang@arm.com>
33232
33233         PR target/61483
33234         * config/aarch64/aarch64.c (aarch64_layout_arg): Add new local
33235         variable 'size'; calculate 'size' right in the front; use
33236         'size' to compute 'nregs' (when 'allocate_ncrn != 0') and
33237         pcum->aapcs_stack_words.
33238
33239 2014-06-17  Nick Clifton  <nickc@redhat.com>
33240
33241         * config/msp430/msp430.md (mulhisi3): Add a NOP after the DINT.
33242         (umulhi3, mulsidi3, umulsidi3): Likewise.
33243
33244 2014-06-17  Thomas Schwinge  <thomas@codesourcery.com>
33245
33246         PR middle-end/61508
33247         * fold-const.c (fold_checksum_tree) <TS_DECL_WITH_VIS>: Remove
33248         check for section name.
33249
33250 2014-06-17  Richard Biener  <rguenther@suse.de>
33251
33252         * tree-ssa-propagate.c: Include domwalk.h.
33253         (substitute_and_fold): Outline main worker into a domwalker ...
33254         (substitute_and_fold_dom_walker::before_dom_children): ... here.
33255         Schedule stmts we can fully propagate for removal.  Remove
33256         poor-mans DCE.
33257         (substitute_and_fold): Apply a dominator walk to perform
33258         substitution.  Process stmts scheduled for removal here.
33259
33260 2014-06-17  Richard Biener  <rguenther@suse.de>
33261
33262         * tree-ssa-loop-im.c (determine_max_movement): Adjust cost
33263         of PHI node moving.
33264
33265 2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
33266
33267         * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
33268         default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
33269         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
33270         __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
33271         * config/arm/vfp.md (set_fpscr): Make pattern conditional on
33272         TARGET_HARD_FLOAT.
33273         (get_fpscr) : Likewise.
33274
33275 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33276
33277         PR rtl-optimization/61325
33278         * lra-constraints.c (valid_address_p): Add forward declaration.
33279         (simplify_operand_subreg): Check address validity before and after
33280         alter_reg of memory subreg.
33281
33282 2014-06-16  Uros Bizjak  <ubizjak@gmail.com>
33283
33284         * config/i386/i386.c (decide_alg): Correctly handle
33285         maximum size of stringop algorithm.
33286
33287 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33288
33289         * asan.c (build_check_stmt): Fix maybe-uninitialized warning.
33290
33291 2014-06-16  Vladimir Makarov  <vmakarov@redhat.com>
33292
33293         PR rtl-optimization/61522
33294         * lra-assigns.c (assign_by_spills): Check null targetm.spill_class.
33295
33296 2014-06-16  Jan Hubicka  <hubicka@ucw.cz>
33297
33298         Revert:
33299         * symtab.c (symtab_node::reset_section): New method.
33300         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33301         for localization.
33302         * cgraph.h (reset_section): Declare.
33303         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33304         do not consider comdat locals.
33305         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33306         for new symbol.
33307         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33308         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33309         reset sections of symbols dragged out of the comdats.
33310         (function_and_variable_visibility): Reset sections of
33311         localized symbols.
33312
33313 2014-06-16  Richard Biener  <rguenther@suse.de>
33314
33315         PR tree-optimization/61482
33316         * tree-vrp.c (adjust_range_with_scev): Avoid setting of
33317         [-INF(OVF), +INF(OVF)] range.
33318
33319 2014-06-16  Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
33320
33321         * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): Issue
33322         instructions "vpmuludq" and "vpaddq" instead of "vpmacsdql" for
33323         handling 32-bit multiplication.
33324
33325 2014-06-16  Chung-Lin Tang  <cltang@codesourcery.com>
33326
33327         PR middle-end/61430
33328         * lra-lives.c (process_bb_lives): Skip creating copy during
33329         insn scan when src/dest has constrained to same regno.
33330
33331 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33332
33333         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Check again
33334         DECL_IN_CONSTANT_POOL and TREE_ASM_WRITTEN.
33335
33336 2014-06-16  Yury Gribov  <y.gribov@samsung.com>
33337
33338         * asan.c (check_func): New function.
33339         (maybe_create_ssa_name): Likewise.
33340         (build_check_stmt_with_calls): Likewise.
33341         (use_calls_p): Likewise.
33342         (report_error_func): Change interface.
33343         (build_check_stmt): Allow non-integer lengths; add support
33344         for new parameter.
33345         (asan_instrument): Likewise.
33346         (instrument_mem_region_access): Moved code to build_check_stmt.
33347         (instrument_derefs): Likewise.
33348         (instrument_strlen_call): Likewise.
33349         * cfgcleanup.c (old_insns_match_p): Add support for new functions.
33350         * doc/invoke.texi: Describe new parameter.
33351         * params.def: Define new parameter.
33352         * params.h: Likewise.
33353         * sanitizer.def: Describe new builtins.
33354
33355 2014-06-16  Richard Biener  <rguenther@suse.de>
33356
33357         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33358         Make all defs available at the end.
33359         (eliminate): If we remove a PHI node schedule cfg-cleanup.
33360
33361 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
33362
33363         PR plugins/45078
33364         * config.gcc (arm*-*-linux-*): Include vxworks-dummy.h in tm_file.
33365
33366 2014-06-16  Richard Sandiford  <rdsandiford@googlemail.com>
33367
33368         PR bootstrap/61516
33369         * auto-inc-dec.c (merge_in_block): Fix location of insn_info
33370         initialization.  Replace remaining use of uid.
33371
33372 2014-06-15  Jan Hubicka  <hubicka@ucw.cz>
33373
33374         * c-family/c-common.c (handle_tls_model_attribute): Use
33375         set_decl_tls_model.
33376         * c-family/c-common.c (handle_tls_model_attribute): Use
33377         set_decl_tls_model.
33378         * cgraph.h (struct varpool_node): Add tls_model.
33379         * tree.c (decl_tls_model, set_decl_tls_model): New functions.
33380         * tree.h (DECL_TLS_MODEL): Update.
33381         (DECL_THREAD_LOCAL_P): Check that variable is static.
33382         (decl_tls_model): Declare.
33383         (set_decl_tls_model): Declare.
33384         * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then
33385         set symbol prorperties.
33386         (get_emutls_init_templ_addr): Cleanup.
33387         (new_emutls_decl): Update.
33388         * lto-cgraph.c (lto_output_varpool_node): Stream TLS model
33389         (lto_input_varpool_node): Likewise.
33390         * lto-streamer-out.c (hash_tree): Likewise.
33391         * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
33392         not stream DECL_TLS_MODEL.
33393         * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model.
33394         * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments.
33395
33396 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33397
33398         * df.h (DF_REF_REG_USE_P, DF_MWS_REG_USE_P): Remove null checks.
33399
33400 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33401
33402         * df.h (df_mw_hardreg, df_base_ref): Add a link pointer.
33403         (df_insn_info): Turn defs, uses, eq_uses and mw_hardregs into linked
33404         lists.
33405         (df_scan_bb_info): Likewise artificial_defs and artificial_uses.
33406         (DF_REF_NEXT_LOC, DF_MWS_NEXT): New macros.
33407         (FOR_EACH_INSN_INFO_DEF, FOR_EACH_INSN_INFO_USE)
33408         (FOR_EACH_INSN_INFO_EQ_USE, FOR_EACH_INSN_INFO_MW)
33409         (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF)
33410         (df_get_artificial_defs, df_get_artificial_uses)
33411         (df_single_def, df_single_use): Update accordingly.
33412         (df_refs_chain_dump): Take the first element in a linked list as
33413         parameter, rather than a pointer to an array of pointers.
33414         * df-core.c (df_refs_chain_dump, df_mws_dump): Likewise.
33415         * df-problems.c (df_rd_bb_local_compute_process_def): Likewise.
33416         (df_chain_create_bb_process_use): Likewise.
33417         (df_md_bb_local_compute_process_def): Likewise.
33418         * fwprop.c (process_defs, process_uses): Likewise.
33419         (register_active_defs, update_uses): Likewise.
33420         (forward_propagate_asm): Update for new df_ref linking.
33421         * df-scan.c (df_scan_free_ref_vec, df_scan_free_mws_vec): Delete.
33422         (df_null_ref_rec, df_null_mw_rec): Likewise.
33423         (df_scan_free_internal): Don't free df_ref and df_mw_hardreg lists
33424         explicitly.
33425         (df_scan_free_bb_info): Remove check for null artificial_defs.
33426         (df_install_ref_incremental): Adjust for new df_ref linking.
33427         Use a single-element insertion rather than a full sort.
33428         (df_ref_chain_delete_du_chain): Take the first element
33429         in a linked list as parameter, rather than a pointer to an array of
33430         pointers.
33431         (df_ref_chain_delete, df_mw_hardreg_chain_delete): Likewise.
33432         (df_add_refs_to_table, df_refs_verify, df_mws_verify): Likewise.
33433         (df_insn_info_delete): Remove check for null defs and call to
33434         df_scan_free_mws_vec.
33435         (df_insn_rescan): Initialize df_ref and df_mw_hardreg lists to
33436         null rather than df_null_*_rec.
33437         (df_insn_rescan_debug_internal): Likewise, and update null
33438         checks in the same way.  Remove check for null defs.
33439         (df_ref_change_reg_with_loc_1): Fix choice of list for defs.
33440         Move a single element rather doing a full sort.
33441         (df_mw_hardreg_chain_delete_eq_uses): Adjust for new df_mw_hardreg
33442         linking.
33443         (df_notes_rescan): Likewise.  Use a merge rather than a full sort.
33444         Initialize df_ref and df_mw_hardreg lists to null rather than
33445         df_null_*_rec.
33446         (df_ref_compare): Take df_refs as parameter, transferring the
33447         old interface to...
33448         (df_ref_ptr_compare): ...this new function.
33449         (df_sort_and_compress_refs): Update accordingly.
33450         (df_mw_compare): Take df_mw_hardregs as parameter, transferring the
33451         old interface to...
33452         (df_mw_ptr_compare): ...this new function.
33453         (df_sort_and_compress_mws): Update accordingly.
33454         (df_install_refs, df_install_mws): Return a linked list rather than
33455         an array of pointers.
33456         (df_refs_add_to_chains): Assert that old lists are empty rather
33457         than freeing them.
33458         (df_insn_refs_verify): Don't handle null defs speciailly.
33459         * web.c (union_match_dups): Update for new df_ref linking.
33460
33461 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33462
33463         * df.h (df_ref_create, df_ref_remove): Delete.
33464         * df-scan.c (df_ref_create, df_ref_compress_rec): Likewise.
33465         (df_ref_remove): Likewise.
33466
33467 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33468
33469         * df.h (df_single_def, df_single_use): New functions.
33470         * ira.c (find_moveable_pseudos): Use them.
33471
33472 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33473
33474         * df.h (FOR_EACH_INSN_INFO_MW): New macro.
33475         * df-problems.c (df_note_bb_compute): Use it.
33476         * regstat.c (regstat_bb_compute_ri): Likewise.
33477
33478 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33479
33480         * df.h (FOR_EACH_ARTIFICIAL_USE, FOR_EACH_ARTIFICIAL_DEF): New macros.
33481         * cse.c (cse_extended_basic_block): Use them.
33482         * dce.c (mark_artificial_use): Likewise.
33483         * df-problems.c (df_rd_simulate_artificial_defs_at_top): Likewise.
33484         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33485         (df_chain_remove_problem, df_chain_bb_dump): Likewise.
33486         (df_word_lr_bb_local_compute, df_note_bb_compute): Likewise.
33487         (df_simulate_initialize_backwards): Likewise.
33488         (df_simulate_finalize_backwards): Likewise.
33489         (df_simulate_initialize_forwards): Likewise.
33490         (df_md_simulate_artificial_defs_at_top): Likewise.
33491         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33492         * regrename.c (init_rename_info): Likewise.
33493         * regstat.c (regstat_bb_compute_ri): Likewise.
33494         (regstat_bb_compute_calls_crossed): Likewise.
33495
33496 2014-06-15  Richard Sandiford  <rdsandiford@googlemail.com>
33497
33498         * df.h (DF_INSN_INFO_MWS, FOR_EACH_INSN_INFO_DEF): New macros.
33499         (FOR_EACH_INSN_INFO_USE, FOR_EACH_INSN_INFO_EQ_USE): Likewise.
33500         (FOR_EACH_INSN_DEF, FOR_EACH_INSN_USE, FOR_EACH_INSN_EQ_USE): Likewise.
33501         * auto-inc-dec.c (find_inc, merge_in_block): Use them.
33502         * combine.c (create_log_links): Likewise.
33503         * compare-elim.c (find_flags_uses_in_insn): Likewise.
33504         (try_eliminate_compare): Likewise.
33505         * cprop.c (make_set_regs_unavailable, mark_oprs_set): Likewise.
33506         * dce.c (deletable_insn_p, find_call_stack_args): Likewise.
33507         (remove_reg_equal_equiv_notes_for_defs): Likewise.
33508         (reset_unmarked_insns_debug_uses, mark_reg_dependencies): Likewise.
33509         (word_dce_process_block, dce_process_block): Likewise.
33510         * ddg.c (def_has_ccmode_p): Likewise.
33511         * df-core.c (df_bb_regno_first_def_find): Likewise.
33512         (df_bb_regno_last_def_find, df_find_def, df_find_use): Likewise.
33513         * df-problems.c (df_rd_simulate_one_insn): Likewise.
33514         (df_lr_bb_local_compute, df_live_bb_local_compute): Likewise.
33515         (df_chain_remove_problem, df_chain_insn_top_dump): Likewise.
33516         (df_chain_insn_bottom_dump, df_word_lr_bb_local_compute): Likewise.
33517         (df_word_lr_simulate_defs, df_word_lr_simulate_uses): Likewise.
33518         (df_remove_dead_eq_notes, df_note_bb_compute): Likewise.
33519         (df_simulate_find_defs, df_simulate_find_uses): Likewise.
33520         (df_simulate_find_noclobber_defs, df_simulate_defs): Likewise.
33521         (df_simulate_uses, df_md_simulate_one_insn): Likewise.
33522         * df-scan.c (df_reorganize_refs_by_reg_by_insn): Likewise.
33523         * fwprop.c (local_ref_killed_between_p): Likewise.
33524         (all_uses_available_at, free_load_extend): Likewise.
33525         * gcse.c (update_bb_reg_pressure, calculate_bb_reg_pressure): Likewise.
33526         * hw-doloop.c (scan_loop): Likewise.
33527         * ifcvt.c (dead_or_predicable): Likewise.
33528         * init-regs.c (initialize_uninitialized_regs): Likewise.
33529         * ira-lives.c (mark_hard_reg_early_clobbers): Likewise.
33530         (process_bb_node_lives): Likewise.
33531         * ira.c (compute_regs_asm_clobbered, build_insn_chain): Likewise.
33532         (find_moveable_pseudos): Likewise.
33533         * loop-invariant.c (check_dependencies, record_uses): Likewise.
33534         * recog.c (peep2_find_free_register): Likewise.
33535         * ree.c (get_defs): Likewise.
33536         * regstat.c (regstat_bb_compute_ri): Likewise.
33537         (regstat_bb_compute_calls_crossed): Likewise.
33538         * sched-deps.c (find_inc, find_mem): Likewise.
33539         * sel-sched-ir.c (maybe_downgrade_id_to_use): Likewise.
33540         (maybe_downgrade_id_to_use, setup_id_reg_sets): Likewise.
33541         * shrink-wrap.c (requires_stack_frame_p): Likewise.
33542         (prepare_shrink_wrap): Likewise.
33543         * store-motion.c (compute_store_table, build_store_vectors): Likewise.
33544         * web.c (union_defs, pass_web::execute): Likewise.
33545         * config/i386/i386.c (increase_distance, insn_defines_reg): Likewise.
33546         (insn_uses_reg_mem, ix86_ok_to_clobber_flags): Likewise.
33547
33548 2014-06-13  Vladimir Makarov  <vmakarov@redhat.com>
33549
33550         * lra-assign.c (assign_by_spills): Add code to assign vector regs
33551         to inheritance pseudos.
33552         * config/i386/i386.c (ix86_spill_class): Add check on NO_REGS.
33553
33554 2014-06-13  Peter Bergner  <bergner@vnet.ibm.com>
33555
33556         PR target/61415
33557         * config/rs6000/rs6000-builtin.def (BU_MISC_1): Delete.
33558         (BU_MISC_2): Rename to ...
33559         (BU_LDBL128_2): ... this.
33560         * config/rs6000/rs6000.h (RS6000_BTM_LDBL128): New define.
33561         (RS6000_BTM_COMMON): Add RS6000_BTM_LDBL128.
33562         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
33563         RS6000_BTM_LDBL128.
33564         (rs6000_invalid_builtin): Add long double 128-bit builtin support.
33565         (rs6000_builtin_mask_names): Add RS6000_BTM_LDBL128.
33566         * config/rs6000/rs6000.md (unpacktf_0): Remove define)expand.
33567         (unpacktf_1): Likewise.
33568         * doc/extend.texi (__builtin_longdouble_dw0): Remove documentation.
33569         (__builtin_longdouble_dw1): Likewise.
33570         * doc/sourcebuild.texi (longdouble128): Document.
33571
33572 2014-06-13  Jeff Law  <law@redhat.com>
33573
33574         PR rtl-optimization/61094
33575         PR rtl-optimization/61446
33576         * ree.c (combine_reaching_defs): Get the mode for the copy from
33577         the extension insn rather than the defining insn.
33578
33579 2014-06-13  Dehao Chen  <dehao@google.com>
33580
33581         * dwarf2out.c (add_linkage_name): Emit more linkage name.
33582
33583 2014-06-13  Thomas Schwinge  <thomas@codesourcery.com>
33584
33585         * doc/install.texi (--enable-linker-plugin-configure-flags)
33586         (--enable-linker-plugin-flags): Document new flags.
33587
33588 2014-06-13  Martin Jambor  <mjambor@suse.cz>
33589
33590         PR ipa/61186
33591         * ipa-devirt.c (possible_polymorphic_call_targets): Store NULL to
33592         cache_token if returning early.
33593
33594 2014-06-13  Nick Clifton  <nickc@redhat.com>
33595
33596         * config/rx/rx.h (JUMP_ALIGN): Return the log value if user
33597         requested alignment is active.
33598         (LABEL_ALIGN): Likewise.
33599         (LOOP_ALIGN): Likewise.
33600
33601 2014-06-13  Richard Biener  <rguenther@suse.de>
33602
33603         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
33604         Rewrite to propagate the VN result into all uses where
33605         possible and to remove stmts becoming dead because of that.
33606         (eliminate): Generalize stmt removal handling, remove in
33607         reverse dominator order to support proper debug stmt
33608         generation.  Update stmts before removing stmts.
33609         * tree-ssa-propagate.c (propagate_tree_value): Remove bogus assert.
33610
33611 2014-06-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33612
33613         PR tree-optimization/61375
33614         * tree-ssa-math-opts.c (init_symbolic_number): Cancel optimization if
33615         symbolic number cannot be represented in an uint64_t.
33616         (find_bswap_or_nop_1): Likewise.
33617
33618 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33619
33620         * symtab.c (symtab_node::reset_section): New method.
33621         * cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
33622         for localization.
33623         * cgraph.h (reset_section): Declare.
33624         * ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
33625         do not consider comdat locals.
33626         * cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
33627         for new symbol.
33628         * ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
33629         (update_visibility_by_resolution_info): Consider UNDEF; fix checking;
33630         reset sections of symbols dragged out of the comdats.
33631         (function_and_variable_visibility): Reset sections of
33632         localized symbols.
33633
33634 2014-06-12  Jan Hubicka  <hubicka@ucw.cz>
33635
33636         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Reorg
33637         to use symtab and decl_binds_to_current_def_p
33638         * tree-vectorizer.c (increase_alignment): Increase alignment
33639         of alias target, too.
33640
33641 2014-06-12  Jakub Jelinek  <jakub@redhat.com>
33642
33643         PR middle-end/61486
33644         * gimplify.c (struct gimplify_omp_ctx): Add distribute field.
33645         (gimplify_adjust_omp_clauses): Don't or in GOVD_LASTPRIVATE
33646         if outer combined construct is distribute.
33647         (gimplify_omp_for): For OMP_DISTRIBUTE set
33648         gimplify_omp_ctxp->distribute.
33649         * omp-low.c (scan_sharing_clauses) <case OMP_CLAUSE_SHARED>: For
33650         GIMPLE_OMP_TEAMS, if decl isn't global in outer context, record
33651         mapping into decl map.
33652
33653 2014-06-12  Jason Merrill  <jason@redhat.com>
33654
33655         * common.opt (fabi-version): Change default to 0.
33656
33657 2014-06-12  Jason Merrill  <jason@redhat.com>
33658
33659         * toplev.c (process_options): Reject -fabi-version=1.
33660
33661 2014-06-12  Jeff Law  <law@redhat.com>
33662
33663         PR tree-optimization/61009
33664         * tree-ssa-threadedge.c (thread_through_normal_block): Correct return
33665         value when we stop processing a block due to problematic PHIs.
33666
33667 2014-06-12  Alan Lawrence  <alan.lawrence@arm.com>
33668
33669         * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
33670         vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
33671         vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
33672         vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
33673         vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
33674         vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
33675         vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they
33676         are not in the spec.
33677
33678 2014-06-10  Alan Lawrence  <alan.lawrence@arm.com>
33679
33680         PR target/59843
33681         * config/aarch64/aarch64-modes.def: Add V1DFmode.
33682         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p):
33683         Support V1DFmode.
33684
33685 2014-06-12  Eric Botcazou  <ebotcazou@adacore.com>
33686
33687         * tree-core.h (DECL_NONALIASED): Use proper spelling in comment.
33688
33689 2014-06-12  Georg-Johann Lay  <avr@gjlay.de>
33690
33691         PR target/61443
33692         * config/avr/avr.md (push<mode>1): Avoid (subreg(mem)) when
33693         loading from address spaces.
33694
33695 2014-06-12  Martin Liska  <mliska@suse.cz>
33696
33697         PR ipa/61462
33698         * ipa-prop.c (ipa_make_edge_direct_to_target): Check that gimple call
33699         statement is reachable.
33700
33701 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
33702
33703         * symtab.c (section_hash): New hash.
33704         (symtab_unregister_node): Clear section before freeing.
33705         (hash_section_hash_entry): New haser.
33706         (eq_sections): New function.
33707         (symtab_node::set_section_for_node): New method.
33708         (set_section_1): Update.
33709         (symtab_node::set_section): Take string instead of tree as parameter.
33710         (symtab_resolve_alias): Update.
33711         * cgraph.h (section_hash_entry_d): New structure.
33712         (section_hash_entry): New typedef.
33713         (cgraph_node): Change comdat_group_ to x_comdat_group,
33714         change section_ to x_section and turn into section_hash_entry;
33715         update accestors; put set_section_for_node offline.
33716         * tree.c (decl_section_name): Turn into string.
33717         (set_decl_section_name): Change parameter to be string.
33718         * tree.h (decl_section_name, set_decl_section_name): Update prototypes.
33719         * sdbout.c (sdbout_one_type): Update.
33720         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Update.
33721         * varasm.c (IN_NAMED_SECTION, get_named_section,
33722         resolve_unique_section, hot_function_section, get_named_text_section,
33723         USE_SELECT_SECTION_FOR_FUNCTIONS, default_function_rodata_section,
33724         make_decl_rtl, default_unique_section): Update.
33725         * config/c6x/c6x.c (c6x_in_small_data_p): Update.
33726         (c6x_elf_unique_section): Update.
33727         * config/nios2/nios2.c (nios2_in_small_data_p): Update.
33728         * config/pa/pa.c (pa_function_section): Update.
33729         * config/pa/pa.h (IN_NAMED_SECTION_P): Update.
33730         * config/ia64/ia64.c (ia64_in_small_data_p): Update.
33731         * config/arc/arc.c (arc_in_small_data_p): Update.
33732         * config/arm/unknown-elf.h (IN_NAMED_SECTION_P): Update.
33733         * config/mcore/mcore.c (mcore_unique_section): Update.
33734         * config/mips/mips.c (mips16_build_function_stub): Update.
33735         (mips16_build_call_stub): Update.
33736         (mips_function_rodata_section): Update.
33737         (mips_in_small_data_p): Update.
33738         * config/score/score.c (score_in_small_data_p): Update.
33739         * config/rx/rx.c (rx_in_small_data): Update.
33740         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Update.
33741         (rs6000_xcoff_asm_named_section): Update.
33742         (rs6000_xcoff_unique_section): Update.
33743         * config/frv/frv.c (frv_string_begins_with): Update.
33744         (frv_in_small_data_p): Update.
33745         * config/v850/v850.c (v850_encode_data_area): Update.
33746         * config/bfin/bfin.c (DECL_SECTION_NAME): Update.
33747         (bfin_handle_l1_data_attribute): Update.
33748         (bfin_handle_l2_attribute): Update.
33749         * config/mep/mep.c (mep_unique_section): Update.
33750         * config/microblaze/microblaze.c (microblaze_elf_in_small_data_p):
33751         Update.
33752         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): Update.
33753         (h8300_handle_tiny_data_attribute): Update.
33754         * config/m32r/m32r.c (m32r_in_small_data_p): Update.
33755         (m32r_in_small_data_p): Update.
33756         * config/alpha/alpha.c (alpha_in_small_data_p): Update.
33757         * config/i386/i386.c (ix86_in_large_data_p): Update.
33758         * config/i386/winnt.c (i386_pe_unique_section): Update.
33759         * config/darwin.c (darwin_function_section): Update.
33760         * config/lm32/lm32.c (lm32_in_small_data_p): Update.
33761         * tree-emutls.c (get_emutls_init_templ_addr): Update.
33762         (new_emutls_decl): Update.
33763         * lto-cgraph.c (lto_output_node, input_node, input_varpool_node,
33764         input_varpool_node): Update.
33765         (ead_string_cst): Turn to ...
33766         (read_string): ... this one.
33767         * dwarf2out.c (secname_for_decl): Update.
33768         * asan.c (asan_protect_global): Update.
33769
33770 2014-06-11  DJ Delorie  <dj@redhat.com>
33771
33772         * config/rx/rx.h (FUNCTION_BOUNDARY): Adjust for RX100/200 4-byte
33773         cache lines.
33774         * config/rx/rx.c (rx_option_override): Likewise.
33775         (rx_align_for_label): Likewise.
33776
33777         * config/rx/rx.c (rx_max_skip_for_label): Don't skip anything if -Os.
33778
33779 2014-06-11  Maciej W. Rozycki  <macro@codesourcery.com>
33780
33781         * config/mmix/mmix-protos.h (mmix_asm_output_source_line): Remove
33782         prototype.
33783
33784 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33785
33786         * common.md: New file.
33787         * doc/md.texi: Update description of generic, machine-independent
33788         constraints.
33789         * config/s390/constraints.md (e): Delete.
33790         * Makefile.in (md_file): Include common.md.
33791         * config/m32c/t-m32c (md_file): Likewise.
33792         * genpreds.c (general_mem): New array.
33793         (generic_constraint_letters): Remove constraints now defined by
33794         common.md.
33795         (add_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33796         Allow the first character to be '<' or '>' as well.
33797         * genoutput.c (general_mem): New array.
33798         (indep_constraints): Remove constraints now defined by common.md.
33799         (note_constraint): Map TARGET_MEM_CONSTRAINT to general_mem.
33800         Remove special handling of 'm'.
33801         * ira-costs.c (record_reg_classes): Remove special handling of
33802         constraints now defined by common.md.
33803         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33804         * ira-lives.c (single_reg_class): Likewise.
33805         (ira_implicitly_set_insn_hard_regs): Likewise.
33806         * lra-constraints.c (reg_class_from_constraints): Likewise.
33807         (process_alt_operands, process_address, curr_insn_transform): Likewise.
33808         * postreload.c (reload_cse_simplify_operands): Likewise.
33809         * reload.c (push_secondary_reload, scratch_reload_class)
33810         (find_reloads, alternative_allows_const_pool_ref): Likewise.
33811         * reload1.c (maybe_fix_stack_asms): Likewise.
33812         * targhooks.c (default_secondary_reload): Likewise.
33813         * stmt.c (parse_output_constraint): Likewise.
33814         * recog.c (preprocess_constraints): Likewise.
33815         (constrain_operands, peep2_find_free_register): Likewise.
33816         (asm_operand_ok): Likewise, but add a comment saying why 'o'
33817         must be handled specially.
33818
33819 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33820
33821         * system.h (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Poison.
33822         * genpreds.c (have_const_dbl_constraints): Delete.
33823         (add_constraint): Don't set it.
33824         (write_tm_preds_h): Don't call CONST_DOUBLE_OK_FOR_CONSTRAINT_P.
33825         * ira-costs.c (record_reg_classes): Handle CONST_INT and CONST_DOUBLE
33826         constraints using the lookup_constraint logic.
33827         * ira-lives.c (single_reg_class): Likewise.
33828         * ira.c (ira_setup_alts): Likewise.
33829         * lra-constraints.c (process_alt_operands): Likewise.
33830         * recog.c (asm_operand_ok, constrain_operands): Likewise.
33831         * reload.c (find_reloads): Likewise.
33832
33833 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33834
33835         * genpreds.c (const_int_start, const_int_end): New variables.
33836         (choose_enum_order): Output CONST_INT constraints before memory
33837         constraints.
33838         (write_tm_preds_h): Always define insn_const_int_ok_for_constraint.
33839         Add CT_CONST_INT.
33840         * ira-costs.c (record_reg_classes): Handle CT_CONST_INT.
33841         * ira.c (ira_setup_alts): Likewise.
33842         * lra-constraints.c (process_alt_operands): Likewise.
33843         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33844         * reload.c (find_reloads): Likewise.
33845
33846 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33847
33848         * recog.h (operand_alternative): Remove offmem_ok, nonffmem_ok,
33849         decmem_ok and incmem_ok.  Reformat other bitfields for consistency.
33850         * recog.c (preprocess_constraints): Update accordingly.
33851
33852 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33853
33854         * system.h (REG_CLASS_FROM_CONSTRAINT): Poison.
33855         (REG_CLASS_FOR_CONSTRAINT, EXTRA_CONSTRAINT_STR): Likewise.
33856         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Likewise.
33857         * genpreds.c (print_type_tree): New function.
33858         (write_tm_preds_h): Remove REG_CLASS_FROM_CONSTRAINT,
33859         REG_CLASS_FOR_CONSTRAINT, EXTRA_MEMORY_CONSTRAINT,
33860         EXTRA_ADDRESS_CONSTRAINT and EXTRA_CONSTRAINT_STR.
33861         Write out enum constraint_type and get_constraint_type.
33862         * lra-constraints.c (satisfies_memory_constraint_p): Take a
33863         constraint_num rather than a constraint string.
33864         (satisfies_address_constraint_p): Likewise.
33865         (reg_class_from_constraints): Avoid old constraint macros.
33866         (process_alt_operands, process_address_1): Likewise.
33867         (curr_insn_transform): Likewise.
33868         * ira-costs.c (record_reg_classes): Likewise.
33869         (record_operand_costs): Likewise.
33870         * ira-lives.c (single_reg_class): Likewise.
33871         (ira_implicitly_set_insn_hard_regs): Likewise.
33872         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
33873         * postreload.c (reload_cse_simplify_operands): Likewise.
33874         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
33875         (constrain_operands, peep2_find_free_register): Likewise.
33876         * reload.c (push_secondary_reload, scratch_reload_class): Likewise.
33877         (find_reloads, alternative_allows_const_pool_ref): Likewise.
33878         * reload1.c (maybe_fix_stack_asms): Likewise.
33879         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
33880         * targhooks.c (default_secondary_reload): Likewise.
33881         * config/m32c/m32c.c (m32c_matches_constraint_p): Avoid reference
33882         to EXTRA_CONSTRAINT_STR.
33883         * config/sparc/constraints.md (U): Likewise REG_CLASS_FROM_CONSTRAINT.
33884
33885 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33886
33887         * genpreds.c (write_constraint_satisfied_p_1): Replace with...
33888         (write_constraint_satisfied_p_array): ...this new function.
33889         (write_tm_preds_h): Replace write_constraint_satisfied_p_1 with
33890         an array.
33891         (write_insn_preds_c): Update accordingly.
33892
33893 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33894
33895         * genpreds.c (write_lookup_constraint): Rename to...
33896         (write_lookup_constraint_1): ...this.
33897         (write_lookup_constraint_array): New function.
33898         (write_tm_preds_h): Define lookup_constraint as an inline function
33899         that uses write_lookup_constraint_array where possible.
33900         (write_insn_preds_c): Update for the changes above.
33901
33902 2014-06-11  Richard Sandiford  <rdsandiford@googlemail.com>
33903
33904         * doc/md.texi (regclass_for_constraint): Rename to...
33905         (reg_class_for_constraint): ...this.
33906         * genpreds.c (num_constraints, enum_order, register_start)
33907         (register_end, satisfied_start, memory_start, memory_end)
33908         (address_start, address_end): New variables.
33909         (add_constraint): Count the number of constraints.
33910         (choose_enum_order): New function.
33911         (write_enum_constraint_num): Iterate over enum_order.
33912         (write_regclass_for_constraint): Rename to...
33913         (write_reg_class_for_constraint_1): ...this and update output
33914         accordingly.
33915         (write_constraint_satisfied_p): Rename to...
33916         (write_constraint_satisfied_p_1): ...this and update output
33917         accordingly.  Do nothing if all extra constraints are register
33918         constraints.
33919         (write_insn_extra_memory_constraint): Delete.
33920         (write_insn_extra_address_constraint): Delete.
33921         (write_range_function): New function.
33922         (write_tm_preds_h): Define constraint_satisfied_p and
33923         reg_class_for_constraint as inline functions that do a range check
33924         before calling the out-of-line function.  Use write_range_function
33925         to implement insn_extra_{register,memory,address}_constraint,
33926         the first of which is new.
33927         (write_insn_preds_c): Update after above changes to write_* functions.
33928         (main): Call choose_enum_order.
33929
33930 2014-06-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33931
33932         PR tree-optimization/61306
33933         * tree-ssa-math-opts.c (struct symbolic_number): Store type of
33934         expression instead of its size.
33935         (do_shift_rotate): Adapt to change in struct symbolic_number. Return
33936         false to prevent optimization when the result is unpredictable due to
33937         arithmetic right shift of signed type with highest byte is set.
33938         (verify_symbolic_number_p): Adapt to change in struct symbolic_number.
33939         (init_symbolic_number): Likewise.
33940         (find_bswap_or_nop_1): Likewise. Return NULL to prevent optimization
33941         when the result is unpredictable due to sign extension.
33942
33943 2014-06-11  Terry Guo  <terry.guo@arm.com>
33944
33945         * config/arm/arm.md (*thumb1_adddi3): Move into new file thumb1.md.
33946         (*thumb1_addsi3): Ditto.
33947         (*thumb_subdi3): Ditto.
33948         (thumb1_subsi3_insn): Ditto.
33949         (*thumb_mulsi3): Ditto.
33950         (*thumb_mulsi3_v6): Ditto.
33951         (*thumb1_andsi3_insn): Ditto.
33952         (thumb1_bicsi3): Ditto.
33953         (*thumb1_iorsi3_insn): Ditto.
33954         (*thumb1_xorsi3_insn): Ditto.
33955         (*thumb1_ashlsi3): Ditto.
33956         (*thumb1_ashrsi3): Ditto.
33957         (*thumb1_lshrsi3): Ditto.
33958         (*thumb1_rotrsi3): Ditto.
33959         (*thumb1_negdi2): Ditto.
33960         (*thumb1_negsi2): Ditto.
33961         (*thumb1_abssi2): Ditto.
33962         (*thumb1_neg_abssi2): Ditto.
33963         (*thumb1_one_cmplsi2): Ditto.
33964         (*thumb1_zero_extendhisi2): Ditto.
33965         (*thumb1_zero_extendqisi2): Ditto.
33966         (*thumb1_zero_extendqisi2_v6): Ditto.
33967         (thumb1_extendhisi2): Ditto.
33968         (thumb1_extendqisi2): Ditto.
33969         (*thumb1_movdi_insn): Ditto.
33970         (*thumb1_movsi_insn): Ditto.
33971         (*thumb1_movhi_insn): Ditto.
33972         (thumb_movhi_clobber): Ditto.
33973         (*thumb1_movqi_insn): Ditto.
33974         (*thumb1_movhf): Ditto.
33975         (*thumb1_movsf_insn): Ditto.
33976         (*thumb_movdf_insn): Ditto.
33977         (movmem12b): Ditto.
33978         (movmem8b): Ditto.
33979         (cbranchqi4): Ditto.
33980         (cbranchsi4_insn): Ditto.
33981         (cbranchsi4_scratch): Ditto.
33982         (*negated_cbranchsi4): Ditto.
33983         (*tbit_cbranch): Ditto.
33984         (*tlobits_cbranch): Ditto.
33985         (*tstsi3_cbranch): Ditto.
33986         (*cbranchne_decr1): Ditto.
33987         (*addsi3_cbranch): Ditto.
33988         (*addsi3_cbranch_scratch): Ditto.
33989         (*thumb_cmpdi_zero): Ditto.
33990         (cstoresi_eq0_thumb1): Ditto.
33991         (cstoresi_ne0_thumb1): Ditto.
33992         (*cstoresi_eq0_thumb1_insn): Ditto.
33993         (*cstoresi_ne0_thumb1_insn): Ditto.
33994         (cstoresi_nltu_thumb1): Ditto.
33995         (cstoresi_ltu_thumb1): Ditto.
33996         (thumb1_addsi3_addgeu): Ditto.
33997         (*thumb_jump): Ditto.
33998         (*call_reg_thumb1_v5): Ditto.
33999         (*call_reg_thumb1): Ditto.
34000         (*call_value_reg_thumb1_v5): Ditto.
34001         (*call_value_reg_thumb1): Ditto.
34002         (*call_insn): Ditto.
34003         (*call_value_insn): Ditto.
34004         (thumb1_casesi_internal_pic): Ditto.
34005         (thumb1_casesi_dispatch): Ditto.
34006         (*thumb1_indirect_jump): Ditto.
34007         (prologue_thumb1_interwork): Ditto.
34008         (*epilogue_insns): Ditto.
34009         (consttable_1): Ditto.
34010         (consttable_2): Ditto.
34011         (tablejump): Ditto.
34012         (*thumb1_tablejump): Ditto.
34013         (thumb_eh_return): Ditto.
34014         (define_peephole2): Two of them are thumb1 only and got moved into
34015         new file thumb1.md.
34016         (define_split): Six of them are thumb1 only and got moved into new
34017         file thumb1.md.
34018         * config/arm/thumb1.md: New file comprised of above thumb1 only
34019         patterns.
34020
34021 2014-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34022
34023         * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
34024         * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
34025         dependencies.
34026         * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
34027         (aarch64_crc_builtin_datum): New struct.
34028         (aarch64_crc_builtin_data): New.
34029         (aarch64_init_crc32_builtins): New function.
34030         (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
34031         (aarch64_crc32_expand_builtin): New.
34032         (aarch64_expand_builtin): Add CRC32 builtin expansion case.
34033         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
34034         __ARM_FEATURE_CRC32 when appropriate.
34035         (TARGET_CRC32): Define.
34036         * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
34037         UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
34038         UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
34039         (aarch64_<crc_variant>): New pattern.
34040         * config/aarch64/arm_acle.h: New file.
34041         * config/aarch64/iterators.md (CRC): New int iterator.
34042         (crc_variant, crc_mode): New int attributes.
34043         * doc/aarch64-acle-intrinsics.texi: New file.
34044         * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
34045         Include aarch64-acle-intrinsics.texi.
34046
34047 2014-06-11  Evgeny Stupachenko  <evstupac@gmail.com>
34048
34049         * tree-vect-data-refs.c (vect_grouped_store_supported): New
34050         check for stores group of length 3.
34051         (vect_permute_store_chain): New permutations for stores group of
34052         length 3.
34053         * tree-vect-stmts.c (vect_model_store_cost): Change cost
34054         of vec_perm_shuffle for the new permutations.
34055
34056 2014-06-11  Jan Hubicka  <hubicka@ucw.cz>
34057
34058         * ipa-visibility.c (function_and_variable_visibility): Disable virtual
34059         table rewriting temporarily on targets not supporting ONE_ONLY.
34060
34061 2014-06-11  Richard Biener  <rguenther@suse.de>
34062
34063         PR middle-end/61437
34064         Revert
34065         2014-06-04  Richard Biener  <rguenther@suse.de>
34066
34067         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34068         TREE_PUBLIC and DECL_EXTERNAL decls.
34069
34070 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34071
34072         * varasm.c (set_implicit_section): New function.
34073         (resolve_unique_section): Use it to set implicit section
34074         for aliases, too.
34075         (get_named_text_section): Use symtab_get_node (decl)->implicit_section
34076         (default_function_section): Likewise.
34077         (decl_binds_to_current_def_p): Constify argument.
34078         * varasm.h (decl_binds_to_current_def_p): Update prototype.
34079         * asan.c (asan_protect_global): Use
34080         symtab_get_node (decl)->implicit_section.
34081         * symtab.c (dump_symtab_base): Dump implicit sections.
34082         (verify_symtab_base): Verify sanity of sectoins and comdats.
34083         (symtab_resolve_alias): Alias share the section of its target.
34084         (set_section_1): New function.
34085         (symtab_node::set_section): Move here, recurse to aliases.
34086         (verify_symtab): Check for duplicated symtab lists.
34087         * tree-core.h (implicit_section_name_p): Remove.
34088         * tree-vect-data-refs.c: Include varasm.h.
34089         (vect_can_force_dr_alignment_p): Fix conditional on when
34090         decl bints to current definition; use
34091         symtab_get_node (decl)->implicit_section.
34092         * cgraph.c (cgraph_make_node_local_1): Fix section set.
34093         * cgraph.h (struct symtab_node): Add implicit_section.
34094         (set_section): Rename to ...
34095         (set_section_for_node): ... this one.
34096         (set_section): Declare.
34097         * tree.h (DECL_HAS_IMPLICIT_SECTION_NAME_P): Remove.
34098         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
34099         input_overwrite_node, input_varpool_node): Stream implicit_section.
34100         * ipa.c (symtab_remove_unreachable_nodes): Do not check symtab before
34101         removal; it will fail in LTO.
34102
34103 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34104
34105         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
34106         Change second alternative type to f_mcr.
34107         * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
34108         and 12th alternatives' types to f_mcr and f_mrc.
34109         (*movdi_aarch64): Same for 12th and 13th alternatives.
34110         (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
34111         (aarch64_movtilow_tilow): Change type to fmov.
34112
34113 2014-06-10  Jiong Wang  <jiong.wang@arm.com>
34114
34115         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
34116         (aarch64_save_or_restore_callee_save_registers): Fix layout.
34117
34118 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34119
34120         * config/aarch64/aarch64-simd.md (aarch64_sqdmulh_lane<mode>):
34121         New expander.
34122         (aarch64_sqrdmulh_lane<mode>): Likewise.
34123         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34124         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34125         (aarch64_sqdmulh_laneq<mode>): New expander.
34126         (aarch64_sqrdmulh_laneq<mode>): Likewise.
34127         (aarch64_sq<r>dmulh_laneq<mode>): Rename to...
34128         (aarch64_sq<r>dmulh_laneq<mode>_internal): ...this.
34129         (aarch64_sqdmulh_lane<mode>): New expander.
34130         (aarch64_sqrdmulh_lane<mode>): Likewise.
34131         (aarch64_sq<r>dmulh_lane<mode>): Rename to...
34132         (aarch64_sq<r>dmulh_lane<mode>_internal): ...this.
34133         (aarch64_sqdmlal_lane<mode>): Add lane flip for big-endian.
34134         (aarch64_sqdmlal_laneq<mode>): Likewise.
34135         (aarch64_sqdmlsl_lane<mode>): Likewise.
34136         (aarch64_sqdmlsl_laneq<mode>): Likewise.
34137         (aarch64_sqdmlal2_lane<mode>): Likewise.
34138         (aarch64_sqdmlal2_laneq<mode>): Likewise.
34139         (aarch64_sqdmlsl2_lane<mode>): Likewise.
34140         (aarch64_sqdmlsl2_laneq<mode>): Likewise.
34141         (aarch64_sqdmull_lane<mode>): Likewise.
34142         (aarch64_sqdmull_laneq<mode>): Likewise.
34143         (aarch64_sqdmull2_lane<mode>): Likewise.
34144         (aarch64_sqdmull2_laneq<mode>): Likewise.
34145
34146 2014-06-10  Richard Biener  <rguenther@suse.de>
34147
34148         PR tree-optimization/61438
34149         * tree-ssa-pre.c (eliminate_dom_walker): Add do_pre member.
34150         (eliminate_dom_walker::before_dom_children): Only try to inhibit
34151         insertion of IVs if running PRE.
34152         (eliminate): Adjust.
34153         (pass_pre::execute): Likewise.
34154         (pass_fre::execute): Likewise.
34155
34156 2014-06-10  Richard Biener  <rguenther@suse.de>
34157
34158         PR middle-end/61456
34159         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
34160         Do not use the main variant for the type comparison.
34161         (ncr_compar): Likewise.
34162         (nonoverlapping_component_refs_p): Likewise.
34163
34164 2014-06-10  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34165
34166         * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
34167         REG_CFA_RESTORE mode.
34168
34169 2014-06-10  Evgeny Stupachenko  <evstupac@gmail.com>
34170
34171         * config/i386/i386.c (expand_vec_perm_pblendv): New.
34172         * config/i386/i386.c (ix86_expand_vec_perm_const_1): Use
34173         expand_vec_perm_pblendv.
34174
34175 2014-06-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34176
34177         * doc/arm-acle-intrinsics.texi: Specify when CRC32 intrinsics are
34178         available.
34179         Simplify description of __crc32d and __crc32cd intrinsics.
34180         * doc/extend.texi (ARM ACLE Intrinsics): Remove comment about CRC32
34181         availability.
34182
34183 2014-06-10  Thomas Schwinge  <thomas@codesourcery.com>
34184
34185         PR lto/61334
34186         * configure.ac: Use gcc_AC_CHECK_DECLS to check for strnlen prototype.
34187         * config.in: Regenerate.
34188         * configure: Likewise.
34189
34190 2014-06-10  Jan Hubicka  <hubicka@ucw.cz>
34191
34192         * ipa-reference.c (is_proper_for_analysis): Exclude addressable
34193         and public vars.
34194         (intersect_static_var_sets): Remove.
34195         (propagate): Do not prune local statics.
34196
34197 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
34198
34199         PR fortran/60928
34200         * omp-low.c (lower_rec_input_clauses) <case OMP_CLAUSE_LASTPRIVATE>:
34201         Set lastprivate_firstprivate even if omp_private_outer_ref
34202         langhook returns true.
34203         <case OMP_CLAUSE_REDUCTION>: When calling omp_clause_default_ctor
34204         langhook, call unshare_expr on new_var and call
34205         build_outer_var_ref to get the last argument.
34206
34207 2014-06-10  Marek Polacek  <polacek@redhat.com>
34208
34209         PR c/60988
34210         * doc/extend.texi: Add cindex for transparent_union.
34211
34212 2014-06-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34213
34214         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Check return value of
34215         init_symbolic_number ().
34216
34217 2014-05-18  John David Anglin  <danglin@gcc.gnu.org>
34218
34219         PR middle-end/61141
34220         * emit-rtl.c (reset_all_used_flags): In a sequence, check that
34221         XVECEXP (pat, 0, i) is an INSN before calling reset_insn_used_flags.
34222         (verify_rtl_sharing): Likewise.
34223
34224 2014-06-09  Marc Glisse  <marc.glisse@inria.fr>
34225
34226         PR c++/54442
34227         * tree.c (build_qualified_type): Use a canonical type for
34228         TYPE_CANONICAL.
34229
34230 2014-06-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34231
34232         * config/arm/arm-modes.def: Remove XFmode.
34233
34234 2014-06-09  Alan Lawrence  <alan.lawrence@arm.com>
34235
34236         PR target/61062
34237         * config/arm/arm_neon.h (vtrn_s8, vtrn_s16, vtrn_u8, vtrn_u16, vtrn_p8,
34238         vtrn_p16, vtrn_s32, vtrn_f32, vtrn_u32, vtrnq_s8, vtrnq_s16, vtrnq_s32,
34239         vtrnq_f32, vtrnq_u8, vtrnq_u16, vtrnq_u32, vtrnq_p8, vtrnq_p16,
34240         vzip_s8, vzip_s16, vzip_u8, vzip_u16, vzip_p8, vzip_p16, vzip_s32,
34241         vzip_f32, vzip_u32, vzipq_s8, vzipq_s16, vzipq_s32, vzipq_f32,
34242         vzipq_u8, vzipq_u16, vzipq_u32, vzipq_p8, vzipq_p16, vuzp_s8, vuzp_s16,
34243         vuzp_s32, vuzp_f32, vuzp_u8, vuzp_u16, vuzp_u32, vuzp_p8, vuzp_p16,
34244         vuzpq_s8, vuzpq_s16, vuzpq_s32, vuzpq_f32, vuzpq_u8, vuzpq_u16,
34245         vuzpq_u32, vuzpq_p8, vuzpq_p16): Correct mask for bigendian.
34246
34247 2014-06-09  Jan Hubicka  <hubicka@ucw.cz>
34248
34249         * tree-core.h (tree_decl_with_vis): Remove section_name.
34250
34251 2014-06-09  Kito Cheng  <kito@0xlab.org>
34252
34253         * ira.c (ira): Don't call init_caller_save if LRA enabled
34254         since LRA use its own infrastructure to handle that.
34255
34256 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34257
34258         * symtab.c (dump_symtab_base): Update dumping.
34259         (symtab_make_decl_local): Clear only DECL_COMDAT.
34260         * tree-vect-data-refs.c (Check that variable is static before
34261         tampering with sections.
34262         * cgraphclones.c (duplicate_thunk_for_node): Do not clear section name.
34263         (cgraph_create_virtual_clone): Likewise.
34264         * tree.c (decl_comdat_group, decl_comdat_group_id): Constify argument.
34265         (decl_section_name, set_decl_section_name): New accessors.
34266         (find_decls_types_r): Do not walk section name
34267         * tree.h (DECL_SECTION_NAME): Implement using decl_section_name.
34268         (decl_comdat_group, decl_comdat_group_id): Constify.
34269         (decl_section_name, set_decl_section_name): Update.
34270         * varpool.c (varpool_finalize_named_section_flags): Use get_section.
34271         * cgraph.c (cgraph_add_thunk): Reset node instead of rebuilding.
34272         (cgraph_make_node_local_1): Clear section and comdat group.
34273         * cgraph.h (set_comdat_group): Sanity check.
34274         (get_section, set_section): New.
34275         * ipa-comdats.c (ipa_comdats): Use get_section.
34276         * ipa.c (ipa_discover_readonly_nonaddressable_var): Likewise.
34277         * lto-streamer-out.c: Do not follow section names.
34278         * c-family/c-common.c (handle_section_attribute): Update.
34279         * lto-cgraph.c (lto_output_node): Output section.
34280         (lto_output_varpool_node): Likewise.
34281         (read_comdat_group): Rename to ...
34282         (read_identifier): ... this one.
34283         (read_string_cst): New function.
34284         (input_node, input_varpool_node): Input section names.
34285         * tree-emutls.c (get_emutls_init_templ_addr): Update.
34286         (new_emutls_decl): Update.
34287         (secname_for_decl): Check section names only of static vars.
34288         * config/mep/mep.c (mep_unique_section): Use set_decl_section_name.
34289         * config/i386/winnt.c (i386_pe_unique_section): Likewise.
34290         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
34291         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
34292         * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Likewise.
34293         * config/mcore/mcore.c (mcore_unique_section): Likewise.
34294         * config/mips/mips.c (mips16_build_function_stub): Likewise.
34295         * config/v850/v850.c (v850_insert_attributes): Likewise.
34296         * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
34297         Likewise.
34298         (h8300_handle_tiny_data_attribute): Likewise.
34299         * config/bfin/bfin.c (bfin_handle_l1_text_attribute): Likewise.
34300         (bfin_handle_l2_attribute): Likewise.
34301
34302 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34303
34304         * symtab.c (symtab_nonoverwritable_alias): Copy VIRTUAL flag;
34305         remove static initializer.
34306
34307 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34308
34309         * varasm.c (use_blocks_for_decl_p): Check symbol table
34310         instead of alias attribute.
34311         (place_block_symbol): Recurse on aliases.
34312
34313 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34314
34315         * ipa-visibility.c: Include varasm.h
34316         (can_replace_by_local_alias): Ceck decl_binds_to_current_def_p.
34317
34318 2014-06-07  Jan Hubicka  <hubicka@ucw.cz>
34319
34320         * cgraphunit.c (assemble_thunks_and_aliases): Expand thunks before
34321         outputting aliases.
34322
34323 2014-06-07  Steven Bosscher  <steven@gcc.gnu.org>
34324
34325         * gcse.c (can_assign_to_reg_without_clobbers_p): Do not let pointers
34326         from test_insn into GGC space escape via SET_SRC.
34327
34328 2014-06-07  Eric Botcazou  <ebotcazou@adacore.com>
34329
34330         * tree-ssa-tail-merge.c (same_succ_hash): Hash the static chain of a
34331         call statement, if any.
34332         (gimple_equal_p) <GIMPLE_CALL>: Compare the static chain of the call
34333         statements, if any.  Tidy up.
34334
34335 2014-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
34336
34337         PR target/61431
34338         * config/rs6000/vsx.md (VSX_LE): Split VSX_D into 2 separate
34339         iterators, VSX_D that handles 64-bit types, and VSX_LE that
34340         handles swapping the two 64-bit double words on little endian
34341         systems.  Include V1TImode and optionally TImode in VSX_LE so that
34342         these types are properly swapped.  Change all of the insns and
34343         splits that do the 64-bit swaps to use VSX_LE.
34344         (vsx_le_perm_load_<mode>): Likewise.
34345         (vsx_le_perm_store_<mode>): Likewise.
34346         (splitters for little endian memory operations): Likewise.
34347         (vsx_xxpermdi2_le_<mode>): Likewise.
34348         (vsx_lxvd2x2_le_<mode>): Likewise.
34349         (vsx_stxvd2x2_le_<mode>): Likewise.
34350
34351 2014-06-06  Uros Bizjak  <ubizjak@gmail.com>
34352
34353         PR target/61423
34354         * config/i386/i386.md (*floatunssi<mode>2_i387_with_xmm): New
34355         define_insn_and_split pattern, merged from *floatunssi<mode>2_1
34356         and corresponding splitters.  Zero extend general register
34357         or memory input operand to XMM temporary.  Enable for
34358         TARGET_SSE2 and TARGET_INTER_UNIT_MOVES_TO_VEC only.
34359         (floatunssi<mode>2): Update expander predicate.
34360
34361 2014-06-06  Vladimir Makarov  <vmakarov@redhat.com>
34362
34363         PR rtl-optimization/61325
34364         * lra-constraints.c (process_address_1): Check scale equal to one
34365         to prevent transformation: base + scale * index => base + new_reg.
34366
34367 2014-06-06  Richard Biener  <rguenther@suse.de>
34368
34369         PR tree-optimization/59299
34370         * tree-ssa-sink.c (all_immediate_uses_same_place): Work on
34371         a def operand.
34372         (nearest_common_dominator_of_uses): Likewise.
34373         (statement_sink_location): Adjust.  Support sinking loads.
34374
34375 2014-06-06  Martin Jambor  <mjambor@suse.cz>
34376
34377         * ipa-prop.c (get_place_in_agg_contents_list): New function.
34378         (build_agg_jump_func_from_list): Likewise.
34379         (determine_known_aggregate_parts): Renamed to
34380         determine_locally_known_aggregate_parts.  Moved some functionality
34381         to the two functions above, removed bound checks.
34382
34383 2014-06-06  James Greenhalgh  <james.greenhalgh@arm.com>
34384
34385         * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
34386         * config/aarch64/aarch64.c (aarch64_move_pointer): New.
34387         (aarch64_progress_pointer): Likewise.
34388         (aarch64_copy_one_part_and_move_pointers): Likewise.
34389         (aarch64_expand_movmen): Likewise.
34390         * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
34391         * config/aarch64/aarch64.md (movmem<mode>): New.
34392
34393 2014-06-06  Bingfeng Mei  <bmei@broadcom.com>
34394
34395         * targhooks.c (default_add_stmt_cost): Call target specific
34396         hook instead of default one.
34397
34398 2014-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34399
34400         * ChangeLog (2014-05-23): Fix ChangeLog entry to refer to target
34401         endianness instead of host endianness.
34402         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Likewise in dumps and
34403         comments.
34404
34405 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34406
34407         PR debug/53927
34408         * function.c (instantiate_decls): Process the saved static chain.
34409         (expand_function_start): If not optimizing, save the static chain
34410         onto the stack.
34411         * tree-nested.c (convert_all_function_calls): Always create the static
34412         chain for nested functions if not optimizing.
34413
34414 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34415
34416         * tree-cfg.c (make_edges) <GIMPLE_RETURN>: Put a location on the edge.
34417
34418 2014-06-06  Richard Biener  <rguenther@suse.de>
34419
34420         * cfgexpand.c (expand_gimple_cond): Remove check for current_loops.
34421         (construct_init_block): Likewise.
34422         (construct_exit_block): Likewise.
34423         (pass_expand::execute): Likewise.
34424         * graphite.c (graphite_transforms): Replace check for current_loops
34425         with a check for > 1 loops.
34426         (pass_graphite_transforms::execute): Adjust.
34427         * ipa-split.c (split_function): Remove check for current_loops.
34428         * omp-low.c (expand_parallel_call): Likewise.
34429         (expand_omp_for_init_counts): Likewise.
34430         (extract_omp_for_update_vars): Likewise.
34431         (expand_omp_for_generic): Likewise.
34432         (expand_omp_sections): Likewise.
34433         (expand_omp_target): Likewise.
34434         * tracer.c (tail_duplicate): Likewise.
34435         (pass_tracer::execute): Likewise.
34436         * trans-mem.c (expand_transaction): Likewise.
34437         * tree-complex.c (expand_complex_div_wide): Likewise.
34438         * tree-eh.c (lower_resx): Likewise.
34439         (cleanup_empty_eh_merge_phis): Likewise.
34440         * tree-predcom.c (run_tree_predictive_commoning): Replace check for
34441         current_loops with a check for > 1 loops.
34442         (pass_predcom::execute): Adjust.
34443         * tree-scalar-evolution.c (scev_reset): Remove check for current_loops.
34444         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
34445         * tree-ssa-dom.c (pass_phi_only_cprop::execute): Likewise.
34446         * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
34447         * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise.
34448         * tree-switch-conversion.c (process_switch): Likewise.
34449         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
34450         * tree-vrp.c (vrp_visit_phi_node): Likewise.
34451         (execute_vrp): Likewise.
34452         * ubsan.c (ubsan_expand_null_ifn): Likewise.
34453
34454 2014-06-06  Eric Botcazou  <ebotcazou@adacore.com>
34455
34456         * rtl.h (insn_location): Declare.
34457         * cfgcleanup.c (try_forward_edges): Compare the locus of locations
34458         with UNKNOWN_LOCATION.
34459         * emit-rtl.c (insn_location): New function.
34460         * final.c (notice_source_line): Check that the instruction has a
34461         location before retrieving it and use insn_location.
34462         * modulo-sched.c (loop_single_full_bb_p): Likewise.
34463         * print-rtl.c (print_rtx): Likewise.
34464
34465 2014-06-06  Richard Biener  <rguenther@suse.de>
34466
34467         * passes.def: Move 2nd VRP pass before phi-only-cprop.
34468
34469 2014-06-06  Christian Bruel  <christian.bruel@st.com>
34470
34471         PR tree-optimization/43934
34472         * tree-ssa-loop-im.c (determine_max_movement): Add PHI def constant
34473         cost.
34474
34475 2014-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
34476
34477         * ira-lives.c (single_reg_class): Add missing break.  Explicitly
34478         return NO_REGS for extra address and memory constraints.  Handle
34479         operands that match (or are equivalent to something that matches)
34480         extra constant constraints.  Ignore other non-register operands.
34481
34482 2014-06-06  Alan Modra  <amodra@gmail.com>
34483
34484         PR target/61300
34485         * doc/tm.texi.in (INCOMING_REG_PARM_STACK_SPACE): Document.
34486         * doc/tm.texi: Regenerate.
34487         * function.c (INCOMING_REG_PARM_STACK_SPACE): Provide default.
34488         Use throughout in place of REG_PARM_STACK_SPACE.
34489         * config/rs6000/rs6000.c (rs6000_reg_parm_stack_space): Add
34490         "incoming" param.  Pass to rs6000_function_parms_need_stack.
34491         (rs6000_function_parms_need_stack): Add "incoming" param, ignore
34492         prototype_p when incoming.  Use function decl when incoming
34493         to handle K&R style functions.
34494         * config/rs6000/rs6000.h (REG_PARM_STACK_SPACE): Adjust.
34495         (INCOMING_REG_PARM_STACK_SPACE): Define.
34496
34497 2014-06-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
34498
34499         PR target/52472
34500         * cfgexpand.c (expand_debug_expr): Use address space of nested
34501         TREE_TYPE for ADDR_EXPR and MEM_REF.
34502
34503 2014-06-05  Jeff Law  <law@redhat.com>
34504
34505         PR tree-optimization/61289
34506         * tree-ssa-threadedge.c (invalidate_equivalences): Remove SRC_MAP and
34507         DST_MAP parameters.   Invalidate by walking all the SSA_NAME_VALUES
34508         looking for those which match LHS.  All callers changed.
34509         (record_temporary_equivalences_from_phis): Remove SRC_MAP and DST_MAP
34510         parameters and code which manipulated them.  All callers changed.
34511         (record_temporary_equivalences_from_stmts_at_dest): Remove SRC_MAP
34512         and DST_MAP parameters.  Simplify invalidation code by just calling
34513         invalidate_equivalences.  All callers changed.
34514         (thread_across_edge): Simplify now that we don't need to maintain
34515         the map of equivalences to invalidate.
34516
34517 2014-06-05  Kai Tietz  <ktietz@redhat.com>
34518             Richard Henderson  <rth@redhat.com>
34519
34520         PR target/46219
34521         * config/i386/predicates.md (memory_nox32_operand): Add memory_operand
34522         checking for !TARGET_X32.
34523         * config/i386/i386.md (UNSPEC_PEEPSIB): New unspec constant.
34524         (sibcall_intern): New define_insn, plus required peepholes.
34525         (sibcall_pop_intern): Likewise.
34526         (sibcall_value_intern): Likewise.
34527         (sibcall_value_pop_intern): Likewise.
34528
34529 2014-06-05  Ilya Enkovich  <ilya.enkovich@intel.com>
34530
34531         * tree-inline.c (tree_function_versioning): Check DF info existence
34532         before accessing it.
34533
34534 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34535
34536         * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
34537         frame_size.
34538         * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
34539         aarch64_frame hard_fp_offset and frame_size.
34540         (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
34541         frame_size; remove original_frame_size.
34542         (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
34543         (aarch64_initial_elimination_offset): Remove frame_size and
34544         offset.  Use aarch64_frame frame_size.
34545
34546 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34547             Jiong Wang  <jiong.wang@arm.com>
34548             Renlin  <renlin.li@arm.com>
34549
34550         * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
34551         initialization of R30 offset.  Update offset.  Iterate core
34552         regisers upto X30.  Remove X29, X30 specific code.
34553
34554 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34555             Jiong Wang  <jiong.wang@arm.com>
34556
34557         * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
34558         (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
34559         (aarch64_register_saved_on_entry): Adjust test.
34560
34561 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34562
34563         * config/aarch64/aarch64.h (machine_function): Move
34564         saved_varargs_size from here...
34565         (aarch64_frame): ... to here.
34566
34567         * config/aarch64/aarch64.c (aarch64_expand_prologue)
34568         (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
34569         (aarch64_initial_elimination_offset)
34570         (aarch64_setup_incoming_varargs): Adjust location of
34571         saved_varargs_size.
34572
34573 2014-06-05  Marcus Shawcroft  <marcus.shawcroft@arm.com>
34574
34575         * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
34576         layout comment.
34577
34578 2014-06-05  Jaydeep Patil  <Jaydeep.Patil@imgtec.com>
34579             Prachi Godbole  <Prachi.Godbole@imgtec.com>
34580
34581         * config/mips/mips-cpus.def: Add definition for p5600.  Updated
34582         mips32r5 entry to use PROCESSOR_P5600.
34583         * config/mips/mips-tables.opt: Regenerate.
34584         * config/mips/mips-protos.h (mips_fmadd_bypass): Add prototype.
34585         * config/mips/mips.c (mips_fmadd_bypass): New function.
34586         (mips_rtx_cost_data): Add costs for p5600.
34587         (mips_issue_rate): Add support for p5600.
34588         (mips_multipass_dfa_lookahead): Likewise.
34589         * config/mips/mips.h (TUNE_P5600): New define.
34590         (TUNE_MACC_CHAINS): Add TUNE_P5600.
34591         (MIPS_ISA_LEVEL_SPEC): Map -march=p5600 to -mips32r5.
34592         * config/mips/mips.md: Include p5600.md.
34593         (processor): Add p5600.
34594         * config/mips/p5600.md: New file.
34595
34596 2014-06-05  Evgeny Stupachenko  <evstupac@gmail.com>
34597
34598         * config/i386/sse.md (*ssse3_palignr<mode>_perm): New.
34599         * config/i386/predicates.md (palignr_operand): New.
34600         Indicates if permutation is suitable for palignr instruction.
34601
34602 2014-06-05  Yuri Rumyantsev  <ysrumyan@gmail.com>
34603
34604         PR tree-optimization/61319
34605         * tree-if-conv.c (is_cond_scalar_reduction): Add missed check that
34606         stmt belongs to loop.
34607
34608 2014-06-05  Richard Biener  <rguenther@suse.de>
34609
34610         * gimplify.c (create_tmp_from_val): Remove is_formal parameter
34611         and set DECL_GIMPLE_REG_P unconditionally if appropriate.
34612         (lookup_tmp_var): Adjust.
34613         (prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
34614
34615 2014-06-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
34616
34617         * config/arm/arm.md (enabled): Disable opt_enabled attribute.
34618
34619 2014-06-05  Marek Polacek  <polacek@redhat.com>
34620
34621         PR c/49706
34622         * doc/invoke.texi: Document -Wlogical-not-parentheses.
34623
34624 2014-06-04  Tom de Vries  <tom@codesourcery.com>
34625
34626         * config/s390/s390.md ("addptrdi3", "addptrsi3"): Use INTVAL only on
34627         CONST_INT.
34628
34629 2014-06-04  Marc Glisse  <marc.glisse@inria.fr>
34630
34631         PR tree-optimization/61385
34632         * tree-ssa-phiopt.c (value_replacement): Punt if there are PHI nodes.
34633
34634 2014-06-04  Bernd Schmidt  <bernds@codesourcery.com>
34635
34636         * lto-wrapper.c (fatal, fatal_perror): Remove functions.  All callers
34637         changed to use fatal_error.
34638         (main): Ensure lto_wrapper_cleanup is run atexit.
34639
34640 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34641
34642         * lra-constraints.c (valid_address_p): Move earlier in file.
34643         (address_eliminator): New structure.
34644         (satisfies_memory_constraint_p): New function.
34645         (satisfies_address_constraint_p): Likewise.
34646         (process_alt_operands, process_address, curr_insn_transform): Use them.
34647
34648 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34649
34650         * lra-int.h (lra_static_insn_data): Make operand_alternative a
34651         const pointer.
34652         (target_lra_int, default_target_lra_int, this_target_lra_int)
34653         (op_alt_data): Delete.
34654         * lra.h (lra_init): Delete.
34655         * lra.c (default_target_lra_int, this_target_lra_int): Delete.
34656         (init_insn_code_data_once): Remove op_alt_data handling.
34657         (finish_insn_code_data_once): Likewise.
34658         (init_op_alt_data): Delete.
34659         (get_static_insn_data): Initialize operand_alternative to null.
34660         (free_insn_recog_data): Cast operand_alternative before freeing it.
34661         (setup_operand_alternative): Take the operand_alternative as
34662         parameter and assume it isn't already cached in the static
34663         insn data.
34664         (lra_set_insn_recog_data): Update accordingly.
34665         (lra_init): Delete.
34666         * ira.c (ira_init): Don't call lra_init.
34667         * target-globals.h (this_target_lra_int): Declare.
34668         (target_globals): Remove lra_int.
34669         (restore_target_globals): Update accordingly.
34670         * target-globals.c: Don't include lra-int.h.
34671         (default_target_globals, save_target_globals): Remove lra_int.
34672
34673 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34674
34675         * recog.h (operand_alternative): Convert reg_class, reject,
34676         matched and matches into bitfields.
34677         (preprocess_constraints): New overload.
34678         (preprocess_insn_constraints): New function.
34679         (preprocess_constraints): Take the insn as parameter.
34680         (recog_op_alt): Change into a pointer.
34681         (target_recog): Add x_op_alt.
34682         * recog.c (asm_op_alt): New variable.
34683         (recog_op_alt): Change into a pointer.
34684         (preprocess_constraints): New overload, replacing the old function
34685         definition with one that doesn't use global state.
34686         (preprocess_insn_constraints): New function.
34687         (preprocess_constraints): Use them.  Take the insn as parameter.
34688         Use asm_op_alt for asms.
34689         (recog_init): Free existing x_op_alt entries.
34690         * ira-lives.c (check_and_make_def_conflict): Make operand_alternative
34691         pointer const.
34692         (make_early_clobber_and_input_conflicts): Likewise.
34693         (process_bb_node_lives): Pass the insn to process_constraints.
34694         * reg-stack.c (check_asm_stack_operands): Likewise.
34695         (subst_asm_stack_regs): Likewise.
34696         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34697         * regrename.c (build_def_use): Likewise.
34698         * sched-deps.c (sched_analyze_insn): Likewise.
34699         * sel-sched.c (get_reg_class, implicit_clobber_conflict_p): Likewise.
34700         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
34701         (note_invalid_constants): Likewise.
34702         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34703         (ix86_legitimate_combined_insn): Make operand_alternative pointer
34704         const.
34705
34706 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34707
34708         * recog.c (preprocess_constraints): Don't skip disabled alternatives.
34709         * ira-lives.c (check_and_make_def_conflict): Check for disabled
34710         alternatives.
34711         (make_early_clobber_and_input_conflicts): Likewise.
34712         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34713
34714 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34715
34716         * recog.h (alternative_class): New function.
34717         (which_op_alt): Return a const recog_op_alt.
34718         * reg-stack.c (check_asm_stack_operands): Update type accordingly.
34719         (subst_asm_stack_regs): Likewise.
34720         * config/arm/arm.c (note_invalid_constants): Likewise.
34721         * regcprop.c (copyprop_hardreg_forward_1): Likewise.  Don't modify
34722         the operand_alternative; use alternative class instead.
34723         * sel-sched.c (get_reg_class): Likewise.
34724         * regrename.c (build_def_use): Likewise.
34725         (hide_operands, restore_operands, record_out_operands): Update type
34726         accordingly.
34727
34728 2014-06-04  Richard Sandiford  <rdsandiford@googlemail.com>
34729
34730         * recog.h (recog_op_alt): Convert to a flat array.
34731         (which_op_alt): New function.
34732         * recog.c (recog_op_alt): Convert to a flat array.
34733         (preprocess_constraints): Update accordingly, grouping all
34734         operands of the same alternative together, rather than the
34735         other way around.
34736         * ira-lives.c (check_and_make_def_conflict): Likewise.
34737         (make_early_clobber_and_input_conflicts): Likewise.
34738         * config/i386/i386.c (ix86_legitimate_combined_insn): Likewise.
34739         * reg-stack.c (check_asm_stack_operands): Use which_op_alt.
34740         (subst_asm_stack_regs): Likewise.
34741         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
34742         * regrename.c (hide_operands, record_out_operands): Likewise.
34743         (build_def_use): Likewise.
34744         * sel-sched.c (get_reg_class): Likewise.
34745         * config/arm/arm.c (note_invalid_constants): Likewise.
34746
34747 2014-06-04  Jason Merrill  <jason@redhat.com>
34748
34749         PR c++/51253
34750         PR c++/61382
34751         * gimplify.c (gimplify_arg): Non-static.
34752         * gimplify.h: Declare it.
34753
34754 2014-06-04  Richard Biener  <rguenther@suse.de>
34755
34756         * tree.h (may_be_aliased): Trust TREE_ADDRESSABLE from
34757         TREE_PUBLIC and DECL_EXTERNAL decls.
34758
34759 2014-06-04  Matthew Fortune  <matthew.fortune@imgtec.com>
34760
34761         * regcprop.c (copyprop_hardreg_forward_1): Account for
34762         HARD_REGNO_CALL_PART_CLOBBERED.
34763
34764 2014-06-04  Richard Biener  <rguenther@suse.de>
34765
34766         * configure.ac: Check whether the underlying type of int64_t
34767         is long or long long.
34768         * configure: Regenerate.
34769         * config.in: Likewise.
34770         * hwint.h (HOST_WIDE_INT): Match the underlying type of int64_t.
34771         (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
34772
34773 2014-06-04  Richard Biener  <rguenther@suse.de>
34774
34775         PR tree-optimization/60098
34776         * tree-ssa-dse.c (dse_possible_dead_store_p): Walk until
34777         we hit a kill.
34778         (dse_optimize_stmt): Simplify, now that we found a kill
34779         earlier.
34780
34781 2014-06-04  Richard Biener  <rguenther@suse.de>
34782
34783         * tree-ssa-alias.c (stmt_may_clobber_ref_p): Improve handling
34784         of accesses with non-invariant address.
34785
34786 2014-06-04  Martin Liska  <mliska@suse.cz>
34787
34788         * cgraph.h (cgraph_make_wrapper): New function introduced.
34789         * cgraphunit.c (cgraph_make_wrapper): The function implementation.
34790         * ipa-inline.h (inline_analyze_function): The function is global.
34791         * ipa-inline-analysis.c (inline_analyze_function): Likewise.
34792
34793 2014-06-04  Martin Liska  <mliska@suse.cz>
34794
34795         * tree.h (private_lookup_attribute_starting): New function.
34796         (lookup_attribute_starting): Likewise.
34797         * tree.c (private_lookup_attribute_starting): Likewise.
34798
34799 2014-06-04  Martin Liska  <mliska@suse.cz>
34800
34801         * cgraph.h (expand_thunk): New argument added.
34802         (address_taken_from_non_vtable_p): New global function.
34803         * ipa-visibility.c (address_taken_from_non_vtable_p): Likewise.
34804         * cgraphclones.c (duplicate_thunk_for_node): Argument added to call.
34805         * cgraphunit.c (analyze_function): Likewise.
34806         (assemble_thunks_and_aliases): Argument added to call.
34807         (expand_thunk): New argument forces to produce GIMPLE thunk.
34808
34809 2014-06-04  Martin Liska  <mliska@suse.cz>
34810
34811         * coverage.h (coverage_compute_cfg_checksum): Argument added.
34812         * coverage.c (coverage_compute_cfg_checksum): Likewise.
34813         * profile.c (branch_prob): Likewise.
34814
34815 2014-06-04  Martin Jambor  <mjambor@suse.cz>
34816
34817         PR ipa/61340
34818         * ipa-pure-const.c (propagate_pure_const): Add unreachable default
34819         handler for switch on an ipa_ref_use enum.
34820         * ipa-reference.c (analyze_function): Likewise.
34821
34822 2014-06-04  Kai Tietz  <ktietz@redhat.com>
34823
34824         * recog.c (peep2_attempt): Copy SIBLING_CALL_P flag
34825         from old call-instruction.
34826
34827 2014-06-04  Bin Cheng  <bin.cheng@arm.com>
34828
34829         * config/aarch64/aarch64.c (aarch64_classify_address)
34830         (aarch64_legitimize_reload_address): Support full addressing modes
34831         for vector modes.
34832         * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
34833         (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
34834
34835 2014-06-03  Andrew Pinski  <apinski@cavium.com>
34836
34837         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non comparisons
34838         for OP0.
34839
34840 2014-06-03  Andrew Pinski  <apinski@cavium.com>
34841
34842         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
34843         (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
34844
34845 2014-06-03  Kai Tietz  <ktietz@redhat.com>
34846
34847         * config/i386/i386.c (ix86_function_value_regno_p): Disallow DX_REG
34848         for 64-bit ms-abi.
34849
34850 2014-06-03  Dehao Chen  <dehao@google.com>
34851
34852         * tree-cfg.c (gimple_merge_blocks): Only reset count when BBs are in
34853         the same loop.
34854
34855 2014-06-03  Marek Polacek  <polacek@redhat.com>
34856
34857         PR c/60439
34858         * doc/invoke.texi: Document -Wswitch-bool.
34859         * function.c (stack_protect_epilogue): Cast controlling expression of
34860         the switch to int.
34861         * gengtype.c (walk_type): Generate switch expression with its
34862         controlling expression cast to int.
34863
34864 2014-06-03  Vishnu K S  <Vishnu.k_s@atmel.com>
34865
34866         * config/avr/avr-mcus.def: Add new avr25 devices attiny441, attiny828
34867         and attiny841.
34868         * config/avr/avr-tables.opt: Regenerate.
34869         * config/avr/t-multilib: Regenerate.
34870         * doc/avr-mmcu.texi: Regenerate.
34871
34872 2014-06-03  Vishnu K S  <vishnu.k_s@atmel.com>
34873             Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
34874
34875         * config/avr/avr-mcus.def (ata6616c): Add new avr25 device.
34876         (ata6617c, ata664251): Add new avr35 devices.
34877         (ata6612c): Add new avr4 device.
34878         (ata6613c, ata6614q): Add new avr5 devices.
34879         * config/avr/avr-tables.opt: Regenerate.
34880         * config/avr/t-multilib: Regenerate.
34881         * doc/avr-mmcu.texi: Regenerate.
34882
34883 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34884
34885         * gcc/config/aarch64/aarch64-builtins.c
34886         (aarch64_types_binop_ssu_qualifiers): New static data.
34887         (TYPES_BINOP_SSU): Define.
34888         * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
34889         urshr_n, ushll_n): Use appropriate unsigned qualifiers.
34890         * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
34891         vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
34892         vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8,
34893         vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
34894         vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32,
34895         vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64,
34896         vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
34897         suffix to builtin function name, remove cast.
34898         (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
34899         vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8,
34900         vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
34901
34902 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34903
34904         * gcc/config/aarch64/aarch64-builtins.c
34905         (aarch64_types_binop_uus_qualifiers,
34906         aarch64_types_shift_to_unsigned_qualifiers,
34907         aarch64_types_unsigned_shiftacc_qualifiers): Define.
34908         * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
34909         uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
34910         sqshlu_n, uqshl_n): Update qualifiers.
34911         * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
34912         vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
34913         vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
34914         vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
34915         vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
34916         vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
34917         vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
34918         vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
34919         vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
34920         vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
34921         vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
34922         vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
34923         vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
34924         vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
34925         vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
34926         vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
34927         vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
34928         vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
34929         vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
34930         vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
34931         vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
34932         vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
34933         vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
34934         vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
34935         vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
34936         vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
34937         vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
34938
34939 2014-06-03  Teresa Johnson  <tejohnson@google.com>
34940
34941         * tree-sra.c (modify_function): Record caller nodes after rebuild.
34942
34943 2014-06-02  Jason Merrill  <jason@redhat.com>
34944
34945         PR c++/61020
34946         * varpool.c (ctor_for_folding): Handle uninitialized vtables.
34947
34948 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34949
34950         * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
34951         location == 0.
34952
34953 2014-06-03  Alan Lawrence  <alan.lawrence@arm.com>
34954
34955         * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
34956         New pattern.
34957         * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
34958         (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
34959         * config/aarch64/iterators.md (REVERSE): New iterator.
34960         (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
34961         (rev_op): New int_attribute.
34962         * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
34963         vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
34964         vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
34965         vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
34966         vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
34967         vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
34968         vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
34969         Replace temporary __asm__ with __builtin_shuffle.
34970
34971 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
34972
34973         * config/mips/mips-cpus.def: Add mips32r3, mips32r5, mips64r3 and
34974         mips64r5.
34975         * config/mips/mips-tables.opt: Regenerate.
34976         * config/mips/mips.c (mips_compute_frame_info): Changed if statement
34977         to use mips_isa_rev rather than ISA_MIPS32R2.
34978         * config/mips/mips.h (ISA_MIPS32R3): New define.
34979         (ISA_MIPS32R5): New define.
34980         (ISA_MIPS64R3): New define.
34981         (ISA_MIPS64R5): New define.
34982         (TARGET_CPU_CPP_BUILTINS): Added support for ISA_MIPS32R3,
34983         ISA_MIPS32R5, ISA_MIPS64R3 and ISA_MIPS64R5.
34984         (MIPS_ISA_LEVEL_SPEC): Added support for mips32r3, mips32r5, mips64r3
34985         and mips64r5.
34986         (MIPS_ISA_SYNCI_SPEC): Likewise.
34987         (ISA_HAS_64BIT_REGS): Added ISA_MIPS64R3 and ISA_MIPS64R5.
34988         (LINK_SPEC): Added mips32r3 and mips32r5.
34989         * config/mips/t-isa3264 (MULTILIB_MATCHES): Map mips32r3 and mips32r5
34990         to mips32r2; and mips64r3 and mips64r5 to mips64r2.
34991         * config/mips/t-mti-elf (MULTILIB_MATCHES): Likewise.
34992         * config/mips/t-mti-linux (MULTILIB_MATCHES): Likewise.
34993         * config/mips/t-sde (MULTILIB_MATCHES): Likewise.
34994         * config/mips/t-sdemtk (MULTILIB_MATCHES): New define.
34995         * doc/invoke.texi: Document mips32r3, mips32r5, mips64r3 and mips64r5.
34996
34997 2014-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
34998
34999         * doc/invoke.texi: Document -mxpa and -mno-xpa MIPS command line
35000         options.
35001         * config/mips/mips.opt (mxpa): New option.
35002         * config/mips/mips.h (ASM_SPEC): Pass mxpa and mno-xpa to the
35003         assembler.
35004
35005 2014-06-03  Martin Jambor  <mjambor@suse.cz>
35006
35007         PR ipa/61160
35008         * ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
35009         thunks.
35010
35011 2014-06-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35012
35013         PR tree-optimization/61328
35014         * tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
35015         initialization from find_bswap_or_nop_1.
35016         (find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
35017         in source_expr2 before using the size value the function sets. Also
35018         make use of init_symbolic_number () in both the old place and
35019         find_bswap_or_nop_load () to avoid reading uninitialized memory when
35020         doing recursion in the GIMPLE_BINARY_RHS case.
35021
35022 2014-06-03  Richard Biener  <rguenther@suse.de>
35023
35024         PR tree-optimization/61383
35025         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
35026         stmts can't trap.
35027
35028 2014-06-03  Richard Sandiford  <rdsandiford@googlemail.com>
35029
35030         * defaults.h (USE_MD_CONSTRAINTS, EXTRA_MEMORY_CONSTRAINT)
35031         (EXTRA_ADDRESS_CONSTRAINT, DEFAULT_CONSTRAINT_LEN, CONSTRAINT_LEN)
35032         (CONST_OK_FOR_CONSTRAINT_P, CONST_DOUBLE_OK_FOR_LETTER_P)
35033         (REG_CLASS_FROM_CONSTRAINT, EXTRA_CONSTRAINT_STR): Delete definitions
35034         in this file.
35035         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
35036         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Move poising to...
35037         * system.h: ...here and make it unconditional.
35038         * target.def (conditional_register_usage): Mention
35039         define_register_constraint instead of old-style constraint macros.
35040         * doc/tm.texi.in: Remove documentation for old-style constraint macros.
35041         * doc/tm.texi: Regenerate.
35042         * genoutput.c: Remove USE_MD_CONSTRAINTS conditions and all code
35043         protected by !USE_MD_CONSTRAINTS.
35044         * config/frv/frv.md: Remove quote from old version of documentation.
35045         * config/frv/frv.c (frv_conditional_register_usage): Likewise.
35046         * config/m32r/m32r.c (easy_di_const, easy_df_const): Avoid mentioning
35047         CONST_DOUBLE_OK_FOR_LETTER.
35048         * config/sh/constraints.md: Likewise EXTRA_CONSTRAINT.
35049
35050 2014-06-02  Andrew Pinski  <apinski@cavium.com>
35051
35052         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
35053         /lib/ld-linux32-aarch64.so.1 is used for ILP32.
35054         (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
35055         file whose name depends on -mabi= and -mbig-endian.
35056         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES):
35057         Handle LP64 better and handle ilp32 too.
35058         (MULTILIB_OPTIONS): Delete.
35059         (MULTILIB_DIRNAMES): Delete.
35060
35061 2014-06-02  Andrew MacLeod  <amacleod@redhat.com>
35062
35063         * expr.h: Remove prototypes of functions defined in builtins.c.
35064         * tree.h: (build_call_expr_*, build_string_literal): Add prototypes.
35065         Remove prototypes of functions defined in builtins.c.
35066         * builtins.h: Update prototype list to include all exported functions.
35067         * builtins.c: (default_libc_has_function, gnu_libc_has_function,
35068         no_c99_libc_has_function): Move to targhooks.c
35069         (build_string_literal, build_call_expr_loc_array,
35070         build_call_expr_loc_vec, build_call_expr_loc, build_call_expr): Move
35071         to tree.c.
35072         (expand_builtin_object_size, fold_builtin_object_size): Make static.
35073         * targhooks.c (default_libc_has_function, gnu_libc_has_function,
35074         no_c99_libc_has_function): Relocate from builtins.c.
35075         * tree.c: Include builtins.h.
35076         (build_call_expr_loc_array, build_call_expr_loc_vec,
35077         build_call_expr_loc, build_call_expr, build_string_literal): Relocate
35078         from builtins.c.
35079         * fold-const.h (fold_fma): Move prototype to builtins.h.
35080         * realmpfr.h (do_mpc_arg2): Move prototype to builtins.h.
35081         * asan.c: Include builtins.h.
35082         * cfgexpand.c: Likewise.
35083         * convert.c: Likewise.
35084         * emit-rtl.c: Likewise.
35085         * except.c: Likewise.
35086         * expr.c: Likewise.
35087         * fold-const.c: Likewise.
35088         * gimple-fold.c: Likewise.
35089         * gimple-ssa-strength-reduction.c: Likewise.
35090         * gimplify.c: Likewise.
35091         * ipa-inline.c: Likewise.
35092         * ipa-prop.c: Likewise.
35093         * lto-streamer-out.c: Likewise.
35094         * stmt.c: Likewise.
35095         * tree-inline.c: Likewise.
35096         * tree-object-size.c: Likewise.
35097         * tree-sra.c: Likewise.
35098         * tree-ssa-ccp.c: Likewise.
35099         * tree-ssa-forwprop.c: Likewise.
35100         * tree-ssa-loop-ivcanon.c: Likewise.
35101         * tree-ssa-loop-ivopts.c: Likewise.
35102         * tree-ssa-math-opts.c: Likewise.
35103         * tree-ssa-reassoc.c: Likewise.
35104         * tree-ssa-threadedge.c: Likewise.
35105         * tree-streamer-in.c: Likewise.
35106         * tree-vect-data-refs.c: Likewise.
35107         * tree-vect-patterns.c: Likewise.
35108         * tree-vect-stmts.c: Likewise.
35109         * config/aarch64/aarch64.c: Likewise.
35110         * config/alpha/alpha.c: Likewise.
35111         * config/arc/arc.c: Likewise.
35112         * config/arm/arm.c: Likewise.
35113         * config/avr/avr.c: Likewise.
35114         * config/bfin/bfin.c: Likewise.
35115         * config/c6x/c6x.c: Likewise.
35116         * config/cr16/cr16.c: Likewise.
35117         * config/cris/cris.c: Likewise.
35118         * config/epiphany/epiphany.c: Likewise.
35119         * config/fr30/fr30.c: Likewise.
35120         * config/frv/frv.c: Likewise.
35121         * config/h8300/h8300.c: Likewise.
35122         * config/i386/i386.c: Likewise.
35123         * config/i386/winnt.c: Likewise.
35124         * config/ia64/ia64.c: Likewise.
35125         * config/iq2000/iq2000.c: Likewise.
35126         * config/lm32/lm32.c: Likewise.
35127         * config/m32c/m32c.c: Likewise.
35128         * config/m32r/m32r.c: Likewise.
35129         * config/m68k/m68k.c: Likewise.
35130         * config/mcore/mcore.c: Likewise.
35131         * config/mep/mep.c: Likewise.
35132         * config/microblaze/microblaze.c: Likewise.
35133         * config/mips/mips.c: Likewise.
35134         * config/mmix/mmix.c: Likewise.
35135         * config/mn10300/mn10300.c: Likewise.
35136         * config/moxie/moxie.c: Likewise.
35137         * config/msp430/msp430.c: Likewise.
35138         * config/nds32/nds32.c: Likewise.
35139         * config/pa/pa.c: Likewise.
35140         * config/pdp11/pdp11.c: Likewise.
35141         * config/picochip/picochip.c: Likewise.
35142         * config/rl78/rl78.c: Likewise.
35143         * config/rs6000/rs6000.c: Likewise.
35144         * config/rx/rx.c: Likewise.
35145         * config/s390/s390.c: Likewise.
35146         * config/score/score.c: Likewise.
35147         * config/sh/sh.c: Likewise.
35148         * config/sparc/sparc.c: Likewise.
35149         * config/spu/spu.c: Likewise.
35150         * config/stormy16/stormy16.c: Likewise.
35151         * config/tilegx/tilegx.c: Likewise.
35152         * config/tilepro/tilepro.c: Likewise.
35153         * config/v850/v850.c: Likewise.
35154         * config/vax/vax.c: Likewise.
35155         * config/xtensa/xtensa.c: Likewise.
35156
35157 2014-06-02  Jeff Law  <law@redhat.com>
35158
35159         PR rtl-optimization/61094
35160         * ree.c (combine_reaching_defs): Do not reextend an insn if it
35161         was marked as do_no_reextend.  If a copy is needed to eliminate
35162         an extension, then mark it as do_not_reextend.
35163
35164 2014-06-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
35165
35166         * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
35167
35168 2014-06-02  Richard Henderson  <rth@redhat.com>
35169
35170         PR target/61336
35171         * config/alpha/alpha.c (print_operand_address): Allow symbolic
35172         addresses inside asms.  Use output_operand_lossage instead of
35173         gcc_unreachable.
35174
35175 2014-06-02  Uros Bizjak  <ubizjak@gmail.com>
35176
35177         PR target/61239
35178         * config/i386/i386.c (ix86_expand_vec_perm) [case V32QImode]: Use
35179         GEN_INT (-128) instead of GEN_INT (128) to set MSB of QImode constant.
35180
35181 2014-06-02  Tom de Vries  <tom@codesourcery.com>
35182
35183         * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Handle
35184         case that x has VOIDmode.
35185
35186 2014-06-02  Bernd Schmidt  <bernds@codesourcery.com>
35187
35188         * varasm.c (copy_constant): Delete function.
35189         (build_constant_desc): Don't call it.
35190
35191 2014-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
35192
35193         PR target/61154
35194         * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
35195         * config/arm/arm.md (mov64 splitter): Replace const_double_operand
35196         with immediate_operand.
35197
35198 2014-06-02  Andreas Schwab  <schwab@suse.de>
35199
35200         * config/ia64/ia64.c
35201         (ia64_first_cycle_multipass_dfa_lookahead_guard): Check
35202         pending_data_specs first.
35203
35204 2014-06-02  Richard Biener  <rguenther@suse.de>
35205
35206         PR tree-optimization/61378
35207         * tree-ssa-sccvn.c (vn_reference_lookup_3): Initialize
35208         valueized_anything.
35209
35210 2014-06-01  Uros Bizjak  <ubizjak@gmail.com>
35211
35212         * config/i386/constraints.md (Bw): Rename from 'w'.
35213         (Bz): Rename from 'z'.
35214         * config/i386/i386.md: Change 'w' to 'Bw' and 'z' to 'Bz' globally.
35215
35216 2014-06-01  Kai Tietz  <ktietz@redhat.com>
35217
35218         PR target/61377
35219         * config/i386/constrains.md (define_constrain): New 'Bs' constraint.
35220         * config/i386/i386.md (sibcall_insn_operand): Use Bs
35221         instead of m constraint.
35222
35223 2014-05-31  Andreas Schwab  <schwab@linux-m68k.org>
35224
35225         * config/m68k/m68k.md (beq0_di, bne0_di): Make the "o" constraint
35226         a separate alternative where the scratch operand 2 is marked as
35227         early clobber.
35228
35229 2014-05-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
35230
35231         * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
35232         (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
35233         (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
35234         and __builtins_arm_get_fpscr.
35235         (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
35236         __builtins_arm_get_fpscr.
35237         (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
35238         __builtins_arm_ldfpscr.
35239         (arm_atomic_assign_expand_fenv): New function.
35240         * config/arm/vfp.md (set_fpscr): New pattern.
35241         (get_fpscr) : Likewise.
35242         * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
35243         VUNSPEC_SET_FPSCR.
35244         * doc/extend.texi (AARCH64 Built-in Functions) : Document
35245         __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
35246
35247 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
35248
35249         * asan.c (report_error_func): Add SLOW_P argument, use
35250         BUILT_IN_ASAN_*_N if set.
35251         (build_check_stmt): Likewise.
35252         (instrument_derefs): If T has insufficient alignment,
35253         force same handling as for odd sizes.
35254
35255         * sanitizer.def (BUILT_IN_ASAN_REPORT_LOAD_N,
35256         BUILT_IN_ASAN_REPORT_STORE_N): New.
35257         * asan.c (struct asan_mem_ref): Change access_size type to
35258         HOST_WIDE_INT.
35259         (asan_mem_ref_init, asan_mem_ref_new, get_mem_refs_of_builtin_call,
35260         update_mem_ref_hash_table): Likewise.
35261         (asan_mem_ref_hasher::hash): Hash in a HWI.
35262         (report_error_func): Change size_in_bytes argument to HWI.
35263         Use *_N builtins if size_in_bytes is larger than 16 or not power of
35264         two.
35265         (build_shadow_mem_access): New function.
35266         (build_check_stmt): Use it.  Change size_in_bytes argument to HWI.
35267         Handle size_in_bytes not power of two or larger than 16.
35268         (instrument_derefs): Don't give up if size_in_bytes is not
35269         power of two or is larger than 16.
35270
35271 2014-05-30  Kai Tietz  <ktietz@redhat.com>
35272
35273         PR target/60104
35274         * config/i386/i386.c (x86_output_mi_thunk): Add memory case
35275         for sibling-tail-calls.
35276         * config/i386/i386.md (sibcall_insn_operand): Add memory-constrain
35277         to its use.
35278         * config/i386/predicates.md (sibcall_memory_operand): New predicate.
35279         (sibcall_insn_operand): Add check for sibcall_memory_operand.
35280
35281 2014-05-30  Pitchumani Sivanupandi <pitchumani.s@atmel.com>
35282
35283         * config/avr/avr-mcus.def: Change ATA6289 ISA to AVR4
35284         * config/avr/avr-tables.opt: Regenerate.
35285         * config/avr/t-multilib: Regenerate.
35286         * doc/avr-mmcu.texi: Regenerate.
35287
35288 2014-05-30  Ian Lance Taylor  <iant@google.com>
35289
35290         * config/i386/xmmintrin.h (_mm_pause): Move out of scope of pragma
35291         target("sse").
35292
35293 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35294
35295         * config/i386/i386.c (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS):
35296         Redefine as true.
35297
35298 2014-05-30  Tom de Vries  <tom@codesourcery.com>
35299
35300         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35301         * lra.c (initialize_lra_reg_info_element): Add init of
35302         actual_call_used_reg_set field.
35303         (lra): Call lra_create_live_ranges before lra_inheritance for
35304         -fuse-caller-save.
35305         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35306         -fuse-caller-save.
35307         * lra-constraints.c (need_for_call_save_p): Use actual_call_used_reg_set
35308         instead of call_used_reg_set for -fuse-caller-save.
35309         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35310
35311 2014-05-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35312
35313         * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
35314         to mov_imm.
35315         * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
35316
35317 2014-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
35318
35319         * ira.c (ira_get_dup_out_num): Check for output operands at
35320         the start of the loop.  Handle cases where an included alternative
35321         follows an excluded one.
35322
35323 2014-05-29  Mike Stump  <mikestump@comcast.net>
35324
35325         PR debug/61352
35326         * collect2.c (maybe_run_lto_and_relink): Be sure to always run
35327         post ld passes when lto is used.
35328
35329 2014-05-29  Vladimir Makarov  <vmakarov@redhat.com>
35330
35331         PR rtl-optimization/61325
35332         * lra-constraints.c (process_address): Rename to process_address_1.
35333         (process_address): New function.
35334
35335 2014-05-29  Alan Lawrence  <alan.lawrence@arm.com>
35336
35337         * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
35338         TYPES_BINOPV): New static data.
35339         * config/aarch64/aarch64-simd-builtins.def (im_lane_bound):
35340         New builtin.
35341         * config/aarch64/aarch64-simd.md (aarch64_ext,
35342         aarch64_im_lane_boundsi): New patterns.
35343         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
35344         patterns for EXT.
35345         (aarch64_evpc_ext): New function.
35346
35347         * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
35348
35349         * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
35350         vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
35351         vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
35352         vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
35353         vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
35354
35355 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35356
35357         * rtl.h (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_FLAGS.
35358
35359 2014-05-29  Richard Earnshaw <rearnsha@arm.com>
35360             Richard Sandiford  <rdsandiford@googlemail.com>
35361
35362         * arm/iterators.md (shiftable_ops): New code iterator.
35363         (t2_binop0, arith_shift_insn): New code attributes.
35364         * arm/predicates.md (shift_nomul_operator): New predicate.
35365         * arm/arm.md (insn_enabled): Delete.
35366         (enabled): Remove insn_enabled test.
35367         (*arith_shiftsi): Delete.  Replace with ...
35368         (*<arith_shift_insn>_multsi): ... new pattern.
35369         (*<arith_shift_insn>_shiftsi): ... new pattern.
35370         * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
35371
35372 2014-05-29  Radovan Obradovic  <robradovic@mips.com>
35373             Tom de Vries  <tom@codesourcery.com>
35374
35375         * config/mips/mips.h (POST_CALL_TMP_REG): Define.
35376         * config/mips/mips.c (mips_emit_call_insn): Add POST_CALL_TMP_REG
35377         clobber.
35378         (mips_split_call): Use POST_CALL_TMP_REG.
35379         (TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): Redefine to true.
35380
35381 2014-05-29  Tom de Vries  <tom@codesourcery.com>
35382
35383         * final.c (collect_fn_hard_reg_usage): Guard variable declaration
35384         with #ifdef STACK_REGS.
35385
35386 2014-05-28  Jan Hubicka  <hubicka@ucw.cz>
35387
35388         * varasm.c (get_variable_section): Walk aliases.
35389         (place_block_symbol): Walk aliases.
35390
35391 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35392
35393         Revert:
35394         2014-05-28  Tom de Vries  <tom@codesourcery.com>
35395
35396         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35397         * lra.c (initialize_lra_reg_info_element): Add init of
35398         actual_call_used_reg_set field.
35399         (lra): Call lra_create_live_ranges before lra_inheritance for
35400         -fuse-caller-save.
35401         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35402         -fuse-caller-save.
35403         * lra-constraints.c (need_for_call_save_p): Use
35404         actual_call_used_reg_set instead of call_used_reg_set for
35405         -fuse-caller-save.
35406         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35407
35408 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35409
35410         * doc/md.texi: Document that the % constraint character must
35411         be at the beginning of the string.
35412         * genoutput.c (validate_insn_alternatives): Check that '=',
35413         '+' and '%' only appear at the beginning of a constraint.
35414         * ira.c (commutative_constraint_p): Delete.
35415         (ira_get_dup_out_num): Expect the '%' commutativity marker to be
35416         at the start of the string.
35417         * config/alpha/alpha.md (*movmemdi_1, *clrmemdi_1): Remove
35418         duplicate '='s.
35419         * config/arm/neon.md (bicdi3_neon): Likewise.
35420         * config/iq2000/iq2000.md (addsi3_internal, subsi3_internal, sgt_si)
35421         (slt_si, sltu_si): Likewise.
35422         * config/vax/vax.md (sbcdi3): Likewise.
35423         * config/h8300/h8300.md (*cmpstz): Remove duplicate '+'.
35424         * config/arc/arc.md (mulsi_600, mulsidi_600, umulsidi_600)
35425         (mul64): Move '%' to beginning of constraint.
35426         * config/arm/arm.md (*xordi3_insn): Likewise.
35427         * config/nds32/nds32.md (add<mode>3, mulsi3, andsi3, iorsi3)
35428         (xorsi3): Likewise.
35429
35430 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35431
35432         * doc/md.texi: Document the restrictions on the "enabled" attribute.
35433
35434 2014-05-28  Jason Merrill  <jason@redhat.com>
35435
35436         PR c++/47202
35437         * cgraph.h (symtab_node::get_comdat_group_id): New.
35438         * cgraphunit.c (analyze_functions): Call it.
35439         * symtab.c (dump_symtab_node): Likewise.
35440         * tree.c (decl_comdat_group_id): New.
35441         * tree.h: Declare it.
35442         * lto-streamer-out.c (write_symbol): Use it.
35443         * trans-mem.c (ipa_tm_create_version_alias): Likewise.
35444
35445 2014-05-28  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
35446
35447         PR bootstrap/PR61146
35448         * wide-int.cc: Do not include longlong.h when compiling with clang.
35449
35450 2014-05-28  Richard Biener  <rguenther@suse.de>
35451
35452         * tree-ssa-propagate.c (add_control_edge): Print less vertical space.
35453         * tree-vrp.c (extract_range_from_ssa_name): Also copy VR_UNDEFINED.
35454         (vrp_visit_assignment_or_call): Print less vertical space.
35455         (vrp_visit_stmt): Likewise.
35456         (vrp_visit_phi_node): Likewise.  For a PHI argument with
35457         VR_VARYING range consider recording it as copy.
35458
35459 2014-05-28  Richard Biener  <rguenther@suse.de>
35460
35461         Revert
35462         2014-05-28  Richard Biener  <rguenther@suse.de>
35463
35464         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35465
35466 2014-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35467
35468         * expr.c (expand_assignment): Fold the bitpos in the to_rtx if
35469         sufficiently aligned and an offset is used at the same time.
35470         (expand_expr_real_1): Likewise.
35471
35472 2014-05-28  Richard Biener  <rguenther@suse.de>
35473
35474         PR middle-end/61045
35475         * fold-const.c (fold_comparison): When folding
35476         X +- C1 CMP Y +- C2 to X CMP Y +- C2 +- C1 also ensure
35477         the sign of the remaining constant operand stays the same.
35478
35479 2014-05-28  Kaushik Phatak  <kaushik.phatak@kpit.com>
35480
35481         * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
35482         __RL78_64BIT_DOUBLES__ or __RL78_32BIT_DOUBLES__.
35483         (ASM_SPEC): Pass -m64bit-doubles or -m32bit-doubles on
35484         to the assembler.
35485         (DOUBLE_TYPE_SIZE): Use 64 bit if TARGET_64BIT_DOUBLES is true.
35486         * gcc/config/rl78/rl78.opt (m64bit-doubles): New option.
35487         (m32bit-doubles) Likewise.
35488         * gcc/config/rl78/t-rl78: Add 64-bit-double multilib.
35489         * doc/invoke.texi: Document -m32bit-doubles and -m64bit-doubles
35490         option for RL78.
35491
35492 2014-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
35493
35494         * configure.ac ($gcc_cv_ld_clearcap): New test.
35495         * configure: Regenerate.
35496         * config.in: Regenerate.
35497         * config/sol2.opt (mclear-hwcap): New option.
35498         * config/sol2.h (LINK_CLEARCAP_SPEC): Define.
35499         * config/sol2-clearcap.map: Moved here from
35500         testsuite/gcc.target/i386/clearcap.map.
35501         * config/sol2-clearcapv2.map: Move here from
35502         gcc.target/i386/clearcapv2.map.
35503         * config/t-sol2 (install): Depend on install-clearcap-map.
35504         (install-clearcap-map): New target.
35505         * doc/invoke.texi (Option Summary, Solaris 2 Options): Document
35506         -mclear-hwcap.
35507
35508 2014-05-28  Richard Biener  <rguenther@suse.de>
35509
35510         * hwint.h (*_HALF_WIDE_INT*): Move to ...
35511         * wide-int.cc (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT):
35512         ... here and remove the rest.
35513         * hwint.h (HOST_WIDE_INT_PRINT_*): Define in terms of PRI*64.
35514
35515 2014-05-28  Richard Biener  <rguenther@suse.de>
35516
35517         PR tree-optimization/61335
35518         * tree-vrp.c (vrp_visit_phi_node): If the compare of old and
35519         new range fails, drop to varying.
35520
35521 2014-05-28  Olivier Hainque  <hainque@adacore.com>
35522
35523         * config/rs6000/vxworks.h (VXCPU_FOR_8548): New. Default to PPC85XX.
35524         (CPP_SPEC): Add entry for -mcpu=8548.
35525         * config/rs6000/vxworksae.h: Reinstate. Override VXCPU_FOR_8548.
35526         * config.gcc (powerpc-wrs-vxworksae, tm_file): Add back vxworksae.h.
35527
35528 2014-05-28  Tom de Vries  <tom@codesourcery.com>
35529
35530         * lra-int.h (struct lra_reg): Add field actual_call_used_reg_set.
35531         * lra.c (initialize_lra_reg_info_element): Add init of
35532         actual_call_used_reg_set field.
35533         (lra): Call lra_create_live_ranges before lra_inheritance for
35534         -fuse-caller-save.
35535         * lra-assigns.c (lra_assign): Allow call_used_regs to cross calls for
35536         -fuse-caller-save.
35537         * lra-constraints.c (need_for_call_save_p): Use
35538         actual_call_used_reg_set instead of call_used_reg_set for
35539         -fuse-caller-save.
35540         * lra-lives.c (process_bb_lives): Calculate actual_call_used_reg_set.
35541
35542 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35543             Tom de Vries  <tom@codesourcery.com>
35544
35545         * doc/invoke.texi (@item Optimization Options): Add -fuse-caller-save
35546         to gccoptlist.
35547         (@item -fuse-caller-save): New item.
35548
35549 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35550             Tom de Vries  <tom@codesourcery.com>
35551
35552         * opts.c (default_options_table): Add OPT_LEVELS_2_PLUS entry with
35553         OPT_fuse_caller_save.
35554
35555 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35556             Tom de Vries  <tom@codesourcery.com>
35557
35558         * df-scan.c (df_get_call_refs): Use get_call_reg_set_usage.
35559         * caller-save.c (setup_save_areas, save_call_clobbered_regs): Use
35560         get_call_reg_set_usage.
35561         * resource.c (mark_set_resources, mark_target_live_regs): Use
35562         get_call_reg_set_usage.
35563         * ira-int.h (struct ira_allocno): Add crossed_calls_clobbered_regs
35564         field.
35565         (ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS): Define.
35566         * ira-lives.c (process_bb_node_lives): Use get_call_reg_set_usage.
35567         Calculate ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35568         * ira-build.c (ira_create_allocno): Init
35569         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35570         (create_cap_allocno, propagate_allocno_info)
35571         (propagate_some_info_from_allocno)
35572         (copy_info_to_removed_store_destinations): Handle
35573         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS.
35574         * ira-costs.c (ira_tune_allocno_costs): Use
35575         ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS to adjust costs.
35576
35577 2014-05-28  Radovan Obradovic  <robradovic@mips.com>
35578             Tom de Vries  <tom@codesourcery.com>
35579
35580         * cgraph.h (struct cgraph_rtl_info): Add function_used_regs
35581         and function_used_regs_valid fields.
35582         * final.c: Move include of hard-reg-set.h to before rtl.h to declare
35583         find_all_hard_reg_sets.
35584         (collect_fn_hard_reg_usage, get_call_fndecl, get_call_cgraph_rtl_info)
35585         (get_call_reg_set_usage): New function.
35586         (rest_of_handle_final): Use collect_fn_hard_reg_usage.
35587         * regs.h (get_call_reg_set_usage): Declare.
35588
35589 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35590
35591         PR libgcc/61152
35592         * config/dbx.h (License): Add Runtime Library Exception.
35593         * config/newlib-stdint.h (License): Same.
35594         * config/rtems.h (License): Same
35595         * config/initfini-array.h (License): Same
35596         * config/v850/v850.h (License): Same.
35597         * config/v850/v850-opts.h (License): Same
35598         * config/v850/rtems.h (License): Same.
35599
35600 2014-05-28  Georg-Johann Lay  <avr@gjlay.de>
35601
35602         PR target/61044
35603         * doc/extend.texi (Local Labels): Note that label differences are
35604         not supported for AVR.
35605
35606 2014-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
35607             Olivier Hainque  <hainque@adacore.com>
35608
35609         * rtl.h (set_for_reg_notes): Declare.
35610         * emit-rtl.c (set_for_reg_notes): New function.
35611         (set_unique_reg_note): Use it.
35612         * optabs.c (add_equal_note): Likewise
35613
35614 2014-05-27  Andrew Pinski  <apinski@cavium.com>
35615
35616         * config/aarch64/aarch64.md (stack_protect_set_<mode>):
35617         Use <w> for the register in assembly template.
35618         (stack_protect_test): Use the mode of operands[0] for the result.
35619         (stack_protect_test_<mode>): Use <w> for the register
35620         in assembly template.
35621
35622 2014-05-27  DJ Delorie  <dj@redhat.com>
35623
35624         * config/rx/rx.c (add_vector_labels): New.
35625         (rx_output_function_prologue): Call it.
35626         (rx_handle_func_attribute): Don't require empty arguments.
35627         (rx_handle_vector_attribute): New.
35628         (rx_attribute_table): Add "vector" attribute.
35629         * doc/extend.texi (interrupt, vector): Document new/changed
35630         RX-specific attributes.
35631
35632         * config/rx/rx.c (rx_adjust_insn_length): Skip for non-insns.
35633
35634 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35635
35636         * double-int.c (div_and_round_double) <ROUND_DIV_EXPR>: Use the proper
35637         predicate to detect a negative quotient.
35638
35639 2014-05-27  Eric Botcazou  <ebotcazou@adacore.com>
35640
35641         * fold-const.c (fold_comparison): Clean up and extend X +- C1 CMP C2
35642         to X CMP C2 -+ C1 transformation to EQ_EXPR/NE_EXPR.
35643         Add X - Y CMP 0 to X CMP Y transformation.
35644         (fold_binary_loc) <EQ_EXPR/NE_EXPR>: Remove same transformations.
35645
35646 2014-05-27  Segher Boessenkool  <segher@kernel.crashing.org>
35647
35648         * stmt.c (dump_case_nodes): Don't convert values to HOST_WIDE_INT
35649         before printing.
35650
35651 2014-05-27  Steve Ellcey  <sellcey@mips.com>
35652
35653         * config/mips/mips.c: Add include of cgraph.h.
35654
35655 2014-05-27  Richard Biener  <rguenther@suse.de>
35656
35657         * system.h (__STDC_FORMAT_MACROS): Define as very first thing.
35658
35659 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35660
35661         PR libgcc/61152
35662         * config/arm/arm.h (License): Add note to COPYING.RUNTIME.
35663         * config/arm/arm-cores.def (License): Same.
35664         * config/arm/arm-opts.h (License): Same.
35665         * config/arm/aout.h (License): Same.
35666         * config/arm/bpabi.h (License): Same.
35667         * config/arm/elf.h (License): Same.
35668         * config/arm/linux-elf.h (License): Same.
35669         * config/arm/linux-gas.h (License): Same.
35670         * config/arm/netbsd-elf.h (License): Same.
35671         * config/arm/uclinux-eabi.h (License): Same.
35672         * config/arm/uclinux-elf.h (License): Same.
35673         * config/arm/vxworks.h (License): Same.
35674
35675 2014-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35676
35677         * config/arm/neon.md (neon_bswap<mode>): New pattern.
35678         * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
35679         (arm_init_neon_builtins): Handle NEON_BSWAP.
35680         Define required type nodes.
35681         (arm_expand_neon_builtin): Handle NEON_BSWAP.
35682         (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
35683         * config/arm/arm_neon_builtins.def (bswap): Define builtins.
35684         * config/arm/iterators.md (VDQHSD): New mode iterator.
35685
35686 2014-05-27  Richard Biener  <rguenther@suse.de>
35687
35688         * tree-vrp.c (vrp_evaluate_conditional_warnv_with_ops_using_ranges):
35689         Try using literal operands when comparing value-ranges failed.
35690
35691 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35692
35693         * ira.c (commutative_operand): Adjust for change to recog_data.
35694         [Missing from previous commit.]
35695
35696 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35697
35698         * system.h (TEST_BIT): New macro.
35699         * recog.h (alternative_mask): New type.
35700         (ALL_ALTERNATIVES, ALTERNATIVE_BIT): New macros.
35701         (recog_data_d): Replace alternative_enabled_p array with
35702         enabled_alternatives.
35703         (target_recog): New structure.
35704         (default_target_recog, this_target_recog): Declare.
35705         (get_enabled_alternatives, recog_init): Likewise.
35706         * recog.c (default_target_recog, this_target_recog): New variables.
35707         (get_enabled_alternatives): New function.
35708         (extract_insn): Use it.
35709         (recog_init): New function.
35710         (preprocess_constraints, constrain_operands): Adjust for change to
35711         recog_data.
35712         * postreload.c (reload_cse_simplify_operands): Likewise.
35713         * reload.c (find_reloads): Likewise.
35714         * ira-costs.c (record_reg_classes): Likewise.
35715         * ira-lives.c (single_reg_class): Likewise.  Fix bug in which
35716         all alternatives after a disabled one would be skipped.
35717         (ira_implicitly_set_insn_hard_regs): Likewise.
35718         * ira.c (ira_setup_alts): Adjust for change to recog_data.
35719         * lra-int.h (lra_insn_recog_data): Replace alternative_enabled_p
35720         with enabled_alternatives.
35721         * lra.c (free_insn_recog_data): Update accordingly.
35722         (lra_update_insn_recog_data): Likewise.
35723         (lra_set_insn_recog_data): Likewise.  Use get_enabled_alternatives.
35724         * lra-constraints.c (process_alt_operands): Likewise.  Handle
35725         only_alternative as part of the enabled mask.
35726         * target-globals.h (this_target_recog): Declare.
35727         (target_globals): Add a recog field.
35728         (restore_target_globals): Restore this_target_recog.
35729         * target-globals.c: Include recog.h.
35730         (default_target_globals): Initialize recog field.
35731         (save_target_globals): Likewise.
35732         * reginfo.c (reinit_regs): Call recog_init.
35733         * toplev.c (backend_init_target): Likewise.
35734
35735 2014-05-27  Richard Sandiford  <rdsandiford@googlemail.com>
35736
35737         * gencodes.c (main): Make LAST_INSN_CODE higher than any insn code,
35738         rather than any named insn's code.
35739
35740 2014-05-27  Georg-Johann Lay  <avr@gjlay.de>
35741
35742         PR libgcc/61152
35743         * config/arm/arm-opts.h (License): Add GCC Runtime Library Exception.
35744         * config/arm/arm-cores.def (License): Same.
35745
35746 2014-05-26  Jan Hubicka  <hubicka@ucw.cz>
35747
35748         * tree.h (decl_comdat_group): Declare.
35749         * cgraph.h (symtab_in_same_comdat_p): Move offline to ...
35750         * tree.c (decl_comdat_group): Here.
35751
35752 2014-05-26  Richard Sandiford  <r.sandiford@uk.ibm.com>
35753
35754         PR rtl-optimization/61222
35755         * combine.c (simplify_shift_const_1): When moving a PLUS outside
35756         the shift, truncate the PLUS operand to the result mode.
35757
35758 2014-05-26  Uros Bizjak  <ubizjak@gmail.com>
35759
35760         PR target/61271
35761         * config/i386/i386.c (ix86_rtx_costs)
35762         <case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF>:
35763         Fix condition.
35764
35765 2014-05-26  Martin Jambor  <mjambor@suse.cz>
35766
35767         * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
35768         subreg uses.
35769
35770 2014-05-26  Richard Biener  <rguenther@suse.de>
35771
35772         * wide-int.h (wi::int_traits <long>, wi::int_traits <unsigned long>,
35773         wi::int_traits <long long>, wi::int_traits <unsigned long long>):
35774         Provide specializations.
35775         (wi::int_traits <HOST_WIDE_INT>,
35776         wi::int_traits <unsigned HOST_WIDE_INT>): Remove specializations.
35777
35778 2014-05-26  Alan Modra  <amodra@gmail.com>
35779
35780         PR target/61098
35781         * config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
35782         params and return a bool.  Remove dead code.  Update comment.
35783         Assert we have a const_int source.  Remove bogus code from
35784         32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
35785         handling of constants > 2G and reg_equal note, from..
35786         (rs6000_emit_set_long_const): ..here.  Remove unneeded param and
35787         return value.  Update comment.  If we can, use a new pseudo
35788         for intermediate calculations.
35789         * config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
35790         prototype.
35791         * config/rs6000/rs6000.md (movsi_internal1_single+1): Update
35792         call to rs6000_emit_set_const in splitter.
35793         (movdi_internal64+2, +3): Likewise.
35794
35795 2014-05-26  Richard Biener  <rguenther@suse.de>
35796
35797         * system.h: Define __STDC_FORMAT_MACROS before
35798         including inttypes.h.
35799         * hwint.h (HOST_WIDEST_INT, HOST_BITS_PER_WIDEST_INT,
35800         HOST_WIDEST_INT_PRINT, HOST_WIDEST_INT_PRINT_DEC,
35801         HOST_WIDEST_INT_PRINT_DEC_C, HOST_WIDEST_INT_PRINT_UNSIGNED,
35802         HOST_WIDEST_INT_PRINT_HEX, HOST_WIDEST_INT_PRINT_DOUBLE_HEX,
35803         HOST_WIDEST_INT_C): Remove.
35804         (PRId64, PRIi64, PRIo64, PRIu64, PRIx64, PRIX64): Define
35805         if C99 inttypes.h is not available.
35806         * coretypes.h (gcov_type, gcov_type_unsigned): Use [u]int64_t.
35807         * gcov-io.h (gcov_type, gcov_type_unsigned): Likewise.
35808         * gcov-io.c (gcov_histo_index): Drop non-64bit hwi case.
35809         * cfgloop.h (struct niter_desc): Use uint64_t for niter field.
35810         * bitmap.c (struct bitmap_descriptor_d): Use uint64_t for counters.
35811         (struct output_info): Likewise.
35812         (print_statistics): Adjust.
35813         (dump_bitmap_statistics): Likewise.
35814         * bt-load.c (migrate_btr_defs): Print with PRId64.
35815         * cfg.c (dump_edge_info, dump_bb_info): Likewise.
35816         (MAX_SAFE_MULTIPLIER): Adjust.
35817         * cfghooks.c (dump_bb_for_graph): Print with PRId64.
35818         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee,
35819         dump_cgraph_node): Likewise.
35820         * final.c (dump_basic_block_info): Likewise.
35821         * gcov-dump.c (tag_counters, tag_summary, dump_working_sets): Likewise.
35822         * gcov.c (format_gcov): Likewise.
35823         * ipa-cp.c (good_cloning_opportunity_p): Likewise.  Use int64_t
35824         for calculation.
35825         (get_clone_agg_value): Use HOST_WIDE_INT for offset.
35826         * ipa-inline.c (compute_max_insns): Use int64_t for calcuation.
35827         (inline_small_functions, dump_overall_stats, dump_inline_stats):
35828         Use PRId64 for dumping.
35829         * ipa-profile.c (dump_histogram, ipa_profile): Likewise.
35830         * ira-color.c (struct allocno_hard_regs): Use int64_t for cost.
35831         (add_allocno_hard_regs): Adjust.
35832         * loop-doloop.c (doloop_modify): Print using PRId64.
35833         * loop-iv.c (inverse): Compute in uint64_t.
35834         (determine_max_iter, iv_number_of_iterations): Likewise.
35835         * loop-unroll.c (decide_peel_completely, decide_peel_simple):
35836         Print using PRId64.
35837         * lto-streamer-out.c (write_symbol): Use uint64_t.
35838         * mcf.c (CAP_INFINITY): Use int64_t maximum.
35839         (dump_fixup_edge, create_fixup_graph, cancel_negative_cycle,
35840         find_max_flow, adjust_cfg_counts): Use int64_t and dump with PRId64.
35841         * modulo-sched.c (const_iteration_count): Use int64_t.
35842         (sms_schedule): Dump using PRId64.
35843         * predict.c (dump_prediction): Likewise.
35844         * pretty-print.h (pp_widest_integer): Remove.
35845         * profile.c (get_working_sets, is_edge_inconsistent,
35846         is_inconsistent, read_profile_edge_counts): Dump using PRId64.
35847         * tree-pretty-print.c (pp_double_int): Remove case handling
35848         HOST_BITS_PER_DOUBLE_INT == HOST_BITS_PER_WIDEST_INT.
35849         * tree-ssa-math-opts.c (struct symbolic_number): Use uint64_t
35850         and adjust users.
35851         (pass_optimize_bswap::execute): Remove restriction on hosts.
35852         * tree-streamer-in.c (streamer_alloc_tree): Use HOST_WIDE_INT.
35853         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
35854         * tree.c (widest_int_cst_value): Remove.
35855         * tree.h (widest_int_cst_value): Likewise.
35856         * value-prof.c (dump_histogram_value): Print using PRId64.
35857         * gengtype.c (main): Also inject int64_t.
35858         * ggc-page.c (struct max_alignment): Use int64_t.
35859         * alloc-pool.c (struct allocation_object_def): Likewise.
35860         * ira-conflicts.c (build_conflict_bit_table): Use uint64_t
35861         for computation.
35862         * doc/tm.texi.in: Remove reference to HOST_WIDEST_INT.
35863         * doc/tm.texi: Regenerated.
35864         * gengtype-lex.l (IWORD): Handle [u]int64_t.
35865         * config/sh/sh.c (expand_cbranchdi4): Use gcov_type.
35866         * config/mmix/mmix-protos.h (mmix_intval, mmix_shiftable_wyde_value,
35867         mmix_output_register_setting): Use [u]int64_t in prototypes.
35868         * config/mmix/mmix.c (mmix_print_operand, mmix_output_register_setting,
35869         mmix_shiftable_wyde_value, mmix_output_shiftvalue_op_from_str,
35870         mmix_output_octa, mmix_output_shifted_value): Adjust.
35871         (mmix_intval): Adjust.  Remove unreachable case.
35872         * config/mmix/mmix.md (*nonlocal_goto_receiver_expanded): Use int64_t.
35873
35874 2014-05-26  Richard Biener  <rguenther@suse.de>
35875
35876         * configure.ac: Drop __int64 type check.  Insist that we
35877         found uint64_t and int64_t.
35878         * hwint.h (HOST_BITS_PER___INT64): Remove.
35879         (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case.
35880         (HOST_WIDE_INT_PRINT_*): Remove 32bit case.
35881         (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*.
35882         (HOST_WIDEST_FAST_INT): Remove __int64 case.
35883         * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t
35884         for dst_q_src_df_rms_cdt.
35885         * configure: Regenerate.
35886         * config.in: Likewise.
35887
35888 2014-05-26  Michael Tautschnig  <mt@debian.org>
35889
35890         PR target/61249
35891         * doc/extend.texi (X86 Built-in Functions): Fix parameter lists of
35892         __builtin_ia32_vfrczs[sd] and __builtin_ia32_mpsadbw256.
35893
35894 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
35895
35896         PR rtl-optimization/61278
35897         * shrink-wrap.c (move_insn_for_shrink_wrap): Check df_live.
35898
35899 2014-05-26  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
35900
35901         PR rtl-optimization/61220
35902         Part of PR rtl-optimization/61225
35903         * shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
35904         insn; skip split_edge for a block with only one successor.
35905
35906 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35907
35908         * symtab.c (symtab_nonoverwritable_alias): Copy READONLY flag
35909         for variables.
35910
35911 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35912
35913         * ipa-visibility.c (can_replace_by_local_alias_in_vtable): New function.
35914         (update_vtable_references): New function.
35915         (function_and_variable_visibility): Rewrite also vtable initializers.
35916         * varpool.c (cgraph_variable_initializer_availability): Remove assert.
35917
35918 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35919
35920         * ggc.h (ggc_grow): New function.
35921         * ggc-none.c (ggc_grow): New function.
35922         * ggc-page.c (ggc_grow): Likewise.
35923
35924 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35925
35926         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
35927         address_taken_from_non_vtable_p, comdat_can_be_unshared_p_1,
35928         comdat_can_be_unshared_p, cgraph_externally_visible_p,
35929         varpool_externally_visible_p, can_replace_by_local_alias,
35930         update_visibility_by_resolution_info, function_and_variable_visibility,
35931         pass_data_ipa_function_and_variable_visibility,
35932         make_pass_ipa_function_and_variable_visibility,
35933         whole_program_function_and_variable_visibility,
35934         pass_data_ipa_whole_program_visibility,
35935         make_pass_ipa_whole_program_visibility): Move to ipa-visibility.c
35936         * cgraph.h (cgraph_local_node_p): Declare.
35937         * ipa-visibility.c: New file.
35938         * Makefile.in (OBJS): Add ipa-visiblity.o
35939
35940 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35941
35942         * gimple-fold.c (can_refer_decl_in_current_unit_p): Be sure
35943         that var decl is available.
35944
35945 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35946
35947         * tree-core.h (tree_decl_with_vis): Replace comdat_group by
35948         symtab_node pointer.
35949         * tree.c (copy_node_stat): Be sure to not copy symtab_node pointer.
35950         (find_decls_types_r): Do not walk COMDAT_GROUP.
35951         * tree.h (DECL_COMDAT_GROUP): Revamp to use decl_comdat_group.
35952         * varasm.c (make_decl_one_only): Use set_comdat_group;
35953         create node if needed.
35954         * ipa-inline-transform.c (save_inline_function_body): Update
35955         way we decl->symtab mapping.
35956         * symtab.c (symtab_hash, hash_node, eq_node
35957         symtab_insert_node_to_hashtable): Remove.
35958         (symtab_register_node): Update.
35959         (symtab_unregister_node): Update.
35960         (symtab_get_node): Reimplement as inline function.
35961         (symtab_add_to_same_comdat_group): Update.
35962         (symtab_dissolve_same_comdat_group_list): Update.
35963         (dump_symtab_base): Update.
35964         (verify_symtab_base): Update.
35965         (symtab_make_decl_local): Update.
35966         (fixup_same_cpp_alias_visibility): Update.
35967         (symtab_nonoverwritable_alias): Update.
35968         * cgraphclones.c (set_new_clone_decl_and_node_flags): Update.
35969         * ipa.c (update_visibility_by_resolution_info): UPdate.
35970         * bb-reorder.c: Include cgraph.h
35971         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Do not deal
35972         with comdat groups.
35973         * ipa-comdats.c (set_comdat_group, ipa_comdats): Update.
35974         * cgraph.c (cgraph_get_create_node): Update.
35975         * cgraph.h (struct symtab_node): Add get_comdat_group, set_comdat_group
35976         and comdat_group_.
35977         (symtab_get_node): Make inline.
35978         (symtab_insert_node_to_hashtable): Remove.
35979         (symtab_can_be_discarded): Update.
35980         (decl_comdat_group): New function.
35981         * tree-streamer-in.c (lto_input_ts_decl_with_vis_tree_pointers):
35982         Update.
35983         * lto-cgraph.c (lto_output_node, lto_output_varpool_node): Stream out
35984         comdat group name.
35985         (read_comdat_group): New function.
35986         (input_node, input_varpool_node): Use it.
35987         * trans-mem.c (ipa_tm_create_version_alias): Update code creating
35988         comdat groups.
35989         * mips.c (mips_start_unique_function): Likewise.
35990         (ix86_code_end): Likewise.
35991         (rs6000_code_end): Likweise.
35992         * tree-streamer-out.c (DECL_COMDAT_GROUP): Do not stream comdat group.
35993
35994 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
35995
35996         * gengtype-state.c (fatal_reading_state): Bring offline.
35997         * optabs.c (widening_optab_handler): Bring offline.
35998         * optabs.h (widening_optab_handler): Likewise.
35999         * final.c (get_attr_length_1): Likewise.
36000
36001 2014-05-23  Jan Hubicka  <hubicka@ucw.cz>
36002
36003         * sched-int.h (sd_iterator_cond): Manually tail recurse.
36004
36005 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36006
36007         * config/rs6000/440.md (ppc440-integer): Include shift without dot.
36008         (ppc440-compare): Include shift with dot.
36009         * config/rs6000/e300c2c3.md (ppce300c3_iu): Include shift without dot.
36010         * config/rs6000/e5500.md (e5500_sfx2): Include constant shift
36011         without dot.
36012         * config/rs6000/e6500.md (e6500_sfx): Exclude constant shift
36013         without dot.
36014         (e6500_sfx2): Include it.
36015         * config/rs6000/rs6000.md ( *zero_extend<mode>di2_internal1,
36016         *zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
36017         *zero_extendsidi2_lfiwzx, andsi3_mc, andsi3_nomc,
36018         andsi3_internal0_nomc, extzvsi_internal, extzvdi_internal,
36019         *extzvdi_internal1, *extzvdi_internal2, rotlsi3, *rotlsi3_64,
36020         *rotlsi3_internal4, *rotlsi3_internal7le, *rotlsi3_internal7be,
36021         *rotlsi3_internal10le, *rotlsi3_internal10be, rlwinm,
36022         *lshiftrt_internal1le, *lshiftrt_internal1be,
36023         *lshiftrt_internal4le, *lshiftrt_internal4be, rotldi3,
36024         *rotldi3_internal4, *rotldi3_internal7le, *rotldi3_internal7be,
36025         *rotldi3_internal10le, *rotldi3_internal10be,
36026         *rotldi3_internal13le, *rotldi3_internal13be, *ashldi3_internal4,
36027         ashldi3_internal5, *ashldi3_internal6, *ashldi3_internal7,
36028         ashldi3_internal8, *ashldi3_internal9, anddi3_mc, anddi3_nomc,
36029         *anddi3_internal2_mc, *anddi3_internal3_mc, and 4 anonymous
36030         define_insns): Use type "shift" in the appropriate alternatives.
36031
36032 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36033
36034         * config/rs6000/rs6000.md (type): Add "logical".  Delete
36035         "fast_compare".
36036         (dot): Adjust comment.
36037         (andsi3_mc, *andsi3_internal2_mc, *andsi3_internal3_mc,
36038         *andsi3_internal4, *andsi3_internal5_mc, *boolsi3_internal2,
36039         *boolsi3_internal3, *boolccsi3_internal2, *boolccsi3_internal3,
36040         anddi3_mc, *anddi3_internal2_mc, *anddi3_internal3_mc,
36041         *booldi3_internal2, *booldi3_internal3, *boolcdi3_internal2,
36042         *boolcdi3_internal3, *boolccdi3_internal2, *boolccdi3_internal3,
36043         *mov<mode>_internal2, and 10 anonymous define_insns): Use "logical".
36044         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36045
36046         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36047         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36048         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36049         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36050         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36051         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36052         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36053         * config/rs6000/8540.md (ppc8540_su): Adjust.
36054         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36055         cell-cmp-microcoded): Adjust.
36056         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36057         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36058         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36059         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36060         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36061         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36062         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36063         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36064         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36065         Adjust.
36066         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36067         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare):
36068         Adjust.  Adjust comment.
36069         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36070         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36071
36072 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36073
36074         * config/rs6000/rs6000.md (type): Add "add".
36075         (*add<mode>3_internal1, addsi3_high, *add<mode>3_internal2,
36076         *add<mode>3_internal3, *neg<mode>2_internal, and 5 anonymous
36077         define_insns): Use it.
36078         * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust.
36079
36080         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36081         * config/rs6000/440.md (ppc440-integer, ppc440-compare): Adjust.
36082         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36083         * config/rs6000/601.md (ppc601-integer): Adjust.
36084         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36085         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36086         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36087         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36088         * config/rs6000/8540.md (ppc8540_su): Adjust.
36089         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36090         cell-cmp-microcoded): Adjust.
36091         * config/rs6000/e300c2c3.md (ppce300c3_cmp, ppce300c3_iu): Adjust.
36092         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36093         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Adjust.
36094         * config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Adjust.
36095         * config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Adjust.
36096         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36097         * config/rs6000/power4.md (power4-integer, power4-cmp): Adjust.
36098         * config/rs6000/power5.md (power5-integer, power5-cmp): Adjust.
36099         * config/rs6000/power6.md (power6-integer, power6-fast-compare):
36100         Adjust.
36101         * config/rs6000/power7.md (power7-integer, power7-cmp): Adjust.
36102         * config/rs6000/power8.md (power8-1cyc, power8-fast-compare): Adjust.
36103         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36104         * config/rs6000/titan.md (titan_fxu_adder, titan_fxu_alu): Adjust.
36105
36106 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36107
36108         * config/rs6000/rs6000.md (type): Delete "var_shift_rotate",
36109         "delayed_compare", "var_delayed_compare".
36110         (var_shift): New attribute.
36111         (cell_micro): Adjust.
36112         (*andsi3_internal2_mc, *andsi3_internal3_mc, *andsi3_internal4,
36113         *andsi3_internal5_mc, *extzvsi_internal1, *extzvsi_internal2,
36114         rotlsi3, *rotlsi3_64, *rotlsi3_internal2, *rotlsi3_internal3,
36115         *rotlsi3_internal4, *rotlsi3_internal5, *rotlsi3_internal6,
36116         *rotlsi3_internal8le, *rotlsi3_internal8be, *rotlsi3_internal9le,
36117         *rotlsi3_internal9be, *rotlsi3_internal10le, *rotlsi3_internal10be,
36118         *rotlsi3_internal11le, *rotlsi3_internal11be, *rotlsi3_internal12le,
36119         *rotlsi3_internal12be, ashlsi3, *ashlsi3_64, lshrsi3, *lshrsi3_64,
36120         *lshiftrt_internal2le, *lshiftrt_internal2be, *lshiftrt_internal3le,
36121         *lshiftrt_internal3be, *lshiftrt_internal5le, *lshiftrt_internal5be,
36122         *lshiftrt_internal5le, *lshiftrt_internal5be, ashrsi3, *ashrsi3_64,
36123         rotldi3, *rotldi3_internal2, *rotldi3_internal3, *rotldi3_internal4,
36124         *rotldi3_internal5, *rotldi3_internal6, *rotldi3_internal7le,
36125         *rotldi3_internal7be, *rotldi3_internal8le, *rotldi3_internal8be,
36126         *rotldi3_internal9le, *rotldi3_internal9be, *rotldi3_internal10le,
36127         *rotldi3_internal10be, *rotldi3_internal11le, *rotldi3_internal11be,
36128         *rotldi3_internal12le, *rotldi3_internal12be, *rotldi3_internal13le,
36129         *rotldi3_internal13be, *rotldi3_internal14le, *rotldi3_internal14be,
36130         *rotldi3_internal15le, *rotldi3_internal15be, *ashldi3_internal1,
36131         *ashldi3_internal2, *ashldi3_internal3, *lshrdi3_internal1,
36132         *lshrdi3_internal2, *lshrdi3_internal3, *ashrdi3_internal1,
36133         *ashrdi3_internal2, *ashrdi3_internal3, *anddi3_internal2_mc,
36134         *anddi3_internal3_mc, as well as 11 anonymous define_insns): Adjust.
36135         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36136         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36137
36138         * config/rs6000/40x.md (ppc403-integer, ppc403-compare): Adjust.
36139         * config/rs6000/440.md (ppc440-integer): Adjust.
36140         * config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Adjust.
36141         * config/rs6000/601.md (ppc601-integer, ppc601-compare): Adjust.
36142         * config/rs6000/603.md (ppc603-integer, ppc603-compare): Adjust.
36143         * config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Adjust.
36144         * config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Adjust.
36145         * config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Adjust.
36146         * config/rs6000/8540.md (ppc8540_su): Adjust.
36147         * config/rs6000/cell.md (cell-integer, cell-fast-cmp,
36148         cell-cmp-microcoded): Adjust.
36149         * config/rs6000/e300c2c3.md (ppce300c3_cmp): Adjust.
36150         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36151         * config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2,
36152         e500mc64_delayed): Adjust.
36153         * config/rs6000/e5500.md (e5500_sfx, e5500_delayed): Adjust.
36154         * config/rs6000/e6500.md (e6500_sfx, e6500_delayed): Adjust.
36155         * config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Adjust.
36156         * config/rs6000/power4.md (power4-integer, power4-compare): Adjust.
36157         * config/rs6000/power5.md (power5-integer, power5-compare): Adjust.
36158         * config/rs6000/power6.md (power6-shift, power6-var-rotate,
36159         power6-delayed-compare, power6-var-delayed-compare): Adjust.
36160         * config/rs6000/power7.md (power7-integer, power7-compare): Adjust.
36161         * config/rs6000/power8.md (power8-1cyc, power8-compare): Adjust.
36162         Adjust comment.
36163         * config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Adjust.
36164         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36165
36166 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36167
36168         * config/rs6000/rs6000.md (type): Delete "idiv", "ldiv".  Add "div".
36169         (bits): New mode_attr.
36170         (idiv_ldiv): Delete mode_attr.
36171         (udiv<mode>3, *div<mode>3, div<div_extend>_<mode>): Adjust.
36172         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36173         rs6000_adjust_priority, is_nonpipeline_insn,
36174         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36175
36176         * config/rs6000/40x.md (ppc403-idiv): Adjust.
36177         * config/rs6000/440.md (ppc440-idiv): Adjust.
36178         * config/rs6000/476.md (ppc476-idiv): Adjust.
36179         * config/rs6000/601.md (ppc601-idiv): Adjust.
36180         * config/rs6000/603.md (ppc603-idiv): Adjust.
36181         * config/rs6000/6xx.md (ppc604-idiv, ppc620-idiv, ppc630-idiv,
36182         ppc620-ldiv): Adjust.
36183         * config/rs6000/7450.md (ppc7450-idiv): Adjust.
36184         * config/rs6000/7xx.md (ppc750-idiv): Adjust.
36185         * config/rs6000/8540.md (ppc8540_divide): Adjust.
36186         * config/rs6000/a2.md (ppca2-idiv, ppca2-ldiv): Adjust.
36187         * config/rs6000/cell.md (cell-idiv, cell-ldiv): Adjust.
36188         * config/rs6000/e300c2c3.md (ppce300c3_divide): Adjust.
36189         * config/rs6000/e500mc.md (e500mc_divide): Adjust.
36190         * config/rs6000/e500mc64.md (e500mc64_divide): Adjust.
36191         * config/rs6000/e5500.md (e5500_divide, e5500_divide_d): Adjust.
36192         * config/rs6000/e6500.md (e6500_divide, e6500_divide_d): Adjust.
36193         * config/rs6000/mpc.md (mpccore-idiv): Adjust.
36194         * config/rs6000/power4.md (power4-idiv, power4-ldiv): Adjust.
36195         * config/rs6000/power5.md (power5-idiv, power5-ldiv): Adjust.
36196         * config/rs6000/power6.md (power6-idiv, power6-ldiv): Adjust.
36197         * config/rs6000/power7.md (power7-idiv, power7-ldiv): Adjust.
36198         * config/rs6000/power8.md (power8-idiv, power8-ldiv): Adjust.
36199         * config/rs6000/rs64.md (rs64a-idiv, rs64a-ldiv): Adjust.
36200         * config/rs6000/titan.md (titan_fxu_div): Adjust.
36201
36202 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36203
36204         * config/rs6000/rs6000.md (type): Delete "insert_word",
36205         "insert_dword".  Add "insert".
36206         (size): Update comment.
36207         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36208         insn_must_be_first_in_group): Adjust.
36209         (insvsi_internal, *insvsi_internal1, *insvsi_internal2,
36210         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
36211         *insvsi_internal6, insvdi_internal): Adjust.
36212
36213         * config/rs6000/40x.md (ppc403-integer): Adjust.
36214         * config/rs6000/440.md (ppc440-integer): Adjust.
36215         * config/rs6000/476.md (ppc476-simple-integer): Adjust.
36216         * config/rs6000/601.md (ppc601-integer): Adjust.
36217         * config/rs6000/603.md (ppc603-integer): Adjust.
36218         * config/rs6000/6xx.md (ppc604-integer): Adjust.
36219         * config/rs6000/7450.md (ppc7450-integer): Adjust.
36220         * config/rs6000/7xx.md (ppc750-integer): Adjust.
36221         * config/rs6000/8540.md (ppc8540_su): Adjust.
36222         * config/rs6000/cell.md (cell-integer, cell-insert): Adjust.
36223         * config/rs6000/e300c2c3.md (ppce300c3_iu): Adjust.
36224         * config/rs6000/e500mc.md (e500mc_su): Adjust.
36225         * config/rs6000/e500mc64.md (e500mc64_su): Adjust.
36226         * config/rs6000/e5500.md (e5500_sfx): Adjust.
36227         * config/rs6000/e6500.md (e6500_sfx): Adjust.
36228         * config/rs6000/mpc.md (mpccore-integer): Adjust.
36229         * config/rs6000/power4.md (power4-integer, power4-insert): Adjust.
36230         * config/rs6000/power5.md (power5-integer, power5-insert): Adjust.
36231         * config/rs6000/power6.md (power6-insert, power6-insert-dword): Adjust.
36232         * config/rs6000/power7.md (power7-integer): Adjust.
36233         * config/rs6000/power8.md (power8-1cyc): Adjust.
36234         * config/rs6000/rs64.md (rs64a-integer): Adjust.
36235         * config/rs6000/titan.md (titan_fxu_shift_and_rotate): Adjust.
36236
36237 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36238
36239         * config/rs6000/rs6000.md (type): Add "mul".  Delete "imul",
36240         "imul2", "imul3", "lmul", "imul_compare", "lmul_compare".
36241         (size): New attribute.
36242         (dot): New attribute.
36243         (cell_micro): Adjust.
36244         (mulsi3, *mulsi3_internal1, *mulsi3_internal2, mulsidi3,
36245         umulsidi3, smulsi3_highpart, umulsi3_highpart, muldi3,
36246         *muldi3_internal1, *muldi3_internal2, smuldi3_highpart,
36247         umuldi3_highpart): Adjust.
36248         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_cracked_insn,
36249         rs6000_adjust_priority, is_nonpipeline_insn,
36250         insn_must_be_first_in_group, insn_must_be_last_in_group): Adjust.
36251
36252         * config/rs6000/40x.md (ppc403-imul, ppc405-imul, ppc405-imul2,
36253         ppc405-imul3): Adjust.
36254         * config/rs6000/440.md (ppc440-imul, ppc440-imul2): Adjust.
36255         * config/rs6000/476.md (ppc476-imul): Adjust.
36256         * config/rs6000/601.md (ppc601-imul): Adjust.
36257         * config/rs6000/603.md (ppc603-imul, ppc603-imul2): Adjust.
36258         * config/rs6000/6xx.md (ppc604-imul, ppc604e-imul, ppc620-imul,
36259         ppc620-imul2, ppc620-imul3, ppc620-lmul): Adjust.
36260         * config/rs6000/7450.md (ppc7450-imul, ppc7450-imul2): Adjust.
36261         * config/rs6000/7xx.md (ppc750-imul, ppc750-imul2, ppc750-imul3):
36262         Adjust.
36263         * config/rs6000/8540.md (ppc8540_multiply): Adjust.
36264         * config/rs6000/a2.md (ppca2-imul, ppca2-lmul): Adjust.
36265         * config/rs6000/cell.md (cell-lmul, cell-lmul-cmp, cell-imul23,
36266         cell-imul): Adjust.
36267         * config/rs6000/e300c2c3.md (ppce300c3_multiply): Adjust.
36268         * config/rs6000/e500mc.md (e500mc_multiply): Adjust.
36269         * config/rs6000/e500mc64.md (e500mc64_multiply): Adjust.
36270         * config/rs6000/e5500.md (e5500_multiply, e5500_multiply_i): Adjust.
36271         * config/rs6000/e6500.md (e6500_multiply, e6500_multiply_i): Adjust.
36272         * config/rs6000/mpc.md (mpccore-imul): Adjust.
36273         * config/rs6000/power4.md (power4-lmul-cmp, power4-imul-cmp,
36274         power4-lmul, power4-imul, power4-imul3): Adjust.
36275         * config/rs6000/power5.md (power5-lmul-cmp, power5-imul-cmp,
36276         power5-lmul, power5-imul, power5-imul3): Adjust.
36277         * config/rs6000/power6.md (power6-lmul-cmp, power6-imul-cmp,
36278         power6-lmul, power6-imul, power6-imul3): Adjust.
36279         * config/rs6000/power7.md (power7-mul, power7-mul-compare): Adjust.
36280         * config/rs6000/power8.md (power8-mul, power8-mul-compare): Adjust.
36281
36282         * config/rs6000/rs64.md (rs64a-imul, rs64a-imul2, rs64a-imul3,
36283         rs64a-lmul): Adjust.
36284         * config/rs6000/titan.md (titan_imul): Adjust.
36285
36286 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36287
36288         * config/rs6000/rs6000.md (type): Add new value "halfmul".
36289         (*macchwc, *macchw, *macchwuc, *macchwu, *machhwc, *machhw,
36290         *machhwuc, *machhwu, *maclhwc, *maclhw, *maclhwuc, *maclhwu,
36291         *nmacchwc, *nmacchw, *nmachhwc, *nmachhw, *nmaclhwc, *nmaclhw,
36292         *mulchwc, *mulchw, *mulchwuc, *mulchwu, *mulhhwc, *mulhhw,
36293         *mulhhwuc, *mulhhwu, *mullhwc, *mullhw, *mullhwuc, *mullhwu): Use it.
36294         * config/rs6000/40x.md (ppc405-imul3): Add type halfmul.
36295         * config/rs6000/440.md (ppc440-imul2): Add type halfmul.
36296         * config/rs6000/476.md (ppc476-imul): Add type halfmul.
36297         * config/rs6000/titan.md: Delete nonsensical comment.
36298         (titan_imul): Add type imul3.
36299         (titan_mulhw): Remove type imul3; add type halfmul.
36300
36301 2014-05-23  Segher Boessenkool  <segher@kernel.crashing.org>
36302
36303         * config/rs6000/rs6000.md (type): Reorder, reformat.
36304
36305 2014-05-23  Martin Jambor  <mjambor@suse.cz>
36306
36307         PR tree-optimization/53787
36308         * params.def (PARAM_IPA_MAX_AA_STEPS): New param.
36309         * ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
36310         analysis_done, update all uses.
36311         * ipa-prop.c: Include domwalk.h
36312         (param_analysis_info): Removed.
36313         (param_aa_status): New type.
36314         (ipa_bb_info): Likewise.
36315         (func_body_info): Likewise.
36316         (ipa_get_bb_info): New function.
36317         (aa_overwalked): Likewise.
36318         (find_dominating_aa_status): Likewise.
36319         (parm_bb_aa_status_for_bb): Likewise.
36320         (parm_preserved_before_stmt_p): Changed to use new param AA info.
36321         (load_from_unmodified_param): Accept func_body_info as a parameter
36322         instead of parms_ainfo.
36323         (parm_ref_data_preserved_p): Changed to use new param AA info.
36324         (parm_ref_data_pass_through_p): Likewise.
36325         (ipa_load_from_parm_agg_1): Likewise.  Update callers.
36326         (compute_complex_assign_jump_func): Changed to use new param AA info.
36327         (compute_complex_ancestor_jump_func): Likewise.
36328         (ipa_compute_jump_functions_for_edge): Likewise.
36329         (ipa_compute_jump_functions): Removed.
36330         (ipa_compute_jump_functions_for_bb): New function.
36331         (ipa_analyze_indirect_call_uses): Likewise, moved variable
36332         declarations down.
36333         (ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
36334         and info, moved variable declarations down.
36335         (ipa_analyze_call_uses): Accept and pass on func_body_info instead of
36336         node and info.
36337         (ipa_analyze_stmt_uses): Likewise.
36338         (ipa_analyze_params_uses): Removed.
36339         (ipa_analyze_params_uses_in_bb): New function.
36340         (ipa_analyze_controlled_uses): Likewise.
36341         (free_ipa_bb_info): Likewise.
36342         (analysis_dom_walker): New class.
36343         (ipa_analyze_node): Handle node-specific forbidden analysis,
36344         initialize and free func_body_info, use dominator walker.
36345         (ipcp_modif_dom_walker): New class.
36346         (ipcp_transform_function): Create and free func_body_info, use
36347         ipcp_modif_dom_walker, moved a lot of functionality there.
36348
36349 2014-05-23  Marek Polacek  <polacek@redhat.com>
36350             Jakub Jelinek  <jakub@redhat.com>
36351
36352         * builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
36353         * gcc.c (sanitize_spec_function): Likewise.
36354         * convert.c (convert_to_integer): Include "ubsan.h".  Add
36355         floating-point to integer instrumentation.
36356         * doc/invoke.texi: Document -fsanitize=float-cast-overflow.
36357         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
36358         SANITIZE_NONDEFAULT.
36359         * opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
36360         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
36361         BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
36362         * ubsan.c: Include "realmpfr.h" and "dfp.h".
36363         (get_ubsan_type_info_for_type): Handle REAL_TYPEs.
36364         (ubsan_type_descriptor): Set tkind to 0xffff for types other than
36365         float/double/long double.
36366         (ubsan_instrument_float_cast): New function.
36367         * ubsan.h (ubsan_instrument_float_cast): Declare.
36368
36369 2014-05-23 Jiong Wang  <jiong.wang@arm.com>
36370
36371         * config/aarch64/predicates.md (aarch64_call_insn_operand): New
36372         predicate.
36373         * config/aarch64/constraints.md ("Ucs", "Usf"):  New constraints.
36374         * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
36375         Adjust for tailcalling through registers.
36376         * config/aarch64/aarch64.h (enum reg_class): New caller save
36377         register class.
36378         (REG_CLASS_NAMES): Likewise.
36379         (REG_CLASS_CONTENTS): Likewise.
36380         * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
36381         Allow tailcalling without decls.
36382
36383 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36384
36385         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36386         Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.
36387
36388         * omp-low.c (expand_omp_for_static_chunk): Rename variable si to
36389         gsi, and variables v_* to v*.
36390
36391 2014-05-23  Eric Botcazou  <ebotcazou@adacore.com>
36392
36393         * varasm.c (output_constructor_bitfield): Fix thinkos in latest change.
36394
36395 2014-05-23  Thomas Schwinge  <thomas@codesourcery.com>
36396
36397         * gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
36398         * omp-low.c: Update accordingly.
36399
36400         * gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
36401         for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
36402         GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
36403         GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
36404         GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
36405         GF_OMP_TARGET_KIND_UPDATE.
36406
36407         * gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
36408         Explicitly enumerate the expected region types.
36409
36410 2014-05-23  Paul Eggert  <eggert@cs.ucla.edu>
36411
36412         PR other/56955
36413         * doc/extend.texi (Function Attributes): Fix  __attribute__ ((malloc))
36414         documentation; the old documentation didn't clearly state the
36415         constraints on the contents of the pointed-to storage.
36416
36417 2014-05-23  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36418
36419         Fix bootstrap error on ia64
36420         * config/ia64/ia64.c (ia64_first_cycle_multipass_dfa_lookahead_guard):
36421         Return default value.
36422
36423 2014-05-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36424
36425         PR tree-optimization/54733
36426         * tree-ssa-math-opts.c (nop_stats): New "bswap_stats" structure.
36427         (CMPNOP): Define.
36428         (find_bswap_or_nop_load): New.
36429         (find_bswap_1): Renamed to ...
36430         (find_bswap_or_nop_1): This. Also add support for memory source.
36431         (find_bswap): Renamed to ...
36432         (find_bswap_or_nop): This. Also add support for memory source and
36433         detection of bitwise operations equivalent to load in target
36434         endianness.
36435         (execute_optimize_bswap): Likewise. Also move its leading comment back
36436         in place and split statement transformation into ...
36437         (bswap_replace): This.
36438
36439 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36440
36441         PR rtl-optimization/61215
36442         * lra-elelimination.c (lra_eliminate_regs_1): Don't use
36443         simplify_gen_subreg until final substitution.
36444
36445 2014-05-23  Alan Modra  <amodra@gmail.com>
36446
36447         PR target/61231
36448         * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
36449         * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
36450         Use "Y" constraint rather than "m".
36451
36452 2014-05-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
36453
36454         * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
36455         define.
36456         * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
36457         New function declaration.
36458         * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
36459         AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
36460         AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
36461         (aarch64_init_builtins) : Initialize builtins
36462         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36463         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36464         (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
36465         __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
36466         and __builtins_aarch64_set_fpsr.
36467         (aarch64_atomic_assign_expand_fenv): New function.
36468         * config/aarch64/aarch64.md (set_fpcr): New pattern.
36469         (get_fpcr) : Likewise.
36470         (set_fpsr) : Likewise.
36471         (get_fpsr) : Likewise.
36472         (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
36473         and UNSPECV_SET_FPSR.
36474         * doc/extend.texi (AARCH64 Built-in Functions) : Document
36475         __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
36476         __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
36477
36478 2014-05-22  Vladimir Makarov  <vmakarov@redhat.com>
36479
36480         PR rtl-optimization/60969
36481         * ira-costs.c (record_reg_classes): Process NO_REGS for matching
36482         constraints.  Set up mem cost for NO_REGS case.
36483
36484 2014-05-22  Thomas Schwinge  <thomas@codesourcery.com>
36485
36486         * builtin-types.def: Simplify examples for DEF_FUNCTION_TYPE_*.
36487
36488 2012-05-22  Bernd Schmidt  <bernds@codesourcery.com>
36489
36490         * config/darwin.c: Include "lto-section-names.h".
36491         (LTO_SEGMENT_NAME): Don't define.
36492         * config/i386/winnt.c: Include "lto-section-names.h".
36493         * lto-streamer.c: Include "lto-section-names.h".
36494         * lto-streamer.h (LTO_SECTION_NAME_PREFIX): Don't define.
36495         * lto-wrapper.c: Include "lto-section-names.h".
36496         (LTO_SECTION_NAME_PREFIX): Don't define.
36497         * lto-section-names.h: New file.
36498         * cgraphunit.c: Include "lto-section-names.h".
36499
36500 2014-05-22  Peter Bergner  <bergner@vnet.ibm.com>
36501
36502         * config/rs6000/htm.md (ttest): Use correct shift value to get CR0.
36503
36504 2014-05-22  Richard Earnshaw  <rearnsha@arm.com>
36505
36506         PR target/61208
36507         * arm.md (arm_cmpdi_unsigned): Fix length calculation for Thumb2.
36508
36509 2014-05-22  Nick Clifton  <nickc@redhat.com>
36510
36511         * config/msp430/msp430.h (ASM_SPEC): Add spaces after inserted options.
36512
36513 2014-05-22  Eric Botcazou  <ebotcazou@adacore.com>
36514
36515         * tree-ssa-forwprop.c (associate_plusminus): Extend (T)(P + A) - (T)P
36516         -> (T)A transformation to integer types.
36517
36518 2014-05-22  Teresa Johnson  <tejohnson@google.com>
36519
36520         * gcov-io.c (gcov_position): Use gcov_nonruntime_assert.
36521         (gcov_is_error): Remove gcc_assert from IN_LIBGCOV code.
36522         (gcov_rewrite): Use gcov_nonruntime_assert.
36523         (gcov_open): Ditto.
36524         (gcov_write_words): Ditto.
36525         (gcov_write_length): Ditto.
36526         (gcov_read_words): Use gcov_nonruntime_assert, and remove
36527         gcc_assert from IN_LIBGCOV code.
36528         (gcov_read_summary): Use gcov_error to flag profile corruption.
36529         (gcov_sync): Use gcov_nonruntime_assert.
36530         (gcov_seek): Remove gcc_assert from IN_LIBGCOV code.
36531         (gcov_histo_index): Use gcov_nonruntime_assert.
36532         (static void gcov_histogram_merge): Ditto.
36533         (compute_working_sets): Ditto.
36534         * gcov-io.h (gcov_nonruntime_assert): Define.
36535         (gcov_error): Define for !IN_LIBGCOV
36536
36537 2014-05-22  Richard Biener  <rguenther@suse.de>
36538
36539         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
36540         BUILT_IN_REALLOC like BUILT_IN_STRDUP.
36541         (call_may_clobber_ref_p_1): Handle BUILT_IN_REALLOC as allocation
36542         and deallocation site.
36543         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
36544         Handle BUILT_IN_REALLOC similar to BUILT_IN_STRDUP with also
36545         passing through the incoming points-to set.
36546         (handle_lhs_call): Use flags argument instead of recomputing it.
36547         (find_func_aliases_for_call): Call handle_lhs_call with proper
36548         call return flags.
36549
36550 2014-05-22  Jakub Jelinek  <jakub@redhat.com>
36551
36552         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Make sure
36553         all padding bits in REAL_VALUE_TYPE are cleared.
36554
36555 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36556
36557         Cleanup and improve multipass_dfa_lookahead_guard
36558         * config/i386/i386.c (core2i7_first_cycle_multipass_filter_ready_try,)
36559         (core2i7_first_cycle_multipass_begin,)
36560         (core2i7_first_cycle_multipass_issue,)
36561         (core2i7_first_cycle_multipass_backtrack): Update signature.
36562         * config/ia64/ia64.c
36563         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec): Remove.
36564         (ia64_first_cycle_multipass_dfa_lookahead_guard): Update signature.
36565         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove
36566         hook definition.
36567         (ia64_first_cycle_multipass_dfa_lookahead_guard): Merge logic from
36568         ia64_first_cycle_multipass_dfa_lookahead_guard_spec.  Update return
36569         values.
36570         * config/rs6000/rs6000.c (rs6000_use_sched_lookahead_guard): Update
36571         return values.
36572         * doc/tm.texi: Regenerate.
36573         * doc/tm.texi.in
36574         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC): Remove.
36575         * haifa-sched.c (ready_try): Make signed to allow negative values.
36576         (rebug_ready_list_1): Update.
36577         (choose_ready): Simplify.
36578         (sched_extend_ready_list): Update.
36579
36580 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36581
36582         Remove IA64 speculation tweaking flags
36583         * config/ia64/ia64.c (ia64_set_sched_flags): Delete handling of
36584         speculation tuning flags.
36585         (msched-prefer-non-data-spec-insns,)
36586         (msched-prefer-non-control-spec-insns): Obsolete options.
36587         * haifa-sched.c (choose_ready): Remove handling of
36588         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36589         * sched-int.h (enum SPEC_SCHED_FLAGS): Remove PREFER_NON_CONTROL_SPEC
36590         and PREFER_NON_DATA_SPEC.
36591         * sel-sched.c (process_spec_exprs): Remove handling of
36592         PREFER_NON_CONTROL_SPEC and PREFER_NON_DATA_SPEC.
36593
36594 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36595
36596         Improve scheduling debug output
36597         * haifa-sched.c (debug_ready_list): Remove unnecessary prototype.
36598         (advance_one_cycle): Update.
36599         (schedule_insn, queue_to_ready): Add debug printouts.
36600         (debug_ready_list_1): New static function.
36601         (debug_ready_list): Update.
36602         (max_issue): Add debug printouts.
36603         (dump_insn_stream): New static function.
36604         (schedule_block): Use it.  Also better indent printouts.
36605
36606 2014-05-22  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
36607
36608         Fix sched_insn debug counter
36609         * haifa-sched.c (schedule_insn): Update.
36610         (struct haifa_saved_data): Add nonscheduled_insns_begin.
36611         (save_backtrack_point, restore_backtrack_point): Update.
36612         (first_nonscheduled_insn): New static function.
36613         (queue_to_ready, choose_ready): Use it.
36614         (schedule_block): Init nonscheduled_insns_begin.
36615         (sched_emit_insn): Update.
36616
36617
36618 2014-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
36619
36620         * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
36621         to GENERAL_REGS.
36622         (aarch64_secondary_reload) : LikeWise.
36623         (aarch64_class_max_nregs) : Remove CORE_REGS.
36624         * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
36625         (REG_CLASS_NAMES) : Likewise.
36626         (REG_CLASS_CONTENTS) : LikeWise.
36627         (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
36628
36629 2014-05-21  Guozhi Wei  <carrot@google.com>
36630
36631         PR target/61202
36632         * config/aarch64/arm_neon.h (vqdmulh_n_s16): Change the last operand's
36633         constraint.
36634         (vqdmulhq_n_s16): Likewise.
36635
36636 2014-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
36637
36638         * config/rs6000/predicates.md (update_indexed_address_mem): Delete.
36639
36640 2014-05-21  Marek Polacek  <polacek@redhat.com>
36641
36642         PR sanitizer/61272
36643         * ubsan.c (is_ubsan_builtin_p): Turn assert into a condition.
36644
36645 2014-05-21  Martin Jambor  <mjambor@suse.cz>
36646
36647         * doc/invoke.texi (Optimize Options): Document parameters
36648         ipa-cp-eval-threshold, ipa-max-agg-items, ipa-cp-loop-hint-bonus and
36649         ipa-cp-array-index-hint-bonus.
36650
36651 2014-05-21  Mark Wielaard  <mjw@redhat.com>
36652
36653         PR debug/16063
36654         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_type if DWARF
36655         version >= 3 or not strict DWARF.
36656         * langhooks.h (struct lang_hooks_for_types): Add
36657         enum_underlying_base_type.
36658         * langhooks.c (lhd_enum_underlying_base_type): New function.
36659         * gcc/langhooks.h (struct lang_hooks_for_types): Add
36660         enum_underlying_base_type.
36661         * langhooks-def.h (lhd_enum_underlying_base_type): New declaration.
36662         (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): New define.
36663         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add new lang hook.
36664
36665 2014-05-21  Richard Biener  <rguenther@suse.de>
36666
36667         * doc/invoke.texi (-flto-partition=): Document one and none algorithms.
36668
36669 2014-05-21  John Marino  <gnugcc@marino.st>
36670
36671         * config.gcc (*-*-dragonfly*): New target.
36672         * configure.ac: Detect dl_iterate_phdr (*freebsd*, *dragonfly*).
36673         * configure: Regenerate.
36674         * config/dragonfly-stdint.h: New.
36675         * config/dragonfly.h: New.
36676         * config/dragonfly.opt: New.
36677         * config/i386/dragonfly.h: New.
36678         * ginclude/stddef.h: Detect _PTRDIFF_T_DECLARED for DragonFly.
36679
36680 2014-05-21  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
36681
36682         * tree.def (VOID_CST): New.
36683         * tree-core.h (TI_VOID): New.
36684         * tree.h (void_node): New.
36685         * tree.c (tree_node_structure_for_code, tree_code_size)
36686         (iterative_hash_expr): Handle VOID_CST.
36687         (build_common_tree_nodes): Initialize void_node.
36688
36689 2014-05-21  Bernd Schmidt  <bernds@codesourcery.com>
36690
36691         * reload1.c (remove_init_insns, will_delete_init_insn_p): New static
36692         functions.
36693         (reload, calculate_needs_all_insns, reload_as_needed): Use them.
36694
36695         * config/bfin/bfin.c (split_load_immediate): Use gen_int_mode in a few
36696         more places.
36697
36698         * cfgrtl.c (cfg_layout_initialize): Weaken assert to only trigger if
36699         flag_reorder_blocks_and_partition.
36700         * hw-doloop.c (reorg_loops): Avoid reordering if that flag is set.
36701
36702 2014-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
36703
36704         PR target/54236
36705         * config/sh/sh.md (*addc_r_1): Rename to addc_t_r.  Remove empty
36706         constraints.
36707         (*addc_r_t): Add new insn_and_split.
36708
36709 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
36710
36711         PR middle-end/61252
36712         * omp-low.c (handle_simd_reference): New function.
36713         (lower_rec_input_clauses): Use it.  Defer adding reference
36714         initialization even for reduction without placeholder if in simd,
36715         handle it properly later on.
36716
36717 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36718
36719         PR tree-optimization/60899
36720         * gimple-fold.c (can_refer_decl_in_current_unit_p): Cleanup;
36721         assume all static symbols will have definition wile parsing and
36722         check the do have definition later in compilation; check that
36723         variable referring symbol will be output before concluding that
36724         reference is safe; be conservative for referring local statics;
36725         be more precise about when comdat is output in other partition.
36726
36727 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36728
36729         PR bootstrap/60984
36730         * ipa-inline-transform.c (inline_call): Use add CALLEE_REMOVED
36731         parameter.
36732         * ipa-inline.c (inline_to_all_callers): If callee was removed; return.
36733         (ipa_inline): Loop inline_to_all_callers until no more aliases
36734         are removed.
36735
36736 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36737
36738         * ipa.c (ipa_discover_readonly_nonaddressable_var): Fix dumping;
36739         set writeonly flag only for vars actually written to.
36740
36741 2014-05-20  Dehao Chen  <dehao@google.com>
36742
36743         * ipa-inline-transform.c (clone_inlined_nodes): Use min of edge count
36744         and callee count to get clone count.
36745         * tree-inline.c (expand_call_inline): Use callee count instead of bb
36746         count in copy_body.
36747
36748 2014-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
36749
36750         PR rtl-optimization/61243
36751         * emit-rtl.c (emit_copy_of_insn_after): Copy CROSSING_JUMP_P.
36752
36753 2014-05-20  Xinliang David Li  <davidxl@google.com>
36754
36755         * cgraphunit.c (walk_polymorphic_call_targets): Add
36756         dbgcnt and fopt-info support.
36757         * ipa-prop.c (ipa_make_edge_direct_to_target): Ditto.
36758         * ipa-devirt.c (ipa_devirt): Ditto.
36759         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Ditto.
36760         * ipa.c (walk_polymorphic_call_targets): Ditto.
36761         * gimple-fold.c (fold_gimple_assign): Ditto.
36762         (gimple_fold_call): Ditto.
36763         * dbgcnt.def: New counter.
36764
36765 2014-05-20  DJ Delorie  <dj@redhat.com>
36766
36767         * config/msp430/msp430.md (split): Don't allow subregs when
36768         splitting SImode adds.
36769         (andneghi): Fix subtraction logic.
36770         * config/msp430/predicates.md (msp430_nonsubreg_or_imm_operand): New.
36771
36772 2014-05-20  Jan Hubicka  <hubicka@ucw.cz>
36773
36774         * tree.h (DECL_ONE_ONLY): Return true only for externally visible
36775         symbols.
36776         * except.c (switch_to_exception_section, resolve_unique_section,
36777         get_named_text_section, default_function_rodata_section,
36778         align_variable, get_block_for_decl, default_section_type_flags):
36779         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
36780         * symtab.c (symtab_add_to_same_comdat_group,
36781         symtab_make_decl_local, fixup_same_cpp_alias_visibility,
36782         symtab_nonoverwritable_alias, symtab_get_symbol_partitioning_class):
36783         Likewise.
36784         * cgraphclones.c (cgraph_create_virtual_clone): Likewise.
36785         * bb-reorder.c (pass_partition_blocks::gate): Likewise.
36786         * config/c6x/c6x.c (c6x_elf_unique_section): Likewise.
36787         (c6x_function_in_section_p): Likewise.
36788         * config/darwin.c (machopic_select_section): Likewise.
36789         * config/arm/arm.c (arm_function_in_section_p): Likewise.
36790         * config/mips/mips.c (mips_function_rodata_section): Likewise.
36791         * config/mep/mep.c (mep_select_section): LIkewise.
36792         * config/i386/i386.c (x86_64_elf_unique_section): Likewise.
36793
36794 2014-05-20  Eric Botcazou  <ebotcazou@adacore.com>
36795
36796         * tree-ssa-dom.c (hashable_expr_equal_p) <EXPR_CALL>: Also compare the
36797         EH region of calls to pure functions that can throw an exception.
36798         * tree-ssa-sccvn.c (vn_reference_eq): Remove duplicated test.
36799         (copy_reference_ops_from_call): Also copy the EH region of the call if
36800         it can throw an exception.
36801
36802 2014-05-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36803
36804         * simplify-rtx.c (simplify_binary_operation_1): Optimize case of
36805         nested VEC_SELECTs that are inverses of each other.
36806
36807 2014-05-20  Richard Biener  <rguenther@suse.de>
36808
36809         * tree-ssa-sccvn.c (process_scc): Dump SCC here, when iterating,
36810         (extract_and_process_scc_for_name): not here.
36811         (cond_dom_walker::before_dom_children): Only process
36812         stmts that end the BB in interesting ways.
36813         (run_scc_vn): Mark param uses as visited.
36814
36815 2014-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36816
36817         * config/arm/arm.md (arith_shiftsi): Do not predicate for
36818         arm_restrict_it.
36819
36820 2014-05-20  Nick Clifton  <nickc@redhat.com>
36821
36822         * config/msp430/msp430.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
36823         (msp430_gimplify_va_arg_expr): New function.
36824         (msp430_print_operand): Handle (CONST (ZERO_EXTRACT)).
36825
36826         * config/msp430/msp430.md (zero_extendpsisi2): Use + constraint on
36827         operand 0 in order to prevent confusion about the number of
36828         registers involved.
36829
36830 2014-05-20  Richard Biener  <rguenther@suse.de>
36831
36832         PR tree-optimization/61221
36833         * tree-ssa-pre.c (el_to_update): Remove.
36834         (eliminate_dom_walker::before_dom_children): Handle released
36835         VDEFs by value-numbering them to the associated VUSE.  Update
36836         stmt immediately for substituted call address.
36837         (eliminate): Remove delayed stmt updating code.
36838         * tree-ssa-sccvn.c (vuse_ssa_val): New function valueizing
36839         possibly late re-numbered vuses.
36840         (vn_reference_lookup_2): Adjust.
36841         (vn_reference_lookup_pieces): Likewise.
36842         (vn_reference_lookup): Likewise.
36843
36844 2014-05-20  Richard Biener  <rguenther@suse.de>
36845
36846         * config.gcc: Remove need_64bit_hwint.
36847         * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
36848         * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
36849         it to be true.
36850         * config.in: Regenerate.
36851         * configure: Likewise.
36852
36853 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
36854
36855         * doc/extend.texi: Create Label Attributes section,
36856         move all label attributes into it and reference it.
36857
36858 2014-05-19  Richard Earnshaw  <rearnsha@arm.com>
36859
36860         * arm.c (thumb1_reorg): When scanning backwards skip anything
36861         that's not a proper insn.
36862
36863 2014-05-19  Richard Biener  <rguenther@suse.de>
36864
36865         PR tree-optimization/61221
36866         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
36867         Do nothing for unreachable blocks.
36868         * tree-ssa-sccvn.c (cond_dom_walker::before_dom_children):
36869         Improve unreachability detection.
36870
36871 2014-05-19  Richard Biener  <rguenther@suse.de>
36872
36873         PR tree-optimization/61209
36874         * tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
36875
36876 2014-05-19  Nick Clifton  <nickc@redhat.com>
36877
36878         * except.c (init_eh): Fix computation of builtin setjmp buffer
36879         size to allow for targets where POINTER_SIZE > BITS_PER_WORD.
36880
36881 2014-05-19  Richard Biener  <rguenther@suse.de>
36882
36883         PR tree-optimization/61184
36884         * tree-vrp.c (is_negative_overflow_infinity): Use
36885         TREE_OVERFLOW_P and do that check first.
36886         (is_positive_overflow_infinity): Likewise.
36887         (is_overflow_infinity): Likewise.
36888         (vrp_operand_equal_p): Properly treat operands with
36889         differing overflow as not equal.
36890
36891 2014-05-19  Bernd Schmidt  <bernds@codesourcery.com>
36892
36893         * simplify-rtx.c (simplify_unary_operation_1): Use CONST_INT_P in
36894         shift simplification where it was intended.
36895
36896 2014-05-19  Christian Bruel  <christian.bruel@st.com>
36897
36898         PR target/61195
36899         * config/sh/sh.md (movsf_ie): Unset fp_mode for fmov.
36900
36901 2014-05-19  Richard Sandiford  <r.sandiford@uk.ibm.com>
36902
36903         PR target/61084
36904         * config/sparc/sparc.c (sparc_fold_builtin): Use widest_int rather
36905         than wide_int.
36906
36907 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
36908
36909         * reg-notes.def (CROSSING_JUMP): Likewise.
36910         * rtl.h (rtx_def): Update comment for jump flag.
36911         (CROSSING_JUMP_P): Define.
36912         * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Use it instead
36913         of a REG_CROSSING_JUMP note.
36914         * cfghooks.c (tidy_fallthru_edges): Likewise.
36915         * cfgrtl.c (fixup_partition_crossing, rtl_verify_edges): Likewise.
36916         * emit-rtl.c (try_split): Likewise.
36917         * haifa-sched.c (sched_create_recovery_edges): Likewise.
36918         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
36919         * jump.c (redirect_jump_2): Likewise.
36920         * reorg.c (follow_jumps, fill_slots_from_thread): Likewise.
36921         (relax_delay_slots): Likewise.
36922         * config/arc/arc.md (jump_i, cbranchsi4_scratch, *bbit): Likewise.
36923         (bbit_di): Likewise.
36924         * config/arc/arc.c (arc_reorg, arc_can_follow_jump): Likewise.
36925         * config/sh/sh.md (jump_compact): Likewise.
36926         * bb-reorder.c (rotate_loop): Likewise.
36927         (pass_duplicate_computed_gotos::execute): Likewise.
36928         (add_reg_crossing_jump_notes): Rename to...
36929         (update_crossing_jump_flags): ...this.
36930         (pass_partition_blocks::execute): Update accordingly.
36931
36932 2014-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
36933
36934         * tree.h: Remove extraneous template <>.
36935
36936 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36937
36938         * ipa.c (symtab_remove_unreachable_nodes): Remove
36939         symbol from comdat group if its body was eliminated.
36940         (comdat_can_be_unshared_p_1): Static symbols can always be privatized.
36941         * symtab.c (symtab_remove_from_same_comdat_group): Break out from ...
36942         (symtab_unregister_node): ... this one.
36943         (verify_symtab_base): More strict checking of comdats.
36944         * cgraph.h (symtab_remove_from_same_comdat_group): Declare.
36945
36946 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36947
36948         * tree-pass.h (make_pass_ipa_comdats): New pass.
36949         * timevar.def (TV_IPA_COMDATS): New timevar.
36950         * passes.def (pass_ipa_comdats): Add.
36951         * Makefile.in (OBJS): Add ipa-comdats.o
36952         * ipa-comdats.c: New file.
36953
36954 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36955
36956         * ipa.c (update_visibility_by_resolution_info): New function.
36957         (function_and_variable_visibility): Use it.
36958
36959 2014-05-17  Jan Hubicka  <hubicka@ucw.cz>
36960
36961         * cgraph.h (symtab_first_defined_symbol, symtab_next_defined_symbol):
36962         New functions.
36963         (FOR_EACH_DEFINED_SYMBOL): New macro.
36964         (varpool_first_static_initializer, varpool_next_static_initializer,
36965         varpool_first_defined_variable, varpool_next_defined_variable):
36966         Fix comments.
36967         (symtab_in_same_comdat_p): Correctly deal with inline functions.
36968
36969 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36970
36971         * ggc-page.c (ggc_handle_finalizers): Add comment.
36972
36973 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36974
36975         * ggc-common.c (ggc_internal_cleared_alloc): Adjust.
36976         * ggc-none.c (ggc_internal_alloc): Assert if a finalizer is passed.
36977         (ggc_internal_cleared_alloc): Likewise.
36978         * ggc-page.c (finalizer): New class.
36979         (vec_finalizer): Likewise.
36980         (globals::finalizers): New member.
36981         (globals::vec_finalizers): Likewise.
36982         (ggc_internal_alloc): Record the finalizer if any for the block being
36983         allocated.
36984         (ggc_handle_finalizers): New function.
36985         (ggc_collect): Call ggc_handle_finalizers.
36986         * ggc.h (ggc_internal_alloc): Add arguments to allow installing a
36987         finalizer.
36988         (ggc_internal_cleared_alloc): Likewise.
36989         (finalize): New function.
36990         (need_finalization_p): Likewise.
36991         (ggc_alloc): Install the type's destructor as the finalizer if it
36992         might do something.
36993         (ggc_cleared_alloc): Likewise.
36994         (ggc_vec_alloc): Likewise.
36995         (ggc_cleared_vec_alloc): Likewise.
36996
36997 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
36998
36999         * ggc.h (ggc_alloc_cleared_simd_clone_stat): Remove function.
37000
37001 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37002
37003         * alias.c (record_alias_subset): Adjust.
37004         * bitmap.c (bitmap_element_allocate): Likewise.
37005         (bitmap_gc_alloc_stat): Likewise.
37006         * cfg.c (init_flow): Likewise.
37007         (alloc_block): Likewise.
37008         (unchecked_make_edge): Likewise.
37009         * cfgloop.c (alloc_loop): Likewise.
37010         (flow_loops_find): Likewise.
37011         (rescan_loop_exit): Likewise.
37012         * cfgrtl.c (init_rtl_bb_info): Likewise.
37013         * cgraph.c (insert_new_cgraph_node_version): Likewise.
37014         (cgraph_allocate_node): Likewise.
37015         (cgraph_create_edge_1): Likewise.
37016         (cgraph_allocate_init_indirect_info): Likewise.
37017         * cgraphclones.c (cgraph_clone_edge): Likewise.
37018         * cgraphunit.c (add_asm_node): Likewise.
37019         (init_lowered_empty_function): Likewise.
37020         * config/aarch64/aarch64.c (aarch64_init_machine_status): Likewise.
37021         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
37022         (alpha_use_linkage): Likewise.
37023         * config/arc/arc.c (arc_init_machine_status): Likewise.
37024         * config/arm/arm.c (arm_init_machine_status): Likewise.
37025         * config/avr/avr.c (avr_init_machine_status): Likewise.
37026         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
37027         * config/c6x/c6x.c (c6x_init_machine_status): Likewise.
37028         * config/cris/cris.c (cris_init_machine_status): Likewise.
37029         * config/darwin.c (machopic_indirection_name): Likewise.
37030         (darwin_build_constant_cfstring): Likewise.
37031         (darwin_enter_string_into_cfstring_table): Likewise.
37032         * config/epiphany/epiphany.c (epiphany_init_machine_status): Likewise.
37033         * config/frv/frv.c (frv_init_machine_status): Likewise.
37034         * config/i386/i386.c (get_dllimport_decl): Likewise.
37035         (ix86_init_machine_status): Likewise.
37036         (assign_386_stack_local): Likewise.
37037         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
37038         (i386_pe_maybe_record_exported_symbol): Likewise.
37039         (i386_pe_record_stub): Likewise.
37040         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
37041         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
37042         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
37043         (m32c_note_pragma_address): Likewise.
37044         * config/mep/mep.c (mep_init_machine_status): Likewise.
37045         (mep_note_pragma_flag): Likewise.
37046         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
37047         (mips16_local_alias): Likewise.
37048         (mips_init_machine_status): Likewise.
37049         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
37050         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
37051         * config/msp430/msp430.c (msp430_init_machine_status): Likewise.
37052         * config/nds32/nds32.c (nds32_init_machine_status): Likewise.
37053         * config/nios2/nios2.c (nios2_init_machine_status): Likewise.
37054         * config/pa/pa.c (pa_init_machine_status): Likewise.
37055         (pa_get_deferred_plabel): Likewise.
37056         * config/rl78/rl78.c (rl78_init_machine_status): Likewise.
37057         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
37058         (rs6000_init_machine_status): Likewise.
37059         (output_toc): Likewise.
37060         * config/s390/s390.c (s390_init_machine_status): Likewise.
37061         * config/score/score.c (score_output_external): Likewise.
37062         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
37063         * config/spu/spu.c (spu_init_machine_status): Likewise.
37064         * config/tilegx/tilegx.c (tilegx_init_machine_status): Likewise.
37065         * config/tilepro/tilepro.c (tilepro_init_machine_status): Likewise.
37066         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
37067         * coverage.c (coverage_end_function): Likewise.
37068         * dbxout.c (dbxout_init): Likewise.
37069         * doc/gty.texi: Don't mention variable_size attribute.
37070         * dwarf2cfi.c (new_cfi): Adjust.
37071         (new_cfi_row): Likewise.
37072         (copy_cfi_row): Likewise.
37073         (create_cie_data): Likewise.
37074         * dwarf2out.c (dwarf2out_alloc_current_fde): Likewise.
37075         (new_loc_descr): Likewise.
37076         (find_AT_string_in_table): Likewise.
37077         (add_addr_table_entry): Likewise.
37078         (new_die): Likewise.
37079         (add_var_loc_to_decl): Likewise.
37080         (clone_die): Likewise.
37081         (clone_as_declaration): Likewise.
37082         (break_out_comdat_types): Likewise.
37083         (new_loc_list): Likewise.
37084         (add_loc_descr_to_each): Likewise.
37085         (add_location_or_const_value_attribute): Likewise.
37086         (add_linkage_name): Likewise.
37087         (lookup_filename): Likewise.
37088         (dwarf2out_var_location): Likewise.
37089         (new_line_info_table): Likewise.
37090         (dwarf2out_init): Likewise.
37091         (mem_loc_descriptor): Likewise.
37092         (loc_descriptor): Likewise.
37093         (add_const_value_attribute): Likewise.
37094         (tree_add_const_value_attribute): Likewise.
37095         (comp_dir_string): Likewise.
37096         (dwarf2out_vms_debug_main_pointer): Likewise.
37097         (string_cst_pool_decl): Likewise.
37098         * emit-rtl.c (set_mem_attrs): Likewise.
37099         (get_reg_attrs): Likewise.
37100         (start_sequence): Likewise.
37101         (init_emit): Likewise.
37102         (init_emit_regs): Likewise.
37103         * except.c (init_eh_for_function): Likewise.
37104         (gen_eh_region): Likewise.
37105         (gen_eh_region_catch): Likewise.
37106         (gen_eh_landing_pad): Likewise.
37107         (add_call_site): Likewise.
37108         * function.c (add_frame_space): Likewise.
37109         (insert_temp_slot_address): Likewise.
37110         (assign_stack_temp_for_type): Likewise.
37111         (get_hard_reg_initial_val): Likewise.
37112         (allocate_struct_function): Likewise.
37113         (prepare_function_start): Likewise.
37114         (types_used_by_var_decl_insert): Likewise.
37115         * gengtype.c (variable_size_p): Remove function.
37116         (enum alloc_quantity): Remove enum.
37117         (write_typed_alloc_def): Remove function.
37118         (write_typed_struct_alloc_def): Likewise.
37119         (write_typed_typedef_alloc_def): Likewise.
37120         (write_typed_alloc_defns): Likewise.
37121         (main): Adjust.
37122         * ggc-common.c (ggc_cleared_alloc_htab_ignore_args): Adjust.
37123         (ggc_cleared_alloc_ptr_array_two_args): Likewise.
37124         * ggc.h (ggc_alloc): new function.
37125         (ggc_cleared_alloc): Likewise.
37126         (ggc_vec_alloc): Template on type of vector element, and remove
37127         element size argument.
37128         (ggc_cleared_vec_alloc): Likewise.
37129         * gimple.c (gimple_build_omp_for): Adjust.
37130         (gimple_copy): Likewise.
37131         * ipa-cp.c (get_replacement_map): Likewise.
37132         (find_aggregate_values_for_callers_subset): Likewise.
37133         (known_aggs_to_agg_replacement_list): Likewise.
37134         * ipa-devirt.c (get_odr_type): Likewise.
37135         * ipa-prop.c (ipa_node_duplication_hook): Likewise.
37136         (read_agg_replacement_chain): Likewise.
37137         * loop-iv.c (get_simple_loop_desc): Likewise.
37138         * lto-cgraph.c (input_node_opt_summary): Likewise.
37139         * lto-section-in.c (lto_new_in_decl_state): Likewise.
37140         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
37141         (input_eh_region): Likewise.
37142         (input_eh_lp): Likewise.
37143         (input_cfg): Likewise.
37144         * optabs.c (set_optab_libfunc): Likewise.
37145         (init_tree_optimization_optabs): Likewise.
37146         (set_conv_libfunc): Likewise.
37147         * passes.c (do_per_function_toporder): Likewise.
37148         * rtl.h: Don't use variable_size gty attribute.
37149         * sese.c (if_region_set_false_region): Adjust.
37150         * stringpool.c (gt_pch_save_stringpool): Likewise.
37151         * target-globals.c (save_target_globals): Likewise.
37152         * toplev.c (general_init): Likewise.
37153         * trans-mem.c (record_tm_replacement): Likewise.
37154         (split_bb_make_tm_edge): Likewise.
37155         * tree-cfg.c (move_sese_region_to_fn): Likewise.
37156         * tree-data-ref.h (lambda_vector_new): Likewise.
37157         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
37158         * tree-iterator.c (tsi_link_before): Likewise.
37159         (tsi_link_after): Likewise.
37160         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
37161         * tree-ssa-loop-niter.c (record_estimate): Likewise.
37162         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
37163         * tree-ssa-operands.h: Don't use variable_size gty attribute.
37164         * tree-ssa.c (init_tree_ssa): Adjust.
37165         * tree-ssanames.c (set_range_info): Likewise.
37166         (get_ptr_info): Likewise.
37167         (duplicate_ssa_name_ptr_info): Likewise.
37168         (duplicate_ssa_name_range_info): Likewise.
37169         * tree-streamer-in.c (unpack_ts_real_cst_value_fields): Likewise.
37170         (unpack_ts_fixed_cst_value_fields): Likewise.
37171         * tree.c (build_fixed): Likewise.
37172         (build_real): Likewise.
37173         (build_string): Likewise.
37174         (decl_priority_info): Likewise.
37175         (decl_debug_expr_insert): Likewise.
37176         (decl_value_expr_insert): Likewise.
37177         (decl_debug_args_insert): Likewise.
37178         (type_hash_add): Likewise.
37179         (build_omp_clause): Likewise.
37180         * ubsan.c (decl_for_type_insert): Likewise.
37181         * varasm.c (get_unnamed_section): Likewise.
37182         (get_noswitch_section): Likewise.
37183         (get_section): Likewise.
37184         (get_block_for_section): Likewise.
37185         (create_block_symbol): Likewise.
37186         (build_constant_desc): Likewise.
37187         (create_constant_pool): Likewise.
37188         (force_const_mem): Likewise.
37189         (record_tm_clone_pair): Likewise.
37190         * varpool.c (varpool_create_empty_node): Likewise.
37191
37192 2014-05-17  Trevor Saunders  <tsaunders@mozilla.com>
37193
37194         * dwarf2out.c (tree_add_const_value_attribute): Call
37195         ggc_internal_cleared_alloc instead of ggc_alloc_cleared_atomic.
37196         * gengtype.c (write_typed_alloc_def): Call ggc_internal_<x>alloc
37197         instead of ggc_internal_<x>alloc_stat.
37198         * ggc-common.c (ggc_internal_cleared_alloc): Drop _stat suffix.
37199         (ggc_realloc): Likewise.
37200         * ggc-none.c (ggc_internal_alloc): Likewise.
37201         (ggc_internal_cleared_alloc): Likewise.
37202         * ggc-page.c: Likewise.
37203         * ggc.h (ggc_internal_alloc_stat): Likewise.
37204         (ggc_internal_alloc): Remove macro.
37205         (ggc_internal_cleared_alloc_stat): Drop _stat suffix.
37206         (ggc_internal_cleared_alloc): Remove macro.
37207         (GGC_RESIZEVEC): Adjust.
37208         (ggc_resizevar): Remove macro.
37209         (ggc_internal_vec_alloc_stat): Drop _stat suffix.
37210         (ggc_internal_cleared_vec_alloc_stat): Likewise.
37211         (ggc_internal_vec_cleared_alloc): Remove macro.
37212         (ggc_alloc_atomic_stat): Drop _stat suffix.
37213         (ggc_alloc_atomic): Remove macro.
37214         (ggc_alloc_cleared_atomic): Remove macro.
37215         (ggc_alloc_string_stat): Drop _stat suffix.
37216         (ggc_alloc_string): Remove macro.
37217         (ggc_alloc_rtx_def_stat): Adjust.
37218         (ggc_alloc_tree_node_stat): Likewise.
37219         (ggc_alloc_cleared_tree_node_stat): Likewise.
37220         (ggc_alloc_cleared_gimple_statement_stat): Likewise.
37221         (ggc_alloc_cleared_simd_clone_stat): Likewise.
37222         * gimple.c (gimple_build_omp_for): Likewise.
37223         (gimple_copy): Likewise.
37224         * stringpool.c (ggc_alloc_string_stat): Drop _stat suffix.
37225         * toplev.c (realloc_for_line_map): Adjust.
37226         * tree-data-ref.h (lambda_vector_new): Likewise.
37227         * tree-phinodes.c (allocate_phi_node): Likewise.
37228         * tree.c (grow_tree_vec_stat): Likewise.
37229         * vec.h (va_gc::reserve): Adjust.
37230
37231 2014-05-17  Ajit Agarwal  <ajitkum@xilinx.com>
37232
37233         * config/microblaze/microblaze.c (break_handler): New Declaration.
37234         (microblaze_break_function_p,microblaze_is_break_handler): New.
37235         (compute_frame_size): Use microblaze_break_function_p.
37236         Add the test of break_handler.
37237         (microblaze_function_prologue) : Add the test of variable
37238         break_handler.  Check the fnname by BREAK_HANDLER_NAME.
37239         (microblaze_function_epilogue) : Add the test of break_handler.
37240         (microblaze_globalize_label) : Add the test of break_handler.
37241         Check the name by BREAK_HANDLER_NAME.
37242
37243         * config/microblaze/microblaze.h (BREAK_HANDLER_NAME): New macro
37244
37245         * config/microblaze/microblaze.md (*<optab>,<optab>_internal): Add
37246         microblaze_is_break_handler test.
37247         (call_internal1,call_value_intern): Use microblaze_break_function_p.
37248         Use SYMBOL_REF_DECL.
37249
37250         * config/microblaze/microblaze-protos.h
37251         (microblaze_break_function_p,microblaze_is_break_handler):
37252         New Declaration.
37253
37254         * doc/extend.texi (MicroBlaze break_handler Functions): Document
37255         new MicroBlaze break_handler functions.
37256
37257 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37258
37259         * doc/extend.texi (Size of an asm): Move node text according
37260         to its @menu entry position.
37261
37262 2014-05-17  Marc Glisse  <marc.glisse@inria.fr>
37263
37264         PR tree-optimization/61140
37265         PR tree-optimization/61150
37266         PR tree-optimization/61197
37267         * tree-ssa-phiopt.c (value_replacement): Punt on multiple phis.
37268
37269 2014-05-17  Uros Bizjak  <ubizjak@gmail.com>
37270
37271         * doc/invoke.texi (free): Mention Alpha.  Also enabled at -Os.
37272
37273 2014-05-17  Richard Sandiford  <r.sandiford@uk.ibm.com>
37274
37275         * wide-int.cc: Only include longlong.h if W_TYPE_SIZE==32 or
37276         __SIZEOF_INT128__ is defined.
37277
37278 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37279
37280         * config/rs6000/rs6000.c (rs6000_real_tls_symbol_ref_p): New function.
37281         (rs6000_delegitimize_address): Use it.
37282
37283 2014-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
37284
37285         * emit-rtl.h (replace_equiv_address, replace_equiv_address_nv): Add an
37286         inplace argument.  Store the new address in the original MEM when true.
37287         * emit-rtl.c (change_address_1): Likewise.
37288         (adjust_address_1, adjust_automodify_address_1, offset_address):
37289         Update accordingly.
37290         * rtl.h (plus_constant): Add an inplace argument.
37291         * explow.c (plus_constant): Likewise.  Try to reuse the original PLUS
37292         when true.  Avoid generating (plus X (const_int 0)).
37293         * function.c (instantiate_virtual_regs_in_rtx): Adjust the PLUS
37294         in-place.  Pass true to plus_constant.
37295         (instantiate_virtual_regs_in_insn): Pass true to replace_equiv_address.
37296
37297 2014-05-16  Dehao Chen  <dehao@google.com>
37298
37299         * tree-cfg.c (gimple_merge_blocks): Updates bb count with max count.
37300
37301 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37302
37303         PR target/54089
37304         * config/sh/predicates.md (negt_reg_shl31_operand): Match additional
37305         patterns.
37306         * config/sh/sh.md (*negt_msb): Merge SH2A and non-SH2A variants.
37307
37308 2014-05-16  Dehao Chen  <dehao@google.com>
37309
37310         * ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Use
37311         optimize_function_for_size_p.
37312         * regs.h (REG_FREQ_FROM_BB): Likewise.
37313
37314 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37315
37316         PR target/51244
37317         * config/sh/sh.c (sh_eval_treg_value): Handle t_reg_operand and
37318         negt_reg_operand cases.
37319         * config/sh/sh.md (*cset_zero): Likewise by using cbranch_treg_value
37320         predicate.
37321         * config/sh/predicates.md (cbranch_treg_value): Simplify.
37322
37323 2014-05-16  Oleg Endo  <olegendo@gcc.gnu.org>
37324
37325         * config/sh/sh.c (sh_option_override): Set branch cost to 2 for all
37326         target variants.
37327
37328 2014-05-16  David Malcolm  <dmalcolm@redhat.com>
37329
37330         Revert:
37331         2014-04-29  David Malcolm  <dmalcolm@redhat.com>
37332
37333         * tree-cfg.c (dump_function_to_file): Dump the return type of
37334         functions, in a line to itself before the function body, mimicking
37335         the layout of a C function.
37336
37337 2014-05-16  Dehao Chen  <dehao@google.com>
37338
37339         * cfghooks.c (make_forwarder_block): Use direct computation to
37340         get fall-through edge's count and frequency.
37341
37342 2014-05-16  Benno Schulenberg  <bensberg@justemail.net>
37343
37344         * config/arc/arc.c (arc_init): Fix typo in error message.
37345         * config/i386/i386.c (ix86_expand_builtin): Likewise.
37346         (split_stack_prologue_scratch_regno): Likewise.
37347         * fortran/check.c (gfc_check_fn_rc2008): Remove duplicate
37348         word from error message.
37349
37350 2014-05-16  Zhouyi Zhou <yizhouzhou@ict.ac.cn>
37351
37352         * ira-costs.c: Fix typo in comment.
37353
37354 2014-05-16  David Wohlferd <dw@LimeGreenSocks.com>
37355
37356         * doc/extend.texi: (Visibility Pragmas) Fix misplaced @xref
37357
37358 2014-05-16  Jan Hubicka  <hubicka@ucw.cz>
37359
37360         * varpool.c (dump_varpool_node): Dump write-only flag.
37361         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Stream
37362         write-only flag.
37363         * tree-cfg.c (execute_fixup_cfg): Remove statements setting
37364         write-only variables.
37365         * ipa.c (process_references): New function.
37366         (set_readonly_bit): New function.
37367         (set_writeonly_bit): New function.
37368         (clear_addressable_bit): New function.
37369         (ipa_discover_readonly_nonaddressable_var): Mark write only variables;
37370         fix handling of aliases.
37371         * cgraph.h (struct varpool_node): Add writeonly flag.
37372
37373 2014-05-16  Vladimir Makarov  <vmakarov@redhat.com>
37374
37375         PR rtl-optimization/60969
37376         * ira-costs.c (record_reg_classes): Allow only memory for pseudo.
37377         Calculate costs for this case.
37378
37379 2014-05-16  Eric Botcazou  <ebotcazou@adacore.com>
37380
37381         * fold-const (fold_unary_loc) <NON_LVALUE_EXPR>: New case.
37382         <CASE_CONVERT>: Pass arg0 instead of op0 to fold_convert_const.
37383
37384 2014-05-16  Richard Biener  <rguenther@suse.de>
37385
37386         PR tree-optimization/61194
37387         * tree-vect-patterns.c (adjust_bool_pattern): Also handle
37388         bool patterns ending in a COND_EXPR.
37389
37390 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37391
37392         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
37393
37394 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37395
37396         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
37397         where we were unable to cost an RTX.
37398
37399 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37400
37401         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
37402         HIGH, LO_SUM.
37403
37404 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37405             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37406
37407         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
37408
37409 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37410             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37411
37412         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
37413         FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
37414
37415 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37416             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37417
37418         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
37419         operators.
37420
37421 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37422             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37423
37424         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37425         DIV/MOD.
37426
37427 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37428             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37429
37430         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
37431         (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
37432
37433 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37434             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37435
37436         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
37437         rotates and shifts.
37438
37439 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37440             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37441
37442         * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
37443         ZERO_EXTEND and SIGN_EXTEND better.
37444
37445 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37446             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37447
37448         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
37449         logical operations.
37450
37451 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37452             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37453
37454         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
37455         costs when costing loads and stores to memory.
37456
37457 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37458             Philip Tomsich  <philipp.tomsich@theobroma-systems.com>
37459
37460         * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
37461         for SET RTX.
37462
37463 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37464
37465         * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
37466
37467 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37468             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37469
37470         * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
37471         to...
37472         (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
37473         well formed.
37474         (aarch64_rtx_mult_cost): New.
37475         (aarch64_rtx_costs): Use it, refactor as appropriate.
37476
37477 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37478             Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
37479
37480         * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
37481         emit instructions, return number of instructions which would
37482         be emitted.
37483         (aarch64_add_constant): Update call to aarch64_build_constant.
37484         (aarch64_output_mi_thunk): Likewise.
37485         (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost of
37486         a CONST_DOUBLE.
37487
37488 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37489
37490         * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
37491         (TARGET_RTX_COSTS): Call it.
37492
37493 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37494
37495         * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
37496         (cortexa57_vector_cost): Likewise.
37497         (cortexa57_tunings): Use them.
37498
37499 2014-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
37500
37501         * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
37502         (cpu_addrcost_table): Use it.
37503         * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
37504         (aarch64_address_cost): Rewrite using aarch64_classify_address,
37505         move it.
37506
37507 2014-05-16  Richard Biener  <rguenther@suse.de>
37508
37509         * tree-ssa-sccvn.c: Include tree-cfg.h and domwalk.h.
37510         (set_ssa_val_to): Handle unexpected sets to VN_TOP.
37511         (visit_phi): Ignore edges marked as not executable.
37512         (class cond_dom_walker): New.
37513         (cond_dom_walker::before_dom_children): Value-number
37514         control statements and mark successor edges as not
37515         executable if possible.
37516         (run_scc_vn): First walk all control statements in
37517         dominator order, marking edges as not executable.
37518         * tree-inline.c (copy_edges_for_bb): Be not confused
37519         about random edge flags.
37520
37521 2014-05-16  Richard Biener  <rguenther@suse.de>
37522
37523         * tree-ssa-sccvn.c (visit_use): Also constant-fold calls.
37524
37525 2014-05-15  Peter Bergner  <bergner@vnet.ibm.com>
37526
37527         PR target/61193
37528         * config/rs6000/htmxlintrin.h (_HTM_TBEGIN_STARTED): New define.
37529         (__TM_simple_begin): Use it.
37530         (__TM_begin): Likewise.
37531
37532 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37533
37534         PR ipa/61085
37535         * ipa-prop.c (update_indirect_edges_after_inlining): Check
37536         type_preserved flag when the indirect edge is polymorphic.
37537
37538 2014-05-15  Martin Jambor  <mjambor@suse.cz>
37539
37540         PR tree-optimization/61090
37541         * tree-sra.c (sra_modify_expr): Pass the current gsi to
37542         build_ref_for_model.
37543
37544 2014-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37545
37546         * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
37547         enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
37548
37549 2014-05-15  Jakub Jelinek  <jakub@redhat.com>
37550
37551         PR tree-optimization/61158
37552         * fold-const.c (fold_binary_loc): If X is zero-extended and
37553         shiftc >= prec, make sure zerobits is all ones instead of
37554         invoking undefined behavior.
37555
37556 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37557
37558         * regcprop.h: New file.
37559         * regcprop.c (skip_debug_insn_p): New decl.
37560         (replace_oldest_value_reg): Check skip_debug_insn_p.
37561         (copyprop_hardreg_forward_bb_without_debug_insn): New function.
37562         * shrink-wrap.c: Include regcprop.h.
37563         (prepare_shrink_wrap): Call
37564         copyprop_hardreg_forward_bb_without_debug_insn.
37565
37566 2014-05-15  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37567
37568         * shrink-wrap.h: Update comment.
37569         * shrink-wrap.c: Update comment.
37570         (next_block_for_reg): Rename to live_edge_for_reg.
37571         (live_edge_for_reg): Allow live_edge->dest has two predecessors.
37572         (move_insn_for_shrink_wrap): Split live_edge.
37573         (prepre_shrink_wrap): One more parameter for move_insn_for_shrink_wrap.
37574
37575 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37576
37577         * config/sparc/sparc-protos.h (sparc_absnegfloat_split_legitimate):
37578         Delete.
37579         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): Likewise.
37580         * config/sparc/sparc.md (fptype_ut699): New attribute.
37581         (in_branch_delay): Return false if -mfix-ut699 is specified and
37582         fptype_ut699 is set to single.
37583         (truncdfsf2): Add fptype_ut699 attribute.
37584         (fix_truncdfsi2): Likewise.
37585         (floatsisf2): Change fptype attribute.
37586         (fix_truncsfsi2): Likewise.
37587         (negtf2_notv9): Delete.
37588         (negtf2_v9): Likewise.
37589         (negtf2_hq): New instruction.
37590         (negtf2): New instruction and splitter.
37591         (negdf2_notv9): Rewrite.
37592         (abstf2_notv9): Delete.
37593         (abstf2_hq_v9): Likewise.
37594         (abstf2_v9): Likewise.
37595         (abstf2_hq): New instruction.
37596         (abstf2): New instruction and splitter.
37597         (absdf2_notv9): Rewrite.
37598
37599 2014-05-14  Cary Coutant  <ccoutant@google.com>
37600
37601         PR debug/61013
37602         * opts.c (common_handle_option): Don't special-case "-g".
37603         (set_debug_level): Default to at least level 2 with "-g".
37604
37605 2014-05-14  DJ Delorie  <dj@redhat.com>
37606
37607         * config/msp430/msp430.c (msp430_builtin): Add
37608         MSP430_BUILTIN_DELAY_CYCLES.
37609         (msp430_init_builtins): Register void __delay_cycles(long long).
37610         (msp430_builtin_decl): Add it.
37611         (cg_magic_constant): New.
37612         (msp430_expand_delay_cycles): New.
37613         (msp430_expand_builtin): Call it.
37614         (msp430_print_operand_raw): Change integer printing from "int" to
37615         HOST_WIDE_INT.
37616         * config/msp430/msp430.md (define_constants): Add delay_cycles tags.
37617         (delay_cycles_start): New.
37618         (delay_cycles_end): New.
37619         (delay_cycles_32): New.
37620         (delay_cycles_32x): New.
37621         (delay_cycles_16): New.
37622         (delay_cycles_16x): New.
37623         (delay_cycles_2): New.
37624         (delay_cycles_1): New.
37625         * doc/extend.texi: Document __delay_cycles().
37626
37627 2014-05-14  Sandra Loosemore  <sandra@codesourcery.com>
37628
37629         * config/nios2/nios2.md (nios2_cbranch): Fix paste-o in
37630         length attribute computation.
37631
37632 2014-05-14  Richard Sandiford  <rdsandiford@googlemail.com>
37633
37634         PR debug/61188
37635         * print-rtl.c (print_rtx): Suppress uids if flag_dump_unnumbered.
37636
37637 2014-05-14  Richard Sandiford  <r.sandiford@uk.ibm.com>
37638
37639         PR target/61084
37640         * config/sparc/sparc.md: Fix types of low and high in DI constant
37641         splitter.  Use gen_int_mode in some other splitters.
37642
37643 2014-05-14  Martin Jambor  <mjambor@suse.cz>
37644
37645         PR ipa/60897
37646         * ipa-prop.c (ipa_modify_formal_parameters): Reset DECL_LANG_SPECIFIC.
37647
37648 2014-05-14  James Norris  <jnorris@codesourcery.com>
37649
37650         * omp-low.c (expand_parallel_call): Remove shadow variable.
37651         (expand_omp_taskreg): Likewise.
37652
37653 2014-05-14  Ilya Tocar  <ilya.tocar@intel.com>
37654
37655         * common/config/i386/i386-common.c
37656         (OPTION_MASK_ISA_CLFLUSHOPT_SET): Define.
37657         (OPTION_MASK_ISA_XSAVES_SET): Ditto.
37658         (OPTION_MASK_ISA_XSAVEC_SET): Ditto.
37659         (OPTION_MASK_ISA_CLFLUSHOPT_UNSET): Ditto.
37660         (OPTION_MASK_ISA_XSAVES_UNSET): Ditto.
37661         (OPTION_MASK_ISA_XSAVEC_UNSET): Ditto.
37662         (ix86_handle_option): Handle OPT_mxsavec, OPT_mxsaves, OPT_mclflushopt.
37663         * config.gcc (i[34567]86-*-*): Add clflushoptintrin.h,
37664         xsavecintrin.h, xsavesintrin.h.
37665         (x86_64-*-*): Ditto.
37666         * config/i386/clflushoptintrin.h: New.
37667         * config/i386/xsavecintrin.h: Ditto.
37668         * config/i386/xsavesintrin.h: Ditto.
37669         * config/i386/cpuid.h (bit_CLFLUSHOPT): Define.
37670         (bit_XSAVES): Ditto.
37671         (bit_XSAVES): Ditto.
37672         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
37673         -mclflushopt, -mxsavec, -mxsaves, -mno-xsaves, -mno-xsavec,
37674         -mno-clflushopt.
37675         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
37676         OPTION_MASK_ISA_CLFLUSHOPT, OPTION_MASK_ISA_XSAVEC,
37677         OPTION_MASK_ISA_XSAVES.
37678         * config/i386/i386.c (ix86_target_string): Handle -mclflushopt,
37679         -mxsavec, -mxsaves.
37680         (PTA_CLFLUSHOPT) Define.
37681         (PTA_XSAVEC): Ditto.
37682         (PTA_XSAVES): Ditto.
37683         (ix86_option_override_internal): Handle new options.
37684         (ix86_valid_target_attribute_inner_p): Ditto.
37685         (ix86_builtins): Add IX86_BUILTIN_XSAVEC, IX86_BUILTIN_XSAVEC64,
37686         IX86_BUILTIN_XSAVES, IX86_BUILTIN_XRSTORS, IX86_BUILTIN_XSAVES64,
37687         IX86_BUILTIN_XRSTORS64, IX86_BUILTIN_CLFLUSHOPT.
37688         (bdesc_special_args): Add __builtin_ia32_xsaves,
37689         __builtin_ia32_xrstors, __builtin_ia32_xsavec, __builtin_ia32_xsaves64,
37690         __builtin_ia32_xrstors64, __builtin_ia32_xsavec64.
37691         (ix86_init_mmx_sse_builtins): Add __builtin_ia32_clflushopt.
37692         (ix86_expand_builtin): Handle new builtins.
37693         * config/i386/i386.h (TARGET_CLFLUSHOPT) Define.
37694         (TARGET_CLFLUSHOPT_P): Ditto.
37695         (TARGET_XSAVEC): Ditto.
37696         (TARGET_XSAVEC_P): Ditto.
37697         (TARGET_XSAVES): Ditto.
37698         (TARGET_XSAVES_P): Ditto.
37699         * config/i386/i386.md (ANY_XSAVE): Add UNSPECV_XSAVEC, UNSPECV_XSAVES.
37700         (ANY_XSAVE64)" Add UNSPECV_XSAVEC64, UNSPECV_XSAVES64.
37701         (attr xsave): Add xsavec, xsavec64, xsaves, xsaves64.
37702         (ANY_XRSTOR): New.
37703         (ANY_XRSTOR64): Ditto.
37704         (xrstor): Ditto.
37705         (xrstor): Change into <xrstor>.
37706         (xrstor_rex64): Change into <xrstor>_rex64.
37707         (xrstor64): Change into <xrstor>64
37708         (clflushopt): New.
37709         * config/i386/i386.opt (mclflushopt): New.
37710         (mxsavec): Ditto.
37711         (mxsaves): Ditto.
37712         * config/i386/x86intrin.h: Add clflushoptintrin.h, xsavesintrin.h,
37713         xsavecintrin.h.
37714         * doc/invoke.texi: Document new options.
37715
37716 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37717
37718         PR rtl-optimization/60866
37719         * sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
37720         Default it to -1.  Pass it down to init_simplejump_data.
37721         (init_simplejump_data): New parameter old_seqno.  Pass it down
37722         to get_seqno_for_a_jump.
37723         (get_seqno_for_a_jump): New parameter old_seqno.  Use it for
37724         initializing new jump seqno as a last resort.  Add comment.
37725         (sel_redirect_edge_and_branch): Save old seqno of the conditional
37726         jump and pass it down to sel_init_new_insn.
37727         (sel_redirect_edge_and_branch_force): Likewise.
37728
37729 2014-05-14  Georg-Johann Lay  <avr@gjlay.de>
37730
37731         * config/avr/avr.h (REG_CLASS_CONTENTS): Use unsigned suffix for
37732         shifted values to avoid build warning.
37733
37734 2014-05-14  Eric Botcazou  <ebotcazou@adacore.com>
37735
37736         * cfgcleanup.c (try_forward_edges): Use location_t for locations.
37737         * cfgrtl.c (rtl_merge_blocks): Fix comment.
37738         (cfg_layout_merge_blocks): Likewise.
37739         * except.c (emit_to_new_bb_before): Remove prev_bb local variable.
37740
37741 2014-05-14  Andrey Belevantsev  <abel@ispras.ru>
37742
37743         PR rtl-optimization/60901
37744         * config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
37745         bb predecessor belongs to the same scheduling region.  Adjust comment.
37746
37747 2014-05-13  Peter Bergner  <bergner@vnet.ibm.com>
37748
37749         * doc/sourcebuild.texi: (dfp_hw): Document.
37750         (p8vector_hw): Likewise.
37751         (powerpc_eabi_ok): Likewise.
37752         (powerpc_elfv2): Likewise.
37753         (powerpc_htm_ok): Likewise.
37754         (ppc_recip_hw): Likewise.
37755         (vsx_hw): Likewise.
37756
37757 2014-05-13  Cary Coutant  <ccoutant@google.com>
37758
37759         * opts.c (finish_options): Use -ggnu-pubnames with -gsplit-dwarf.
37760
37761 2014-05-13  David Malcolm  <dmalcolm@redhat.com>
37762
37763         * gengtype-parse.c (require3): Eliminate in favor of...
37764         (require4): New.
37765         (require_template_declaration): Update to support optional single *
37766         on a type.
37767
37768         * gengtype.c (get_ultimate_base_class): Add a non-const overload.
37769         (create_user_defined_type): Handle a single level of explicit
37770         pointerness within template arguments.
37771         (struct write_types_data): Add field "kind".
37772         (filter_type_name): Handle "*" character.
37773         (write_user_func_for_structure_ptr): Require a write_types_data
37774         rather than just a prefix string, so that we can look up the kind
37775         of the wtd and use it as an index into wrote_user_func_for_ptr,
37776         ensuring that such functions are written at most once.  Support
37777         subclasses by invoking the marking function of the ultimate base class.
37778         (write_user_func_for_structure_body): Require a write_types_data
37779         rather than just a prefix string, so that we can pass this to
37780         write_user_func_for_structure_ptr.
37781         (write_func_for_structure): Likewise.
37782         (ggc_wtd): Add initializer of new "kind" field.
37783         (pch_wtd): Likewise.
37784
37785         * gengtype.h (enum write_types_kinds): New.
37786         (struct type): Add field wrote_user_func_for_ptr to the "s"
37787         union member.
37788
37789 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37790
37791         * fold-const.c (optimize_bit_field_compare): Use wi:: operations
37792         instead of const_binop.
37793         (fold_binary_loc): Likewise.
37794
37795 2014-05-13  Richard Sandiford  <r.sandiford@uk.ibm.com>
37796
37797         * tree-dfa.h (get_addr_base_and_unit_offset_1): Update array index
37798         calculation to match get_ref_base_and_extent.
37799
37800 2014-05-13  Catherine Moore  <clm@codesourcery.com>
37801             Sandra Loosemore  <sandra@codesourcery.com>
37802
37803         * configure.ac: Fix assembly for explicit JALR relocation check.
37804         * configure: Regenerate.
37805
37806 2014-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37807
37808         * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
37809         (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
37810         Remove associated type declarations and initialisations.
37811         (arm_expand_neon_builtin): Likewise.
37812         (neon_emit_pair_result_insn): Delete.
37813         * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
37814         * config/arm/neon.md (neon_vtrn<mode>): Delete.
37815         (neon_vzip<mode>): Likewise.
37816         (neon_vuzp<mode>): Likewise.
37817
37818 2014-05-13  Richard Biener  <rguenther@suse.de>
37819
37820         PR ipa/60973
37821         * tree-inline.c (remap_gimple_stmt): Clear tail call flag,
37822         it needs revisiting whether the call still may be tail-called.
37823
37824 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37825
37826         * rtl.def (SYMBOL_REF): Remove middle "0" field.
37827         * rtl.h (block_symbol): Reduce number of fields to 2.
37828         (rtx_def): Add u2.symbol_ref_flags.
37829         (SYMBOL_REF_FLAGS): Use it.
37830         (SYMBOL_REF_DATA, SET_SYMBOL_REF_DECL, SYMBOL_REF_DECL)
37831         (SET_SYMBOL_REF_CONSTANT, SYMBOL_REF_CONSTANT): Lower index.
37832         * gengtype.c (adjust_field_rtx_def): Remove SYMBOL_REF_FLAGS handling.
37833         Lower index of SYMBOL_REF_DATA.
37834         * print-rtl.c (print_rtx): Lower index for SYMBOL_REF_DATA.
37835         Print SYMBOL_REF_FLAGS at the same time.
37836         * genattrtab.c (attr_rtx_1): Only initialize 1 "0" SYMBOL_REF field.
37837
37838 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37839
37840         * rtl.def (VAR_LOCATION): Remove "i" field.
37841         * rtl.h (rtx_def): Add u2.var_location_status.
37842         (PAT_VAR_LOCATION_STATUS): Use it.
37843         (gen_rtx_VAR_LOCATION): Declare.
37844         * gengenrtl.c (excluded_rtx): Add VAR_LOCATION.
37845         * emit-rtl.c (gen_rtx_VAR_LOCATION): New function.
37846         * var-tracking.c (emit_note_insn_var_location): Remove casts.
37847
37848 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37849
37850         * rtl.def (scratch): Fix outdated comment and remove "0" field.
37851         * gengtype.c (adjust_field_rtx_def): Update accordingly.
37852
37853 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37854
37855         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, JUMP_TABLE_DATA)
37856         (BARRIER, CODE_LABEL, NOTE): Remove first "i" field.
37857         * rtl.h (rtx_def): Add insn_uid to u2 field.
37858         (RTX_FLAG_CHECK8): Delete in favor of...
37859         (RTL_INSN_CHAIN_FLAG_CHECK): ...this new macro.
37860         (INSN_DELETED_P): Update accordingly.
37861         (INSN_UID): Use u2.insn_uid.
37862         (INSN_CHAIN_CODE_P): Define.
37863         (PREV_INSN, NEXT_INSN, BLOCK_FOR_INSN, PATTERN, INSN_LOCATION)
37864         (INSN_CODE, REG_NOTES, CALL_INSN_FUNCTION_USAGE, CODE_LABEL_NUMBER)
37865         (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK, NOTE_EH_HANDLER)
37866         (NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_CFI, NOTE_LABEL_NUMBER)
37867         (NOTE_KIND, LABEL_NAME, LABEL_NUSES, JUMP_LABEL, LABEL_REFS): Lower
37868         indices accordingly.
37869         * print-rtl.c (print_rtx): Print INSN_UIDs before the main loop.
37870         Update indices for insn-chain rtxes.
37871         * gengtype.c (gen_rtx_next): Adjust test for insn-chain rtxes.
37872         (adjust_field_rtx_def): Lower '0' indices for all insn-chain rtxes.
37873         * emit-rtl.c (gen_label_rtx): Update gen_rtx_LABEL call.
37874         * caller-save.c (init_caller_save): Update gen_rtx_INSN calls.
37875         * combine.c (try_combine): Likewise.
37876         * ira.c (setup_prohibited_mode_move_regs): Likewise.
37877
37878 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37879
37880         * rtl.def (REG): Remove middle field.
37881         * rtl.h (rtx_def): Add orignal_regno to u2.
37882         (ORIGINAL_REGNO): Use it instead of field 1.
37883         (REG_ATTRS): Lower field index accordingly.
37884         * gengtype.c (adjust_field_rtx_def): Remove handling of
37885         ORIGINAL_REGNO.  Move REG_ATTRS index down.
37886         * print-rtl.c (print_rtx): Move ORIGINAL_REGNO handling to the
37887         code that prints the REGNO.
37888
37889 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37890
37891         * print-rtl.c (print_rtx): Guard whole '0' block with ifndef
37892         GENERATOR_FILE.
37893
37894 2014-05-13  Richard Sandiford  <rdsandiford@googlemail.com>
37895
37896         * rtl.h (rtx_def): Mark u2 as GTY ((skip)).
37897
37898 2014-05-13  Bin Cheng  <bin.cheng@arm.com>
37899
37900         * tree-ssa-loop-ivopts.c (contain_complex_addr_expr): New.
37901         (alloc_iv): Lower base expressions containing ADDR_EXPR.
37902
37903 2014-05-13  Ian Bolton  <ian.bolton@arm.com>
37904
37905         * config/aarch64/aarch64-protos.h
37906         (aarch64_hard_regno_caller_save_mode): New prototype.
37907         * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
37908         New function.
37909         * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
37910
37911 2014-05-13  Christian Bruel  <christian.bruel@st.com>
37912
37913         * target.def (mode_switching): New hook vector.
37914         (mode_emit, mode_needed, mode_after, mode_entry): New hooks.
37915         (mode_exit, modepriority_to_mode): Likewise.
37916         * mode-switching.c (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Hookify.
37917         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37918         * target.h: Include tm.h and hard-reg-set.h.
37919         * doc/tm.texi.in (EMIT_MODE_SET, MODE_NEEDED, MODE_AFTER, MODE_ENTRY)
37920         (MODE_EXIT, MODE_PRIORITY_TO_MODE): Delete and hookify.
37921         * doc/tm.texi Regenerate.
37922         * config/sh/sh.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37923         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37924         * config/sh/sh.c (sh_emit_mode_set, sh_mode_priority): Hookify.
37925         (sh_mode_needed, sh_mode_after, sh_mode_entry, sh_mode_exit): Likewise.
37926         * config/i386/i386.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY): Delete
37927         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37928         * config/i386/i386-protos.h (ix86_mode_needed, ix86_mode_after)
37929         (ix86_mode_entrym, ix86_emit_mode_set): Remove external declaration.
37930         * config/i386/i386.c (ix86_mode_needed, ix86_mode_after,
37931         (ix86_mode_exit, ix86_mode_entry, ix86_mode_priority)
37932         (ix86_emit_mode_set): Hookify.
37933         * config/epiphany/epiphany.h (MODE_NEEDED, MODE_AFTER, MODE_ENTRY):
37934         Delete.
37935         (MODE_EXIT, MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
37936         * config/epiphany/epiphany-protos.h (epiphany_mode_needed)
37937         (emit_set_fp_mode, epiphany_mode_entry_exit, epiphany_mode_after)
37938         (epiphany_mode_priority_to_mode): Remove declaration.
37939         * config/epiphany/epiphany.c (emit_set_fp_mode): Hookify.
37940         (epiphany_mode_needed, epiphany_mode_priority_to_mode): Likewise.
37941         (epiphany_mode_entry, epiphany_mode_exit, epiphany_mode_after):
37942         Likewise.
37943         (epiphany_mode_priority_to_mode): Change priority type.  Hookify.
37944         (epiphany_mode_needed, epiphany_mode_entry_exit): Hookify.
37945         (epiphany_mode_after, epiphany_mode_entry, emit_set_fp_mode): Hookify.
37946
37947 2014-05-13  Jakub Jelinek  <jakub@redhat.com>
37948
37949         PR target/61060
37950         * config/i386/i386.c (ix86_expand_set_or_movmem): If count_exp
37951         is const0_rtx, return immediately.  Don't test count == 0 when
37952         it is always true.
37953
37954 2014-05-13  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
37955
37956         * Makefile.in: add shrink-wrap.o.
37957         * config/i386/i386.c: include "shrink-wrap.h"
37958         * function.c: Likewise.
37959         (requires_stack_frame_p, next_block_for_reg,
37960         move_insn_for_shrink_wrap, prepare_shrink_wrap,
37961         dup_block_and_redirect): Move to shrink-wrap.c
37962         (thread_prologue_and_epilogue_insns): Extract three code segments
37963         as functions in shrink-wrap.c
37964         * function.h: Move #ifdef HAVE_simple_return ... #endif block to
37965         shrink-wrap.h
37966         * shrink-wrap.c: New file.
37967         * shrink-wrap.h: New file.
37968
37969 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
37970
37971         * doc/extend.texi: Reflect current numbers of pragmas.  Remove
37972         reference to Solaris.
37973
37974 2014-05-12  Mike Stump  <mikestump@comcast.net>
37975
37976         PR other/31778
37977         * genattrtab.c (filename): Add.
37978         (convert_set_attr_alternative): Improve error message.
37979         (check_defs): Restore read_md_filename for error messages.
37980         (gen_insn): Save filename.
37981
37982 2014-05-12  Dimitris Papavasiliou  <dpapavas@gmail.com>
37983
37984         * doc/invoke.texi: Document new switches -Wno-shadow-ivar,
37985         -fno-local-ivars and -fivar-visibility.
37986         * c-family/c.opt: Make -Wshadow also implicitly enable
37987         -Wshadow-ivar.
37988
37989 2014-05-12  David Wohlferd  <dw@LimeGreenSocks.com>
37990
37991         * doc/tm.texi: Remove reference to deleted macro.
37992         * doc/tm.texi.in: Likewise.
37993
37994 2014-05-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
37995
37996         PR target/60991
37997         * config/avr/avr.c (avr_out_store_psi): Use correct constant
37998         to restore Y.
37999
38000 2014-05-12  Georg-Johann Lay  <avr@gjlay.de>
38001
38002         PR libgcc/61152
38003         * config/arm/arm.h (License): Add GCC Runtime Library Exception.
38004         * config/arm/aout.h (License): Same.
38005         * config/arm/bpabi.h (License): Same.
38006         * config/arm/elf.h (License): Same.
38007         * config/arm/linux-elf.h (License): Same.
38008         * config/arm/linux-gas.h (License): Same.
38009         * config/arm/netbsd-elf.h (License): Same.
38010         * config/arm/uclinux-eabi.h (License): Same.
38011         * config/arm/uclinux-elf.h (License): Same.
38012         * config/arm/vxworks.h (License): Same.
38013
38014 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
38015
38016         * tree.h (OMP_CLAUSE_LINEAR_STMT): Define.
38017         * tree.c (omp_clause_num_ops): Increase OMP_CLAUSE_LINEAR
38018         number of operands to 3.
38019         (walk_tree_1): Walk all operands of OMP_CLAUSE_LINEAR.
38020         * tree-nested.c (convert_nonlocal_omp_clauses,
38021         convert_local_omp_clauses): Handle OMP_CLAUSE_DEPEND.
38022         * gimplify.c (gimplify_scan_omp_clauses): Handle
38023         OMP_CLAUSE_LINEAR_STMT.
38024         * omp-low.c (lower_rec_input_clauses): Fix typo.
38025         (maybe_add_implicit_barrier_cancel, lower_omp_1): Add
38026         cast between Fortran boolean_type_node and C _Bool if
38027         needed.
38028
38029 2014-05-11  Richard Sandiford  <rdsandiford@googlemail.com>
38030
38031         PR tree-optimization/61136
38032         * wide-int.h (multiple_of_p): Define a version that doesn't return
38033         the quotient.
38034         * fold-const.c (extract_muldiv_1): Use wi::multiple_of_p instead of an
38035         integer_zerop/const_binop pair.
38036         (multiple_of_p): Likewise, converting both operands to widest_int
38037         precision.
38038
38039 2014-05-09  Teresa Johnson  <tejohnson@google.com>
38040
38041         * cgraphunit.c (analyze_functions): Use correct dump file.
38042
38043 2014-05-09  Florian Weimer  <fweimer@redhat.com>
38044
38045         * cfgexpand.c (stack_protect_decl_p): New function, extracted from
38046         expand_used_vars.
38047         (stack_protect_return_slot_p): New function.
38048         (expand_used_vars): Call stack_protect_decl_p and
38049         stack_protect_return_slot_p for -fstack-protector-strong.
38050
38051 2014-05-09  David Wohlferd <LimeGreenSocks@yahoo.com>
38052         Andrew Haley <aph@redhat.com>
38053         Richard Sandiford <rdsandiford@googlemail.com>
38054
38055         * doc/extend.texi: Rewrite inline asm page / re-org asm-related
38056         pages.
38057
38058 2014-05-09  Kenneth Zadeck  <zadeck@naturalbridge.com>
38059
38060         PR middle-end/61111
38061         * fold-const.c (fold_binary_loc): Changed width of mask.
38062
38063 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38064
38065         * config/avr/avr-fixed.md (round<mode>3): Use -1U instead of -1 in
38066         unsigned int initializers for regno_in, regno_out.
38067
38068 2014-05-09  Georg-Johann Lay  <avr@gjlay.de>
38069
38070         PR target/61055
38071         * config/avr/avr.md (cc): Add new attribute set_vzn.
38072         (addqi3, addqq3, adduqq3, subqi3, subqq3, subuqq3, negqi2) [cc]:
38073         Set cc insn attribute to set_vzn instead of set_zn for alternatives
38074         with INC, DEC or NEG.
38075         * config/avr/avr.c (avr_notice_update_cc): Handle SET_VZN.
38076         (avr_out_plus_1): ADIW sets cc0 to CC_SET_CZN.
38077         INC, DEC and ADD+ADC set cc0 to CC_CLOBBER.
38078
38079 2014-05-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38080
38081         Revert:
38082         2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38083
38084         * wide-int.cc (UTItype): Define.
38085         (UDWtype): Define for appropriate W_TYPE_SIZE.
38086
38087 2014-05-09  Richard Biener  <rguenther@suse.de>
38088
38089         * Makefile.in (GTFILES): Remove tree-ssa-propagate.c.
38090         * tree-ssa-propagate.c: Do not include gt-tree-ssa-propagate.h.
38091         (interesting_ssa_edges, varying_ssa_edges): Move out of GC space.
38092         (add_ssa_edge, process_ssa_edge_worklist, ssa_prop_init,
38093         ssa_propagate): Adjust.
38094
38095 2014-05-08  Jeff Law  <law@redhat.com>
38096
38097         PR tree-optimization/61009
38098         * tree-ssa-threadedge.c (thread_through_normal_block): Return a
38099         tri-state rather than a boolean.  When a block is too big to
38100         thread through, inform caller via negative return value.
38101         (thread_across_edge): If a block was too big for normal threading,
38102         then it's too big for a joiner too, so remove temporary equivalences
38103         and return immediately.
38104
38105 2014-05-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
38106             Matthias Klose  <doko@ubuntu.com>
38107
38108         PR driver/61106
38109         * optc-gen.awk: Fix option handling for -Wunused-parameter.
38110
38111 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38112
38113         PR target/59952
38114         * config/i386/i386.c (PTA_HASWELL): Remove PTA_RTM.
38115
38116 2014-05-08  Uros Bizjak  <ubizjak@gmail.com>
38117
38118         PR target/61092
38119         * config/alpha/alpha.c: Include gimple-iterator.h.
38120         (alpha_gimple_fold_builtin): New function.  Move
38121         ALPHA_BUILTIN_UMULH folding from ...
38122         (alpha_fold_builtin): ... here.
38123         (TARGET_GIMPLE_FOLD_BUILTIN): New define.
38124
38125 2014-05-08  Wei Mi  <wmi@google.com>
38126
38127         PR target/58066
38128         * config/i386/i386.c (ix86_compute_frame_layout): Update
38129         preferred_stack_boundary for call, expanded from tls descriptor.
38130         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Update RTX
38131         to depend on SP register.
38132         (*tls_local_dynamic_base_32_gnu): Ditto.
38133         (*tls_local_dynamic_32_once): Ditto.
38134         (tls_global_dynamic_64_<mode>): Set
38135         ix86_tls_descriptor_calls_expanded_in_cfun.
38136         (tls_local_dynamic_base_64_<mode>): Ditto.
38137         (tls_global_dynamic_32): Set
38138         ix86_tls_descriptor_calls_expanded_in_cfun. Update RTX
38139         to depend on SP register.
38140         (tls_local_dynamic_base_32): Ditto.
38141
38142 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38143
38144         * config/arm/arm_neon.h: Update comment.
38145         * config/arm/neon-docgen.ml: Delete.
38146         * config/arm/neon-gen.ml: Delete.
38147         * doc/arm-neon-intrinsics.texi: Update comment.
38148
38149 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38150
38151         * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
38152         and v4sf versions.
38153         (vand, vorr, veor, vorn, vbic): Remove.
38154         * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
38155         iterator.
38156         (neon_vsub_unspec): Likewise.
38157         (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
38158
38159 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38160
38161         * config/arm/arm_neon.h (vadd_s8): GNU C implementation
38162         (vadd_s16): Likewise.
38163         (vadd_s32): Likewise.
38164         (vadd_f32): Likewise.
38165         (vadd_u8): Likewise.
38166         (vadd_u16): Likewise.
38167         (vadd_u32): Likewise.
38168         (vadd_s64): Likewise.
38169         (vadd_u64): Likewise.
38170         (vaddq_s8): Likewise.
38171         (vaddq_s16): Likewise.
38172         (vaddq_s32): Likewise.
38173         (vaddq_s64): Likewise.
38174         (vaddq_f32): Likewise.
38175         (vaddq_u8): Likewise.
38176         (vaddq_u16): Likewise.
38177         (vaddq_u32): Likewise.
38178         (vaddq_u64): Likewise.
38179         (vmul_s8): Likewise.
38180         (vmul_s16): Likewise.
38181         (vmul_s32): Likewise.
38182         (vmul_f32): Likewise.
38183         (vmul_u8): Likewise.
38184         (vmul_u16): Likewise.
38185         (vmul_u32): Likewise.
38186         (vmul_p8): Likewise.
38187         (vmulq_s8): Likewise.
38188         (vmulq_s16): Likewise.
38189         (vmulq_s32): Likewise.
38190         (vmulq_f32): Likewise.
38191         (vmulq_u8): Likewise.
38192         (vmulq_u16): Likewise.
38193         (vmulq_u32): Likewise.
38194         (vsub_s8): Likewise.
38195         (vsub_s16): Likewise.
38196         (vsub_s32): Likewise.
38197         (vsub_f32): Likewise.
38198         (vsub_u8): Likewise.
38199         (vsub_u16): Likewise.
38200         (vsub_u32): Likewise.
38201         (vsub_s64): Likewise.
38202         (vsub_u64): Likewise.
38203         (vsubq_s8): Likewise.
38204         (vsubq_s16): Likewise.
38205         (vsubq_s32): Likewise.
38206         (vsubq_s64): Likewise.
38207         (vsubq_f32): Likewise.
38208         (vsubq_u8): Likewise.
38209         (vsubq_u16): Likewise.
38210         (vsubq_u32): Likewise.
38211         (vsubq_u64): Likewise.
38212         (vand_s8): Likewise.
38213         (vand_s16): Likewise.
38214         (vand_s32): Likewise.
38215         (vand_u8): Likewise.
38216         (vand_u16): Likewise.
38217         (vand_u32): Likewise.
38218         (vand_s64): Likewise.
38219         (vand_u64): Likewise.
38220         (vandq_s8): Likewise.
38221         (vandq_s16): Likewise.
38222         (vandq_s32): Likewise.
38223         (vandq_s64): Likewise.
38224         (vandq_u8): Likewise.
38225         (vandq_u16): Likewise.
38226         (vandq_u32): Likewise.
38227         (vandq_u64): Likewise.
38228         (vorr_s8): Likewise.
38229         (vorr_s16): Likewise.
38230         (vorr_s32): Likewise.
38231         (vorr_u8): Likewise.
38232         (vorr_u16): Likewise.
38233         (vorr_u32): Likewise.
38234         (vorr_s64): Likewise.
38235         (vorr_u64): Likewise.
38236         (vorrq_s8): Likewise.
38237         (vorrq_s16): Likewise.
38238         (vorrq_s32): Likewise.
38239         (vorrq_s64): Likewise.
38240         (vorrq_u8): Likewise.
38241         (vorrq_u16): Likewise.
38242         (vorrq_u32): Likewise.
38243         (vorrq_u64): Likewise.
38244         (veor_s8): Likewise.
38245         (veor_s16): Likewise.
38246         (veor_s32): Likewise.
38247         (veor_u8): Likewise.
38248         (veor_u16): Likewise.
38249         (veor_u32): Likewise.
38250         (veor_s64): Likewise.
38251         (veor_u64): Likewise.
38252         (veorq_s8): Likewise.
38253         (veorq_s16): Likewise.
38254         (veorq_s32): Likewise.
38255         (veorq_s64): Likewise.
38256         (veorq_u8): Likewise.
38257         (veorq_u16): Likewise.
38258         (veorq_u32): Likewise.
38259         (veorq_u64): Likewise.
38260         (vbic_s8): Likewise.
38261         (vbic_s16): Likewise.
38262         (vbic_s32): Likewise.
38263         (vbic_u8): Likewise.
38264         (vbic_u16): Likewise.
38265         (vbic_u32): Likewise.
38266         (vbic_s64): Likewise.
38267         (vbic_u64): Likewise.
38268         (vbicq_s8): Likewise.
38269         (vbicq_s16): Likewise.
38270         (vbicq_s32): Likewise.
38271         (vbicq_s64): Likewise.
38272         (vbicq_u8): Likewise.
38273         (vbicq_u16): Likewise.
38274         (vbicq_u32): Likewise.
38275         (vbicq_u64): Likewise.
38276         (vorn_s8): Likewise.
38277         (vorn_s16): Likewise.
38278         (vorn_s32): Likewise.
38279         (vorn_u8): Likewise.
38280         (vorn_u16): Likewise.
38281         (vorn_u32): Likewise.
38282         (vorn_s64): Likewise.
38283         (vorn_u64): Likewise.
38284         (vornq_s8): Likewise.
38285         (vornq_s16): Likewise.
38286         (vornq_s32): Likewise.
38287         (vornq_s64): Likewise.
38288         (vornq_u8): Likewise.
38289         (vornq_u16): Likewise.
38290         (vornq_u32): Likewise.
38291         (vornq_u64): Likewise.
38292
38293 2014-05-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
38294
38295         * wide-int.cc (UTItype): Define.
38296         (UDWtype): Define for appropriate W_TYPE_SIZE.
38297
38298 2014-05-08  Marc Glisse  <marc.glisse@inria.fr>
38299
38300         PR tree-optimization/59100
38301         * tree-ssa-phiopt.c: Include tree-inline.h.
38302         (neutral_element_p, absorbing_element_p): New functions.
38303         (value_replacement): Handle conditional binary operations with a
38304         neutral or absorbing element.
38305
38306 2014-05-08  Richard Biener  <rguenther@suse.de>
38307
38308         * tree-ssa-sccvn.c (vn_get_expr_for): Valueize operands before
38309         folding the expression.
38310         (valueize_expr): Remove.
38311         (visit_reference_op_load): Do not valueize the result of
38312         vn_get_expr_for.
38313         (simplify_binary_expression): Likewise.
38314         (simplify_unary_expression): Likewise.
38315
38316 2014-05-08  Richard Biener  <rguenther@suse.de>
38317
38318         * gimplify.c (gimplify_call_expr): Use saved fnptrtype for
38319         looking at TYPE_ARG_TYPES.
38320
38321 2014-05-08  Richard Biener  <rguenther@suse.de>
38322
38323         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
38324         pointer propagation special-case.
38325
38326 2014-05-08  Bin Cheng  <bin.cheng@arm.com>
38327
38328         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF for
38329         core part of address expressions.
38330
38331 2014-05-08  Alan Modra  <amodra@gmail.com>
38332
38333         PR target/60737
38334         * config/rs6000/rs6000.c (expand_block_move): Allow 64-bit
38335         loads and stores when -mno-strict-align at any alignment.
38336         (expand_block_clear): Similarly.  Also correct calculation of
38337         instruction count.
38338
38339 2014-05-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
38340
38341         PR middle-end/39246
38342         * tree-complex.c (expand_complex_move): Keep line info when expanding
38343         complex move.
38344         * tree-ssa-uninit.c (warn_uninit): New argument. Ignore assignment
38345         of complex expression. Use new argument to display correct location
38346         for values coming from phi statement.
38347         (warn_uninitialized_vars): Adapt to new signature of warn_uninit.
38348         (warn_uninitialized_phi): Pass location of phi argument to
38349         warn_uninit.
38350         * tree-ssa.c (ssa_undefined_value_p): For SSA_NAME initialized by a
38351         COMPLEX_EXPR, recurse on each part of the COMPLEX_EXPR.
38352
38353 2014-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
38354
38355         * config/rs6000/predicates.md (indexed_address_mem): New.
38356         * config/rs6000/rs6000.md (type): Remove load_ext, load_ext_u,
38357         load_ext_ux, load_ux, load_u, store_ux, store_u, fpload_ux, fpload_u,
38358         fpstore_ux, fpstore_u.
38359         (sign_extend, indexed, update): New.
38360         (cell_micro): Adjust.
38361         (*zero_extend<mode>di2_internal1, *zero_extendsidi2_lfiwzx,
38362         *extendsidi2_lfiwax, *extendsidi2_nocell, *extendsfdf2_fpr,
38363         *movsi_internal1, *movsi_internal1_single, *movhi_internal,
38364         *movqi_internal, *movcc_internal1, mov<mode>_hardfloat,
38365         *mov<mode>_softfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
38366         *mov<mode>_softfloat64, *movdi_internal32, *movdi_internal64,
38367         *mov<mode>_string, *ldmsi8, *ldmsi7, *ldmsi6, *ldmsi5, *ldmsi4,
38368         *ldmsi3, *stmsi8, *stmsi7, *stmsi6, *stmsi5, *stmsi4, *stmsi3,
38369         *movdi_update1, movdi_<mode>_update, movdi_<mode>_update_stack,
38370         *movsi_update1, *movsi_update2, movsi_update, movsi_update_stack,
38371         *movhi_update1, *movhi_update2, *movhi_update3, *movhi_update4,
38372         *movqi_update1, *movqi_update2, *movqi_update3, *movsf_update1,
38373         *movsf_update2, *movsf_update3, *movsf_update4, *movdf_update1,
38374         *movdf_update2, load_toc_aix_si, load_toc_aix_di, probe_stack_<mode>,
38375         *stmw, *lmw, as well as 10 anonymous patterns): Adjust.
38376
38377         * config/rs6000/dfp.md (movsd_store, movsd_load): Adjust.
38378         * config/rs6000/vsx.md (*vsx_movti_32bit, *vsx_extract_<mode>_load,
38379         *vsx_extract_<mode>_store): Adjust.
38380         * config/rs6000/rs6000.c (rs6000_adjust_cost, is_microcoded_insn,
38381         is_cracked_insn, insn_must_be_first_in_group,
38382         insn_must_be_last_in_group): Adjust.
38383
38384         * config/rs6000/40x.md (ppc403-load, ppc403-store, ppc405-float):
38385         Adjust.
38386         * config/rs6000/440.md (ppc440-load, ppc440-store, ppc440-fpload,
38387         ppc440-fpstore): Adjust.
38388         * config/rs6000/476.md (ppc476-load, ppc476-store, ppc476-fpload,
38389         ppc476-fpstore): Adjust.
38390         * config/rs6000/601.md (ppc601-load, ppc601-store, ppc601-fpload,
38391         ppc601-fpstore): Adjust.
38392         * config/rs6000/603.md (ppc603-load, ppc603-store, ppc603-fpload):
38393         Adjust.
38394         * config/rs6000/6xx.md (ppc604-load, ppc604-store, ppc604-fpload):
38395         Adjust.
38396         * config/rs6000/7450.md (ppc7450-load, ppc7450-store, ppc7450-fpload,
38397         ppc7450-fpstore): Adjust.
38398         * config/rs6000/7xx.md (ppc750-load, ppc750-store): Adjust.
38399         * config/rs6000/8540.md (ppc8540_load, ppc8540_store): Adjust.
38400         * config/rs6000/a2.md (ppca2-load, ppca2-fp-load, ppca2-fp-store):
38401         Adjust.
38402         * config/rs6000/cell.md (cell-load, cell-load-ux, cell-load-ext,
38403         cell-fpload, cell-fpload-update, cell-store, cell-store-update,
38404         cell-fpstore, cell-fpstore-update): Adjust.
38405         * config/rs6000/e300c2c3.md (ppce300c3_load, ppce300c3_fpload,
38406         ppce300c3_store, ppce300c3_fpstore): Adjust.
38407         * config/rs6000/e500mc.md (e500mc_load, e500mc_fpload, e500mc_store,
38408         e500mc_fpstore): Adjust.
38409         * config/rs6000/e500mc64.md (e500mc64_load, e500mc64_fpload,
38410         e500mc64_store, e500mc64_fpstore): Adjust.
38411         * config/rs6000/e5500.md (e5500_load, e5500_fpload, e5500_store,
38412         e5500_fpstore): Adjust.
38413         * config/rs6000/e6500.md (e6500_load, e6500_fpload, e6500_store,
38414         e6500_fpstore): Adjust.
38415         * config/rs6000/mpc.md (mpccore-load, mpccore-store, mpccore-fpload):
38416         Adjust.
38417         * config/rs6000/power4.md (power4-load, power4-load-ext,
38418         power4-load-ext-update, power4-load-ext-update-indexed,
38419         power4-load-update-indexed, power4-load-update, power4-fpload,
38420         power4-fpload-update, power4-store, power4-store-update,
38421         power4-store-update-indexed, power4-fpstore, power4-fpstore-update):
38422         Adjust.
38423         * config/rs6000/power5.md (power5-load, power5-load-ext,
38424         power5-load-ext-update, power5-load-ext-update-indexed,
38425         power5-load-update-indexed, power5-load-update, power5-fpload,
38426         power5-fpload-update, power5-store, power5-store-update,
38427         power5-store-update-indexed, power5-fpstore, power5-fpstore-update):
38428         Adjust.
38429         * config/rs6000/power6.md (power6-load, power6-load-ext,
38430         power6-load-update, power6-load-update-indexed,
38431         power6-load-ext-update, power6-load-ext-update-indexed, power6-fpload,
38432         power6-fpload-update, power6-store, power6-store-update,
38433         power6-store-update-indexed, power6-fpstore, power6-fpstore-update):
38434         Adjust.
38435         * config/rs6000/power7.md (power7-load, power7-load-ext,
38436         power7-load-update, power7-load-update-indexed,
38437         power7-load-ext-update, power7-load-ext-update-indexed, power7-fpload,
38438         power7-fpload-update, power7-store, power7-store-update,
38439         power7-store-update-indexed, power7-fpstore, power7-fpstore-update):
38440         Adjust.
38441         * config/rs6000/power8.md (power8-load, power8-load-update,
38442         power8-load-ext, power8-load-ext-update, power8-fpload,
38443         power8-fpload-update, power8-store, power8-store-update-indexed,
38444         power8-fpstore, power8-fpstore-update): Adjust.
38445         * config/rs6000/rs64.md (rs64a-load, rs64a-store, rs64a-fpload):
38446         Adjust.
38447         * config/rs6000/titan.md (titan_lsu_load, titan_lsu_fpload,
38448         titan_lsu_store, titan_lsu_fpstore): Adjust.
38449         * config/rs6000/xfpu.md (fp-load, fp-store): Adjust.
38450
38451 2014-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
38452
38453         PR target/60884
38454         * config/sh/sh-mem.cc (sh_expand_strlen): Use loop when emitting
38455         unrolled byte insns.  Emit address increments after move insns.
38456
38457 2014-05-07  David Malcolm  <dmalcolm@redhat.com>
38458
38459         * gimple.h (gimple_builtin_call_types_compatible_p): Accept a
38460         const_gimple, rather than a gimple.
38461         (gimple_call_builtin_p): Likewise, for the three variants.
38462
38463         * gimple.c (gimple_builtin_call_types_compatible_p): Likewise.
38464         (gimple_call_builtin_p): Likewise, for the three variants.
38465
38466 2014-05-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
38467
38468         PR tree-optimization/61095
38469         * tree-ssanames.c (get_nonzero_bits): Fix type extension in wi::shwi.
38470
38471 2014-05-07  Richard Biener  <rguenther@suse.de>
38472
38473         PR tree-optimization/61034
38474         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Export.
38475         (maybe_skip_until): Use translate to take into account
38476         lattices when trying to do disambiguations.
38477         (get_continuation_for_phi_1): Likewise.
38478         (get_continuation_for_phi): Adjust for added translate arguments.
38479         (walk_non_aliased_vuses): Likewise.
38480         * tree-ssa-alias.h (get_continuation_for_phi): Adjust prototype.
38481         (walk_non_aliased_vuses): Likewise.
38482         (call_may_clobber_ref_p_1): Declare.
38483         * tree-ssa-sccvn.c (vn_reference_lookup_3): Also disambiguate against
38484         calls.  Stop early if we are only supposed to disambiguate.
38485         * tree-ssa-pre.c (translate_vuse_through_block): Adjust.
38486
38487 2014-05-07  Joern Rennecke  <joern.rennecke@embecosm.com>
38488
38489         * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
38490         Emit an error when the function has arguments.
38491
38492 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38493
38494         * cfgloop.h (unswitch_loops): Remove.
38495         * doc/passes.texi: Remove references to loop-unswitch.c
38496         * timevar.def (TV_LOOP_UNSWITCH): Remove.
38497
38498 2014-05-07  Evgeny Stupachenko  <evstupac@gmail.com>
38499
38500         * tree-vect-data-refs.c (vect_grouped_load_supported): New
38501         check for loads group of length 3.
38502         (vect_permute_load_chain): New permutations for loads group of
38503         length 3.
38504         * tree-vect-stmts.c (vect_model_load_cost): Change cost
38505         of vec_perm_shuffle for the new permutations.
38506
38507 2014-05-07  Alan Lawrence  <alan.lawrence@arm.com>
38508
38509         * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
38510         vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
38511         vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
38512         vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
38513         vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
38514         vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
38515         vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
38516         vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
38517
38518 2014-05-07  Thomas Schwinge  <thomas@codesourcery.com>
38519
38520         * loop-unswitch.c: Delete.
38521
38522 2014-05-07  Richard Biener  <rguenther@suse.de>
38523
38524         * config.gcc: Always set need_64bit_hwint to yes.
38525
38526 2014-05-07  Chung-Ju Wu  <jasonwucj@gmail.com>
38527
38528         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Have it in favor
38529         of using optimize_size.
38530
38531 2014-05-06  Mike Stump  <mikestump@comcast.net>
38532
38533         * wide-int.h (wi::int_traits <HOST_WIDE_INT>): Always define.
38534
38535 2014-05-06  Joseph Myers  <joseph@codesourcery.com>
38536
38537         * config/i386/sse.md (*mov<mode>_internal)
38538         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>)
38539         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>)
38540         (<sse>_andnot<mode>3, <code><mode>3, *andnot<mode>3)
38541         (*<code><mode>3, *andnot<mode>3<mask_name>)
38542         (<mask_codefor><code><mode>3<mask_name>): Only consider
38543         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL for modes of size 16.
38544
38545 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38546
38547         Revert:
38548         2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
38549
38550         * lra-constraints.c (valid_address_p): Move earlier in file.
38551         Add a constraint argument to the address_info version.
38552         (satisfies_memory_constraint_p): New function.
38553         (satisfies_address_constraint_p): Likewise.
38554         (process_alt_operands, curr_insn_transform): Use them.
38555         (process_address): Pass the constraint to valid_address_p when
38556         checking address operands.
38557
38558 2014-05-06  Richard Sandiford  <r.sandiford@uk.ibm.com>
38559
38560         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
38561         to their respective blocks.  Fix inadvertent use of "node".
38562
38563 2014-05-06  Richard Sandiford  <rdsandiford@googlemail.com>
38564
38565         * emit-rtl.c (init_derived_machine_modes): New functionm, split
38566         out from...
38567         (init_emit_once): ...here.
38568         * rtl.h (init_derived_machine_modes): Declare.
38569         * toplev.c (do_compile): Call it even if no_backend.
38570
38571 2014-05-06  Kenneth Zadeck  <zadeck@naturalbridge.com>
38572             Mike Stump  <mikestump@comcast.net>
38573             Richard Sandiford  <rdsandiford@googlemail.com>
38574             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38575
38576         * alias.c (ao_ref_from_mem): Use wide-int interfaces.
38577         (rtx_equal_for_memref_p): Update comment.
38578         (adjust_offset_for_component_ref): Use wide-int interfaces.
38579         * builtins.c (get_object_alignment_2): Likewise.
38580         (c_readstr): Likewise.
38581         (target_char_cast): Add comment.
38582         (determine_block_size): Use wide-int interfaces.
38583         (expand_builtin_signbit): Likewise.
38584         (fold_builtin_int_roundingfn): Likewise.
38585         (fold_builtin_bitop): Likewise.
38586         (fold_builtin_bswap): Likewise.
38587         (fold_builtin_logarithm): Use signop.
38588         (fold_builtin_pow): Likewise.
38589         (fold_builtin_memory_op): Use wide-int interfaces.
38590         (fold_builtin_object_size): Likewise.
38591         * cfgloop.c (alloc_loop): Initialize nb_iterations_upper_bound and
38592         nb_iterations_estimate.
38593         (record_niter_bound): Use wide-int interfaces.
38594         (get_estimated_loop_iterations_int): Likewise.
38595         (get_estimated_loop_iterations): Likewise.
38596         (get_max_loop_iterations): Likewise.
38597         * cfgloop.h: Include wide-int.h.
38598         (struct nb_iter_bound): Change bound to widest_int.
38599         (struct loop): Change nb_iterations_upper_bound and
38600         nb_iterations_estimate to widest_int.
38601         (record_niter_bound): Switch to use widest_int.
38602         (get_estimated_loop_iterations): Likewise.
38603         (get_max_loop_iterations): Likewise.
38604         (gcov_type_to_double_int): Rename to gcov_type_to_wide_int and
38605         update for wide-int.
38606         * cgraph.c (cgraph_add_thunk): Use wide-int interfaces.
38607         * combine.c (try_combine): Likewise.
38608         (subst): Use CONST_SCALAR_INT_P rather than CONST_INT_P.
38609         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Use wide-int
38610         interfaces.
38611         (aarch64_float_const_representable_p): Likewise.
38612         * config/arc/arc.c: Include wide-int.h.
38613         (arc_can_use_doloop_p): Use wide-int interfaces.
38614         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
38615         (vfp3_const_double_index): Likewise.
38616         * config/avr/avr.c (avr_out_round): Likewise.
38617         (avr_fold_builtin): Likewise.
38618         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
38619         (bfin_can_use_doloop_p): Likewise.
38620         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
38621         (machopic_select_rtx_section): Update to handle CONST_WIDE_INT.
38622         * config/i386/i386.c: Include wide-int.h.
38623         (ix86_data_alignment): Use wide-int interfaces.
38624         (ix86_local_alignment): Likewise.
38625         (ix86_emit_swsqrtsf): Update real_from_integer.
38626         * config/msp430/msp430.c (msp430_attr): Use wide-int interfaces.
38627         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
38628         * config/rs6000/predicates.md (any_operand): Add const_wide_int.
38629         (zero_constant): Likewise.
38630         (input_operand): Likewise.
38631         (splat_input_operand): Likewise.
38632         (non_logical_cint_operand): Change const_double to const_wide_int.
38633         * config/rs6000/rs6000.c (num_insns_constant): Handle CONST_WIDE_INT.
38634         (easy_altivec_constant): Remove comment.
38635         (paired_expand_vector_init): Use CONSTANT_P.
38636         (rs6000_legitimize_address): Handle CONST_WIDE_INT.
38637         (rs6000_emit_move): Update checks.
38638         (rs6000_aggregate_candidate): Use wide-int interfaces.
38639         (rs6000_expand_ternop_builtin): Likewise.
38640         (rs6000_output_move_128bit): Handle CONST_WIDE_INT.
38641         (rs6000_assemble_integer): Likewise.
38642         (rs6000_hash_constant): Likewise.
38643         (output_toc): Likewise.
38644         (rs6000_rtx_costs): Likewise.
38645         (rs6000_emit_swrsqrt); Update call to real_from_integer.
38646         * config/rs6000/rs6000-c.c: Include wide-int.h.
38647         (altivec_resolve_overloaded_builtin): Use wide-int interfaces.
38648         * config/rs6000/rs6000.h (TARGET_SUPPORTS_WIDE_INT): New.
38649         * config/rs6000/rs6000.md: Use const_scalar_int_operand.
38650         Handle CONST_WIDE_INT.
38651         * config/sol2-c.c (solaris_pragma_align): Change low to unsigned HWI.
38652         Use tree_fits_uhwi_p.
38653         * config/sparc/sparc.c: Include wide-int.h.
38654         (sparc_fold_builtin): Use wide-int interfaces.
38655         * config/vax/vax.c: Include wide-int.h.
38656         (vax_float_literal): Use real_from_integer.
38657         * coretypes.h (struct hwivec_def): New.
38658         (hwivec): New.
38659         (const_hwivec): New.
38660         * cse.c (hash_rtx_cb): Handle CONST_WIDE_INT.
38661         (equiv_constant): Handle CONST_WIDE_INT.
38662         * cselib.c (rtx_equal_for_cselib_1): Use CASE_CONST_UNIQUE.
38663         (cselib_hash_rtx): Handle CONST_WIDE_INT.
38664         * dbxout.c (stabstr_U): Use wide-int interfaces.
38665         (dbxout_type): Update to use cst_fits_shwi_p.
38666         * defaults.h (LOG2_BITS_PER_UNIT): Define.
38667         (TARGET_SUPPORTS_WIDE_INT): Add default.
38668         * dfp.c: Include wide-int.h.
38669         (decimal_real_to_integer2): Use wide-int interfaces and rename to
38670         decimal_real_to_integer.
38671         * dfp.h (decimal_real_to_integer2): Return a wide_int and rename to
38672         decimal_real_to_integer.
38673         * doc/generic.texi (Constant expressions): Update for wide_int.
38674         * doc/rtl.texi (const_double): Likewise.
38675         (const_wide_int, CONST_WIDE_INT, CONST_WIDE_INT_VEC): New.
38676         (CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_ELT): New.
38677         * doc/tm.texi.in (REAL_VALUE_TO_INT): Remove.
38678         (REAL_VALUE_FROM_INT): Remove.
38679         (TARGET_SUPPORTS_WIDE_INT): New.
38680         * doc/tm.texi: Regenerate.
38681         * dojump.c (prefer_and_bit_test): Use wide-int interfaces.
38682         * double-int.h: Include wide-int.h.
38683         (struct wi::int_traits): New.
38684         * dwarf2out.c (get_full_len): New.
38685         (dw_val_equal_p): Add case dw_val_class_wide_int.
38686         (size_of_loc_descr): Likewise.
38687         (output_loc_operands): Likewise.
38688         (insert_double): Remove.
38689         (insert_wide_int): New.
38690         (add_AT_wide): New.
38691         (print_die): Add case dw_val_class_wide_int.
38692         (attr_checksum): Likewise.
38693         (attr_checksum_ordered): Likewise.
38694         (same_dw_val_p): Likewise.
38695         (size_of_die): Likewise.
38696         (value_format): Likewise.
38697         (output_die): Likewise.
38698         (double_int_type_size_in_bits): Rename to offset_int_type_size_in_bits.
38699         Use wide-int.
38700         (clz_loc_descriptor): Use wide-int interfaces.
38701         (mem_loc_descriptor): Likewise.  Handle CONST_WIDE_INT.
38702         (loc_descriptor): Use wide-int interfaces.  Handle CONST_WIDE_INT.
38703         (round_up_to_align): Use wide-int interfaces.
38704         (field_byte_offset): Likewise.
38705         (insert_double): Rename to insert_wide_int.  Use wide-int interfaces.
38706         (add_const_value_attribute): Handle CONST_WIDE_INT.  Update
38707         CONST_DOUBLE handling.  Use wide-int interfaces.
38708         (add_bound_info): Use tree_fits_uhwi_p.  Use wide-int interfaces.
38709         (gen_enumeration_type_die): Use add_AT_wide.
38710         (hash_loc_operands): Add case dw_val_class_wide_int.
38711         (compare_loc_operands): Likewise.
38712         * dwarf2out.h: Include wide-int.h.
38713         (wide_int_ptr): New.
38714         (enum dw_val_class): Add dw_val_class_wide_int.
38715         (struct dw_val_struct): Add val_wide.
38716         * emit-rtl.c (const_wide_int_htab): New.
38717         (const_wide_int_htab_hash): New.
38718         (const_wide_int_htab_eq): New.
38719         (lookup_const_wide_int): New.
38720         (const_double_htab_hash): Use wide-int interfaces.
38721         (const_double_htab_eq): Likewise.
38722         (rtx_to_double_int): Conditionally compile for wide-int.
38723         (immed_double_int_const): Rename to immed_wide_int_const and
38724         update for wide-int.
38725         (immed_double_const): Conditionally compile for wide-int.
38726         (init_emit_once): Use wide-int interfaces.
38727         * explow.c (plus_constant): Likewise.
38728         * expmed.c (mask_rtx): Move further up file.  Use wide-int interfaces.
38729         (lshift_value): Use wide-int interfaces.
38730         (expand_mult): Likewise.
38731         (choose_multiplier): Likewise.
38732         (expand_smod_pow2): Likewise.
38733         (make_tree): Likewise.
38734         * expr.c (convert_modes): Consolidate handling of constants.
38735         Use wide-int interfaces.
38736         (emit_group_load_1): Add note.
38737         (store_expr): Update comment.
38738         (get_inner_reference): Use wide-int interfaces.
38739         (expand_constructor): Update comment.
38740         (expand_expr_real_2): Use wide-int interfaces.
38741         (expand_expr_real_1): Likewise.
38742         (reduce_to_bit_field_precision): Likewise.
38743         (const_vector_from_tree): Likewise.
38744         * final.c: Include wide-int-print.h.
38745         (output_addr_const): Handle CONST_WIDE_INT.  Use CONST_DOUBLE_AS_INT_P.
38746         * fixed-value.c: Include wide-int.h.
38747         (fixed_from_string): Use wide-int interfaces.
38748         (fixed_to_decimal): Likewise.
38749         (fixed_convert_from_real): Likewise.
38750         (real_convert_from_fixed): Likewise.
38751         * fold-const.h (mem_ref_offset): Return an offset_int.
38752         (div_if_zero_remainder): Remove code parameter.
38753         * fold-const.c (div_if_zero_remainder): Remove code parameter.
38754         Use wide-int interfaces.
38755         (may_negate_without_overflow_p): Use wide-int interfaces.
38756         (negate_expr_p): Likewise.
38757         (fold_negate_expr): Likewise.
38758         (int_const_binop_1): Likewise.
38759         (const_binop): Likewise.
38760         (fold_convert_const_int_from_int): Likewise.
38761         (fold_convert_const_int_from_real): Likewise.
38762         (fold_convert_const_int_from_fixed): Likewise.
38763         (fold_convert_const_fixed_from_int): Likewise.
38764         (all_ones_mask_p): Take an unsigned size.  Use wide-int interfaces.
38765         (sign_bit_p): Use wide-int interfaces.
38766         (make_range_step): Likewise.
38767         (build_range_check): Likewise.  Pass an integer of the correct type
38768         instead of using integer_one_node.
38769         (range_predecessor): Pass an integer of the correct type instead
38770         of using integer_one_node.
38771         (range_successor): Likewise.
38772         (merge_ranges): Likewise.
38773         (unextend): Use wide-int interfaces.
38774         (extract_muldiv_1): Likewise.
38775         (fold_div_compare): Likewise.
38776         (fold_single_bit_test): Likewise.
38777         (fold_sign_changed_comparison): Likewise.
38778         (try_move_mult_to_index): Update calls to div_if_zero_remainder.
38779         (fold_plusminus_mult_expr): Use wide-int interfaces.
38780         (native_encode_int): Likewise.
38781         (native_interpret_int): Likewise.
38782         (fold_unary_loc): Likewise.
38783         (pointer_may_wrap_p): Likewise.
38784         (size_low_cst): Likewise.
38785         (mask_with_tz): Likewise.
38786         (fold_binary_loc): Likewise.
38787         (fold_ternary_loc): Likewise.
38788         (multiple_of_p): Likewise.
38789         (tree_call_nonnegative_warnv_p): Update calls to
38790         tree_int_cst_min_precision and real_from_integer.
38791         (fold_negate_const): Use wide-int interfaces.
38792         (fold_abs_const): Likewise.
38793         (fold_relational_const): Use tree_int_cst_lt.
38794         (round_up_loc): Use wide-int interfaces.
38795         * genemit.c (gen_exp): Add CONST_WIDE_INT case.
38796         * gengenrtl.c (excluded_rtx): Add CONST_WIDE_INT case.
38797         * gengtype.c: Remove include of double-int.h.
38798         (do_typedef): Use wide-int interfaces.
38799         (open_base_files): Add wide-int.h.
38800         (main): Add offset_int and widest_int typedefs.
38801         * gengtype-lex.l: Handle "^".
38802         (CXX_KEYWORD): Add "static".
38803         * gengtype-parse.c (require3): New.
38804         (require_template_declaration): Handle constant template arguments
38805         and nested templates.
38806         * gengtype-state.c: Don't include "double-int.h".
38807         * genpreds.c (write_one_predicate_function): Update comment.
38808         (write_tm_constrs_h): Add check for hval and lval use in
38809         CONST_WIDE_INT.
38810         * genrecog.c (validate_pattern): Add CONST_WIDE_INT case.
38811         (add_to_sequence): Likewise.
38812         * gensupport.c (struct std_pred_table): Add const_scalar_int_operand
38813         and const_double_operand.
38814         * gimple.c (preprocess_case_label_vec_for_gimple): Use wide-int
38815         interfaces.
38816         * gimple-fold.c (get_base_constructor): Likewise.
38817         (fold_array_ctor_reference): Likewise.
38818         (fold_nonarray_ctor_reference): Likewise.
38819         (fold_const_aggregate_ref_1): Likewise.
38820         (gimple_val_nonnegative_real_p): Likewise.
38821         (gimple_fold_indirect_ref): Likewise.
38822         * gimple-pretty-print.c (dump_ssaname_info): Likewise.
38823         * gimple-ssa-strength-reduction.c: Include wide-int-print.h.
38824         (struct slsr_cand_d): Change index to be widest_int.
38825         (struct incr_info_d): Change incr to be widest_int.
38826         (alloc_cand_and_find_basis): Use wide-int interfaces.
38827         (slsr_process_phi): Likewise.
38828         (backtrace_base_for_ref): Likewise.  Return a widest_int.
38829         (restructure_reference): Take a widest_int instead of a double_int.
38830         (slsr_process_ref): Use wide-int interfaces.
38831         (create_mul_ssa_cand): Likewise.
38832         (create_mul_imm_cand): Likewise.
38833         (create_add_ssa_cand): Likewise.
38834         (create_add_imm_cand): Take a widest_int instead of a double_int.
38835         (slsr_process_add): Use wide-int interfaces.
38836         (slsr_process_cast): Likewise.
38837         (slsr_process_copy): Likewise.
38838         (dump_candidate): Likewise.
38839         (dump_incr_vec): Likewise.
38840         (replace_ref): Likewise.
38841         (cand_increment): Likewise.  Return a widest_int.
38842         (cand_abs_increment): Likewise.
38843         (replace_mult_candidate): Take a widest_int instead of a double_int.
38844         (replace_unconditional_candidate): Use wide-int interfaces.
38845         (incr_vec_index): Take a widest_int instead of a double_int.
38846         (create_add_on_incoming_edge): Likewise.
38847         (create_phi_basis): Use wide-int interfaces.
38848         (replace_conditional_candidate): Likewise.
38849         (record_increment): Take a widest_int instead of a double_int.
38850         (record_phi_increments): Use wide-int interfaces.
38851         (phi_incr_cost): Take a widest_int instead of a double_int.
38852         (lowest_cost_path): Likewise.
38853         (total_savings): Likewise.
38854         (analyze_increments): Use wide-int interfaces.
38855         (ncd_with_phi): Take a widest_int instead of a double_int.
38856         (ncd_of_cand_and_phis): Likewise.
38857         (nearest_common_dominator_for_cands): Likewise.
38858         (insert_initializers): Use wide-int interfaces.
38859         (all_phi_incrs_profitable): Likewise.
38860         (replace_one_candidate): Likewise.
38861         (replace_profitable_candidates): Likewise.
38862         * godump.c: Include wide-int-print.h.
38863         (go_output_typedef): Use wide-int interfaces.
38864         * graphite-clast-to-gimple.c (gmp_cst_to_tree): Likewise.
38865         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
38866         (build_loop_iteration_domains): Likewise.
38867         * hooks.h: Include wide-int.h rather than double-int.h.
38868         (hook_bool_dint_dint_uint_bool_true): Delete.
38869         (hook_bool_wint_wint_uint_bool_true): Declare.
38870         * hooks.c (hook_bool_dint_dint_uint_bool_true): Removed.
38871         (hook_bool_wint_wint_uint_bool_true): New.
38872         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): Use wide-int
38873         interfaces.
38874         (ubsan_expand_si_overflow_mul_check): Likewise.
38875         * ipa-devirt.c (get_polymorphic_call_info): Likewise.
38876         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
38877         (get_ancestor_addr_info): Likewise.
38878         (ipa_modify_call_arguments): Likewise.
38879         * loop-doloop.c (doloop_modify): Likewise.
38880         (doloop_optimize): Likewise.
38881         * loop-iv.c (iv_number_of_iterations): Likewise.
38882         * loop-unroll.c (decide_unroll_constant_iterations): Likewise.
38883         (unroll_loop_constant_iterations): Likewise.
38884         (decide_unroll_runtime_iterations): Likewise.
38885         (unroll_loop_runtime_iterations): Likewise.
38886         (decide_peel_simple): Likewise.
38887         (decide_unroll_stupid): Likewise.
38888         * lto-streamer-in.c (streamer_read_wi): Add.
38889         (input_cfg): Use wide-int interfaces.
38890         (lto_input_tree_1): Likewise.
38891         * lto-streamer-out.c (streamer_write_wi): Add.
38892         (hash_tree): Use wide-int interfaces.
38893         (output_cfg): Likewise.
38894         * Makefile.in (OBJS): Add wide-int.o and wide-int-print.o.
38895         (GTFILES): Add wide-int.h and signop.h.
38896         (TAGS): Look for .cc files too.
38897         * omp-low.c (scan_omp_1_op): Use wide-int interfaces.
38898         * optabs.c (expand_subword_shift): Likewise.
38899         (expand_doubleword_shift): Likewise.
38900         (expand_absneg_bit): Likewise.
38901         (expand_copysign_absneg): Likewise.
38902         (expand_copysign_bit): Likewise.
38903         * postreload.c (reload_cse_simplify_set): Likewise.
38904         * predict.c (predict_iv_comparison): Likewise.
38905         * pretty-print.h: Include wide-int-print.h.
38906         (pp_wide_int) New.
38907         * print-rtl.c (print_rtx): Add CONST_WIDE_INT case.
38908         * print-tree.c: Include wide-int-print.h.
38909         (print_node_brief): Use wide-int interfaces.
38910         (print_node): Likewise.
38911         * read-rtl.c (validate_const_wide_int): New.
38912         (read_rtx_code): Add CONST_WIDE_INT case.
38913         * real.c: Include wide-int.h.
38914         (real_to_integer2): Delete.
38915         (real_to_integer): New function, returning a wide_int.
38916         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38917         (ten_to_ptwo): Update call to real_from_integer.
38918         (real_digit): Likewise.
38919         * real.h: Include signop.h, wide-int.h and insn-modes.h.
38920         (real_to_integer2, REAL_VALUE_FROM_INT, REAL_VALUE_FROM_UNSIGNED_INT)
38921         (REAL_VALUE_TO_INT): Delete.
38922         (real_to_integer): Declare a wide-int form.
38923         (real_from_integer): Take a wide_int rather than two HOST_WIDE_INTs.
38924         * recog.c (const_int_operand): Improve comment.
38925         (const_scalar_int_operand): New.
38926         (const_double_operand): Add a separate definition for CONST_WIDE_INT.
38927         * rtlanal.c (commutative_operand_precedence): Handle CONST_WIDE_INT.
38928         (split_double): Likewise.
38929         * rtl.c (DEF_RTL_EXPR): Handle CONST_WIDE_INT.
38930         (rtx_size): Likewise.
38931         (rtx_alloc_stat_v): New.
38932         (rtx_alloc_stat): Now calls rtx_alloc_stat_v.
38933         (cwi_output_hex): New.
38934         (iterative_hash_rtx): Handle CONST_WIDE_INT.
38935         (cwi_check_failed_bounds): New.
38936         * rtl.def (CONST_WIDE_INT): New.
38937         * rtl.h: Include <utility> and wide-int.h.
38938         (struct hwivec_def): New.
38939         (CWI_GET_NUM_ELEM): New.
38940         (CWI_PUT_NUM_ELEM): New.
38941         (struct rtx_def): Add num_elem and hwiv.
38942         (CASE_CONST_SCALAR_INT): Modify for TARGET_SUPPORTS_WIDE_INT.
38943         (CASE_CONST_UNIQUE): Likewise.
38944         (CASE_CONST_ANY): Likewise.
38945         (CONST_SCALAR_INT_P): Likewise.
38946         (CONST_WIDE_INT_P): New.
38947         (CWI_ELT): New.
38948         (HWIVEC_CHECK): New.
38949         (cwi_check_failed_bounds): New.
38950         (CWI_ELT): New.
38951         (HWIVEC_CHECK): New.
38952         (CONST_WIDE_INT_VEC) New.
38953         (CONST_WIDE_INT_NUNITS) New.
38954         (CONST_WIDE_INT_ELT) New.
38955         (rtx_mode_t): New type.
38956         (wi::int_traits <rtx_mode_t>): New.
38957         (wi::shwi): New.
38958         (wi::min_value): New.
38959         (wi::max_value): New.
38960         (rtx_alloc_v) New.
38961         (const_wide_int_alloc): New.
38962         (immed_wide_int_const): New.
38963         * sched-vis.c (print_value): Handle CONST_WIDE_INT.
38964         * sel-sched-ir.c (lhs_and_rhs_separable_p): Update comment.
38965         * signop.h: New file.
38966         * simplify-rtx.c (mode_signbit_p): Handle CONST_WIDE_INT.
38967         (simplify_const_unary_operation): Use wide-int interfaces.
38968         (simplify_binary_operation_1): Likewise.
38969         (simplify_const_binary_operation): Likewise.
38970         (simplify_const_relational_operation): Likewise.
38971         (simplify_immed_subreg): Likewise.
38972         * stmt.c (expand_case): Likewise.
38973         * stor-layout.h (set_min_and_max_values_for_integral_type): Take a
38974         signop rather than a bool.
38975         * stor-layout.c (layout_type): Use wide-int interfaces.
38976         (initialize_sizetypes): Update calls to
38977         set_min_and_max_values_for_integral_type.
38978         (set_min_and_max_values_for_integral_type): Take a signop rather
38979         than a bool.  Use wide-int interfaces.
38980         (fixup_signed_type): Update accordingly.  Remove
38981         HOST_BITS_PER_DOUBLE_INT limit.
38982         (fixup_unsigned_type): Likewise.
38983         * system.h (STATIC_CONSTANT_P): New.
38984         (STATIC_ASSERT): New.
38985         * target.def (can_use_doloop_p): Take widest_ints rather than
38986         double_ints.
38987         * target.h: Include wide-int.h rather than double-int.h.
38988         * targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
38989         than double_ints.
38990         * targhooks.c (default_cxx_get_cookie_size): Use tree_int_cst_lt
38991         rather than INT_CST_LT_UNSIGNED.
38992         (can_use_doloop_if_innermost): Take widest_ints rather than
38993         double_ints.
38994         * tree-affine.c: Include wide-int-print.h.
38995         (double_int_ext_for_comb): Delete.
38996         (wide_int_ext_for_comb): New.
38997         (aff_combination_zero): Use wide-int interfaces.
38998         (aff_combination_const): Take a widest_int instead of a double_int.
38999         (aff_combination_elt): Use wide-int interfaces.
39000         (aff_combination_scale): Take a widest_int instead of a double_int.
39001         (aff_combination_add_elt): Likewise.
39002         (aff_combination_add_cst): Likewise.
39003         (aff_combination_add): Use wide-int interfaces.
39004         (aff_combination_convert): Likewise.
39005         (tree_to_aff_combination): Likewise.
39006         (add_elt_to_tree): Take a widest_int instead of a double_int.
39007         (aff_combination_to_tree): Use wide-int interfaces.
39008         (aff_combination_remove_elt): Likewise.
39009         (aff_combination_add_product): Take a widest_int instead of
39010         a double_int.
39011         (aff_combination_mult): Use wide-int interfaces.
39012         (aff_combination_expand): Likewise.
39013         (double_int_constant_multiple_p): Delete.
39014         (wide_int_constant_multiple_p): New.
39015         (aff_combination_constant_multiple_p): Take a widest_int pointer
39016         instead of a double_int pointer.
39017         (print_aff): Use wide-int interfaces.
39018         (get_inner_reference_aff): Take a widest_int pointer
39019         instead of a double_int pointer.
39020         (aff_comb_cannot_overlap_p): Take widest_ints instead of double_ints.
39021         * tree-affine.h: Include wide-int.h.
39022         (struct aff_comb_elt): Change type of coef to widest_int.
39023         (struct affine_tree_combination): Change type of offset to widest_int.
39024         (double_int_ext_for_comb): Delete.
39025         (wide_int_ext_for_comb): New.
39026         (aff_combination_const): Use widest_int instead of double_int.
39027         (aff_combination_scale): Likewise.
39028         (aff_combination_add_elt): Likewise.
39029         (aff_combination_constant_multiple_p): Likewise.
39030         (get_inner_reference_aff): Likewise.
39031         (aff_comb_cannot_overlap_p): Likewise.
39032         (aff_combination_zero_p): Use wide-int interfaces.
39033         * tree.c: Include tree.h.
39034         (init_ttree): Use make_int_cst.
39035         (tree_code_size): Removed code for INTEGER_CST case.
39036         (tree_size): Add INTEGER_CST case.
39037         (make_node_stat): Update comment.
39038         (get_int_cst_ext_nunits, build_new_int_cst, build_int_cstu): New.
39039         (build_int_cst_type): Use wide-int interfaces.
39040         (double_int_to_tree): Likewise.
39041         (double_int_fits_to_tree_p): Delete.
39042         (force_fit_type_double): Delete.
39043         (force_fit_type): New.
39044         (int_cst_hash_hash): Use wide-int interfaces.
39045         (int_cst_hash_eq): Likewise.
39046         (build_int_cst_wide): Delete.
39047         (wide_int_to_tree): New.
39048         (cache_integer_cst): Use wide-int interfaces.
39049         (build_low_bits_mask): Likewise.
39050         (cst_and_fits_in_hwi): Likewise.
39051         (real_value_from_int_cst): Likewise.
39052         (make_int_cst_stat): New.
39053         (integer_zerop): Use wide_int interfaces.
39054         (integer_onep): Likewise.
39055         (integer_all_onesp): Likewise.
39056         (integer_pow2p): Likewise.
39057         (integer_nonzerop): Likewise.
39058         (tree_log2): Likewise.
39059         (tree_floor_log2): Likewise.
39060         (tree_ctz): Likewise.
39061         (int_size_in_bytes): Likewise.
39062         (mem_ref_offset): Return an offset_int rather than a double_int.
39063         (build_type_attribute_qual_variant): Use wide_int interfaces.
39064         (type_hash_eq): Likewise
39065         (tree_int_cst_equal): Likewise.
39066         (tree_int_cst_lt): Delete.
39067         (tree_int_cst_compare): Likewise.
39068         (tree_fits_shwi_p): Use wide_int interfaces.
39069         (tree_fits_uhwi_p): Likewise.
39070         (tree_int_cst_sign_bit): Likewise.
39071         (tree_int_cst_sgn): Likewise.
39072         (tree_int_cst_min_precision): Take a signop rather than a bool.
39073         (simple_cst_equal): Use wide_int interfaces.
39074         (compare_tree_int): Likewise.
39075         (iterative_hash_expr): Likewise.
39076         (int_fits_type_p): Likewise.  Use tree_int_cst_lt rather than
39077         INT_CST_LT.
39078         (get_type_static_bounds): Use wide_int interfaces.
39079         (tree_int_cst_elt_check_failed): New.
39080         (build_common_tree_nodes): Reordered to set prec before filling in
39081         value.
39082         (int_cst_value): Check cst_and_fits_in_hwi.
39083         (widest_int_cst_value): Use wide_int interfaces.
39084         (upper_bound_in_type): Likewise.
39085         (lower_bound_in_type): Likewise.
39086         (num_ending_zeros): Likewise.
39087         (drop_tree_overflow): Likewise.
39088         * tree-call-cdce.c (check_pow): Update call to real_from_integer.
39089         (gen_conditions_for_pow_cst_base): Likewise.
39090         * tree-cfg.c: Include wide-int.h and wide-int-print.h.
39091         (group_case_labels_stmt): Use wide-int interfaces.
39092         (verify_gimple_assign_binary): Likewise.
39093         (print_loop): Likewise.
39094         * tree-chrec.c (tree_fold_binomial): Likewise.
39095         * tree-core.h (struct tree_base): Add int_length.
39096         (struct tree_int_cst): Change rep of value.
39097         * tree-data-ref.c (dr_analyze_innermost): Use wide-int interfaces.
39098         (dr_may_alias_p): Likewise.
39099         (max_stmt_executions_tree): Likewise.
39100         * tree.def (INTEGER_CST): Update comment.
39101         * tree-dfa.c (get_ref_base_and_extent): Use wide-int interfaces.
39102         * tree-dfa.h (get_addr_base_and_unit_offset_1): Likewise.
39103         * tree-dump.c: Include wide-int.h and wide-int-print.h.
39104         (dequeue_and_dump): Use wide-int interfaces.
39105         * tree.h: Include wide-int.h.
39106         (NULL_TREE): Moved to earlier loc in file.
39107         (TREE_INT_CST_ELT_CHECK): New.
39108         (tree_int_cst_elt_check_failed): New.
39109         (TYPE_SIGN): New.
39110         (TREE_INT_CST): Delete.
39111         (TREE_INT_CST_LOW): Use wide-int interfaces.
39112         (TREE_INT_CST_HIGH): Delete.
39113         (TREE_INT_CST_NUNITS): New.
39114         (TREE_INT_CST_EXT_NUNITS): Likewise.
39115         (TREE_INT_CST_OFFSET_NUNITS): Likewise.
39116         (TREE_INT_CST_ELT): Likewise.
39117         (INT_CST_LT): Delete.
39118         (tree_int_cst_elt_check): New (two forms).
39119         (type_code_size): Update comment.
39120         (make_int_cst_stat, make_int_cst): New.
39121         (tree_to_double_int): Delete.
39122         (double_int_fits_to_tree_p): Delete.
39123         (force_fit_type_double): Delete.
39124         (build_int_cstu): Replace with out-of-line function.
39125         (build_int_cst_wide): Delete.
39126         (tree_int_cst_lt): Define inline.
39127         (tree_int_cst_le): New.
39128         (tree_int_cst_compare): Define inline.
39129         (tree_int_cst_min_precision): Take a signop rather than a bool.
39130         (wi::int_traits <const_tree>): New.
39131         (wi::int_traits <tree>): New.
39132         (wi::extended_tree): New.
39133         (wi::int_traits <wi::extended_tree>): New.
39134         (wi::to_widest): New.
39135         (wi::to_offset): New.
39136         (wi::fits_to_tree_p): New.
39137         (wi::min_value): New.
39138         (wi::max_value): New.
39139         * tree-inline.c (remap_gimple_op_r): Use wide-int interfaces.
39140         (copy_tree_body_r): Likewise.
39141         * tree-object-size.c (compute_object_offset): Likewise.
39142         (addr_object_size): Likewise.
39143         * tree-predcom.c: Include wide-int-print.h.
39144         (struct dref_d): Change type of offset to widest_int.
39145         (dump_dref): Call wide-int printer.
39146         (aff_combination_dr_offset): Use wide-int interfaces.
39147         (determine_offset): Take a widest_int pointer rather than a
39148         double_int pointer.
39149         (split_data_refs_to_components): Use wide-int interfaces.
39150         (suitable_component_p): Likewise.
39151         (order_drefs): Likewise.
39152         (add_ref_to_chain): Likewise.
39153         (valid_initializer_p): Likewise.
39154         (determine_roots_comp): Likewise.
39155         * tree-pretty-print.c: Include wide-int-print.h.
39156         (dump_generic_node): Use wide-int interfaces.
39157         * tree-sra.c (sra_ipa_modify_expr): Likewise.
39158         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
39159         (move_fixed_address_to_symbol): Likewise.
39160         (move_hint_to_base): Likewise.
39161         (move_pointer_to_base): Likewise.
39162         (move_variant_to_index): Likewise.
39163         (most_expensive_mult_to_index): Likewise.
39164         (addr_to_parts): Likewise.
39165         (copy_ref_info): Likewise.
39166         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
39167         (indirect_refs_may_alias_p): Likewise.
39168         (stmt_kills_ref_p_1): Likewise.
39169         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
39170         * tree-ssa-ccp.c: Update comment at top of file.  Include
39171         wide-int-print.h.
39172         (struct prop_value_d): Change type of mask to widest_int.
39173         (extend_mask): New function.
39174         (dump_lattice_value): Use wide-int interfaces.
39175         (get_default_value): Likewise.
39176         (set_constant_value): Likewise.
39177         (set_value_varying): Likewise.
39178         (valid_lattice_transition): Likewise.
39179         (set_lattice_value): Likewise.
39180         (value_to_double_int): Delete.
39181         (value_to_wide_int): New.
39182         (get_value_from_alignment): Use wide-int interfaces.
39183         (get_value_for_expr): Likewise.
39184         (do_dbg_cnt): Likewise.
39185         (ccp_finalize): Likewise.
39186         (ccp_lattice_meet): Likewise.
39187         (bit_value_unop_1): Use widest_ints rather than double_ints.
39188         (bit_value_binop_1): Likewise.
39189         (bit_value_unop): Use wide-int interfaces.
39190         (bit_value_binop): Likewise.
39191         (bit_value_assume_aligned): Likewise.
39192         (evaluate_stmt): Likewise.
39193         (ccp_fold_stmt): Likewise.
39194         (visit_cond_stmt): Likewise.
39195         (ccp_visit_stmt): Likewise.
39196         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
39197         (constant_pointer_difference): Likewise.
39198         (associate_pointerplus): Likewise.
39199         (combine_conversions): Likewise.
39200         * tree-ssa-loop.h: Include wide-int.h.
39201         (struct tree_niter_desc): Change type of max to widest_int.
39202         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Use wide-int interfaces.
39203         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Likewise.
39204         (remove_redundant_iv_tests): Likewise.
39205         (canonicalize_loop_induction_variables): Likewise.
39206         * tree-ssa-loop-ivopts.c (alloc_iv): Likewise.
39207         (constant_multiple_of): Take a widest_int pointer instead of
39208         a double_int pointer.
39209         (get_computation_aff): Use wide-int interfaces.
39210         (ptr_difference_cost): Likewise.
39211         (difference_cost): Likewise.
39212         (get_loop_invariant_expr_id): Likewise.
39213         (get_computation_cost_at): Likewise.
39214         (iv_elimination_compare_lt): Likewise.
39215         (may_eliminate_iv): Likewise.
39216         * tree-ssa-loop-niter.h (estimated_loop_iterations): Use widest_int
39217         instead of double_int.
39218         (max_loop_iterations): Likewise.
39219         (max_stmt_executions): Likewise.
39220         (estimated_stmt_executions): Likewise.
39221         * tree-ssa-loop-niter.c: Include wide-int-print.h.
39222         (split_to_var_and_offset): Use wide-int interfaces.
39223         (determine_value_range): Likewise.
39224         (bound_difference_of_offsetted_base): Likewise.
39225         (bounds_add): Take a widest_int instead of a double_int.
39226         (number_of_iterations_ne_max): Use wide-int interfaces.
39227         (number_of_iterations_ne): Likewise.
39228         (number_of_iterations_lt_to_ne): Likewise.
39229         (assert_loop_rolls_lt): Likewise.
39230         (number_of_iterations_lt): Likewise.
39231         (number_of_iterations_le): Likewise.
39232         (number_of_iterations_cond): Likewise.
39233         (number_of_iterations_exit): Likewise.
39234         (finite_loop_p): Likewise.
39235         (derive_constant_upper_bound_assign): Likewise.
39236         (derive_constant_upper_bound): Return a widest_int.
39237         (derive_constant_upper_bound_ops): Likewise.
39238         (do_warn_aggressive_loop_optimizations): Use wide-int interfaces.
39239         (record_estimate): Take a widest_int rather than a double_int.
39240         (record_nonwrapping_iv): Use wide-int interfaces.
39241         (double_int_cmp): Delete.
39242         (wide_int_cmp): New.
39243         (bound_index): Take a widest_int rather than a double_int.
39244         (discover_iteration_bound_by_body_walk): Use wide-int interfaces.
39245         (maybe_lower_iteration_bound): Likewise.
39246         (estimate_numbers_of_iterations_loop): Likewise.
39247         (estimated_loop_iterations): Take a widest_int pointer than than
39248         a double_int pointer.
39249         (estimated_loop_iterations_int): Use wide-int interfaces.
39250         (max_loop_iterations): Take a widest_int pointer than than
39251         a double_int pointer.
39252         (max_loop_iterations_int): Use wide-int interfaces.
39253         (max_stmt_executions): Take a widest_int pointer than than
39254         a double_int pointer.
39255         (estimated_stmt_executions): Likewise.
39256         (n_of_executions_at_most): Use wide-int interfaces.
39257         (scev_probably_wraps_p): Likewise.
39258         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Update calls
39259         to real_to_integer.
39260         * tree-scalar-evolution.c (simplify_peeled_chrec): Use wide-int
39261         interfaces.
39262         * tree-ssanames.c (set_range_info): Use wide_int_refs rather than
39263         double_ints.  Adjust for trailing_wide_ints <3> representation.
39264         (set_nonzero_bits): Likewise.
39265         (get_range_info): Return wide_ints rather than double_ints.
39266         Adjust for trailing_wide_ints <3> representation.
39267         (get_nonzero_bits): Likewise.
39268         (duplicate_ssa_name_range_info): Adjust for trailing_wide_ints <3>
39269         representation.
39270         * tree-ssanames.h (struct range_info_def): Replace min, max and
39271         nonzero_bits with a trailing_wide_ints <3>.
39272         (set_range_info): Use wide_int_refs rather than double_ints.
39273         (set_nonzero_bits): Likewise.
39274         (get_range_info): Return wide_ints rather than double_ints.
39275         (get_nonzero_bits): Likewise.
39276         * tree-ssa-phiopt.c (jump_function_from_stmt): Use wide-int interfaces.
39277         * tree-ssa-pre.c (phi_translate_1): Likewise.
39278         * tree-ssa-reassoc.c (decrement_power): Use calls to real_from_integer.
39279         (acceptable_pow_call): Likewise.
39280         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use wide-int
39281         interfaces.
39282         (vn_reference_fold_indirect): Likewise.
39283         (vn_reference_maybe_forwprop_address): Likewise.
39284         (valueize_refs_1): Likewise.
39285         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
39286         * tree-ssa-uninit.c (is_value_included_in): Use wide-int interfaces,
39287         tree_int_cst_lt and tree_int_cst_le.
39288         * tree-streamer-in.c (unpack_ts_base_value_fields): Use wide-int
39289         interfaces.
39290         (streamer_alloc_tree): Likewise.
39291         * tree-streamer-out.c (pack_ts_int_cst_value_fields): Likewise.
39292         (streamer_write_tree_header): Likewise.
39293         (streamer_write_integer_cst): Likewise.
39294         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
39295         (build_constructors): Likewise.
39296         (array_value_type): Likewise.
39297         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise.
39298         (vect_check_gather): Likewise.
39299         * tree-vect-generic.c (build_replicated_const): Likewise.
39300         (expand_vector_divmod): Likewise.
39301         * tree-vect-loop.c (vect_transform_loop): Likewise.
39302         * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
39303         (vect_do_peeling_for_alignment): Likewise.
39304         * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
39305         * tree-vrp.c: Include wide-int.h.
39306         (operand_less_p): Use wide-int interfaces and tree_int_cst_lt.
39307         (extract_range_from_assert): Use wide-int interfaces.
39308         (vrp_int_const_binop): Likewise.
39309         (zero_nonzero_bits_from_vr): Take wide_int pointers rather than
39310         double_int pointers.
39311         (ranges_from_anti_range): Use wide-int interfaces.
39312         (quad_int_cmp): Delete.
39313         (quad_int_pair_sort): Likewise.
39314         (extract_range_from_binary_expr_1): Use wide-int interfaces.
39315         (extract_range_from_unary_expr_1): Likewise.
39316         (adjust_range_with_scev): Likewise.
39317         (masked_increment): Take and return wide_ints rather than double_ints.
39318         (register_edge_assert_for_2): Use wide-int interfaces.
39319         (check_array_ref): Likewise.
39320         (search_for_addr_array): Likewise.
39321         (maybe_set_nonzero_bits): Likewise.
39322         (union_ranges): Pass an integer of the correct type instead of
39323         using integer_one_node.
39324         (intersect_ranges): Likewise.
39325         (simplify_truth_ops_using_ranges): Likewise.
39326         (simplify_bit_ops_using_ranges): Use wide-int interfaces.
39327         (range_fits_type_p): Likewise.
39328         (simplify_cond_using_ranges): Likewise.  Take a signop rather than
39329         a bool.
39330         (simplify_conversion_using_ranges): Use wide-int interfaces.
39331         (simplify_float_conversion_using_ranges): Likewise.
39332         (vrp_finalize): Likewise.
39333         * value-prof.c (gimple_divmod_fixed_value_transform): Likewise.
39334         (gimple_stringops_transform): Likewise.
39335         * varasm.c (decode_addr_const): Likewise.
39336         (const_hash_1): Likewise.
39337         (const_rtx_hash_1): Likewise
39338         (output_constant): Likewise.
39339         (array_size_for_constructor): Likewise.
39340         (output_constructor_regular_field): Likewise.
39341         (output_constructor_bitfield): Likewise.
39342         * var-tracking.c (loc_cmp): Handle CONST_WIDE_INT.
39343         * mkconfig.sh: Include machmode.h to pick up BITS_PER_UNIT for
39344         GENERATOR_FILEs.
39345         * gencheck.c: Define BITS_PER_UNIT.
39346         * wide-int.cc: New.
39347         * wide-int.h: New.
39348         * wide-int-print.cc: New.
39349         * wide-int-print.h: New.
39350
39351 2014-05-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39352
39353         * config/avr/avr.c (avr_can_eliminate): Mark unused argument.
39354
39355 2014-05-06  Richard Biener  <rguenther@suse.de>
39356
39357         * tree-pass.h (TODO_verify_ssa, TODO_verify_flow,
39358         TODO_verify_stmts, TODO_verify_rtl_sharing): Remove.
39359         (TODO_verify_all): Adjust.
39360         * asan.c: Remove references to TODO_verify_ssa, TODO_verify_flow,
39361         TODO_verify_stmts and TODO_verify_rtl_sharing.
39362         * bb-reorder.c: Likewise.
39363         * cfgexpand.c: Likewise.
39364         * cprop.c: Likewise.
39365         * cse.c: Likewise.
39366         * function.c: Likewise.
39367         * fwprop.c: Likewise.
39368         * gcse.c: Likewise.
39369         * gimple-ssa-isolate-paths.c: Likewise.
39370         * gimple-ssa-strength-reduction.c: Likewise.
39371         * ipa-split.c: Likewise.
39372         * loop-init.c: Likewise.
39373         * loop-unroll.c: Likewise.
39374         * lower-subreg.c: Likewise.
39375         * modulo-sched.c: Likewise.
39376         * postreload-gcse.c: Likewise.
39377         * predict.c: Likewise.
39378         * recog.c: Likewise.
39379         * sched-rgn.c: Likewise.
39380         * store-motion.c: Likewise.
39381         * tracer.c: Likewise.
39382         * trans-mem.c: Likewise.
39383         * tree-call-cdce.c: Likewise.
39384         * tree-cfg.c: Likewise.
39385         * tree-cfgcleanup.c: Likewise.
39386         * tree-complex.c: Likewise.
39387         * tree-eh.c: Likewise.
39388         * tree-emutls.c: Likewise.
39389         * tree-if-conv.c: Likewise.
39390         * tree-into-ssa.c: Likewise.
39391         * tree-loop-distribution.c: Likewise.
39392         * tree-object-size.c: Likewise.
39393         * tree-parloops.c: Likewise.
39394         * tree-pass.h: Likewise.
39395         * tree-sra.c: Likewise.
39396         * tree-ssa-ccp.c: Likewise.
39397         * tree-ssa-copy.c: Likewise.
39398         * tree-ssa-copyrename.c: Likewise.
39399         * tree-ssa-dce.c: Likewise.
39400         * tree-ssa-dom.c: Likewise.
39401         * tree-ssa-dse.c: Likewise.
39402         * tree-ssa-forwprop.c: Likewise.
39403         * tree-ssa-ifcombine.c: Likewise.
39404         * tree-ssa-loop-ch.c: Likewise.
39405         * tree-ssa-loop-ivcanon.c: Likewise.
39406         * tree-ssa-loop.c: Likewise.
39407         * tree-ssa-math-opts.c: Likewise.
39408         * tree-ssa-phiopt.c: Likewise.
39409         * tree-ssa-phiprop.c: Likewise.
39410         * tree-ssa-pre.c: Likewise.
39411         * tree-ssa-reassoc.c: Likewise.
39412         * tree-ssa-sink.c: Likewise.
39413         * tree-ssa-strlen.c: Likewise.
39414         * tree-ssa-tail-merge.c: Likewise.
39415         * tree-ssa-uncprop.c: Likewise.
39416         * tree-switch-conversion.c: Likewise.
39417         * tree-tailcall.c: Likewise.
39418         * tree-vect-generic.c: Likewise.
39419         * tree-vectorizer.c: Likewise.
39420         * tree-vrp.c: Likewise.
39421         * tsan.c: Likewise.
39422         * var-tracking.c: Likewise.
39423         * bt-load.c: Likewise.
39424         * cfgcleanup.c: Likewise.
39425         * combine-stack-adj.c: Likewise.
39426         * combine.c: Likewise.
39427         * compare-elim.c: Likewise.
39428         * config/epiphany/resolve-sw-modes.c: Likewise.
39429         * config/i386/i386.c: Likewise.
39430         * config/mips/mips.c: Likewise.
39431         * config/s390/s390.c: Likewise.
39432         * config/sh/sh_treg_combine.cc: Likewise.
39433         * config/sparc/sparc.c: Likewise.
39434         * dce.c: Likewise.
39435         * dse.c: Likewise.
39436         * final.c: Likewise.
39437         * ifcvt.c: Likewise.
39438         * mode-switching.c: Likewise.
39439         * passes.c: Likewise.
39440         * postreload.c: Likewise.
39441         * ree.c: Likewise.
39442         * reg-stack.c: Likewise.
39443         * regcprop.c: Likewise.
39444         * regrename.c: Likewise.
39445         * web.c: Likewise.
39446
39447 2014-05-06  Richard Biener  <rguenther@suse.de>
39448
39449         PR middle-end/61070
39450         * bitmap.c (debug_bitmap): Dump to stderr, not stdout.
39451         * tree-ssa-structalias.c (dump_solution_for_var): Likewise.
39452
39453 2014-05-05  Jan Hubicka  <hubicka@ucw.cz>
39454
39455         PR ipa/60965
39456         * ipa-devirt.c (get_class_context): Allow POD to change to non-POD.
39457
39458 2014-05-05  Radovan Obradovic  <robradovic@mips.com>
39459             Tom de Vries  <tom@codesourcery.com>
39460
39461         * target.def (call_fusage_contains_non_callee_clobbers): New
39462         DEFHOOKPOD.
39463         * doc/tm.texi.in (@node Stack and Calling): Add Miscellaneous Register
39464         Hooks to @menu.
39465         (@node Miscellaneous Register Hooks): New node.
39466         (@hook TARGET_CALL_FUSAGE_CONTAINS_NON_CALLEE_CLOBBERS): New hook.
39467         * doc/tm.texi: Regenerate.
39468
39469 2014-05-05  Marek Polacek  <polacek@redhat.com>
39470
39471         PR driver/61065
39472         * opts.c (common_handle_option): Call error_at instead of warning_at.
39473
39474 2014-05-05  Richard Biener  <rguenther@suse.de>
39475
39476         * passes.c (execute_function_todo): Don't reset TODO_verify_ssa
39477         from last_verified if update_ssa ran.  Move TODO_verify_rtl_sharing
39478         under the TODO_verify_il umbrella.
39479
39480 2014-05-05  Richard Biener  <rguenther@suse.de>
39481
39482         * passes.c (execute_function_todo): Move TODO_verify_flow under
39483         the TODO_verify_ul umbrella.
39484
39485 2014-05-05  Richard Biener  <rguenther@suse.de>
39486
39487         PR middle-end/61010
39488         * fold-const.c (fold_binary_loc): Consistently avoid canonicalizing
39489         X & CST away from a CST that is the mask of a mode.
39490
39491 2014-05-05  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39492
39493         * config/picochip/picochip-protos.h (picochip_regno_nregs): Change
39494         int argument to enum machine_mode.
39495         (picochip_class_max_nregs): Ditto.
39496         * config/picochip/picochip.c (picochip_regno_nregs): Ditto.
39497         (picochip_class_max_nregs): Ditto.
39498
39499 2014-05-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
39500
39501         * target.def: Add new target hook.
39502         * doc/tm.texi: Regenerate.
39503         * targhooks.h (default_keep_leaf_when_profiled): Add prototype.
39504         * targhooks.c (default_keep_leaf_when_profiled): New function.
39505
39506         * config/s390/s390.c (s390_keep_leaf_when_profiled): New function.
39507         (TARGET_KEEP_LEAF_WHEN_PROFILED): Define.
39508
39509 2014-05-05  Bin Cheng  <bin.cheng@arm.com>
39510
39511         PR tree-optimization/60363
39512         * gcc/tree-ssa-threadupdate.c (get_value_locus_in_path): New.
39513         (copy_phi_args): New parameters.  Call get_value_locus_in_path.
39514         (update_destination_phis): New parameter.
39515         (create_edge_and_update_destination_phis): Ditto.
39516         (ssa_fix_duplicate_block_edges): Pass new arguments.
39517         (thread_single_edge): Ditto.
39518
39519 2014-05-04  Peter Bergner  <bergner@vnet.ibm.com>
39520
39521         * config/rs6000/rs6000.h (RS6000_BTM_HARD_FLOAT): New define.
39522         (RS6000_BTM_COMMON): Add RS6000_BTM_HARD_FLOAT.
39523         (TARGET_EXTRA_BUILTINS): Add TARGET_HARD_FLOAT.
39524         * config/rs6000/rs6000-builtin.def (BU_MISC_1):
39525         Use RS6000_BTM_HARD_FLOAT.
39526         (BU_MISC_2): Likewise.
39527         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Handle
39528         RS6000_BTM_HARD_FLOAT.
39529         (rs6000_option_override_internal): Enforce -mhard-float if -mhard-dfp
39530         is explicitly used.
39531         (rs6000_invalid_builtin): Add hard floating builtin support.
39532         (rs6000_expand_builtin): Relax the gcc_assert to allow the new
39533         hard float builtins.
39534         (rs6000_builtin_mask_names): Add RS6000_BTM_HARD_FLOAT.
39535
39536 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39537
39538         * config/sh/sh_optimize_sett_clrt.cc (sh_optimize_sett_clrt::execute):
39539         Add missing function* argument.
39540
39541 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39542
39543         * lra-constraints.c (valid_address_p): Move earlier in file.
39544         Add a constraint argument to the address_info version.
39545         (satisfies_memory_constraint_p): New function.
39546         (satisfies_address_constraint_p): Likewise.
39547         (process_alt_operands, curr_insn_transform): Use them.
39548         (process_address): Pass the constraint to valid_address_p when
39549         checking address operands.
39550
39551 2014-05-03  Richard Sandiford  <rdsandiford@googlemail.com>
39552
39553         * config/mips/mips.c (mips_isa_rev): New variable.
39554         (mips_set_architecture): Set it.
39555         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Set __mips_isa_rev
39556         from mips_isa_rev.
39557         (ISA_HAS_MUL3, ISA_HAS_FP_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4)
39558         (ISA_HAS_PAIRED_SINGLE, ISA_HAS_MADD_MSUB, ISA_HAS_FP_RECIP_RSQRT)
39559         (ISA_HAS_CLZ_CLO, ISA_HAS_ROR, ISA_HAS_WSBH, ISA_HAS_PREFETCH)
39560         (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS, ISA_HAS_MXHC1)
39561         (ISA_HAS_HILO_INTERLOCKS, ISA_HAS_SYNCI, MIN_FPRS_PER_FMT): Reexpress
39562         conditions in terms of mips_isa_rev.
39563         (mips_isa_rev): Declare.
39564
39565 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39566
39567         * config/sh/sh-mem.cc: Use tabs instead of spaces.
39568         (prob_unlikely, prob_likely): Make variables const.
39569
39570 2014-05-03  Denis Chertykov  <chertykov@gmail.com>
39571
39572         * config/avr/avr.c (avr_adjust_insn_length): Handle JUMP_TABLE_DATA.
39573
39574 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39575
39576         * config/sh/sh.h (SH_ASM_SPEC): Handle m1, m2*, m3* and m4* cases.
39577
39578 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39579
39580         * config/sh/sh.h (ROUND_ADVANCE): Delete macro.
39581         (ROUND_REG, PASS_IN_REG_P): Move and rename macros to ...
39582         * config/sh/sh.c (sh_round_reg, sh_pass_in_reg_p): ... these new
39583         functions.
39584         (sh_arg_partial_bytes, sh_function_arg, sh_function_arg_advance,
39585         sh_setup_incoming_varargs): Replace usage of PASS_IN_REG_P with
39586         sh_pass_in_reg_p.
39587         Replace usage of ROUND_REG with sh_round_reg.
39588         Use CEIL instead of ROUND_ADVANCE.
39589
39590 2014-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
39591
39592         PR target/61026
39593         * config/sh/sh.c: Include stdlib headers before everything else.
39594
39595 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
39596
39597         * gimplify.c (gimplify_adjust_omp_clauses_1): Handle
39598         GOVD_FIRSTPRIVATE | GOVD_LASTPRIVATE.
39599         (gimplify_adjust_omp_clauses): Simd region is never
39600         directly nested in combined parallel.  Instead, for linear
39601         with copyin/copyout, if in combined for simd loop, make decl
39602         firstprivate/lastprivate on OMP_FOR.
39603         * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
39604         expand_omp_for_static_chunk): When setting endvar, also set
39605         fd->loop.v to the same value.
39606
39607 2014-05-02  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
39608
39609         * hwint.h (zext_hwi): Fix signed overflow for prec == 63.
39610
39611 2014-05-02  Alan Lawrence  <alan.lawrence@arm.com>
39612
39613         * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Tidy bit-flip
39614         expression.
39615
39616 2014-05-02  Marek Polacek  <polacek@redhat.com>
39617
39618         * doc/invoke.texi: Describe -fsanitize=float-divide-by-zero.
39619
39620 2014-05-02  Kito Cheng  <kito@0xlab.org>
39621
39622         * defaults.h (HONOR_REG_ALLOC_ORDER): Change HONOR_REG_ALLOC_ORDER
39623         to a C expression marco.
39624         * ira-color.c (HONOR_REG_ALLOC_ORDER) : Ditto.
39625         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Ditto.
39626         * config/nds32/nds32.h (HONOR_REG_ALLOC_ORDER): Ditto.
39627         * doc/tm.texi (HONOR_REG_ALLOC_ORDER): Update document for
39628         HONOR_REG_ALLOC_ORDER.
39629         * doc/tm.texi.in (HONOR_REG_ALLOC_ORDER): Ditto.
39630
39631 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39632
39633         * config/arc/arc.c (TARGET_LRA_P): Undef before redefine.
39634
39635 2014-05-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
39636
39637         * config/arc/arc.c (arc_select_cc_mode): Fix typo.
39638
39639 2014-05-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
39640
39641         * tree-if-conv.c (is_cond_scalar_reduction): New function.
39642         (convert_scalar_cond_reduction): Likewise.
39643         (predicate_scalar_phi): Add recognition and transformation
39644         of simple conditioanl reduction to be vectorizable.
39645
39646 2014-05-01  Marek Polacek  <polacek@redhat.com>
39647
39648         PR c/43245
39649         * doc/invoke.texi: Document -Wdiscarded-qualifiers.
39650
39651 2014-04-30  Alan Lawrence  <alan.lawrence@arm.com>
39652
39653         * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
39654         vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
39655         vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
39656         vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
39657         vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
39658         vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
39659         vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
39660         vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
39661
39662 2014-04-30  Joern Rennecke  <joern.rennecke@embecosm.com>
39663
39664         * config/arc/arc.opt (mlra): Move comment above option name
39665         to avoid mis-parsing as language options.
39666
39667 2014-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
39668
39669         * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Move ...
39670         * config/sol2.h: ... here.
39671         * config/sol2-10.h: Remove.
39672
39673         * config/sol2-bi.h (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE)
39674         (WINT_TYPE_SIZE, MULTILIB_DEFAULTS, DEF_ARCH32_SPEC)
39675         (DEF_ARCH64_SPEC, ASM_CPU_DEFAULT_SPEC, LINK_ARCH64_SPEC_BASE)
39676         (LINK_ARCH64_SPEC, ARCH_DEFAULT_EMULATION, TARGET_LD_EMULATION)
39677         (LINK_ARCH_SPEC, SUBTARGET_EXTRA_SPECS): Move ...
39678         * config/sol2.h: ... here.
39679         (SECTION_NAME_FORMAT): Don't redefine.
39680         (STARTFILE_ARCH32_SPEC): Rename to ...
39681         (STARTFILE_ARCH_SPEC): ... this.
39682         (ASM_OUTPUT_ALIGNED_COMMON): Move ...
39683         * config/sparc/sol2.h: ... here.
39684         (SECTION_NAME_FORMAT): Don't undef.
39685         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC)
39686         (SUBTARGET_EXTRA_SPECS): Remove.
39687         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
39688
39689         * config/i386/sol2-bi.h (TARGET_SUBTARGET_DEFAULT)
39690         (MD_STARTFILE_PREFIX): Remove.
39691         (SUBTARGET_OPTIMIZATION_OPTIONS, ASM_CPU32_DEFAULT_SPEC)
39692         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC, ASM_SPEC, DEFAULT_ARCH32_P)
39693         (ARCH64_SUBDIR, ARCH32_EMULATION, ARCH64_EMULATION)
39694         (ASM_COMMENT_START, JUMP_TABLES_IN_TEXT_SECTION)
39695         (ASM_OUTPUT_DWARF_PCREL, ASM_OUTPUT_ALIGNED_COMMON)
39696         (USE_IX86_FRAME_POINTER, USE_X86_64_FRAME_POINTER): Move ...
39697         * config/i386/sol2.h: ... here.
39698         (TARGET_SUBTARGET_DEFAULT, SIZE_TYPE, PTRDIFF_TYPE): Remove.
39699         * config/i386/sol2-bi.h: Remove.
39700         * config/sol2.h (MD_STARTFILE_PREFIX): Remove.
39701         (LINK_ARCH32_SPEC_BASE): Remove /usr/ccs/lib/libp, /usr/ccs/lib.
39702
39703         * config/i386/t-sol2-64: Rename to ...
39704         * config/i386/t-sol2: ... this.
39705         * config/sparc/t-sol2-64: Rename to ...
39706         * config/sparc/t-sol2: ... this.
39707
39708         * config.gcc (*-*-solaris2*): Split sol2_tm_file into
39709         sol2_tm_file_head, sol2_tm_file_tail.
39710         Include ${cpu_type}/sol2.h before sol2.h.
39711         Remove sol2-10.h.
39712         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Include
39713         i386/x86-64.h between sol2_tm_file_head and sol2_tm_file_tail.
39714         Remove i386/sol2-bi.h, sol2-bi.h from tm_file.
39715         Reflect i386/t-sol2-64 renaming.
39716         (sparc*-*-solaris2*): Remove sol2-bi.h from tm_file.
39717         Reflect sparc/t-sol2-64 renaming.
39718
39719 2014-04-30  Richard Biener  <rguenther@suse.de>
39720
39721         * passes.c (execute_function_todo): Move TODO_verify_stmts
39722         and TODO_verify_ssa under the TODO_verify_il umbrella.
39723         * tree-ssa.h (verify_ssa): Adjust prototype.
39724         * tree-ssa.c (verify_ssa): Add parameter to tell whether
39725         we should verify SSA operands.
39726         * tree-cfg.h (verify_gimple_in_cfg): Adjust prototype.
39727         * tree-cfg.c (verify_gimple_in_cfg): Add parameter to tell
39728         whether we should verify whether not throwing stmts have EH info.
39729         * graphite-scop-detection.c (create_sese_edges): Adjust.
39730         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Likewise.
39731         * tree-eh.c (lower_try_finally_switch): Do not add the
39732         default case label twice.
39733
39734 2014-04-30  Marek Polacek  <polacek@redhat.com>
39735
39736         * gcc.c (sanitize_spec_function): Handle SANITIZE_FLOAT_DIVIDE.
39737         * builtins.def: Initialize builtins even for SANITIZE_FLOAT_DIVIDE.
39738         * flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_DIVIDE.
39739         * opts.c (common_handle_option): Add -fsanitize=float-divide-by-zero.
39740
39741 2014-04-29  Alan Lawrence  <alan.lawrence@arm.com>
39742
39743         * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
39744         vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
39745         vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
39746         vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
39747         vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
39748         vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
39749         vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
39750         vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
39751
39752 2014-04-29  David Malcolm  <dmalcolm@redhat.com>
39753
39754         * tree-cfg.c (dump_function_to_file): Dump the return type of
39755         functions, in a line to itself before the function body, mimicking
39756         the layout of a C function.
39757
39758 2014-04-29  Jakub Jelinek  <jakub@redhat.com>
39759
39760         PR tree-optimization/60971
39761         * tree-tailcall.c (process_assignment): Reject conversions which
39762         reduce precision.
39763
39764 2014-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
39765
39766         * calls.c (initialize_argument_information): Always treat
39767         PUSH_ARGS_REVERSED as 1, simplify code accordingly.
39768         (expand_call): Likewise.
39769         (emit_library_call_calue_1): Likewise.
39770         * expr.c (PUSH_ARGS_REVERSED): Do not define.
39771         (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
39772         code accordingly.
39773
39774 2014-04-29  Nick Clifton  <nickc@redhat.com>
39775
39776         * config/msp430/msp430.md (umulsidi): Fix typo.
39777         (mulhisi3): Enable even inside interrupt handlers.
39778         * config/msp430/msp430.c (msp430_print_operand): %O: Allow for the
39779         bigger return address pushed in large mode.
39780
39781 2014-04-29  Nick Clifton  <nickc@redhat.com>
39782
39783         * config/arc/arc.c (arc_select_cc_mode): Fix parentheses.
39784         (arc_init_reg_tables): Use a machine_mode enum to iterate over
39785         available modes.
39786         * config/m32r/m32r.c (init_reg_tables): Likewise.
39787         * config/m32c/m32c.c (m32c_illegal_subreg_p): Use a machine_mode
39788         enum to hold the modes.
39789
39790 2014-04-29  Richard Biener  <rguenther@suse.de>
39791
39792         * dominance.c (free_dominance_info): Add overload with
39793         function parameter.
39794         (dom_info_state): Likewise.
39795         (dom_info_available_p): Likewise.
39796         * basic-block.h (free_dominance_info, dom_info_state,
39797         dom_info_available_p): Declare overloads.
39798         * passes.c (execute_function_todo): Verify that verifiers
39799         don't change dominator info state.  Drop dominator info
39800         for IPA pass invocations.
39801         * cgraph.c (release_function_body): Restore asserts that
39802         dominator information is released.
39803
39804 2014-04-29  Patrick Palka  <patrick@parcs.ath.cx>
39805
39806         * doc/invoke.texi: Fix typo.
39807         * tree-vrp.c: Fix typos.
39808         * gimple.c (infer_nonnull_range): Reorder operands of an && condition.
39809
39810 2014-04-29  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
39811
39812         * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
39813
39814 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
39815
39816         * config/aarch64/aarch64-builtins.c
39817         (aarch64_types_storestruct_lane_qualifiers): New.
39818         (TYPES_STORESTRUCT_LANE): Likewise.
39819         * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
39820         (st3_lane): Likewise.
39821         (st4_lane): Likewise.
39822         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
39823         (vec_store_lanesci_lane<mode>): Likewise.
39824         (vec_store_lanesxi_lane<mode>): Likewise.
39825         (aarch64_st2_lane<VQ:mode>): Likewise.
39826         (aarch64_st3_lane<VQ:mode>): Likewise.
39827         (aarch64_st4_lane<VQ:mode>): Likewise.
39828         * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
39829         * config/aarch64/arm_neon.h
39830         (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
39831         use new macro arguments.
39832         (__ST3_LANE_FUNC): Likewise.
39833         (__ST4_LANE_FUNC): Likewise.
39834         * config/aarch64/iterators.md (V_TWO_ELEM): New.
39835         (V_THREE_ELEM): Likewise.
39836         (V_FOUR_ELEM): Likewise.
39837
39838 2014-04-28  David Malcolm  <dmalcolm@redhat.com>
39839
39840         * doc/gimple.texi: Replace the description of the now-defunct
39841         union gimple_statement_d with a diagram showing the
39842         gimple_statement_base class hierarchy and its relationships to
39843         the GSS_ and GIMPLE_ enums.
39844
39845 2014-04-28  James Greenhalgh  <james.greenhalgh@arm.com>
39846
39847         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
39848         * config/aarch64/aarch64.c
39849         (aarch64_cannot_change_mode_class): Weaken conditions.
39850         (aarch64_modes_tieable_p): New.
39851         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
39852
39853 2014-04-28  Pat Haugen  <pthaugen@us.ibm.com>
39854
39855         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
39856         (loadsync_<mode>): Change mode.
39857         (load_quadpti, store_quadpti): New.
39858         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
39859         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
39860
39861 2014-04-28  Martin Jambor  <mjambor@suse.cz>
39862
39863         * tree-sra.c (sra_modify_expr): Generate new memory accesses with
39864         same alias type as the original statement.
39865         (subreplacement_assignment_data): New type.
39866         (handle_unscalarized_data_in_subtree): New type of parameter,
39867         generate new memory accesses with same alias type as the original
39868         statement.
39869         (load_assign_lhs_subreplacements): Likewise.
39870         (sra_modify_constructor_assign): Generate new memory accesses with
39871         same alias type as the original statement.
39872
39873 2014-04-28  Richard Biener  <rguenther@suse.de>
39874
39875         * tree-pass.h (TODO_verify_il): Define.
39876         (TODO_verify_all): Complete properly.
39877         * passes.c (execute_function_todo): Move existing loop-closed
39878         SSA verification under TODO_verify_il.
39879         (execute_one_pass): Trigger TODO_verify_il at todo-after time.
39880         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps):
39881         Fix tree sharing issue.
39882
39883 2014-04-28  Richard Biener  <rguenther@suse.de>
39884
39885         PR middle-end/60092
39886         * builtins.def (DEF_C11_BUILTIN): Add.
39887         (BUILT_IN_ALIGNED_ALLOC): Likewise.
39888         * coretypes.h (enum function_class): Add function_c11_misc.
39889         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
39890         BUILT_IN_ALIGNED_ALLOC like BUILT_IN_MALLOC.
39891         (call_may_clobber_ref_p_1): Likewise.
39892         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
39893         (mark_all_reaching_defs_necessary_1): Likewise.
39894         (propagate_necessity): Likewise.
39895         (eliminate_unnecessary_stmts): Likewise.
39896         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_ALIGNED_ALLOC.
39897
39898 2014-04-28  Richard Biener  <rguenther@suse.de>
39899
39900         * tree-vrp.c (vrp_var_may_overflow): Remove.
39901         (vrp_visit_phi_node): Rather than bumping to +-INF possibly
39902         with overflow immediately bump to one before that value and
39903         let iteration figure out overflow status.
39904
39905 2014-04-28  Richard Biener  <rguenther@suse.de>
39906
39907         * configure.ac: Do valgrind header checks unconditionally.
39908         Add --enable-valgrind-annotations.
39909         * system.h: Guard valgrind header inclusion with
39910         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING.
39911         * alloc-pool.c (pool_alloc, pool_free): Use
39912         ENABLE_VALGRIND_ANNOTATIONS instead of ENABLE_VALGRIND_CHECKING
39913         to guard possibly dead code.
39914         * config.in: Regenerated.
39915         * configure: Likewise.
39916
39917 2014-04-28  Jeff Law  <law@redhat.com>
39918
39919         PR tree-optimization/60902
39920         * tree-ssa-threadedge.c
39921         (record_temporary_equivalences_from_stmts_at_dest): Only iterate
39922         over real defs when invalidating outputs from statements that do not
39923         produce useful outputs for threading.
39924
39925 2014-04-28  Richard Biener  <rguenther@suse.de>
39926
39927         PR tree-optimization/60979
39928         * graphite-scop-detection.c (scopdet_basic_block_info): Reject
39929         SCOPs that end in a block with a successor with abnormal
39930         predecessors.
39931
39932 2014-04-28  Richard Biener  <rguenther@suse.de>
39933
39934         * tree-pass.h (execute_pass_list): Adjust prototype.
39935         * passes.c (pass_manager::execute_early_local_passes): Adjust.
39936         (do_per_function): Change callback signature, push all actual
39937         work to the callbals.
39938         (do_per_function_toporder): Likewise.
39939         (execute_function_dump): Adjust.
39940         (execute_function_todo): Likewise.
39941         (clear_last_verified): Likewise.
39942         (verify_curr_properties): Likewise.
39943         (update_properties_after_pass): Likewise.
39944         (execute_pass_list_1): Split out from ...
39945         (execute_pass_list): ... here.  Adjust.
39946         (execute_ipa_pass_list): Likewise.
39947         * cgraphunit.c (cgraph_add_new_function): Adjust.
39948         (analyze_function): Likewise.
39949         (expand_function): Likewise.
39950         * cgraph.c (release_function_body): Free dominance info
39951         here instead of asserting it was magically freed elsewhere.
39952
39953 2014-04-28  Eric Botcazou  <ebotcazou@adacore.com>
39954
39955         * configure.ac: Tweak GAS check for LEON instructions on SPARC.
39956         * configure: Regenerate.
39957         * config/sparc/sparc.opt (muser-mode): New option.
39958         * config/sparc/sync.md (atomic_compare_and_swap<mode>_1): Do not enable
39959         for LEON3.
39960         (atomic_compare_and_swap_leon3_1): New instruction for LEON3.
39961         * doc/invoke.texi (SPARC options): Document -muser-mode.
39962
39963 2014-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
39964
39965         * cselib.c (find_slot_memmode): Delete.
39966         (cselib_hasher): Change compare_type to a struct.
39967         (cselib_hasher::equal): Update accordingly.  Don't expect wrapped
39968         constants.
39969         (preserve_constants_and_equivs): Adjust for new compare_type.
39970         (cselib_find_slot): Likewise.  Take the mode of the rtx as argument.
39971         (wrap_constant): Delete.
39972         (cselib_lookup_mem, cselib_lookup_1): Update calls to cselib_find_slot.
39973
39974 2014-04-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
39975
39976         * doc/install.texi (Building with profile feedback): Remove
39977         outdated sentence.
39978
39979 2014-04-26  Tom de Vries  <tom@codesourcery.com>
39980
39981         * config/i386/i386.md (define_expand "ldexpxf3"): Fix out-of-bounds
39982         array accesses.
39983
39984 2014-04-25  Cary Coutant  <ccoutant@google.com>
39985
39986         PR debug/60929
39987         * dwarf2out.c (should_move_die_to_comdat): A type definition
39988         can contain a subprogram definition, but don't move it to a
39989         comdat unit.
39990         (clone_as_declaration): Copy DW_AT_abstract_origin attribute.
39991         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
39992         from original DIE.
39993         (clone_tree_hash): Rename to...
39994         (clone_tree_partial): ...this; change callers.  Copy
39995         DW_TAG_subprogram DIEs as declarations.
39996         (copy_decls_walk): Don't copy children of a declaration into a
39997         type unit.
39998
39999 2014-04-25  H.J. Lu  <hongjiu.lu@intel.com>
40000
40001         PR target/60969
40002         * config/i386/i386.md (*movsf_internal): Set MODE to SI for
40003         alternative 12.
40004
40005 2014-04-25  Jiong Wang  <jiong.wang@arm.com>
40006
40007         * config/arm/predicates.md (call_insn_operand): Add long_call check.
40008         * config/arm/arm.md (sibcall, sibcall_value): Force the address to
40009         reg for long_call.
40010         * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
40011         restriction.
40012
40013 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40014
40015         * config/arm/arm.c (arm_cortex_a8_tune): Initialise T16-related fields.
40016
40017 2014-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40018
40019         PR tree-optimization/60930
40020         * gimple-ssa-strength-reduction.c (create_mul_imm_cand):  Reject
40021         creating a multiply candidate by folding two constant
40022         multiplicands when the result overflows.
40023
40024 2014-04-25  Jakub Jelinek  <jakub@redhat.com>
40025
40026         PR tree-optimization/60960
40027         * tree-vect-generic.c (expand_vector_operation): Only call
40028         expand_vector_divmod if type's mode satisfies VECTOR_MODE_P.
40029
40030 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40031
40032         * expr.c (clobber_reg_mode): New function.
40033         * expr.h (clobber_reg): New function.
40034
40035 2014-04-25  Tom de Vries  <tom@codesourcery.com>
40036
40037         * rtlanal.c (find_all_hard_reg_sets): Note INSN_CALL_FUNCTION_USAGE
40038         clobbers.
40039
40040 2014-04-25  Radovan Obradovic  <robradovic@mips.com>
40041             Tom de Vries  <tom@codesourcery.com>
40042
40043         * rtlanal.c (find_all_hard_reg_sets): Add bool implicit parameter and
40044         handle.
40045         * rtl.h (find_all_hard_reg_sets): Add bool parameter.
40046         * haifa-sched.c (recompute_todo_spec, check_clobbered_conditions): Add
40047         new argument to find_all_hard_reg_sets call.
40048
40049 2014-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40050
40051         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
40052         Use HOST_WIDE_INT_C for mask literal.
40053         (aarch_rev16_shleft_mask_imm_p): Likewise.
40054
40055 2014-04-25  Eric Botcazou  <ebotcazou@adacore.com>
40056
40057         PR target/60941
40058         * config/sparc/sparc.md (ashlsi3_extend): Delete.
40059
40060 2014-04-25  Marc Glisse  <marc.glisse@inria.fr>
40061
40062         PR preprocessor/56540
40063         * config/i386/i386-c.c (ix86_target_macros): Define
40064         __SIZEOF_FLOAT80__ and __SIZEOF_FLOAT128__.
40065
40066 2014-04-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40067
40068         * configure.ac (tga_func): Remove.
40069         (LIB_TLS_SPEC): Remove.
40070         * configure: Regenerate.
40071         * config.in: Regenerate.
40072         * config/sol2.h (LIB_SPEC): Don't use LIB_TLS_SPEC.
40073
40074 2014-04-25  Richard Biener  <rguenther@suse.de>
40075
40076         PR ipa/60912
40077         * tree-ssa-structalias.c (ipa_pta_execute): Compute direct
40078         call stmt use/clobber sets during stmt walk instead of
40079         walking the possibly incomplete set of caller edges.
40080
40081 2014-04-25  Richard Biener  <rguenther@suse.de>
40082
40083         PR ipa/60911
40084         * passes.c (apply_ipa_transforms): Inline into only caller ...
40085         (execute_one_pass): ... here.  Properly bring in function
40086         bodies for nodes we want to apply IPA transforms to.
40087
40088 2014-04-24  Cong Hou  <congh@google.com>
40089
40090         PR tree-optimization/60896
40091         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Pick up
40092         all statements in PATTERN_DEF_SEQ in recognized widen-mult pattern.
40093         (vect_mark_pattern_stmts): Set the def type of all statements in
40094         PATTERN_DEF_SEQ as vect_internal_def.
40095
40096 2014-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
40097
40098         * doc/extend.texi (PowerPC Built-in Functions): Document new
40099         powerpc extended divide, bcd, pack/unpack 128-bit, builtin functions.
40100         (PowerPC AltiVec/VSX Built-in Functions): Likewise.
40101
40102         * config/rs6000/predicates.md (const_0_to_3_operand): New
40103         predicate to match 0..3 integer constants.
40104
40105         * config/rs6000/rs6000-builtin.def (BU_DFP_MISC_1): Add new macros
40106         to support adding miscellaneous builtin functions.
40107         (BU_DFP_MISC_2): Likewise.
40108         (BU_P7_MISC_1): Likewise.
40109         (BU_P7_MISC_2): Likewise.
40110         (BU_P8V_MISC_3): Likewise.
40111         (BU_MISC_1): Likewise.
40112         (BU_MISC_2): Likewise.
40113         (DIVWE): Add extended divide builtin functions.
40114         (DIVWEO): Likewise.
40115         (DIVWEU): Likewise.
40116         (DIVWEUO): Likewise.
40117         (DIVDE): Likewise.
40118         (DIVDEO): Likewise.
40119         (DIVDEU): Likewise.
40120         (DIVDEUO): Likewise.
40121         (DXEX): Add decimal floating-point builtin functions.
40122         (DXEXQ): Likewise.
40123         (DDEDPD): Likewise.
40124         (DDEDPDQ): Likewise.
40125         (DENBCD): Likewise.
40126         (DENBCDQ): Likewise.
40127         (DIEX): Likewise.
40128         (DIEXQ): Likewise.
40129         (DSCLI): Likewise.
40130         (DSCLIQ): Likewise.
40131         (DSCRI): Likewise.
40132         (DSCRIQ): Likewise.
40133         (CDTBCD): Add new BCD builtin functions.
40134         (CBCDTD): Likewise.
40135         (ADDG6S): Likewise.
40136         (BCDADD): Likewise.
40137         (BCDADD_LT): Likewise.
40138         (BCDADD_EQ): Likewise.
40139         (BCDADD_GT): Likewise.
40140         (BCDADD_OV): Likewise.
40141         (BCDSUB): Likewise.
40142         (BCDSUB_LT): Likewise.
40143         (BCDSUB_EQ): Likewise.
40144         (BCDSUB_GT): Likewise.
40145         (BCDSUB_OV): Likewise.
40146         (PACK_TD): Add new pack/unpack 128-bit type builtin functions.
40147         (UNPACK_TD): Likewise.
40148         (PACK_TF): Likewise.
40149         (UNPACK_TF): Likewise.
40150         (UNPACK_TF_0): Likewise.
40151         (UNPACK_TF_1): Likewise.
40152         (PACK_V1TI): Likewise.
40153         (UNPACK_V1TI): Likewise.
40154
40155         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
40156         support for decimal floating point builtin functions.
40157         (rs6000_expand_ternop_builtin): Add checks for the new builtin
40158         functions that take constant arguments.
40159         (rs6000_invalid_builtin): Add decimal floating point builtin support.
40160         (rs6000_init_builtins): Setup long double, _Decimal64, and
40161         _Decimal128 types for new builtin functions.
40162         (builtin_function_type): Set the unsigned flags appropriately for
40163         the new builtin functions.
40164         (rs6000_opt_masks): Add support for decimal floating point builtin
40165         functions.
40166
40167         * config/rs6000/rs6000.h (RS6000_BTM_DFP): Add support for decimal
40168         floating point builtin functions.
40169         (RS6000_BTM_COMMON): Likewise.
40170         (RS6000_BTI_long_double): Likewise.
40171         (RS6000_BTI_dfloat64): Likewise.
40172         (RS6000_BTI_dfloat128): Likewise.
40173         (long_double_type_internal_node): Likewise.
40174         (dfloat64_type_internal_node): Likewise.
40175         (dfloat128_type_internal_node): Likewise.
40176
40177         * config/rs6000/altivec.h (UNSPEC_BCDADD): Add support for ISA
40178         2.07 bcd arithmetic instructions.
40179         (UNSPEC_BCDSUB): Likewise.
40180         (UNSPEC_BCD_OVERFLOW): Likewise.
40181         (UNSPEC_BCD_ADD_SUB): Likewise.
40182         (bcd_add_sub): Likewise.
40183         (BCD_TEST): Likewise.
40184         (bcd<bcd_add_sub>): Likewise.
40185         (bcd<bcd_add_sub>_test): Likewise.
40186         (bcd<bcd_add_sub>_test2): Likewise.
40187         (bcd<bcd_add_sub>_<code>): Likewise.
40188         (peephole2 for combined bcd ops): Likewise.
40189
40190         * config/rs6000/dfp.md (UNSPEC_DDEDPD): Add support for new
40191         decimal floating point builtin functions.
40192         (UNSPEC_DENBCD): Likewise.
40193         (UNSPEC_DXEX): Likewise.
40194         (UNSPEC_DIEX): Likewise.
40195         (UNSPEC_DSCLI): Likewise.
40196         (UNSPEC_DSCRI): Likewise.
40197         (D64_D128): Likewise.
40198         (dfp_suffix): Likewise.
40199         (dfp_ddedpd_<mode>): Likewise.
40200         (dfp_denbcd_<mode>): Likewise.
40201         (dfp_dxex_<mode>): Likewise.
40202         (dfp_diex_<mode>): Likewise.
40203         (dfp_dscli_<mode>): Likewise.
40204         (dfp_dscri_<mode>): Likewise.
40205
40206         * config/rs6000/rs6000.md (UNSPEC_ADDG6S): Add support for new BCD
40207         builtin functions.
40208         (UNSPEC_CDTBCD): Likewise.
40209         (UNSPEC_CBCDTD): Likewise.
40210         (UNSPEC_DIVE): Add support for new extended divide builtin functions.
40211         (UNSPEC_DIVEO): Likewise.
40212         (UNSPEC_DIVEU): Likewise.
40213         (UNSPEC_DIVEUO): Likewise.
40214         (UNSPEC_UNPACK_128BIT): Add support for new builtin functions to
40215         pack/unpack 128-bit types.
40216         (UNSPEC_PACK_128BIT): Likewise.
40217         (idiv_ldiv): New mode attribute to set the 32/64-bit divide type.
40218         (udiv<mode>3): Use idiv_ldiv mode attribute.
40219         (div<mode>3): Likewise.
40220         (addg6s): Add new BCD builtin functions.
40221         (cdtbcd): Likewise.
40222         (cbcdtd): Likewise.
40223         (UNSPEC_DIV_EXTEND): Add support for new extended divide instructions.
40224         (div_extend): Likewise.
40225         (div<div_extend>_<mode>"): Likewise.
40226         (FP128_64): Add support for new builtin functions to pack/unpack
40227         128-bit types.
40228         (unpack<mode>): Likewise.
40229         (unpacktf_0): Likewise.
40230         (unpacktf_1): Likewise.
40231         (unpack<mode>_dm): Likewise.
40232         (unpack<mode>_nodm): Likewise.
40233         (pack<mode>): Likewise.
40234         (unpackv1ti): Likewise.
40235         (packv1ti): Likewise.
40236
40237 2014-04-24  Vishnu K S  <Vishnu.k_s@atmel.com>
40238
40239         * gcc/config/avr/avr.c: Add comment on why -fdelete-null-pointer-checks
40240         is disabled.
40241
40242 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
40243
40244         * tree.h (OMP_CLAUSE_LINEAR_GIMPLE_SEQ): Define.
40245         * gimplify.c (omp_is_private): Change last argument's type to int.
40246         Only diagnose lastprivate if the simd argument is 1, only diagnose
40247         linear if the simd argument is 2.
40248         (gimplify_omp_for): Adjust omp_is_private callers.  When adding
40249         lastprivate or private, add the clause to OMP_FOR_CLAUSES.  Pass
40250         GOVD_EXPLICIT to omp_add_variable.  For simd with collapse == 1
40251         create OMP_CLAUSE_LINEAR rather than OMP_CLAUSE_PRIVATE for var.
40252         If var != decl and decl is in OMP_CLAUSE_LINEAR, gimplify decl
40253         increment to OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40254         * omp-low.c (scan_sharing_clauses, lower_lastprivate_clauses): Handle
40255         OMP_CLAUSE_LINEAR_GIMPLE_SEQ.
40256         * tree-nested.c (convert_nonlocal_omp_clauses,
40257         convert_local_omp_clauses): Handle OMP_CLAUSE_LINEAR.
40258
40259 2014-04-24  Segher Boessenkool  <segher@kernel.crashing.org>
40260
40261         PR target/60822
40262         * config/m68k/m68k.md (extendplussidi): Don't allow memory for
40263         operand 1.
40264
40265 2014-04-24  Dimitris Papavasiliou  <dpapavas@gmail.com>
40266
40267         * flag-types.h (enum ivar_visibility): Add.
40268
40269 2014-04-24  Trevor Saunders  <tsaunders@mozilla.com>
40270
40271         * config/sh/sh_treg_combine.c (sh_treg_combine::execute): Take
40272         function * argument.
40273
40274 2014-04-24  Alan Lawrence  <alan.lawrence@arm.com>
40275
40276         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
40277
40278 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40279             Tom de Vries  <tom@codesourcery.com>
40280
40281         * reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
40282         * calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
40283         reg-note.
40284         * combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
40285         * emit-rtl.c (try_split): Same.
40286
40287 2014-04-24  Radovan Obradovic  <robradovic@mips.com>
40288             Tom de Vries  <tom@codesourcery.com>
40289
40290         * common.opt (fuse-caller-save): New option.
40291
40292 2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>
40293
40294         * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of
40295         elements for big-endian.
40296
40297 2014-04-24  Richard Biener  <rguenther@suse.de>
40298
40299         * expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
40300         during TER and instead use the sepops interface for expanding
40301         non-GIMPLE_SINGLE_RHS.
40302
40303 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40304
40305         * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
40306         if not HAVE_AS_IX86_DIFF_SECT_DELTA.
40307
40308 2014-04-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40309
40310         * configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
40311         assembler 64-bit option.
40312         * configure: Regenerate.
40313
40314 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40315
40316         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
40317         TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
40318         (TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
40319         (TARGET_FLOAT): Take AARCH64_ISA_FP into account.
40320         (TARGET_CRYPTO): Take TARGET_SIMD into account.
40321
40322 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40323
40324         * config/aarch64/aarch64-builtins.c
40325         (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
40326         BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
40327         * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
40328         * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
40329         builtins.
40330         * config/aarch64/iterator.md (VDQHSD): New mode iterator.
40331         (Vrevsuff): New mode attribute.
40332
40333 2014-04-24  Terry Guo  <terry.guo@arm.com>
40334
40335         * config/arm/arm.h (machine_function): Define variable
40336         after_arm_reorg here.
40337         * config/arm/arm.c (after_arm_reorg): Remove the definition.
40338         (arm_split_constant): Update the way to access variable
40339         after_arm_reorg.
40340         (arm_reorg): Ditto.
40341         (arm_output_function_epilogue): Remove the reset of after_arm_reorg.
40342
40343 2014-04-23  Tom de Vries  <tom@codesourcery.com>
40344
40345         * target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
40346
40347 2014-04-23  David Malcolm  <dmalcolm@redhat.com>
40348
40349         * is-a.h: Update comments to reflect the following changes to the
40350         "pointerness" of the API, making the template parameter match the
40351         return type, allowing use of is-a.h with typedefs of pointers.
40352         (is_a_helper::cast): Return a T rather then a pointer to a T, so
40353         that the return type matches the parameter to the is_a_helper.
40354         (as_a): Likewise.
40355         (dyn_cast): Likewise.
40356
40357         * cgraph.c (cgraph_node_for_asm): Update for removal of implicit
40358         pointer from the is-a.h API.
40359
40360         * cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
40361         (is_a_helper <cgraph_node *>::test): ...this, matching change to
40362         is-a.h API.
40363         (is_a_helper <varpool_node>::test): Likewise, convert to...
40364         (is_a_helper <varpool_node *>::test): ...this.
40365
40366         (varpool_first_variable): Update for removal of implicit pointer
40367         from the is-a.h API.
40368         (varpool_next_variable): Likewise.
40369         (varpool_first_static_initializer): Likewise.
40370         (varpool_next_static_initializer): Likewise.
40371         (varpool_first_defined_variable): Likewise.
40372         (varpool_next_defined_variable): Likewise.
40373         (cgraph_first_defined_function): Likewise.
40374         (cgraph_next_defined_function): Likewise.
40375         (cgraph_first_function): Likewise.
40376         (cgraph_next_function): Likewise.
40377         (cgraph_first_function_with_gimple_body): Likewise.
40378         (cgraph_next_function_with_gimple_body): Likewise.
40379         (cgraph_alias_target): Likewise.
40380         (varpool_alias_target): Likewise.
40381         (cgraph_function_or_thunk_node): Likewise.
40382         (varpool_variable_node): Likewise.
40383         (symtab_real_symbol_p): Likewise.
40384         * cgraphunit.c (referred_to_p): Likewise.
40385         (analyze_functions): Likewise.
40386         (handle_alias_pairs): Likewise.
40387         * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
40388         * gimple-ssa.h (gimple_vuse_op): Likewise.
40389         (gimple_vdef_op): Likewise.
40390         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
40391         * gimple.c (gimple_build_asm_1): Likewise.
40392         (gimple_build_try): Likewise.
40393         (gimple_build_resx): Likewise.
40394         (gimple_build_eh_dispatch): Likewise.
40395         (gimple_build_omp_for): Likewise.
40396         (gimple_omp_for_set_clauses): Likewise.
40397
40398         * gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
40399         (is_a_helper <gimple_statement_asm *>::test): ...this.
40400         (is_a_helper <gimple_statement_bind>::test): Convert to...
40401         (is_a_helper <gimple_statement_bind *>::test): ...this.
40402         (is_a_helper <gimple_statement_call>::test): Convert to...
40403         (is_a_helper <gimple_statement_call *>::test): ...this.
40404         (is_a_helper <gimple_statement_catch>::test): Convert to...
40405         (is_a_helper <gimple_statement_catch *>::test): ...this.
40406         (is_a_helper <gimple_statement_resx>::test): Convert to...
40407         (is_a_helper <gimple_statement_resx *>::test): ...this.
40408         (is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
40409         (is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
40410         (is_a_helper <gimple_statement_eh_else>::test): Convert to...
40411         (is_a_helper <gimple_statement_eh_else *>::test): ...this.
40412         (is_a_helper <gimple_statement_eh_filter>::test): Convert to...
40413         (is_a_helper <gimple_statement_eh_filter *>::test): ...this.
40414         (is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
40415         (is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
40416         (is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
40417         (is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
40418         (is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
40419         (is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
40420         (is_a_helper <gimple_statement_omp_return>::test): Convert to...
40421         (is_a_helper <gimple_statement_omp_return *>::test): ...this.
40422         (is_a_helper <gimple_statement_omp_continue>::test): Convert to...
40423         (is_a_helper <gimple_statement_omp_continue *>::test): ...this.
40424         (is_a_helper <gimple_statement_omp_critical>::test): Convert to...
40425         (is_a_helper <gimple_statement_omp_critical *>::test): ...this.
40426         (is_a_helper <gimple_statement_omp_for>::test): Convert to...
40427         (is_a_helper <gimple_statement_omp_for *>::test): ...this.
40428         (is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
40429         (is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
40430         (is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
40431         (is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
40432         (is_a_helper <gimple_statement_omp_target>::test): Convert to...
40433         (is_a_helper <gimple_statement_omp_target *>::test): ...this.
40434         (is_a_helper <gimple_statement_omp_sections>::test): Convert to...
40435         (is_a_helper <gimple_statement_omp_sections *>::test): ...this.
40436         (is_a_helper <gimple_statement_omp_single>::test): Convert to...
40437         (is_a_helper <gimple_statement_omp_single *>::test): ...this.
40438         (is_a_helper <gimple_statement_omp_teams>::test): Convert to...
40439         (is_a_helper <gimple_statement_omp_teams *>::test): ...this.
40440         (is_a_helper <gimple_statement_omp_task>::test): Convert to...
40441         (is_a_helper <gimple_statement_omp_task *>::test): ...this.
40442         (is_a_helper <gimple_statement_phi>::test): Convert to...
40443         (is_a_helper <gimple_statement_phi *>::test): ...this.
40444         (is_a_helper <gimple_statement_transaction>::test): Convert to...
40445         (is_a_helper <gimple_statement_transaction *>::test): ...this.
40446         (is_a_helper <gimple_statement_try>::test): Convert to...
40447         (is_a_helper <gimple_statement_try *>::test): ...this.
40448         (is_a_helper <gimple_statement_wce>::test): Convert to...
40449         (is_a_helper <gimple_statement_wce *>::test): ...this.
40450         (is_a_helper <const gimple_statement_asm>::test): Convert to...
40451         (is_a_helper <const gimple_statement_asm *>::test): ...this.
40452         (is_a_helper <const gimple_statement_bind>::test): Convert to...
40453         (is_a_helper <const gimple_statement_bind *>::test): ...this.
40454         (is_a_helper <const gimple_statement_call>::test): Convert to...
40455         (is_a_helper <const gimple_statement_call *>::test): ...this.
40456         (is_a_helper <const gimple_statement_catch>::test): Convert to...
40457         (is_a_helper <const gimple_statement_catch *>::test): ...this.
40458         (is_a_helper <const gimple_statement_resx>::test): Convert to...
40459         (is_a_helper <const gimple_statement_resx *>::test): ...this.
40460         (is_a_helper <const gimple_statement_eh_dispatch>::test): Convert to...
40461         (is_a_helper <const gimple_statement_eh_dispatch *>::test): ...this.
40462         (is_a_helper <const gimple_statement_eh_filter>::test): Convert to...
40463         (is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
40464         (is_a_helper <const gimple_statement_omp_atomic_load>::test):
40465         Convert to...
40466         (is_a_helper <const gimple_statement_omp_atomic_load *>::test):
40467         ...this.
40468         (is_a_helper <const gimple_statement_omp_atomic_store>::test):
40469         Convert to...
40470         (is_a_helper <const gimple_statement_omp_atomic_store *>::test):
40471         ...this.
40472         (is_a_helper <const gimple_statement_omp_return>::test): Convert to...
40473         (is_a_helper <const gimple_statement_omp_return *>::test): ...this.
40474         (is_a_helper <const gimple_statement_omp_continue>::test): Convert
40475         to...
40476         (is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
40477         (is_a_helper <const gimple_statement_omp_critical>::test): Convert
40478         to...
40479         (is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
40480         (is_a_helper <const gimple_statement_omp_for>::test): Convert to...
40481         (is_a_helper <const gimple_statement_omp_for *>::test): ...this.
40482         (is_a_helper <const gimple_statement_omp_taskreg>::test): Convert to...
40483         (is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
40484         (is_a_helper <const gimple_statement_omp_parallel>::test): Convert
40485         to...
40486         (is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
40487         (is_a_helper <const gimple_statement_omp_target>::test): Convert to...
40488         (is_a_helper <const gimple_statement_omp_target *>::test): ...this.
40489         (is_a_helper <const gimple_statement_omp_sections>::test): Convert
40490         to...
40491         (is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
40492         (is_a_helper <const gimple_statement_omp_single>::test): Convert to...
40493         (is_a_helper <const gimple_statement_omp_single *>::test): ...this.
40494         (is_a_helper <const gimple_statement_omp_teams>::test): Convert to...
40495         (is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
40496         (is_a_helper <const gimple_statement_omp_task>::test): Convert to...
40497         (is_a_helper <const gimple_statement_omp_task *>::test): ...this.
40498         (is_a_helper <const gimple_statement_phi>::test): Convert to...
40499         (is_a_helper <const gimple_statement_phi *>::test): ...this.
40500         (is_a_helper <const gimple_statement_transaction>::test): Convert to...
40501         (is_a_helper <const gimple_statement_transaction *>::test): ...this.
40502         (is_a_helper <const gimple_statement_with_ops>::test): Convert to...
40503         (is_a_helper <const gimple_statement_with_ops *>::test): ...this.
40504         (is_a_helper <gimple_statement_with_ops>::test): Convert to...
40505         (is_a_helper <gimple_statement_with_ops *>::test): ...this.
40506         (is_a_helper <const gimple_statement_with_memory_ops>::test): Convert
40507         to...
40508         (is_a_helper <const gimple_statement_with_memory_ops *>::test):
40509         ...this.
40510         (is_a_helper <gimple_statement_with_memory_ops>::test): Convert to...
40511         (is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
40512
40513         (gimple_use_ops): Update for removal of implicit pointer from the
40514         is-a.h API.
40515         (gimple_set_use_ops): Likewise.
40516         (gimple_vuse): Likewise.
40517         (gimple_vdef): Likewise.
40518         (gimple_vuse_ptr): Likewise.
40519         (gimple_vdef_ptr): Likewise.
40520         (gimple_set_vuse): Likewise.
40521         (gimple_set_vdef): Likewise.
40522         (gimple_omp_return_set_lhs): Likewise.
40523         (gimple_omp_return_lhs): Likewise.
40524         (gimple_omp_return_lhs_ptr): Likewise.
40525         (gimple_call_fntype): Likewise.
40526         (gimple_call_set_fntype): Likewise.
40527         (gimple_call_set_internal_fn): Likewise.
40528         (gimple_call_use_set): Likewise.
40529         (gimple_call_clobber_set): Likewise.
40530         (gimple_bind_vars): Likewise.
40531         (gimple_bind_set_vars): Likewise.
40532         (gimple_bind_body_ptr): Likewise.
40533         (gimple_bind_set_body): Likewise.
40534         (gimple_bind_add_stmt): Likewise.
40535         (gimple_bind_block): Likewise.
40536         (gimple_bind_set_block): Likewise.
40537         (gimple_asm_ninputs): Likewise.
40538         (gimple_asm_noutputs): Likewise.
40539         (gimple_asm_nclobbers): Likewise.
40540         (gimple_asm_nlabels): Likewise.
40541         (gimple_asm_input_op): Likewise.
40542         (gimple_asm_input_op_ptr): Likewise.
40543         (gimple_asm_output_op): Likewise.
40544         (gimple_asm_output_op_ptr): Likewise.
40545         (gimple_asm_set_output_op): Likewise.
40546         (gimple_asm_clobber_op): Likewise.
40547         (gimple_asm_set_clobber_op): Likewise.
40548         (gimple_asm_label_op): Likewise.
40549         (gimple_asm_set_label_op): Likewise.
40550         (gimple_asm_string): Likewise.
40551         (gimple_catch_types): Likewise.
40552         (gimple_catch_types_ptr): Likewise.
40553         (gimple_catch_handler_ptr): Likewise.
40554         (gimple_catch_set_types): Likewise.
40555         (gimple_catch_set_handler): Likewise.
40556         (gimple_eh_filter_types): Likewise.
40557         (gimple_eh_filter_types_ptr): Likewise.
40558         (gimple_eh_filter_failure_ptr): Likewise.
40559         (gimple_eh_filter_set_types): Likewise.
40560         (gimple_eh_filter_set_failure): Likewise.
40561         (gimple_eh_must_not_throw_fndecl): Likewise.
40562         (gimple_eh_must_not_throw_set_fndecl): Likewise.
40563         (gimple_eh_else_n_body_ptr): Likewise.
40564         (gimple_eh_else_e_body_ptr): Likewise.
40565         (gimple_eh_else_set_n_body): Likewise.
40566         (gimple_eh_else_set_e_body): Likewise.
40567         (gimple_try_eval_ptr): Likewise.
40568         (gimple_try_cleanup_ptr): Likewise.
40569         (gimple_try_set_eval): Likewise.
40570         (gimple_try_set_cleanup): Likewise.
40571         (gimple_wce_cleanup_ptr): Likewise.
40572         (gimple_wce_set_cleanup): Likewise.
40573         (gimple_phi_capacity): Likewise.
40574         (gimple_phi_num_args): Likewise.
40575         (gimple_phi_result): Likewise.
40576         (gimple_phi_result_ptr): Likewise.
40577         (gimple_phi_set_result): Likewise.
40578         (gimple_phi_arg): Likewise.
40579         (gimple_phi_set_arg): Likewise.
40580         (gimple_resx_region): Likewise.
40581         (gimple_resx_set_region): Likewise.
40582         (gimple_eh_dispatch_region): Likewise.
40583         (gimple_eh_dispatch_set_region): Likewise.
40584         (gimple_omp_critical_name): Likewise.
40585         (gimple_omp_critical_name_ptr): Likewise.
40586         (gimple_omp_critical_set_name): Likewise.
40587         (gimple_omp_for_clauses): Likewise.
40588         (gimple_omp_for_clauses_ptr): Likewise.
40589         (gimple_omp_for_set_clauses): Likewise.
40590         (gimple_omp_for_collapse): Likewise.
40591         (gimple_omp_for_index): Likewise.
40592         (gimple_omp_for_index_ptr): Likewise.
40593         (gimple_omp_for_set_index): Likewise.
40594         (gimple_omp_for_initial): Likewise.
40595         (gimple_omp_for_initial_ptr): Likewise.
40596         (gimple_omp_for_set_initial): Likewise.
40597         (gimple_omp_for_final): Likewise.
40598         (gimple_omp_for_final_ptr): Likewise.
40599         (gimple_omp_for_set_final): Likewise.
40600         (gimple_omp_for_incr): Likewise.
40601         (gimple_omp_for_incr_ptr): Likewise.
40602         (gimple_omp_for_set_incr): Likewise.
40603         (gimple_omp_for_pre_body_ptr): Likewise.
40604         (gimple_omp_for_set_pre_body): Likewise.
40605         (gimple_omp_parallel_clauses): Likewise.
40606         (gimple_omp_parallel_clauses_ptr): Likewise.
40607         (gimple_omp_parallel_set_clauses): Likewise.
40608         (gimple_omp_parallel_child_fn): Likewise.
40609         (gimple_omp_parallel_child_fn_ptr): Likewise.
40610         (gimple_omp_parallel_set_child_fn): Likewise.
40611         (gimple_omp_parallel_data_arg): Likewise.
40612         (gimple_omp_parallel_data_arg_ptr): Likewise.
40613         (gimple_omp_parallel_set_data_arg): Likewise.
40614         (gimple_omp_task_clauses): Likewise.
40615         (gimple_omp_task_clauses_ptr): Likewise.
40616         (gimple_omp_task_set_clauses): Likewise.
40617         (gimple_omp_task_child_fn): Likewise.
40618         (gimple_omp_task_child_fn_ptr): Likewise.
40619         (gimple_omp_task_set_child_fn): Likewise.
40620         (gimple_omp_task_data_arg): Likewise.
40621         (gimple_omp_task_data_arg_ptr): Likewise.
40622         (gimple_omp_task_set_data_arg): Likewise.
40623         (gimple_omp_taskreg_clauses): Likewise.
40624         (gimple_omp_taskreg_clauses_ptr): Likewise.
40625         (gimple_omp_taskreg_set_clauses): Likewise.
40626         (gimple_omp_taskreg_child_fn): Likewise.
40627         (gimple_omp_taskreg_child_fn_ptr): Likewise.
40628         (gimple_omp_taskreg_set_child_fn): Likewise.
40629         (gimple_omp_taskreg_data_arg): Likewise.
40630         (gimple_omp_taskreg_data_arg_ptr): Likewise.
40631         (gimple_omp_taskreg_set_data_arg): Likewise.
40632         (gimple_omp_task_copy_fn): Likewise.
40633         (gimple_omp_task_copy_fn_ptr): Likewise.
40634         (gimple_omp_task_set_copy_fn): Likewise.
40635         (gimple_omp_task_arg_size): Likewise.
40636         (gimple_omp_task_arg_size_ptr): Likewise.
40637         (gimple_omp_task_set_arg_size): Likewise.
40638         (gimple_omp_task_arg_align): Likewise.
40639         (gimple_omp_task_arg_align_ptr): Likewise.
40640         (gimple_omp_task_set_arg_align): Likewise.
40641         (gimple_omp_single_clauses): Likewise.
40642         (gimple_omp_single_clauses_ptr): Likewise.
40643         (gimple_omp_single_set_clauses): Likewise.
40644         (gimple_omp_target_clauses): Likewise.
40645         (gimple_omp_target_clauses_ptr): Likewise.
40646         (gimple_omp_target_set_clauses): Likewise.
40647         (gimple_omp_target_child_fn): Likewise.
40648         (gimple_omp_target_child_fn_ptr): Likewise.
40649         (gimple_omp_target_set_child_fn): Likewise.
40650         (gimple_omp_target_data_arg): Likewise.
40651         (gimple_omp_target_data_arg_ptr): Likewise.
40652         (gimple_omp_target_set_data_arg): Likewise.
40653         (gimple_omp_teams_clauses): Likewise.
40654         (gimple_omp_teams_clauses_ptr): Likewise.
40655         (gimple_omp_teams_set_clauses): Likewise.
40656         (gimple_omp_sections_clauses): Likewise.
40657         (gimple_omp_sections_clauses_ptr): Likewise.
40658         (gimple_omp_sections_set_clauses): Likewise.
40659         (gimple_omp_sections_control): Likewise.
40660         (gimple_omp_sections_control_ptr): Likewise.
40661         (gimple_omp_sections_set_control): Likewise.
40662         (gimple_omp_for_set_cond): Likewise.
40663         (gimple_omp_for_cond): Likewise.
40664         (gimple_omp_atomic_store_set_val): Likewise.
40665         (gimple_omp_atomic_store_val): Likewise.
40666         (gimple_omp_atomic_store_val_ptr): Likewise.
40667         (gimple_omp_atomic_load_set_lhs): Likewise.
40668         (gimple_omp_atomic_load_lhs): Likewise.
40669         (gimple_omp_atomic_load_lhs_ptr): Likewise.
40670         (gimple_omp_atomic_load_set_rhs): Likewise.
40671         (gimple_omp_atomic_load_rhs): Likewise.
40672         (gimple_omp_atomic_load_rhs_ptr): Likewise.
40673         (gimple_omp_continue_control_def): Likewise.
40674         (gimple_omp_continue_control_def_ptr): Likewise.
40675         (gimple_omp_continue_set_control_def): Likewise.
40676         (gimple_omp_continue_control_use): Likewise.
40677         (gimple_omp_continue_control_use_ptr): Likewise.
40678         (gimple_omp_continue_set_control_use): Likewise.
40679         (gimple_transaction_body_ptr): Likewise.
40680         (gimple_transaction_label): Likewise.
40681         (gimple_transaction_label_ptr): Likewise.
40682         (gimple_transaction_set_body): Likewise.
40683         (gimple_transaction_set_label): Likewise.
40684
40685         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
40686         * ipa-inline-analysis.c (inline_write_summary): Likewise.
40687         * ipa-ref.c (ipa_record_reference): Likewise.
40688         * ipa-reference.c (analyze_function): Likewise.
40689         (ipa_reference_write_optimization_summary): Likewise.
40690         * ipa.c (symtab_remove_unreachable_nodes): Likewise.
40691         (address_taken_from_non_vtable_p): Likewise.
40692         (comdat_can_be_unshared_p_1): Likewise.
40693         * lto-cgraph.c (lto_output_ref): Likewise.
40694         (add_references): Likewise.
40695         (compute_ltrans_boundary): Likewise.
40696         (output_symtab): Likewise.
40697         (input_ref): Likewise.
40698         (input_cgraph_1): Likewise.
40699         (output_cgraph_opt_summary): Likewise.
40700         * lto-streamer-out.c (lto_output): Likewise.
40701         (output_symbol_p): Likewise.
40702         * lto-streamer.h (lsei_next_function_in_partition): Likewise.
40703         (lsei_start_function_in_partition): Likewise.
40704         (lsei_next_variable_in_partition): Likewise.
40705         (lsei_start_variable_in_partition): Likewise.
40706         * symtab.c (insert_to_assembler_name_hash): Likewise.
40707         (unlink_from_assembler_name_hash): Likewise.
40708         (symtab_unregister_node): Likewise.
40709         (symtab_remove_node): Likewise.
40710         (dump_symtab_node): Likewise.
40711         (verify_symtab_base): Likewise.
40712         (verify_symtab_node): Likewise.
40713         (symtab_make_decl_local): Likewise.
40714         (symtab_alias_ultimate_target): Likewise.
40715         (symtab_resolve_alias): Likewise.
40716         (symtab_get_symbol_partitioning_class): Likewise.
40717         * tree-phinodes.c (allocate_phi_node): Likewise.
40718         (reserve_phi_args_for_new_edge): Likewise.
40719         (remove_phi_args): Likewise.
40720         * varpool.c (varpool_node_for_asm): Likewise.
40721         (varpool_remove_unreferenced_decls): Likewise.
40722
40723 2014-04-23  Jeff Law  <law@redhat.com>
40724
40725         PR tree-optimization/60902
40726         * tree-ssa-threadedge.c
40727         (record_temporary_equivalences_from_stmts_at_dest): Make sure to
40728         invalidate outputs from statements that do not produce useful
40729         outputs for threading.
40730
40731 2014-04-23  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
40732
40733         * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
40734         (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
40735         machine descriptions for Stack Smashing Protector.
40736
40737 2014-04-23  Richard Earnshaw  <rearnsha@arm.com>
40738
40739         * aarch64.md (<optab>_rol<mode>3): New pattern.
40740         (<optab>_rolsi3_uxtw): Likewise.
40741         * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
40742
40743 2014-04-23  James Greenhalgh  <james.greenhalgh@arm.com>
40744
40745         * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
40746         (arm_cortex_a12_tune): Likewise.
40747
40748 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40749
40750         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
40751
40752 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40753
40754         * config/arm/arm.md (arm_rev16si2): New pattern.
40755         (arm_rev16si2_alt): Likewise.
40756         * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
40757
40758 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40759
40760         * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
40761         (rev16<mode>2_alt): Likewise.
40762         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
40763         * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
40764         (aarch_rev16_shleft_mask_imm_p): Likewise.
40765         (aarch_rev16_p_1): Likewise.
40766         (aarch_rev16_p): Likewise.
40767         * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
40768         (aarch_rev16_shright_mask_imm_p): Likewise.
40769         (aarch_rev16_shleft_mask_imm_p): Likewise.
40770
40771 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40772
40773         * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
40774         * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
40775         rev cost.
40776         (cortex_a53_extra_costs): Likewise.
40777         (cortex_a57_extra_costs): Likewise.
40778         * config/arm/arm.c (cortexa9_extra_costs): Likewise.
40779         (cortexa7_extra_costs): Likewise.
40780         (cortexa8_extra_costs): Likewise.
40781         (cortexa12_extra_costs): Likewise.
40782         (cortexa15_extra_costs): Likewise.
40783         (v7m_extra_costs): Likewise.
40784         (arm_new_rtx_costs): Handle BSWAP.
40785
40786 2013-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40787
40788         * config/arm/arm.c (cortexa8_extra_costs): New table.
40789         (arm_cortex_a8_tune): New tuning struct.
40790         * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
40791
40792 2014-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
40793
40794         * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
40795
40796 2014-04-23  Richard Biener  <rguenther@suse.de>
40797
40798         * Makefile.in (OBJS): Remove loop-unswitch.o.
40799         * tree-pass.h (make_pass_rtl_unswitch): Remove.
40800         * passes.def (pass_rtl_unswitch): Likewise.
40801         * loop-init.c (gate_rtl_unswitch): Likewise.
40802         (rtl_unswitch): Likewise.
40803         (pass_data_rtl_unswitch): Likewise.
40804         (pass_rtl_unswitch): Likewise.
40805         (make_pass_rtl_unswitch): Likewise.
40806         * rtl.h (reversed_condition): Likewise.
40807         (compare_and_jump_seq): Likewise.
40808         * loop-iv.c (reversed_condition): Move here from loop-unswitch.c
40809         and make static.
40810         * loop-unroll.c (compare_and_jump_seq): Likewise.
40811
40812 2014-04-23  Richard Biener  <rguenther@suse.de>
40813
40814         PR tree-optimization/60903
40815         * tree-ssa-loop-im.c (analyze_memory_references): Remove
40816         commented code block.
40817         (execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
40818         loop flags to newly created BBs and edges.
40819
40820 2014-04-23  Nick Clifton  <nickc@redhat.com>
40821
40822         * config/msp430/msp430.c (msp430_handle_option): Move function
40823         to msp430-common.c
40824         (msp430_option_override): Simplify mcu and mcpu option handling.
40825         (msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
40826         support for -mhwmult command line option.
40827         (has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
40828         -mhwmult command line option.
40829         (msp430_hwmult_enabled): Delete.
40830         (msp43o_output_labelref): Add support for -mhwmult command line option.
40831         * config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
40832         (umulsidi3): Likewise.
40833         * config/msp430/msp430.opt (mmcu): Add Report attribute.
40834         (mcpu, mlarge, msmall): Likewise.
40835         (mhwmult): New option.
40836         * config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
40837         prototype.
40838         (msp430_is_f5_mcu): Remove prototype.
40839         (msp430_use_f5_series_hwmult): Add prototype.
40840         * config/msp430/msp430-opts.h: New file.
40841         * common/config/msp430: New directory.
40842         * common/config/msp430/msp430-common.c: New file.
40843         * config.gcc (msp430): Remove target_has_targetm_common.
40844         * doc/invoke.texi: Document -mhwmult command line option.
40845
40846 2014-04-23  Nick Clifton  <nickc@redhat.com>
40847
40848         * config/i386/cygwin.h (ENDFILE_SPEC): Include
40849         default-manifest.o if it can be found in the search path.
40850         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
40851
40852 2014-04-23  Terry Guo  <terry.guo@arm.com>
40853
40854         * config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
40855
40856 2014-04-23  Richard Biener  <rguenther@suse.de>
40857
40858         PR middle-end/60895
40859         * tree-inline.c (declare_return_variable): Use mark_addressable.
40860
40861 2014-04-23  Richard Biener  <rguenther@suse.de>
40862
40863         PR middle-end/60891
40864         * loop-init.c (loop_optimizer_init): Make sure to apply
40865         LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.
40866
40867 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
40868
40869         PR sanitizer/60275
40870         * common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
40871         New options.
40872         * gcc.c (sanitize_spec_function): Don't return "" for "undefined"
40873         if flag_sanitize_undefined_trap_on_error.
40874         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
40875         BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
40876         BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
40877         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
40878         BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
40879         BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
40880         BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
40881         BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
40882         BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
40883         * ubsan.c (ubsan_instrument_unreachable): Return
40884         __builtin_trap () if flag_sanitize_undefined_trap_on_error.
40885         (ubsan_expand_null_ifn): Emit __builtin_trap ()
40886         if flag_sanitize_undefined_trap_on_error and
40887         __ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
40888         (ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
40889         instrument_bool_enum_load): Emit __builtin_trap () if
40890         flag_sanitize_undefined_trap_on_error and
40891         __builtin_handle_*_abort () if !flag_sanitize_recover.
40892         * doc/invoke.texi (-fsanitize-recover,
40893         -fsanitize-undefined-trap-on-error): Document.
40894
40895 2014-04-22  Christian Bruel  <christian.bruel@st.com>
40896
40897         * config/sh/sh.md (mov<mode>): Replace movQIHI.
40898         Force immediates to SImode.
40899
40900 2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>
40901
40902         * config/nios2/nios2.md (UNSPEC_ROUND): New.
40903         (lroundsfsi2): New.
40904         * config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
40905         * config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
40906         * config/nios2/nios2.c (N2F_NO_ERRNO): Define.
40907         (nios2_fpu_insn): Add entry for round.
40908         (N2FPU_NO_ERRNO_P): Define.
40909         (nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
40910         flag_errno_math.
40911         * doc/invoke.texi (Nios II Options): Document -mcustom-round.
40912
40913 2014-04-22  Richard Henderson  <rth@redhat.com>
40914
40915         * config/aarch64/aarch64 (addti3, subti3): New expanders.
40916         (add<GPI>3_compare0): Remove leading * from name.
40917         (add<GPI>3_carryin): Likewise.
40918         (sub<GPI>3_compare0): Likewise.
40919         (sub<GPI>3_carryin): Likewise.
40920         (<su_optab>mulditi3): New expander.
40921         (multi3): New expander.
40922         (madd<GPI>): Remove leading * from name.
40923
40924 2014-04-22  Martin Jambor  <mjambor@suse.cz>
40925
40926         * cgraphclones.c (cgraph_function_versioning): Copy
40927         ipa_transforms_to_apply instead of asserting it is empty.
40928
40929 2014-04-22  H.J. Lu  <hongjiu.lu@intel.com>
40930
40931         PR target/60868
40932         * config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode
40933         on count_exp to get mode.
40934
40935 2014-04-22  Andrew Pinski  <apinski@cavium.com>
40936
40937         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
40938         Handle TLS for ILP32.
40939         * config/aarch64/aarch64.md (tlsie_small): Rename to ...
40940         (tlsie_small_<mode>): this and handle PTR.
40941         (tlsie_small_sidi): New pattern.
40942         (tlsle_small): Change to an expand to handle ILP32.
40943         (tlsle_small_<mode>): New pattern.
40944         (tlsdesc_small): Rename to ...
40945         (tlsdesc_small_<mode>): this and handle PTR.
40946
40947 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
40948
40949         * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
40950
40951 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
40952
40953         * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
40954         (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
40955         (aarch64_types_signed_poly_qualifiers): Likewise.
40956         (aarch64_types_unsigned_signed_qualifiers): Likewise.
40957         (aarch64_types_poly_signed_qualifiers): Likewise.
40958         (TYPES_REINTERP_SS): Type macro added.
40959         (TYPES_REINTERP_SU): Likewise.
40960         (TYPES_REINTERP_SP): Likewise.
40961         (TYPES_REINTERP_US): Likewise.
40962         (TYPES_REINTERP_PS): Likewise.
40963         (aarch64_fold_builtin): New expression folding added.
40964         * config/aarch64/aarch64-simd-builtins.def (REINTERP):
40965         Declarations removed.
40966         (REINTERP_SS): Declarations added.
40967         (REINTERP_US): Likewise.
40968         (REINTERP_PS): Likewise.
40969         (REINTERP_SU): Likewise.
40970         (REINTERP_SP): Likewise.
40971         * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
40972         (vreinterpretq_p8_f64): Likewise.
40973         (vreinterpret_p16_f64): Likewise.
40974         (vreinterpretq_p16_f64): Likewise.
40975         (vreinterpret_f32_f64): Likewise.
40976         (vreinterpretq_f32_f64): Likewise.
40977         (vreinterpret_f64_f32): Likewise.
40978         (vreinterpret_f64_p8): Likewise.
40979         (vreinterpret_f64_p16): Likewise.
40980         (vreinterpret_f64_s8): Likewise.
40981         (vreinterpret_f64_s16): Likewise.
40982         (vreinterpret_f64_s32): Likewise.
40983         (vreinterpret_f64_s64): Likewise.
40984         (vreinterpret_f64_u8): Likewise.
40985         (vreinterpret_f64_u16): Likewise.
40986         (vreinterpret_f64_u32): Likewise.
40987         (vreinterpret_f64_u64): Likewise.
40988         (vreinterpretq_f64_f32): Likewise.
40989         (vreinterpretq_f64_p8): Likewise.
40990         (vreinterpretq_f64_p16): Likewise.
40991         (vreinterpretq_f64_s8): Likewise.
40992         (vreinterpretq_f64_s16): Likewise.
40993         (vreinterpretq_f64_s32): Likewise.
40994         (vreinterpretq_f64_s64): Likewise.
40995         (vreinterpretq_f64_u8): Likewise.
40996         (vreinterpretq_f64_u16): Likewise.
40997         (vreinterpretq_f64_u32): Likewise.
40998         (vreinterpretq_f64_u64): Likewise.
40999         (vreinterpret_s64_f64): Likewise.
41000         (vreinterpretq_s64_f64): Likewise.
41001         (vreinterpret_u64_f64): Likewise.
41002         (vreinterpretq_u64_f64): Likewise.
41003         (vreinterpret_s8_f64): Likewise.
41004         (vreinterpretq_s8_f64): Likewise.
41005         (vreinterpret_s16_f64): Likewise.
41006         (vreinterpretq_s16_f64): Likewise.
41007         (vreinterpret_s32_f64): Likewise.
41008         (vreinterpretq_s32_f64): Likewise.
41009         (vreinterpret_u8_f64): Likewise.
41010         (vreinterpretq_u8_f64): Likewise.
41011         (vreinterpret_u16_f64): Likewise.
41012         (vreinterpretq_u16_f64): Likewise.
41013         (vreinterpret_u32_f64): Likewise.
41014         (vreinterpretq_u32_f64): Likewise.
41015
41016 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41017
41018         * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
41019         * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
41020         (vreinterpret_p8_s8): Likewise.
41021         * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
41022         (vreinterpret_p8_s16): Likewise.
41023         (vreinterpret_p8_s32): Likewise.
41024         (vreinterpret_p8_s64): Likewise.
41025         (vreinterpret_p8_f32): Likewise.
41026         (vreinterpret_p8_u8): Likewise.
41027         (vreinterpret_p8_u16): Likewise.
41028         (vreinterpret_p8_u32): Likewise.
41029         (vreinterpret_p8_u64): Likewise.
41030         (vreinterpret_p8_p16): Likewise.
41031         (vreinterpretq_p8_s8): Likewise.
41032         (vreinterpretq_p8_s16): Likewise.
41033         (vreinterpretq_p8_s32): Likewise.
41034         (vreinterpretq_p8_s64): Likewise.
41035         (vreinterpretq_p8_f32): Likewise.
41036         (vreinterpretq_p8_u8): Likewise.
41037         (vreinterpretq_p8_u16): Likewise.
41038         (vreinterpretq_p8_u32): Likewise.
41039         (vreinterpretq_p8_u64): Likewise.
41040         (vreinterpretq_p8_p16): Likewise.
41041         (vreinterpret_p16_s8): Likewise.
41042         (vreinterpret_p16_s16): Likewise.
41043         (vreinterpret_p16_s32): Likewise.
41044         (vreinterpret_p16_s64): Likewise.
41045         (vreinterpret_p16_f32): Likewise.
41046         (vreinterpret_p16_u8): Likewise.
41047         (vreinterpret_p16_u16): Likewise.
41048         (vreinterpret_p16_u32): Likewise.
41049         (vreinterpret_p16_u64): Likewise.
41050         (vreinterpret_p16_p8): Likewise.
41051         (vreinterpretq_p16_s8): Likewise.
41052         (vreinterpretq_p16_s16): Likewise.
41053         (vreinterpretq_p16_s32): Likewise.
41054         (vreinterpretq_p16_s64): Likewise.
41055         (vreinterpretq_p16_f32): Likewise.
41056         (vreinterpretq_p16_u8): Likewise.
41057         (vreinterpretq_p16_u16): Likewise.
41058         (vreinterpretq_p16_u32): Likewise.
41059         (vreinterpretq_p16_u64): Likewise.
41060         (vreinterpretq_p16_p8): Likewise.
41061         (vreinterpret_f32_s8): Likewise.
41062         (vreinterpret_f32_s16): Likewise.
41063         (vreinterpret_f32_s32): Likewise.
41064         (vreinterpret_f32_s64): Likewise.
41065         (vreinterpret_f32_u8): Likewise.
41066         (vreinterpret_f32_u16): Likewise.
41067         (vreinterpret_f32_u32): Likewise.
41068         (vreinterpret_f32_u64): Likewise.
41069         (vreinterpret_f32_p8): Likewise.
41070         (vreinterpret_f32_p16): Likewise.
41071         (vreinterpretq_f32_s8): Likewise.
41072         (vreinterpretq_f32_s16): Likewise.
41073         (vreinterpretq_f32_s32): Likewise.
41074         (vreinterpretq_f32_s64): Likewise.
41075         (vreinterpretq_f32_u8): Likewise.
41076         (vreinterpretq_f32_u16): Likewise.
41077         (vreinterpretq_f32_u32): Likewise.
41078         (vreinterpretq_f32_u64): Likewise.
41079         (vreinterpretq_f32_p8): Likewise.
41080         (vreinterpretq_f32_p16): Likewise.
41081         (vreinterpret_s64_s8): Likewise.
41082         (vreinterpret_s64_s16): Likewise.
41083         (vreinterpret_s64_s32): Likewise.
41084         (vreinterpret_s64_f32): Likewise.
41085         (vreinterpret_s64_u8): Likewise.
41086         (vreinterpret_s64_u16): Likewise.
41087         (vreinterpret_s64_u32): Likewise.
41088         (vreinterpret_s64_u64): Likewise.
41089         (vreinterpret_s64_p8): Likewise.
41090         (vreinterpret_s64_p16): Likewise.
41091         (vreinterpretq_s64_s8): Likewise.
41092         (vreinterpretq_s64_s16): Likewise.
41093         (vreinterpretq_s64_s32): Likewise.
41094         (vreinterpretq_s64_f32): Likewise.
41095         (vreinterpretq_s64_u8): Likewise.
41096         (vreinterpretq_s64_u16): Likewise.
41097         (vreinterpretq_s64_u32): Likewise.
41098         (vreinterpretq_s64_u64): Likewise.
41099         (vreinterpretq_s64_p8): Likewise.
41100         (vreinterpretq_s64_p16): Likewise.
41101         (vreinterpret_u64_s8): Likewise.
41102         (vreinterpret_u64_s16): Likewise.
41103         (vreinterpret_u64_s32): Likewise.
41104         (vreinterpret_u64_s64): Likewise.
41105         (vreinterpret_u64_f32): Likewise.
41106         (vreinterpret_u64_u8): Likewise.
41107         (vreinterpret_u64_u16): Likewise.
41108         (vreinterpret_u64_u32): Likewise.
41109         (vreinterpret_u64_p8): Likewise.
41110         (vreinterpret_u64_p16): Likewise.
41111         (vreinterpretq_u64_s8): Likewise.
41112         (vreinterpretq_u64_s16): Likewise.
41113         (vreinterpretq_u64_s32): Likewise.
41114         (vreinterpretq_u64_s64): Likewise.
41115         (vreinterpretq_u64_f32): Likewise.
41116         (vreinterpretq_u64_u8): Likewise.
41117         (vreinterpretq_u64_u16): Likewise.
41118         (vreinterpretq_u64_u32): Likewise.
41119         (vreinterpretq_u64_p8): Likewise.
41120         (vreinterpretq_u64_p16): Likewise.
41121         (vreinterpret_s8_s16): Likewise.
41122         (vreinterpret_s8_s32): Likewise.
41123         (vreinterpret_s8_s64): Likewise.
41124         (vreinterpret_s8_f32): Likewise.
41125         (vreinterpret_s8_u8): Likewise.
41126         (vreinterpret_s8_u16): Likewise.
41127         (vreinterpret_s8_u32): Likewise.
41128         (vreinterpret_s8_u64): Likewise.
41129         (vreinterpret_s8_p8): Likewise.
41130         (vreinterpret_s8_p16): Likewise.
41131         (vreinterpretq_s8_s16): Likewise.
41132         (vreinterpretq_s8_s32): Likewise.
41133         (vreinterpretq_s8_s64): Likewise.
41134         (vreinterpretq_s8_f32): Likewise.
41135         (vreinterpretq_s8_u8): Likewise.
41136         (vreinterpretq_s8_u16): Likewise.
41137         (vreinterpretq_s8_u32): Likewise.
41138         (vreinterpretq_s8_u64): Likewise.
41139         (vreinterpretq_s8_p8): Likewise.
41140         (vreinterpretq_s8_p16): Likewise.
41141         (vreinterpret_s16_s8): Likewise.
41142         (vreinterpret_s16_s32): Likewise.
41143         (vreinterpret_s16_s64): Likewise.
41144         (vreinterpret_s16_f32): Likewise.
41145         (vreinterpret_s16_u8): Likewise.
41146         (vreinterpret_s16_u16): Likewise.
41147         (vreinterpret_s16_u32): Likewise.
41148         (vreinterpret_s16_u64): Likewise.
41149         (vreinterpret_s16_p8): Likewise.
41150         (vreinterpret_s16_p16): Likewise.
41151         (vreinterpretq_s16_s8): Likewise.
41152         (vreinterpretq_s16_s32): Likewise.
41153         (vreinterpretq_s16_s64): Likewise.
41154         (vreinterpretq_s16_f32): Likewise.
41155         (vreinterpretq_s16_u8): Likewise.
41156         (vreinterpretq_s16_u16): Likewise.
41157         (vreinterpretq_s16_u32): Likewise.
41158         (vreinterpretq_s16_u64): Likewise.
41159         (vreinterpretq_s16_p8): Likewise.
41160         (vreinterpretq_s16_p16): Likewise.
41161         (vreinterpret_s32_s8): Likewise.
41162         (vreinterpret_s32_s16): Likewise.
41163         (vreinterpret_s32_s64): Likewise.
41164         (vreinterpret_s32_f32): Likewise.
41165         (vreinterpret_s32_u8): Likewise.
41166         (vreinterpret_s32_u16): Likewise.
41167         (vreinterpret_s32_u32): Likewise.
41168         (vreinterpret_s32_u64): Likewise.
41169         (vreinterpret_s32_p8): Likewise.
41170         (vreinterpret_s32_p16): Likewise.
41171         (vreinterpretq_s32_s8): Likewise.
41172         (vreinterpretq_s32_s16): Likewise.
41173         (vreinterpretq_s32_s64): Likewise.
41174         (vreinterpretq_s32_f32): Likewise.
41175         (vreinterpretq_s32_u8): Likewise.
41176         (vreinterpretq_s32_u16): Likewise.
41177         (vreinterpretq_s32_u32): Likewise.
41178         (vreinterpretq_s32_u64): Likewise.
41179         (vreinterpretq_s32_p8): Likewise.
41180         (vreinterpretq_s32_p16): Likewise.
41181         (vreinterpret_u8_s8): Likewise.
41182         (vreinterpret_u8_s16): Likewise.
41183         (vreinterpret_u8_s32): Likewise.
41184         (vreinterpret_u8_s64): Likewise.
41185         (vreinterpret_u8_f32): Likewise.
41186         (vreinterpret_u8_u16): Likewise.
41187         (vreinterpret_u8_u32): Likewise.
41188         (vreinterpret_u8_u64): Likewise.
41189         (vreinterpret_u8_p8): Likewise.
41190         (vreinterpret_u8_p16): Likewise.
41191         (vreinterpretq_u8_s8): Likewise.
41192         (vreinterpretq_u8_s16): Likewise.
41193         (vreinterpretq_u8_s32): Likewise.
41194         (vreinterpretq_u8_s64): Likewise.
41195         (vreinterpretq_u8_f32): Likewise.
41196         (vreinterpretq_u8_u16): Likewise.
41197         (vreinterpretq_u8_u32): Likewise.
41198         (vreinterpretq_u8_u64): Likewise.
41199         (vreinterpretq_u8_p8): Likewise.
41200         (vreinterpretq_u8_p16): Likewise.
41201         (vreinterpret_u16_s8): Likewise.
41202         (vreinterpret_u16_s16): Likewise.
41203         (vreinterpret_u16_s32): Likewise.
41204         (vreinterpret_u16_s64): Likewise.
41205         (vreinterpret_u16_f32): Likewise.
41206         (vreinterpret_u16_u8): Likewise.
41207         (vreinterpret_u16_u32): Likewise.
41208         (vreinterpret_u16_u64): Likewise.
41209         (vreinterpret_u16_p8): Likewise.
41210         (vreinterpret_u16_p16): Likewise.
41211         (vreinterpretq_u16_s8): Likewise.
41212         (vreinterpretq_u16_s16): Likewise.
41213         (vreinterpretq_u16_s32): Likewise.
41214         (vreinterpretq_u16_s64): Likewise.
41215         (vreinterpretq_u16_f32): Likewise.
41216         (vreinterpretq_u16_u8): Likewise.
41217         (vreinterpretq_u16_u32): Likewise.
41218         (vreinterpretq_u16_u64): Likewise.
41219         (vreinterpretq_u16_p8): Likewise.
41220         (vreinterpretq_u16_p16): Likewise.
41221         (vreinterpret_u32_s8): Likewise.
41222         (vreinterpret_u32_s16): Likewise.
41223         (vreinterpret_u32_s32): Likewise.
41224         (vreinterpret_u32_s64): Likewise.
41225         (vreinterpret_u32_f32): Likewise.
41226         (vreinterpret_u32_u8): Likewise.
41227         (vreinterpret_u32_u16): Likewise.
41228         (vreinterpret_u32_u64): Likewise.
41229         (vreinterpret_u32_p8): Likewise.
41230         (vreinterpret_u32_p16): Likewise.
41231         (vreinterpretq_u32_s8): Likewise.
41232         (vreinterpretq_u32_s16): Likewise.
41233         (vreinterpretq_u32_s32): Likewise.
41234         (vreinterpretq_u32_s64): Likewise.
41235         (vreinterpretq_u32_f32): Likewise.
41236         (vreinterpretq_u32_u8): Likewise.
41237         (vreinterpretq_u32_u16): Likewise.
41238         (vreinterpretq_u32_u64): Likewise.
41239         (vreinterpretq_u32_p8): Likewise.
41240         (vreinterpretq_u32_p16): Likewise.
41241
41242 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41243
41244         * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
41245         Pattern extended.
41246         * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator extended.
41247         (sqabs): Likewise.
41248         * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
41249         (vqnegd_s64): Likewise.
41250         (vqabs_s64): Likewise.
41251         (vqabsd_s64): Likewise.
41252
41253 2014-04-22  Richard Henderson  <rth@redhat.com>
41254
41255         * config/sparc/sparc.c (sparc_init_modes): Hoist GET_MODE_SIZE
41256         computation to the top of the loop.
41257
41258 2014-04-22  Renlin  <renlin.li@arm.com>
41259             Jiong Wang  <jiong.wang@arm.com>
41260
41261         * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
41262         * config/aarch64/aarch64.c (aarch64_layout_frame)
41263         (aarch64_initial_elimination_offset): Likewise.
41264
41265 2014-04-22  Marcus Shawcroft  <marcus.shawcroft@arm.com>
41266
41267         * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
41268         Fix indentation.
41269
41270 2014-04-22  Richard Sandiford  <rdsandiford@googlemail.com>
41271
41272         * machmode.h (bitwise_mode_for_mode): Declare.
41273         * stor-layout.h (bitwise_type_for_mode): Likewise.
41274         * stor-layout.c (bitwise_mode_for_mode): New function.
41275         (bitwise_type_for_mode): Likewise.
41276         * builtins.c (fold_builtin_memory_op): Use it instead of
41277         int_mode_for_mode and build_nonstandard_integer_type.
41278
41279 2014-04-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41280
41281         * config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
41282         (*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
41283         (*-*-solaris2*): Simplify.
41284         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
41285         (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
41286         *-*-solaris2.9* handling.
41287
41288         * configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
41289         as bug.
41290         (gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
41291         (ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
41292         handling, simplify.
41293         (gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
41294         * configure: Regenerate.
41295
41296         * config/i386/sol2-9.h: Remove.
41297
41298         * doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
41299         (Specific, *-*-solaris2*): Mention Solaris 9 support removal.
41300         Remove Solaris 9 references.
41301
41302 2014-04-22  Vidya Praveen  <vidyapraveen@arm.com>
41303
41304         * aarch64.md (float<GPI:mode><GPF:mode>2): Remove.
41305         (floatuns<GPI:mode><GPF:mode>2): Remove.
41306         (<optab><fcvt_target><GPF:mode>2): New pattern for equal width float
41307         and floatuns conversions.
41308         (<optab><fcvt_iesize><GPF:mode>2): New pattern for inequal width float
41309         and floatuns conversions.
41310         * iterators.md (fcvt_target, FCVT_TARGET): Support SF and DF modes.
41311         (w1,w2): New mode attributes for inequal width conversions.
41312
41313 2014-04-22  Renlin Li  <Renlin.Li@arm.com>
41314
41315         * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
41316         the output asm format.
41317
41318 2014-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
41319
41320         * config/aarch64/aarch64-simd.md
41321         (aarch64_cm<optab>di): Always split.
41322         (*aarch64_cm<optab>di): New.
41323         (aarch64_cmtstdi): Always split.
41324         (*aarch64_cmtstdi): New.
41325
41326 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41327
41328         PR tree-optimization/60823
41329         * omp-low.c (ipa_simd_modify_function_body): Go through
41330         all SSA_NAMEs and for those refering to vector arguments
41331         which are going to be replaced adjust SSA_NAME_VAR and,
41332         if it is a default definition, change it into a non-default
41333         definition assigned at the beginning of function from new_decl.
41334         (ipa_simd_modify_stmt_ops): Rewritten.
41335         * tree-dfa.c (set_ssa_default_def): When removing default def,
41336         check for NULL loc instead of NULL *loc.
41337
41338 2014-04-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
41339
41340         * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
41341         restrictions on core registers for DImode values in Thumb2.
41342
41343 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41344
41345         * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
41346         * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
41347
41348 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41349
41350         * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
41351         (*iordi_notzesidi_di): Likewise.
41352         (*iordi_notsesidi_di): Likewise.
41353
41354 2014-04-22  Ian Bolton  <ian.bolton@arm.com>
41355
41356         * config/arm/arm-protos.h (tune_params): New struct members.
41357         * config/arm/arm.c: Initialise tune_params per processor.
41358         (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
41359         for speed, based on new tune_params.
41360
41361 2014-04-22  Alex Velenko  <Alex.Velenko@arm.com>
41362
41363         * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro added.
41364         * config/aarch64/aarch64-simd-builtins.def (frintn): Use added macro.
41365         * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment corrected.
41366         * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
41367         * config/aarch64/arm_neon.h (vrnd_f64): Added.
41368         (vrnda_f64): Likewise.
41369         (vrndi_f64): Likewise.
41370         (vrndm_f64): Likewise.
41371         (vrndn_f64): Likewise.
41372         (vrndp_f64): Likewise.
41373         (vrndx_f64): Likewise.
41374
41375 2014-04-22  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
41376
41377         * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
41378         GET_MODE_SIZE argument is enum machine_mode.
41379
41380 2014-04-22  Jakub Jelinek  <jakub@redhat.com>
41381
41382         PR target/60910
41383         * config/sparc/sparc.c (sparc_init_modes): Pass enum machine_mode
41384         value instead of int to GET_MODE_CLASS and GET_MODE_SIZE macros.
41385
41386 2014-04-22  Lin Zuojian  <manjian2006@gmail.com>
41387
41388         PR middle-end/60281
41389         * asan.c (asan_emit_stack_protection): Force the base to align to
41390         appropriate bits if STRICT_ALIGNMENT.  Set shadow_mem align to
41391         appropriate bits if STRICT_ALIGNMENT.
41392         * cfgexpand.c (expand_stack_vars): Set base_align appropriately
41393         when asan is on.
41394         (expand_used_vars): Leave a space in the stack frame for alignment
41395         if STRICT_ALIGNMENT.
41396
41397 2014-04-21  David Malcolm  <dmalcolm@redhat.com>
41398
41399         * gimple.h (gimple_assign_single_p): Accept a const_gimple rather
41400         than a gimple.
41401         (gimple_store_p): Likewise.
41402         (gimple_assign_load_p): Likewise.
41403         (gimple_assign_cast_p): Likewise.
41404         (gimple_clobber_p): Likewise.
41405
41406         * doc/gimple.texi (gimple_assign_cast_p): Accept a const_gimple
41407         rather than a gimple.
41408         (gimple_assign_cast_p): Likewise.
41409
41410 2014-04-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
41411
41412         PR target/60735
41413         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64 case):
41414         If mode is DDmode and TARGET_E500_DOUBLE allow move.
41415
41416         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print some
41417         more debug information for E500 if -mdebug=reg.
41418
41419 2014-04-21  Uros Bizjak  <ubizjak@gmail.com>
41420
41421         PR target/60909
41422         * config/i386/i386.c (ix86_expand_builtin)
41423         <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Use temporary
41424         register for target RTX.
41425         <case IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Ditto.
41426
41427 2014-04-18  Cong Hou  <congh@google.com>
41428
41429         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Enhance
41430         the widen-mult pattern by handling two operands with different sizes,
41431         and operands whose size is smaller than half of the result type.
41432
41433 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41434
41435         * ipa-inline.h (INLINE_HINT_known_hot): New hint.
41436         * ipa-inline-analysis.c (dump_inline_hints): Dump it.
41437         (do_estimate_edge_time): Compute it.
41438         * ipa-inline.c (want_inline_small_function_p): Bypass
41439         INLINE_INSNS_AUTO/SINGLE limits for calls that are known to be hot.
41440
41441 2014-04-18  Jan Hubicka  <hubicka@ucw.cz>
41442
41443         * ipa-inline.c (spec_rem): New static variable.
41444         (dump_overall_stats): New function.
41445         (dump_inline_stats): New function.
41446
41447 2014-04-18  Richard Henderson  <rth@redhat.com>
41448
41449         * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode
41450         to GET_MODE_SIZE, not a reg_class_t.
41451
41452 2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41453
41454         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
41455         (vsx_xxmrglw_<mode>): Likewise.
41456
41457 2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>
41458
41459         PR target/60876
41460         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
41461         GET_MODE_SIZE gets passed an enum machine_mode type and not integer.
41462         (rs6000_init_hard_regno_mode_ok): Likewise.
41463
41464 2014-04-17  Jan Hubicka  <hubicka@ucw.cz>
41465
41466         * ipa-inline.c (inline_small_functions): Account only non-cold
41467         functions.
41468         * doc/invoke.texi (inline-unit-growth): Update documentation.
41469
41470 2014-04-17  Pat Haugen  <pthaugen@us.ibm.com>
41471
41472         * config/rs6000/rs6000.md (addti3, subti3): New.
41473
41474 2014-04-17  H.J. Lu  <hongjiu.lu@intel.com>
41475
41476         PR target/60863
41477         * config/i386/i386.c (ix86_expand_clear): Remove outdated
41478         comment.  Check optimize_insn_for_size_p instead of
41479         optimize_insn_for_speed_p.
41480
41481 2014-04-17  Martin Jambor  <mjambor@suse.cz>
41482
41483         * gimple-iterator.c (gsi_start_edge): New function.
41484         * gimple-iterator.h (gsi_start_edge): Declare.
41485         * tree-sra.c (single_non_eh_succ): New function.
41486         (disqualify_ops_if_throwing_stmt): Renamed to
41487         disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
41488         having one non-EH successor BB.
41489         (sra_modify_expr): If stmt ends bb, use single non-EH successor to
41490         generate loads into replacements.
41491         (sra_modify_assign): Likewise and and also use the simple path for
41492         such statements.
41493         (sra_modify_function_body): Commit statements on edges.
41494
41495 2014-04-17  Richard Biener  <rguenther@suse.de>
41496
41497         PR middle-end/60849
41498         * tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
41499         comparison results and add clarifying comment.
41500
41501 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41502
41503         * genmodes.c (struct mode_data): Add need_bytesize_adj field.
41504         (blank_mode): Initialize it.
41505         (emit_mode_size_inline, emit_mode_nunits_inline,
41506         emit_mode_inner_inline): New functions.
41507         (emit_insn_modes_h): Call them and surround their output with
41508         #if GCC_VERSION >= 4001 ... #endif.
41509         * machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
41510         For GCC_VERSION >= 4001 use mode_*_inline routines instead of
41511         mode_* arrays if the argument is __builtin_constant_p.
41512         * lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
41513         is enum machine_mode.
41514
41515 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41516
41517         * passes.c (opt_pass::execute): Adjust.
41518         (pass_manager::execute_pass_mode_switching): Likewise.
41519         (early_local_passes::execute): Likewise.
41520         (execute_one_pass): Pass cfun to the pass's execute method.
41521         * tree-pass.h (opt_pass::execute): Add function * argument.
41522         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41523         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41524         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41525         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41526         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41527         config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
41528         except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
41529         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41530         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41531         ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
41532         ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
41533         lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
41534         postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
41535         reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
41536         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41537         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41538         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41539         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
41540         tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
41541         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41542         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41543         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41544         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41545         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41546         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41547         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41548         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41549         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41550         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41551         Adjust.
41552
41553 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41554
41555         * passes.c (opt_pass::gate): Take function * argument.
41556         (gate_all_early_local_passes): Merge into
41557         (early_local_passes::gate): this.
41558         (gate_all_early_optimizations): Merge into
41559         (all_early_optimizations::gate): this.
41560         (gate_all_optimizations): Mege into
41561         (all_optimizations::gate): this.
41562         (gate_all_optimizations_g): Merge into
41563         (all_optimizations_g::gate): this.
41564         (gate_rest_of_compilation): Mege into
41565         (rest_of_compilation::gate): this.
41566         (gate_postreload): Merge into
41567         (postreload::gate): this.
41568         (dump_one_pass): Pass cfun to the pass's gate method.
41569         (execute_ipa_summary_passes): Likewise.
41570         (execute_one_pass): Likewise.
41571         (ipa_write_summaries_2): Likewise.
41572         (ipa_write_optimization_summaries_1): Likewise.
41573         (ipa_read_summaries_1): Likewise.
41574         (ipa_read_optimization_summaries_1): Likewise.
41575         (execute_ipa_stmt_fixups): Likewise.
41576         * tree-pass.h (opt_pass::gate): Add function * argument.
41577         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
41578         combine-stack-adj.c, combine.c, compare-elim.c,
41579         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41580         config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
41581         config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
41582         dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
41583         gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
41584         graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
41585         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41586         loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
41587         omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
41588         reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
41589         store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
41590         tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
41591         tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
41592         tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41593         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41594         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41595         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41596         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41597         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41598         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41599         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41600         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41601         tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
41602         tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
41603         var-tracking.c, vtable-verify.c, web.c: Adjust.
41604
41605 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41606
41607         * configure.ac: Check for -Woverloaded-virtual and enable it if found.
41608         * configure: Regenerate.
41609
41610 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41611
41612         * passes.c (dump_one_pass): don't check pass->has_gate.
41613         (execute_ipa_summary_passes): Likewise.
41614         (execute_one_pass): Likewise.
41615         (ipa_write_summaries_2): Likewise.
41616         (ipa_write_optimization_summaries_1): Likewise.
41617         (ipa_read_optimization_summaries_1): Likewise.
41618         (execute_ipa_stmt_fixups): Likewise.
41619         * tree-pass.h (pass_data::has_gate): Remove.
41620         * asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
41621         cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
41622         compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
41623         config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
41624         config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
41625         config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
41626         config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
41627         dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
41628         gimple-low.c, gimple-ssa-isolate-paths.c,
41629         gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
41630         ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
41631         ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
41632         ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
41633         modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
41634         recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
41635         reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
41636         trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
41637         tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
41638         tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
41639         tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
41640         tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
41641         tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
41642         tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
41643         tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
41644         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
41645         tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
41646         tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
41647         tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
41648         tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
41649         tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
41650         tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
41651         Adjust.
41652
41653 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41654
41655         * pass_manager.h (pass_manager::register_dump_files_1): Remove
41656         declaration.
41657         * passes.c (pass_manager::register_dump_files_1): Merge into
41658         (pass_manager::register_dump_files): this, and remove its handling of
41659         properties since the pass always has the properties anyway.
41660         (pass_manager::pass_manager): Adjust.
41661
41662 2014-04-17  Trevor Saunders  <tsaunders@mozilla.com>
41663
41664         * pass_manager.h (pass_manager::register_dump_files_1): Adjust.
41665         * passes.c (pass_manager::register_dump_files_1): Remove dead code
41666         dealing with properties.
41667         (pass_manager::register_dump_files): Adjust.
41668
41669 2014-03-20  Mark Wielaard  <mjw@redhat.com>
41670
41671         * dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
41672         then represent the bound as normal constant value.
41673
41674 2014-04-17  Jakub Jelinek  <jakub@redhat.com>
41675
41676         PR target/60847
41677         Forward port from 4.8 branch
41678         2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>
41679
41680         * config/i386/bmiintrin.h (_blsi_u32): New.
41681         (_blsi_u64): Ditto.
41682         (_blsr_u32): Ditto.
41683         (_blsr_u64): Ditto.
41684         (_blsmsk_u32): Ditto.
41685         (_blsmsk_u64): Ditto.
41686         (_tzcnt_u32): Ditto.
41687         (_tzcnt_u64): Ditto.
41688
41689 2014-04-17  Kito Cheng  <kito@0xlab.org>
41690
41691         * gcc.c (used_arg): Prevent out of bound access for multilib_options.
41692
41693 2014-04-17  Richard Biener  <rguenther@suse.de>
41694
41695         PR middle-end/60849
41696         * tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
41697         boolean results for comparisons.
41698
41699 2014-04-17  Richard Biener  <rguenther@suse.de>
41700
41701         PR tree-optimization/60836
41702         * tree-vect-loop.c (vect_create_epilog_for_reduction): Force
41703         initial PHI args to be gimple values.
41704
41705 2014-04-17  Richard Biener  <rguenther@suse.de>
41706
41707         PR tree-optimization/60841
41708         * tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
41709         * tree-vect-loop.c (vect_analyze_loop_2): Pass down number
41710         of stmts to SLP build.
41711         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
41712         (vect_analyze_slp): Likewise.
41713         (vect_analyze_slp_instance): Likewise.
41714         (vect_build_slp_tree): Limit overall SLP tree growth.
41715         * tree-vectorizer.h (vect_analyze_data_refs,
41716         vect_analyze_slp): Adjust prototypes.
41717
41718 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41719
41720         * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
41721         Silvermont.
41722
41723 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41724
41725         * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
41726         * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
41727         * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
41728         for TARGET_SLOW_PSHUFB
41729
41730 2014-04-17  Evgeny Stupachenko  <evstupac@gmail.com>
41731
41732         * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
41733         * config/i386/i386.c (intel_cost): Ditto.
41734
41735 2014-04-17  Joey Ye  <joey.ye@arm.com>
41736
41737         * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.
41738
41739 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41740
41741         * opts.c (common_handle_option): Disable -fipa-reference coorectly
41742         with -fuse-profile.
41743
41744 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41745
41746         * ipa-devirt.c (odr_type_d): Add field all_derivations_known.
41747         (type_all_derivations_known_p): New predicate.
41748         (type_all_ctors_visible_p): New predicate.
41749         (type_possibly_instantiated_p): New predicate.
41750         (get_odr_type): Compute all_derivations_known.
41751         (dump_odr_type): Dump the flag.
41752         (maybe_record_type): Cleanup.
41753         (record_target_from_binfo): Add bases_to_consider array;
41754         record bases for types w/o instances and skip CXX destructor.
41755         (possible_polymorphic_call_targets_1): Add bases_to_consider
41756         and consider_construction parameters; check if type may have instance.
41757         (get_polymorphic_call_info): Set maybe_in_construction to true
41758         when we know nothing.
41759         (record_targets_from_bases): Skip CXX destructors; they are
41760         never called for types in construction.
41761         (possible_polymorphic_call_targets): Do not record target when
41762         type may not have instance.
41763
41764 2014-04-16  Jan Hubicka  <hubicka@ucw.cz>
41765
41766         PR ipa/60854
41767         * ipa.c (symtab_remove_unreachable_nodes): Mark targets of
41768         external aliases alive, too.
41769
41770 2014-04-16  Andrew  Pinski  <apinski@cavium.com>
41771
41772         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
41773         definition.
41774
41775 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41776
41777         * final.c (compute_alignments): Do not apply loop alignment to a block
41778         falling through to the exit.
41779
41780 2014-04-16  Catherine Moore  <clm@codesourcery.com>
41781
41782         * mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
41783         Adjust constraints for microMIPS store patterns.
41784
41785 2014-04-16  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
41786
41787         * config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.
41788
41789 2014-04-16  Eric Botcazou  <ebotcazou@adacore.com>
41790
41791         * tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
41792         (append_use): Run at -O0.
41793         (append_vdef): Likewise.
41794         * tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
41795         * tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.
41796
41797 2014-04-16  Jakub Jelinek  <jakub@redhat.com>
41798
41799         PR tree-optimization/60844
41800         * tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
41801         (propagate_op_to_single_use, remove_visited_stmt_chain,
41802         linearize_expr, repropagate_negates, reassociate_bb): Use it
41803         instead of gsi_remove.
41804
41805 2014-04-16  Martin Jambor  <mjambor@suse.cz>
41806
41807         * cgraphclones.c (cgraph_create_virtual_clone): Duplicate
41808         ipa_transforms_to_apply.
41809         (cgraph_function_versioning): Assert that old_node has empty
41810         ipa_transforms_to_apply.
41811         * trans-mem.c (ipa_tm_create_version): Likewise.
41812         * tree-inline.c (tree_function_versioning): Do not duplicate
41813         ipa_transforms_to_apply.
41814
41815 2014-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
41816
41817         PR target/60817
41818         * configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
41819         x86_64-*-* cases.
41820         Pass necessary as flags on 64-bit Solaris/x86.
41821         Use lowercase relocs for x86_64-*-*.
41822         * configure: Regenerate.
41823
41824 2014-04-15  Jan Hubicka  <jh@suse.cz>
41825
41826         * ipa-devirt.c (referenced_from_vtable_p): New predicate.
41827         (maybe_record_node, likely_target_p): Use it.
41828
41829 2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
41830
41831         PR target/60839
41832         Revert following patch
41833
41834         2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
41835
41836         PR target/60735
41837         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
41838         software floating point or no floating point registers, do not
41839         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
41840         in GPRs that occurs after we tested for GPRs that would never be
41841         true.
41842
41843         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
41844         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
41845         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
41846         specifically allow DDmode, since that does not use the SPE SIMD
41847         instructions.
41848
41849 2014-03-21  Mark Wielaard  <mjw@redhat.com>
41850
41851         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
41852         as unsigned or int depending on type and value used.
41853
41854 2014-04-15  Richard Biener  <rguenther@suse.de>
41855
41856         PR rtl-optimization/56965
41857         * alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
41858         * tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
41859         ... here.
41860         * alias.c (true_dependence_1): Do not call
41861         nonoverlapping_component_refs_p.
41862         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
41863         nonoverlapping_component_refs_p.
41864         (indirect_refs_may_alias_p): Likewise.
41865
41866 2014-04-15  Teresa Johnson  <tejohnson@google.com>
41867
41868         * cfg.c (dump_bb_info): Fix flags check.
41869         * tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.
41870
41871 2014-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41872
41873         PR rtl-optimization/60663
41874         * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
41875         avoid 0 cost.
41876
41877 2014-04-15  Richard Biener  <rguenther@suse.de>
41878
41879         * lto-streamer.h (LTO_major_version): Bump to 4.
41880
41881 2014-04-15  Richard Biener  <rguenther@suse.de>
41882
41883         * common.opt (lto_partition_model): New enum.
41884         (flto-partition=): Merge separate options with a single with argument,
41885         add -flto-partition=one support.
41886         * flag-types.h (enum lto_partition_model): Declare.
41887         * opts.c (finish_options): Remove duplicate -flto-partition=
41888         option check.
41889         * lto-wrapper.c (run_gcc): Adjust.
41890
41891 2014-04-15  Richard Biener  <rguenther@suse.de>
41892
41893         * alias.c (ncr_compar): New function.
41894         (nonoverlapping_component_refs_p): Re-implement in O (n log n).
41895
41896 2014-04-15  Richard Biener  <rguenther@suse.de>
41897
41898         * alias.c (record_component_aliases): Do not walk BINFOs.
41899
41900 2014-04-15  Richard Biener  <rguenther@suse.de>
41901
41902         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
41903         Add struct function argument and adjust.
41904         (find_func_aliases_for_call): Likewise.
41905         (find_func_aliases): Likewise.
41906         (find_func_clobbers): Likewise.
41907         (intra_create_variable_infos): Likewise.
41908         (compute_points_to_sets): Likewise.
41909         (ipa_pta_execute): Adjust.  Do not push/pop cfun.
41910
41911 2014-04-15  Richard Biener  <rguenther@suse.de>
41912
41913         * tree.c (iterative_hash_expr): Use enum tree_code_class
41914         to store TREE_CODE_CLASS.
41915         (tree_block): Likewise.
41916         (tree_set_block): Likewise.
41917         * tree.h (fold_build_pointer_plus_loc): Use
41918         convert_to_ptrofftype_loc.
41919
41920 2014-04-15  Jakub Jelinek  <jakub@redhat.com>
41921
41922         PR plugins/59335
41923         * Makefile.in (PLUGIN_HEADERS): Add various headers that have been
41924         added in 4.9.
41925
41926 2014-04-15  Eric Botcazou  <ebotcazou@adacore.com>
41927
41928         * cfgloop.h (struct loop): Move force_vectorize down.
41929         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
41930         (gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
41931         * lto-streamer-in.c (input_cfg): Read dont_vectorize field.
41932         * lto-streamer-out.c (output_cfg): Write dont_vectorize field.
41933         * tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
41934         * tree-core.h (enum annot_expr_kind): Add new kind values.
41935         * tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
41936         * tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
41937         kinds.
41938         * tree.def (ANNOTATE_EXPR): Tweak comment.
41939
41940 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
41941
41942         * ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
41943         cxa_pure_virtual).
41944
41945 2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>
41946
41947         * tree.h (TYPE_IDENTIFIER): Declare.
41948         * tree.c (subrange_type_for_debug_p): Use it.
41949         * godump.c (go_format_type): Likewise.
41950         * dwarf2out.c (is_cxx_auto, modified_type_die,
41951         gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
41952         * dbxout.c (dbxout_type, dbxout_symbol): Likewise.
41953
41954 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
41955
41956         PR lto/60820
41957         * varpool.c (varpool_remove_node): Do not alter decls when streaming.
41958
41959 2014-04-14  Uros Bizjak  <ubizjak@gmail.com>
41960
41961         * config/i386/i386.c (examine_argument): Return bool.  Return true if
41962         parameter should be passed in memory.
41963         <case X86_64_COMPLEX_X87_CLASS>: Adjust.
41964         (construct_container): Update calls to examine_argument.
41965         (function_arg_advance_64): Ditto.
41966         (return_in_memory_32): Merge with ix86_return_in_memory.
41967         (return_in_memory_64): Ditto.
41968         (return_in_memory_ms_64): Ditto.
41969
41970 2014-04-14  Jan Hubicka  <hubicka@ucw.cz>
41971
41972         * ipa-utils.c (ipa_merge_profiles): Merge profile_id.
41973         * coverage.c (coverage_compute_profile_id): Handle externally visible
41974         symbols.
41975
41976 2014-04-14  Martin Jambor  <mjambor@suse.cz>
41977
41978         * tree-sra.c (ipa_sra_preliminary_function_checks): Skip
41979         DECL_DISREGARD_INLINE_LIMITS functions.
41980
41981 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
41982
41983         PR target/60827
41984         * config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last change.
41985
41986 2014-04-14  H.J. Lu  <hongjiu.lu@intel.com>
41987
41988         PR target/60827
41989         * config/i386/i386.md (*fixuns_trunc<mode>_1): Check
41990         optimize_insn_for_speed_p instead of
41991         optimize_function_for_speed_p.
41992
41993 2014-04-14  Yufeng Zhang  <yufeng.zhang@arm.com>
41994
41995         * doc/invoke.texi (free): Document AArch64.
41996
41997 2014-04-14  Richard Biener  <rguenther@suse.de>
41998
41999         PR tree-optimization/60042
42000         * tree-ssa-pre.c (inhibit_phi_insertion): Remove.
42001         (insert_into_preds_of_block): Do not prevent PHI insertion
42002         for REFERENCE exprs here ...
42003         (eliminate_dom_walker::before_dom_children): ... but prevent
42004         their use here under similar conditions when applied to the
42005         IL after PRE optimizations.
42006
42007 2014-04-14  Richard Biener  <rguenther@suse.de>
42008
42009         * passes.def: Move early points-to after early SRA.
42010
42011 2014-04-14  Richard Biener  <rguenther@suse.de>
42012
42013         * tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
42014         check for which sign-changes we allow when forwarding
42015         a converted value into a switch.
42016
42017 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42018
42019         * stor-layout.c (place_field): Finalize non-constant offset for the
42020         field, if any.
42021
42022 2014-04-14  Richard Biener  <rguenther@suse.de>
42023
42024         * tree-switch-conversion.c (lshift_cheap_p): Get speed_p
42025         as argument.
42026         (expand_switch_using_bit_tests_p): Likewise.
42027         (process_switch): Compute and pass on speed_p based on the
42028         switch stmt.
42029         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
42030         optimize_bb_for_speed_p.
42031
42032 2014-04-14  Eric Botcazou  <ebotcazou@adacore.com>
42033
42034         * cfgloop.h (struct loop): Rename force_vect into force_vectorize.
42035         * function.h (struct function): Rename has_force_vect_loops into
42036         has_force_vectorize_loops.
42037         * lto-streamer-in.c (input_cfg): Adjust for renaming.
42038         (input_struct_function_base): Likewise.
42039         * lto-streamer-out.c (output_cfg): Likewise.
42040         (output_struct_function_base): Likewise.
42041         * omp-low.c (expand_omp_simd): Likewise.
42042         * tree-cfg.c (move_sese_region_to_fn): Likewise.
42043         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
42044         (version_loop_for_if_conversion): Likewise.
42045         (tree_if_conversion): Likewise.
42046         (main_tree_if_conversion): Likewise.
42047         (gate_tree_if_conversion): Likewise.
42048         * tree-inline.c (copy_loops): Likewise.
42049         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Likewise.
42050         * tree-ssa-loop.c (tree_loop_vectorize): Likewise.
42051         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
42052         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Likewise.
42053         * tree-vectorizer.c (vectorize_loops): Likewise.
42054         * tree-vectorizer.h (unlimited_cost_model): Likewise.
42055
42056 2014-04-14  Richard Biener  <rguenther@suse.de>
42057
42058         PR lto/60720
42059         * lto-streamer-out.c (wrap_refs): New function.
42060         (lto_output): Wrap symbol references in global initializes in
42061         type-preserving MEM_REFs.
42062
42063 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42064
42065         * config/sh/sh-mem.cc (sh_expand_strlen): Unroll last word.
42066
42067 2014-04-14  Christian Bruel  <christian.bruel@st.com>
42068
42069         * config/sh/sh.md (setmemqi): New expand pattern.
42070         * config/sh/sh.h (CLEAR_RATIO): Define.
42071         * config/sh/sh-mem.cc (sh_expand_setmem): Define.
42072         * config/sh/sh-protos.h (sh_expand_setmem): Declare.
42073
42074 2014-04-14  Richard Biener  <rguenther@suse.de>
42075
42076         PR middle-end/55022
42077         * fold-const.c (negate_expr_p): Don't negate directional rounding
42078         division.
42079         (fold_negate_expr): Likewise.
42080
42081 2014-04-14  Richard Biener  <rguenther@suse.de>
42082
42083         PR tree-optimization/59817
42084         PR tree-optimization/60453
42085         * graphite-scop-detection.c (graphite_can_represent_scev): Complete
42086         recursion to catch all CHRECs in the scalar evolution and restrict
42087         the predicate for the remains appropriately.
42088
42089 2014-04-12  Catherine Moore  <clm@codesourcery.com>
42090
42091         * config/mips/constraints.md: Add new register constraint "kb".
42092         * config/mips/mips.md (*mov<mode>_internal): Use constraint "kb".
42093         (*movhi_internal): Likewise.
42094         (*movqi_internal): Likewise.
42095         * config/mips/mips.h (M16_STORE_REGS): New register class.
42096         (REG_CLASS_NAMES): Add M16_STORE_REGS.
42097         (REG_CLASS_CONTENTS): Likewise.
42098         * config/mips/mips.c (mips_regno_to_class): Add M16_STORE_REGS.
42099
42100 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42101
42102         PR c/60194
42103         * doc/invoke.texi (-Wformat-signedness): Document it.
42104         (Wformat=2): Mention that this enables -Wformat-signedness.
42105
42106 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42107
42108         * common/config/epiphany/epiphany-common.c
42109         (epiphany_option_optimization_table): Enable section anchors by
42110         default at -O1 or higher.
42111         * config/epiphany/epiphany.c (TARGET_MAX_ANCHOR_OFFSET): Define.
42112         (TARGET_MIN_ANCHOR_OFFSET): Likewise.
42113         (epiphany_rtx_costs) <SET>: For binary operators, the set as such
42114         carries no extra cost.
42115         (epiphany_legitimate_address_p): For BLKmode, apply SImode check.
42116         * config/epiphany/epiphany.h (ASM_OUTPUT_DEF): Define.
42117         * config/epiphany/predicates.md (memclob_operand): New predicate.
42118         * config/epiphany/epiphany.md (stack_adjust_add, stack_adjust_str):
42119         Use memclob_operand predicate and X constraint for operand 3.
42120
42121 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42122
42123         * config/epiphany/epiphany.c (epiphany_rtx_cost): Compare
42124         with CC_N_NE / CC_C_LTU / CC_C_GTU carries no extra cost for
42125         its operands.
42126
42127 2014-04-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42128
42129         PR rtl-optimization/60651
42130         * mode-switching.c (optimize_mode_switching): Make sure to emit
42131         sets of a lower numbered entity before sets of a higher numbered
42132         entity to a mode of the same or lower priority.
42133         When creating a seginfo for a basic block that starts with a code
42134         label, move the insertion point past the code label.
42135         (new_seginfo): Document and enforce requirement that
42136         NOTE_INSN_BASIC_BLOCK only appears for empty blocks.
42137         * doc/tm.texi.in: Document ordering constraint for emitted mode sets.
42138         * doc/tm.texi: Regenerate.
42139
42140 2014-01-11  Joern Rennecke  <joern.rennecke@embecosm.com>
42141
42142         PR target/60811
42143         * config/arc/arc.c (arc_save_restore): Fix assert typo.
42144
42145 2013-04-11  Jakub Jelinek  <jakub@redhat.com>
42146
42147         * BASE-VER: Set to 4.10.0.
42148
42149 2014-04-11  Tobias Burnus  <burnus@net-b.de>
42150
42151         PR other/59055
42152         * doc/bugreport.texi (Bugs): Remove nodes pointing to the nirvana.
42153         * doc/gcc.texi (Service): Update description in the @menu
42154         * doc/invoke.texi (Option Summary): Remove misplaced and
42155         duplicated @menu.
42156
42157 2014-04-11  Steve Ellcey  <sellcey@mips.com>
42158             Jakub Jelinek  <jakub@redhat.com>
42159
42160         PR middle-end/60556
42161         * expr.c (convert_move): Use emit_store_flag_force instead of
42162         emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
42163         argument to it.
42164
42165 2014-04-11  Richard Biener  <rguenther@suse.de>
42166
42167         PR middle-end/60797
42168         * varasm.c (assemble_alias): Avoid endless error reporting
42169         recursion by setting TREE_ASM_WRITTEN.
42170
42171 2014-04-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42172
42173         * config/s390/s390.md: Add a splitter for NOT rtx.
42174
42175 2014-04-11  Jakub Jelinek  <jakub@redhat.com>
42176
42177         PR rtl-optimization/60663
42178         * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in PARALLEL.
42179
42180 2014-04-10  Jan Hubicka  <hubicka@ucw.cz>
42181             Jakub Jelinek  <jakub@redhat.com>
42182
42183         PR lto/60567
42184         * ipa.c (function_and_variable_visibility): Copy forced_by_abi
42185         flag from decl_node to node.
42186
42187 2014-04-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42188
42189         PR debug/60655
42190         * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define
42191         (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's
42192         ameliorating the cases where it can be.
42193
42194 2014-04-09  David Edelsohn  <dje.gcc@gmail.com>
42195
42196         Revert
42197         2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42198
42199         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42200         (loadsync_<mode>): Change mode.
42201         (load_quadpti, store_quadpti): New.
42202         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42203         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42204         * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI.
42205
42206 2014-04-09  Cong Hou  <congh@google.com>
42207
42208         PR testsuite/60773
42209         * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add
42210         documentation.
42211
42212 2014-04-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42213
42214         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand
42215         instead of vnor to exploit possible fusion opportunity in the
42216         future.
42217         (altivec_expand_vec_perm_const_le): Likewise.
42218
42219 2014-04-08  Pat Haugen  <pthaugen@us.ibm.com>
42220
42221         * config/rs6000/sync.md (AINT mode_iterator): Move definition.
42222         (loadsync_<mode>): Change mode.
42223         (load_quadpti, store_quadpti): New.
42224         (atomic_load<mode>, atomic_store<mode>): Add support for TI mode.
42225         * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ.
42226
42227 2014-04-08  Richard Sandiford  <rdsandiford@googlemail.com>
42228
42229         PR target/60763
42230         * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode.
42231         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly.
42232         Use gen_rtx_REG rather than simplify_gen_subreg for op0_di.
42233
42234 2014-04-08  Richard Biener  <rguenther@suse.de>
42235
42236         PR middle-end/60706
42237         * tree-pretty-print.c (pp_double_int): For HWI32 hosts with
42238         a 64bit widest int print double-int similar to on HWI64 hosts.
42239
42240 2014-04-08  Richard Biener  <rguenther@suse.de>
42241
42242         PR tree-optimization/60785
42243         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat
42244         default defs properly.
42245
42246 2014-04-08  Nathan Sidwell  <nathan@codesourcery.com>
42247
42248         * doc/invoke (Wnon-virtual-dtor): Update to match implementation.
42249         (Weffc++): Likewise.
42250
42251 2014-04-07  Jan Hubicka  <hubcika@ucw.cz>
42252
42253         * ipa-devirt.c (maybe_record_node): When node is not recorded,
42254         set completep to false rather than true.
42255
42256 2014-04-07  Douglas B Rupp  <rupp@adacore.com>
42257
42258         PR target/60504
42259         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from
42260         ARM_TARGET2_DWARF_FORMAT.
42261
42262 2014-04-07  Charles Baylis  <charles.baylis@linaro.org>
42263
42264         PR target/60609
42265         * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove.
42266         (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after
42267         ADDR_DIFF_VEC.
42268
42269 2014-04-07  Richard Biener  <rguenther@suse.de>
42270
42271         PR tree-optimization/60766
42272         * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type.
42273         (may_eliminate_iv): Convert cand_value_at result to desired type.
42274
42275 2014-04-07  Jason Merrill  <jason@redhat.com>
42276
42277         PR c++/60731
42278         * common.opt (-fno-gnu-unique): Add.
42279         * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it.
42280
42281 2014-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42282
42283         * haifa-sched.c: Fix outdated function reference and minor
42284         grammar errors in introductory comment.
42285
42286 2014-04-07  Richard Biener  <rguenther@suse.de>
42287
42288         PR middle-end/60750
42289         * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs
42290         for noreturn calls.
42291         * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs.
42292
42293 2014-04-06  John David Anglin  <danglin@gcc.gnu.org>
42294
42295         PR debug/55794
42296         * config/pa/pa.c (pa_output_function_epilogue): Skip address and code
42297         size accounting for thunks.
42298         (pa_asm_output_mi_thunk): Use final_start_function() and
42299         final_end_function() to output function start and end directives.
42300
42301 2014-04-05  Pitchumani Sivanupandi  <Pitchumani.S@atmel.com>
42302
42303         * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have
42304         device specific ISA/ feature information. Remove short_sp and
42305         errata_skip ds.  Add avr_device_specific_features enum to have device
42306         specific info.
42307         * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check
42308         errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available.
42309         * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for
42310         updated device specific info.
42311         * config/avr/avr-mcus.def: Merge device specific details to
42312         dev_attribute field.
42313         * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check
42314         errata_skip.
42315         * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info.
42316         * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to
42317         assembler if RMW isa supported by current device.
42318         * config/avr/genmultilib.awk: Update as device info structure changed.
42319         * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro
42320
42321 2014-04-04  Cong Hou  <congh@google.com>
42322
42323         PR tree-optimization/60656
42324         * tree-vect-stmts.c (supportable_widening_operation):
42325         Fix a bug that elements in a vector with vect_used_by_reduction
42326         property are incorrectly reordered when the operation on it is not
42327         consistant with the one in reduction operation.
42328
42329 2014-04-04  John David Anglin  <danglin@gcc.gnu.org>
42330
42331         PR rtl-optimization/60155
42332         * gcse.c (record_set_data): New function.
42333         (single_set_gcse): New function.
42334         (gcse_emit_move_after): Use single_set_gcse instead of single_set.
42335         (hoist_code): Likewise.
42336         (get_pressure_class_and_nregs): Likewise.
42337
42338 2014-04-04  Eric Botcazou  <ebotcazou@adacore.com>
42339
42340         * explow.c (probe_stack_range): Emit a final optimization blockage.
42341
42342 2014-04-04  Anthony Green  <green@moxielogic.com>
42343
42344         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix
42345         typos.
42346
42347 2014-04-04  Jan Hubicka  <hubicka@ucw.cz>
42348
42349         PR ipa/59626
42350         * lto-cgraph.c (input_overwrite_node): Check that partitioning
42351         flags are set only during streaming.
42352         * ipa.c (process_references, walk_polymorphic_call_targets,
42353         symtab_remove_unreachable_nodes): Drop bodies of always inline
42354         after early inlining.
42355         (symtab_remove_unreachable_nodes): Remove always_inline attribute.
42356
42357 2014-04-04  Jakub Jelinek  <jakub@redhat.com>
42358         Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42359
42360         PR debug/60655
42361         * dwarf2out.c (const_ok_for_output_1): Reject expressions
42362         containing a NOT.
42363
42364 2014-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42365
42366         PR bootstrap/60743
42367         * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation
42368         duration.
42369         (cortex_a53_fdivd): Likewise.
42370
42371 2014-04-04  Martin Jambor  <mjambor@suse.cz>
42372
42373         PR ipa/60640
42374         * cgraph.h (cgraph_clone_node): New parameter added to declaration.
42375         Adjust all callers.
42376         * cgraph.c (clone_of_p): Also return true if thunks match.
42377         (verify_edge_corresponds_to_fndecl): Removed extraneous call to
42378         cgraph_function_or_thunk_node and an obsolete comment.
42379         * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
42380         file.
42381         (build_function_decl_skip_args): Likewise.
42382         (set_new_clone_decl_and_node_flags): New function.
42383         (duplicate_thunk_for_node): Likewise.
42384         (redirect_edge_duplicating_thunks): Likewise.
42385         (cgraph_clone_node): New parameter args_to_skip, pass it to
42386         redirect_edge_duplicating_thunks which is called instead of
42387         cgraph_redirect_edge_callee.
42388         (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
42389         moved setting of a lot of flags to set_new_clone_decl_and_node_flags.
42390
42391 2014-04-04  Jeff Law  <law@redhat.com>
42392
42393         PR target/60657
42394         * config/arm/predicates.md (const_int_I_operand): New predicate.
42395         (const_int_M_operand): Similarly.
42396         * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of
42397         const_int_operand.
42398         (insv_t2, extv_reg, extzv_t2): Likewise.
42399         (load_multiple_with_writeback): Similarly for const_int_I_operand.
42400         (pop_multiple_with_writeback_and_return): Likewise.
42401         (vfp_pop_multiple_with_writeback): Likewise
42402
42403 2014-04-04  Richard Biener  <rguenther@suse.de>
42404
42405         PR ipa/60746
42406         * tree-ssanames.c (make_ssa_name_fn): Fix assert.
42407         * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for
42408         non-GIMPLE_LABELs.
42409         * gimplify.h (gimple_add_tmp_var_fn): Declare.
42410         * gimplify.c (gimple_add_tmp_var_fn): New function.
42411         * gimple-expr.h (create_tmp_reg_fn): Declare.
42412         * gimple-expr.c (create_tmp_reg_fn): New function.
42413         * gimple-low.c (record_vars_into): Don't change cfun.
42414         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix
42415         code generation without cfun.
42416
42417 2014-04-04  Thomas Schwinge  <thomas@codesourcery.com>
42418
42419         PR bootstrap/60719
42420         * Makefile.in (install-driver): Fix shell scripting.
42421
42422 2014-04-03  Cong Hou  <congh@google.com>
42423
42424         PR tree-optimization/60505
42425         * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the
42426         threshold of number of iterations below which no vectorization
42427         will be done.
42428         * tree-vect-loop.c (new_loop_vec_info):
42429         Initialize LOOP_VINFO_COST_MODEL_THRESHOLD.
42430         * tree-vect-loop.c (vect_analyze_loop_operations):
42431         Set LOOP_VINFO_COST_MODEL_THRESHOLD.
42432         * tree-vect-loop.c (vect_transform_loop):
42433         Use LOOP_VINFO_COST_MODEL_THRESHOLD.
42434         * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number
42435         of iterations of the loop and see if we should build the epilogue.
42436
42437 2014-04-03  Richard Biener  <rguenther@suse.de>
42438
42439         * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx member.
42440         (streamer_tree_cache_create): Adjust.
42441         * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust
42442         to allow optional nodes array.
42443         (streamer_tree_cache_insert_1): Use next_idx to assign idx.
42444         (streamer_tree_cache_append): Likewise.
42445         (streamer_tree_cache_create): Create nodes array optionally
42446         as specified by parameter.
42447         * lto-streamer-out.c (create_output_block): Avoid maintaining
42448         the node array in the writer cache.
42449         (DFS_write_tree): Remove assertion.
42450         (produce_asm_for_decls): Free the out decl state hash table early.
42451         * lto-streamer-in.c (lto_data_in_create): Adjust for
42452         streamer_tree_cache_create prototype change.
42453
42454 2014-04-03  Richard Biener  <rguenther@suse.de>
42455
42456         * tree-streamer-out.c (streamer_write_chain): Do not temporarily
42457         set TREE_CHAIN to NULL_TREE.
42458
42459 2014-04-03  Richard Biener  <rguenther@suse.de>
42460
42461         PR tree-optimization/60740
42462         * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate
42463         over all GIMPLE_COND operands.
42464
42465 2014-04-03  Nathan Sidwell  <nathan@codesourcery.com>
42466
42467         * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation.
42468         (Weffc++): Remove Scott's numbering, merge lists and reference
42469         Wnon-virtual-dtor.
42470
42471 2014-04-03  Nick Clifton  <nickc@redhat.com>
42472
42473         * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF))
42474         properly.
42475
42476 2014-04-03  Martin Jambor  <mjambor@suse.cz>
42477
42478         * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and
42479         mention gcc_unreachable before failing.
42480         * ipa.c (symtab_remove_unreachable_nodes): Also print order of
42481         removed symbols.
42482
42483 2014-04-02  Jan Hubicka  <hubicka@ucw.cz>
42484
42485         PR ipa/60659
42486         * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type
42487         inconsistent code and instead mark the context inconsistent.
42488         (possible_polymorphic_call_targets): For inconsistent contexts
42489         return empty complete list.
42490
42491 2014-04-02  Anthony Green  <green@moxielogic.com>
42492
42493         * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2)
42494         (extendqisi2, extendhisi2): Define.
42495         * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0.
42496         (WCHAR_TYPE): Change to unsigned int.
42497
42498 2014-04-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42499
42500         PR tree-optimization/60733
42501         * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required
42502         insertion point for PHI candidates to be the end of the feeding
42503         block for the PHI argument.
42504
42505 2014-04-02  Vladimir Makarov  <vmakarov@redhat.com>
42506
42507         PR rtl-optimization/60650
42508         * lra-constraints.c (process_alt_operands): Decrease reject for
42509         earlyclobber matching.
42510
42511 2014-04-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42512
42513         * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE.
42514
42515 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42516
42517         * config/spu/spu.c (pad_bb): Do not crash when the last
42518         insn is CODE_FOR_blockage.
42519
42520 2014-04-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42521
42522         * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize
42523         lies outside the target mode.
42524
42525 2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
42526
42527         PR target/60735
42528         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
42529         software floating point or no floating point registers, do not
42530         allow any type in the FPRs.  Eliminate a test for SPE SIMD types
42531         in GPRs that occurs after we tested for GPRs that would never be
42532         true.
42533
42534         * config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
42535         Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
42536         since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
42537         specifically allow DDmode, since that does not use the SPE SIMD
42538         instructions.
42539
42540 2014-04-02  Richard Biener  <rguenther@suse.de>
42541
42542         PR middle-end/60729
42543         * optabs.c (expand_abs_nojump): Honor flag_trapv only for
42544         MODE_INTs.  Properly use negv_optab.
42545         (expand_abs): Likewise.
42546
42547 2014-04-02  Richard Biener  <rguenther@suse.de>
42548
42549         PR bootstrap/60719
42550         * Makefile.in (install-driver): Guard extra installs with special
42551         names properly.
42552
42553 2014-04-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
42554
42555         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42556         Document vec_vgbbd.
42557
42558 2014-04-01  Richard Henderson  <rth@redhat.com>
42559
42560         PR target/60704
42561         * config/i386/i386.md (*float<SWI48><MODEF>2_sse): Leave the second
42562         alternative enabled before register allocation.
42563
42564 2014-04-01  Chung-Lin Tang  <cltang@codesourcery.com>
42565
42566         * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM.
42567         * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand
42568         typo.
42569         (nios2_large_got_address): Remove unneeded 'sym' parameter.
42570         (nios2_got_address): Update nios2_large_got_address call site.
42571         (nios2_delegitimize_address): New function.
42572         (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address.
42573         * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define.
42574         (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER.
42575
42576 2014-04-01  Martin Husemann  <martin@duskware.de>
42577
42578         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32
42579         for -mabi=32.
42580
42581 2014-04-01  Richard Sandiford  <rdsandiford@googlemail.com>
42582
42583         PR rtl-optimization/60604
42584         * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P
42585         check from register_operand.
42586         (register_operand): Redefine in terms of general_operand.
42587         (nonmemory_operand): Use register_operand for the non-constant cases.
42588
42589 2014-04-01  Richard Biener  <rguenther@suse.de>
42590
42591         * gimple.h (struct gimple_statement_base): Align subcode to 16 bits.
42592
42593 2014-04-01  Sebastian Huber  <sebastian.huber@embedded-brains.de>
42594
42595         * doc/invoke.texi (mapp-regs): Clarify.
42596
42597 2014-03-31  Ulrich Drepper  <drepper@gmail.com>
42598
42599         * config/i386/avx512fintrin.h (__v32hi): Define type.
42600         (__v64qi): Likewise.
42601         (_mm512_set1_epi8): Define.
42602         (_mm512_set1_epi16): Define.
42603         (_mm512_set4_epi32): Define.
42604         (_mm512_set4_epi64): Define.
42605         (_mm512_set4_pd): Define.
42606         (_mm512_set4_ps): Define.
42607         (_mm512_setr4_epi64): Define.
42608         (_mm512_setr4_epi32): Define.
42609         (_mm512_setr4_pd): Define.
42610         (_mm512_setr4_ps): Define.
42611         (_mm512_setzero_epi32): Define.
42612
42613 2014-03-31  Martin Jambor  <mjambor@suse.cz>
42614
42615         PR middle-end/60647
42616         * tree-sra.c (callsite_has_enough_arguments_p): Renamed to
42617         callsite_arguments_match_p.  Updated all callers.  Also check types of
42618         corresponding formal parameters and actual arguments.
42619         (not_all_callers_have_enough_arguments_p) Renamed to
42620         some_callers_have_mismatched_arguments_p.
42621
42622 2014-03-31  Yuri Rumyantsev  <ysrumyan@gmail.com>
42623
42624         * tree-inline.c (copy_loops): Add missed copy of 'safelen'.
42625
42626 2014-03-31  Kugan Vivekanandarajah  <kuganv@linaro.org>
42627
42628         PR target/60034
42629         * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for
42630         section anchor.
42631
42632 2014-03-30  Uros Bizjak  <ubizjak@gmail.com>
42633
42634         * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator.
42635         (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>):
42636         Split out
42637         <sd_mask_codefor>fma_fmadd_<VF_512:mode><sd_maskz_name><round_name>.
42638         Use FMAMODE_NOVF512 mode iterator.
42639         (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): Ditto.
42640         (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): Ditto.
42641         (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): Ditto.
42642         (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>):
42643         Split out
42644         <sd_mask_codefor>fma_fmaddsub_<VF_512:mode><sd_maskz_name><round_name>.
42645         Use VF_128_256 mode iterator.
42646         (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>):
42647         Ditto.
42648
42649 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42650
42651         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear
42652         static chain if needed.
42653
42654 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42655
42656         PR target/60697
42657         * lra-constraints.c (index_part_to_reg): New.
42658         (process_address): Use it.
42659
42660 2014-03-27  Jeff Law  <law@redhat.com>
42661             Jakub Jelinek  <jakub@redhat.com>
42662
42663         PR target/60648
42664         * expr.c (do_tablejump): Use simplify_gen_binary rather than
42665         gen_rtx_{PLUS,MULT} to build up the address expression.
42666
42667         * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid
42668         creating non-canonical RTL.
42669
42670 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42671
42672         PR ipa/60243
42673         * ipa-inline.c (want_inline_small_function_p): Short circuit large
42674         functions; reorganize to make cheap checks first.
42675         (inline_small_functions): Do not estimate growth when dumping;
42676         it is expensive.
42677         * ipa-inline.h (inline_summary): Add min_size.
42678         (growth_likely_positive): New function.
42679         * ipa-inline-analysis.c (dump_inline_summary): Add min_size.
42680         (set_cond_stmt_execution_predicate): Cleanup.
42681         (estimate_edge_size_and_time): Compute min_size.
42682         (estimate_calls_size_and_time): Likewise.
42683         (estimate_node_size_and_time): Likewise.
42684         (inline_update_overall_summary): Update min_size.
42685         (do_estimate_edge_time): Likewise.
42686         (do_estimate_edge_size): Update.
42687         (do_estimate_edge_hints): Update.
42688         (growth_likely_positive): New function.
42689
42690 2014-03-28  Jakub Jelinek  <jakub@redhat.com>
42691
42692         PR target/60693
42693         * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg
42694         also if addr has VOIDmode.
42695
42696 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42697
42698         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New.
42699         * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue):
42700         Declare extern.
42701         * config/arm/cortex-a53.md: Add reservations and bypass for crypto
42702         instructions as well as AdvancedSIMD loads.
42703
42704 2014-03-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42705
42706         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi):
42707         Use crypto_aese type.
42708         (aarch64_crypto_aes<aesmc_op>v16qi): Use crypto_aesmc type.
42709         * config/arm/arm.md (is_neon_type): Replace crypto_aes with
42710         crypto_aese, crypto_aesmc.  Move to types.md.
42711         * config/arm/types.md (crypto_aes): Split into crypto_aese,
42712         crypto_aesmc.
42713         * config/arm/iterators.md (crypto_type): Likewise.
42714
42715 2014-03-28  Jan Hubicka  <hubicka@ucw.cz>
42716
42717         * cgraph.c: Include expr.h and tree-dfa.h.
42718         (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn;
42719         remove LHS.
42720
42721 2014-03-28  Vladimir Makarov  <vmakarov@redhat.com>
42722
42723         PR target/60675
42724         * lra-assigns.c (find_hard_regno_for): Remove unavailable hard
42725         regs from checking multi-reg pseudos.
42726
42727 2014-03-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
42728
42729         * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule.
42730
42731 2014-03-28  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
42732
42733         * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization
42734         if it would clobber the stack pointer, even temporarily.
42735
42736 2014-03-28  Eric Botcazou  <ebotcazou@adacore.com>
42737
42738         * mode-switching.c: Make small adjustments to the top comment.
42739
42740 2014-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
42741
42742         * config/rs6000/constraints.md (wD constraint): New constraint to
42743         match the constant integer to get the top DImode/DFmode out of a
42744         vector in a VSX register.
42745
42746         * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to
42747         match the constant integer to get the top DImode/DFmode out of a
42748         vector in a VSX register.
42749
42750         * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin
42751         for ISA 2.07.
42752
42753         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
42754         vbpermq builtins.
42755
42756         * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
42757         -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT.
42758
42759         * config/rs6000/vsx.md (vsx_extract_<mode>, V2DI/V2DF modes):
42760         Optimize vec_extract of 64-bit values, where the value being
42761         extracted is in the top word, where we can use scalar
42762         instructions.  Add direct move and store support.  Combine the big
42763         endian/little endian vector select load support into a single insn.
42764         (vsx_extract_<mode>_internal1): Likewise.
42765         (vsx_extract_<mode>_internal2): Likewise.
42766         (vsx_extract_<mode>_load): Likewise.
42767         (vsx_extract_<mode>_store): Likewise.
42768         (vsx_extract_<mode>_zero): Delete, big and little endian insns are
42769         combined into vsx_extract_<mode>_load.
42770         (vsx_extract_<mode>_one_le): Likewise.
42771
42772         * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to
42773         define the top 64-bit vector element.
42774
42775         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD
42776         constraint.
42777
42778         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42779         Document vec_vbpermq builtin.
42780
42781         PR target/60672
42782         * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to
42783         enable use of xxsldwi and xxpermdi builtin functions.
42784         (vec_xxpermdi): Likewise.
42785
42786         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
42787         Document use of vec_xxsldwi and vec_xxpermdi builtins.
42788
42789 2014-03-27  Vladimir Makarov  <vmakarov@redhat.com>
42790
42791         PR rtl-optimization/60650
42792         * lra-assign.c (find_hard_regno_for, spill_for): Add parameter
42793         first_p.  Use it.
42794         (find_spills_for): New.
42795         (assign_by_spills): Pass the new parameter to find_hard_regno_for.
42796         Spill all pseudos on the second iteration.
42797
42798 2014-03-27  Marek Polacek  <polacek@redhat.com>
42799
42800         PR c/50347
42801         * doc/extend.texi (ffs Builtins): Change unsigned types to signed
42802         types.
42803
42804 2014-03-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42805
42806         * config/s390/s390.c (s390_can_use_return_insn): Check for
42807         call-saved FPRs on 31 bit.
42808
42809 2014-03-27  Jakub Jelinek  <jakub@redhat.com>
42810
42811         PR middle-end/60682
42812         * omp-low.c (lower_omp_1): For gimple_clobber_p stmts,
42813         if they need regimplification, just drop them instead of
42814         calling gimple_regimplify_operands on them.
42815
42816 2014-03-27  Marcus Shawcroft  <marcus.shawcroft@arm.com>
42817
42818         PR target/60580
42819         * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove.
42820         (aarch64_frame_pointer_required): Adjust logic.
42821         (aarch64_can_eliminate): Adjust logic.
42822         (aarch64_override_options_after_change): Adjust logic.
42823
42824 2014-03-27  Dehao Chen  <dehao@google.com>
42825
42826         * ipa-inline.c (early_inliner): Update node's inline info.
42827
42828 2014-03-26  Dehao Chen  <dehao@google.com>
42829
42830         * dojump.c (do_compare_rtx_and_jump): Sets correct probability for
42831         compiler inserted conditional jumps for NAN float check.
42832
42833 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
42834
42835         * ubsan.h (ubsan_create_data): Change second argument's type
42836         to const location_t *.
42837         * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to
42838         _("<unknown>").
42839         (ubsan_create_data): Change second argument to const location_t *PLOC.
42840         Create Loc field whenever PLOC is non-NULL.
42841         (ubsan_instrument_unreachable, ubsan_expand_null_ifn,
42842         ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust
42843         callers.
42844
42845         PR other/59545
42846         * real.c (real_to_integer2): Change type of low to UHWI.
42847
42848 2014-03-26  Tobias Burnus  <burnus@net-b.de>
42849
42850         * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus.
42851         (CILK_SELF_SPECS): New define.
42852         (driver_self_specs): Use it.
42853
42854 2014-03-26  Richard Biener  <rguenther@suse.de>
42855
42856         * tree-pretty-print.c (percent_K_format): Implement special
42857         case for LTO and its stripped down BLOCK tree.
42858
42859 2014-03-26  Jakub Jelinek  <jakub@redhat.com>
42860
42861         PR sanitizer/60636
42862         * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR.
42863
42864         * tree-vrp.c (simplify_internal_call_using_ranges): If only
42865         one range is range_int_cst_p, but not both, at least optimize
42866         addition/subtraction of 0 and multiplication by 0 or 1.
42867         * gimple-fold.c (gimple_fold_call): Fold
42868         IFN_UBSAN_CHECK_{ADD,SUB,MUL}.
42869         (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't
42870         INTEGER_CSTs, try to fold at least x * 0 and y - y.
42871
42872 2014-03-26  Eric Botcazou  <ebotcazou@adacore.com>
42873
42874         PR rtl-optimization/60452
42875         * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment.
42876         <case REG>: Return 1 for invalid offsets from the frame pointer.
42877
42878 2014-03-26  Marek Polacek  <polacek@redhat.com>
42879
42880         PR c/37428
42881         * doc/extend.texi (C Extensions): Mention variable-length arrays in
42882         a structure/union.
42883
42884 2014-03-26  Marek Polacek  <polacek@redhat.com>
42885
42886         PR c/39525
42887         * doc/extend.texi (Designated Inits): Describe what happens to omitted
42888         field members.
42889
42890 2014-03-26  Marek Polacek  <polacek@redhat.com>
42891
42892         PR other/59545
42893         * ira-color.c (update_conflict_hard_regno_costs): Perform the
42894         multiplication in unsigned type.
42895
42896 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
42897
42898         * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf.
42899
42900 2014-03-26  Chung-Ju Wu  <jasonwucj@gmail.com>
42901
42902         * doc/contrib.texi: Add myself as Andes nds32 port contributor.
42903
42904 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
42905
42906         PR ipa/60315
42907         * cif-code.def (UNREACHABLE) New code.
42908         * ipa-inline.c (inline_small_functions): Skip edges to
42909         __builtlin_unreachable.
42910         (estimate_edge_growth): Allow edges to __builtlin_unreachable.
42911         * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
42912         predicate to __bulitin_unreachable.
42913         (set_cond_stmt_execution_predicate): Fix issue when
42914         invert_tree_comparison returns ERROR_MARK.
42915         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
42916         propagate to inline clones.
42917         * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
42918         to unreachable.
42919         * ipa-cp.c (create_specialized_node): Be ready for new node to appear.
42920         * cgraphclones.c (cgraph_clone_node): If call destination is already
42921         ureachable, do not redirect it back.
42922         * tree-inline.c (fold_marked_statements): Hanlde calls becoming
42923         unreachable.
42924
42925 2014-03-25  Jan Hubicka  <hubicka@ucw.cz>
42926
42927         * ipa-pure-const.c (propagate_pure_const, propagate_nothrow):
42928         Do not modify inline clones.
42929
42930 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
42931
42932         * config/i386/i386.md (general_sext_operand): New mode attr.
42933         (addv<mode>4, subv<mode>4, mulv<mode>4): If operands[2] is CONST_INT,
42934         don't generate (sign_extend (const_int)).
42935         (*addv<mode>4, *subv<mode>4, *mulv<mode>4): Disallow CONST_INT_P
42936         operands[2].  Use We constraint instead of <i> and
42937         <general_sext_operand> predicate instead of <general_operand>.
42938         (*addv<mode>4_1, *subv<mode>4_1, *mulv<mode>4_1): New insns.
42939         * config/i386/constraints.md (We): New constraint.
42940         * config/i386/predicates.md (x86_64_sext_operand,
42941         sext_operand): New predicates.
42942
42943 2014-03-25  Martin Jambor  <mjambor@suse.cz>
42944
42945         PR ipa/60600
42946         * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type
42947         inconsistent devirtualizations to __builtin_unreachable.
42948
42949 2014-03-25  Marek Polacek  <polacek@redhat.com>
42950
42951         PR c/35449
42952         * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo.
42953
42954 2014-03-25  Alan Lawrence  <alan.lawrence@arm.com>
42955
42956         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse
42957         order of elements for big-endian.
42958
42959 2014-03-25  Richard Biener  <rguenther@suse.de>
42960
42961         PR middle-end/60635
42962         * gimplify-me.c (gimple_regimplify_operands): Update the
42963         re-gimplifed stmt.
42964
42965 2014-03-25  Martin Jambor  <mjambor@suse.cz>
42966
42967         PR ipa/59176
42968         * lto-cgraph.c (lto_output_node): Stream body_removed flag.
42969         (lto_output_varpool_node): Likewise.
42970         (input_overwrite_node): Likewise.
42971         (input_varpool_node): Likewise.
42972
42973 2014-03-25  Richard Biener  <rguenther@suse.de>
42974
42975         * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie.
42976         (run_gcc): Likewise.
42977
42978 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
42979
42980         * combine.c (simplify_compare_const): Add MODE argument.
42981         Handle mode_width 0 as very large mode_width.
42982         (try_combine, simplify_comparison): Adjust callers.
42983
42984         * cselib.c (cselib_hash_rtx): Perform addition in unsigned
42985         type to avoid signed integer overflow.
42986         * explow.c (plus_constant): Likewise.
42987
42988 2014-03-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
42989
42990         * doc/generic.texi: Correct typos.
42991
42992 2014-03-24  Tobias Burnus  <burnus@net-b.de>
42993
42994         * doc/invoke.texi (-flto): Expand section about
42995         using static libraries with LTO.
42996
42997 2014-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
42998
42999         PR rtl-optimization/60501
43000         * optabs.def (addptr3_optab): New optab.
43001         * optabs.c (gen_addptr3_insn, have_addptr3_insn): New function.
43002         * doc/md.texi ("addptrm3"): Document new RTL standard expander.
43003         * expr.h (gen_addptr3_insn, have_addptr3_insn): Add prototypes.
43004
43005         * lra.c (emit_add3_insn): Use the addptr pattern if available.
43006
43007         * config/s390/s390.md ("addptrdi3", "addptrsi3"): New expanders.
43008
43009 2014-03-24  Ulrich Drepper  <drepper@gmail.com>
43010
43011         * config/i386/avx512fintrin.h: Define _mm512_set1_ps and
43012         _mm512_set1_pd.
43013
43014         * config/i386/avxintrin.h (_mm256_undefined_si256): Define.
43015         (_mm256_undefined_ps): Define.
43016         (_mm256_undefined_pd): Define.
43017         * config/i386/emmintrin.h (_mm_undefined_si128): Define.
43018         (_mm_undefined_pd): Define.
43019         * config/i386/xmmintrin.h (_mm_undefined_ps): Define.
43020         * config/i386/avx512fintrin.h (_mm512_undefined_si512): Define.
43021         (_mm512_undefined_ps): Define.
43022         (_mm512_undefined_pd): Define.
43023         Use _mm*_undefined_*.
43024         * config/i386/avx2intrin.h: Use _mm*_undefined_*.
43025
43026 2014-03-24  Alex Velenko  <Alex.Velenko@arm.com>
43027
43028         * config/aarch64/aarch64-simd-builtins.def (lshr): DI mode excluded.
43029         (lshr_simd): DI mode added.
43030         * config/aarch64/aarch64-simd.md (aarch64_lshr_simddi): New pattern.
43031         (aarch64_ushr_simddi): Likewise.
43032         * config/aarch64/aarch64.md (UNSPEC_USHR64): New unspec.
43033         * config/aarch64/arm_neon.h (vshr_n_u64): Intrinsic fixed.
43034         (vshrd_n_u64): Likewise.
43035
43036 2014-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43037
43038         * Makefile.in (s-macro_list): Depend on cc1.
43039
43040 2014-03-23  Teresa Johnson  <tejohnson@google.com>
43041
43042         * ipa-utils.c (ipa_print_order): Use specified dump file.
43043
43044 2014-03-23  Eric Botcazou  <ebotcazou@adacore.com>
43045
43046         PR rtl-optimization/60601
43047         * bb-reorder.c (fix_up_fall_thru_edges): Test EDGE_FALLTHRU everywhere.
43048
43049         * gcc.c (eval_spec_function): Initialize save_growing_value.
43050
43051 2014-03-22  Jakub Jelinek  <jakub@redhat.com>
43052
43053         PR sanitizer/60613
43054         * internal-fn.c (ubsan_expand_si_overflow_addsub_check): For
43055         code == MINUS_EXPR, never swap op0 with op1.
43056
43057         * toplev.c (init_local_tick): Avoid signed integer multiplication
43058         overflow.
43059         * genautomata.c (reserv_sets_hash_value): Fix rotate idiom, avoid
43060         shift by first operand's bitsize.
43061
43062 2014-03-21  Jakub Jelinek  <jakub@redhat.com>
43063
43064         PR target/60610
43065         * config/i386/i386.h (TARGET_64BIT_P): If not TARGET_BI_ARCH,
43066         redefine to 1 or 0.
43067         * config/i386/darwin.h (TARGET_64BIT_P): Redefine to
43068         TARGET_ISA_64BIT_P(x).
43069
43070 2014-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43071
43072         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate a
43073         pattern for vector nor instead of subtract from splat(-1).
43074         (altivec_expand_vec_perm_const_le): Likewise.
43075
43076 2014-03-21  Richard Henderson  <rth@twiddle.net>
43077
43078         PR target/60598
43079         * ifcvt.c (dead_or_predicable): Return FALSE if there are any frame
43080         related insns after epilogue_completed.
43081
43082 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43083
43084         PR ipa/59176
43085         * cgraph.h (symtab_node): New flag body_removed.
43086         * ipa.c (symtab_remove_unreachable_nodes): Set body_removed flag
43087         when removing bodies.
43088         * symtab.c (dump_symtab_base): Dump body_removed flag.
43089         * cgraph.c (verify_edge_corresponds_to_fndecl): Skip nodes which
43090         had their bodies removed.
43091
43092 2014-03-21  Martin Jambor  <mjambor@suse.cz>
43093
43094         PR ipa/60419
43095         * ipa.c (symtab_remove_unreachable_nodes): Clear thunk flag of nodes
43096         in the border.
43097
43098 2014-03-21  Richard Biener  <rguenther@suse.de>
43099
43100         PR tree-optimization/60577
43101         * tree-core.h (struct tree_base): Document nothrow_flag use
43102         in DECL_NONALIASED.
43103         * tree.h (DECL_NONALIASED): New.
43104         (may_be_aliased): Adjust.
43105         * coverage.c (build_var): Set DECL_NONALIASED.
43106
43107 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43108
43109         * expr.c (expand_expr_real_1): Remove outdated comment.
43110
43111 2014-03-20  Jakub Jelinek  <jakub@redhat.com>
43112
43113         PR middle-end/60597
43114         * ira.c (adjust_cleared_regs): Call copy_rtx on
43115         *reg_equiv[REGNO (loc)].src_p before passing it to
43116         simplify_replace_fn_rtx.
43117
43118         PR target/60568
43119         * config/i386/i386.c (x86_output_mi_thunk): Surround UNSPEC_GOT
43120         into CONST, put pic register as first operand of PLUS.  Use
43121         gen_const_mem for both 32-bit and 64-bit PIC got loads.
43122
43123 2014-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43124
43125         * config/aarch64/aarch64.c (MEMORY_MOVE_COST): Delete.
43126
43127 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43128
43129         * config/sparc/sparc.c (sparc_do_work_around_errata): Implement work
43130         around for store forwarding issue in the FPU on the UT699.
43131         * config/sparc/sparc.md (in_branch_delay): Return false for single FP
43132         loads and operations if -mfix-ut699 is specified.
43133         (divtf3_hq): Tweak attribute.
43134         (sqrttf2_hq): Likewise.
43135
43136 2014-03-20  Eric Botcazou  <ebotcazou@adacore.com>
43137
43138         * calls.c (store_one_arg): Remove incorrect const qualification on the
43139         type of the temporary.
43140         * cfgexpand.c (expand_return): Likewise.
43141         * expr.c (expand_constructor): Likewise.
43142         (expand_expr_real_1): Likewise.
43143
43144 2014-03-20  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
43145
43146         * config/arm/arm.c (arm_dwarf_register_span): Update the element number
43147         of parts.
43148
43149 2014-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
43150
43151         PR target/60039
43152         * config/sh/sh.md (udivsi3_i1): Clobber R1 register.
43153
43154 2014-03-19  James Greenhalgh  <james.greenhalgh@arm.com>
43155
43156         * config/arm/aarch-common-protos.h
43157         (alu_cost_table): Fix spelling of "extend".
43158         * config/arm/arm.c (arm_new_rtx_costs): Fix spelling of "extend".
43159
43160 2014-03-19  Richard Biener  <rguenther@suse.de>
43161
43162         PR middle-end/60553
43163         * tree-core.h (tree_type_common): Re-order pointer members
43164         to reduce recursion depth during GC walks.
43165
43166 2014-03-19  Marek Polacek  <polacek@redhat.com>
43167
43168         PR sanitizer/60569
43169         * ubsan.c (ubsan_type_descriptor): Check that DECL_NAME is nonnull
43170         before accessing it.
43171
43172 2014-03-19  Richard Biener  <rguenther@suse.de>
43173
43174         PR lto/59543
43175         * lto-streamer-in.c (input_function): In WPA stage do not drop
43176         debug stmts.
43177
43178 2014-03-19  Jakub Jelinek  <jakub@redhat.com>
43179
43180         PR tree-optimization/60559
43181         * vectorizable_mask_load_store): Replace scalar MASK_LOAD
43182         with build_zero_cst assignment.
43183
43184 2014-03-18  Kai Tietz  <ktietz@redhat.com>
43185
43186         PR rtl-optimization/56356
43187         * sdbout.c (sdbout_parms): Verify that parms'
43188         incoming argument is valid.
43189         (sdbout_reg_parms): Likewise.
43190
43191 2014-03-18  Richard Henderson  <rth@redhat.com>
43192
43193         PR target/60562
43194         * config/i386/i386.md (*float<SWI48x><MODEF>2_i387): Move down to
43195         be shadowed by *float<SWI48><MODEF>2_sse.  Test X87_ENABLE_FLOAT.
43196         (*float<SWI48><MODEF>2_sse): Check X87_ENABLE_FLOAT for alternative 0.
43197
43198 2014-03-18  Basile Starynkevitch  <basile@starynkevitch.net>
43199
43200         * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE.
43201         * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE.
43202         Italicize plugin event names in description.  Explain that
43203         PLUGIN_PRAGMAS has no sense for lto1.  Explain PLUGIN_INCLUDE_FILE.
43204         Remind that no GCC functions should be called after PLUGIN_FINISH.
43205         Explain what pragmas with expansion are.
43206
43207 2014-03-18  Martin Liska  <mliska@suse.cz>
43208
43209         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Added case when
43210         gimple call statement is update.
43211         * gimple-fold.c (gimple_fold_call): Changed order for GIMPLE_ASSIGN and
43212         GIMPLE_CALL, where gsi iterator still points to GIMPLE CALL.
43213
43214 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43215
43216         PR sanitizer/60557
43217         * ubsan.c (ubsan_instrument_unreachable): Call
43218         initialize_sanitizer_builtins.
43219         (ubsan_pass): Likewise.
43220
43221         PR sanitizer/60535
43222         * ubsan.c (ubsan_type_descriptor, ubsan_create_data): Call
43223         varpool_finalize_decl instead of rest_of_decl_compilation.
43224
43225 2014-03-18  Richard Biener  <rguenther@suse.de>
43226
43227         * df-problems.c (df_rd_confluence_n): Avoid bitmap_copy
43228         by using bitmap_and_compl instead of bitmap_and_compl_into.
43229         (df_rd_transfer_function): Likewise.
43230
43231 2014-03-18  Richard Biener  <rguenther@suse.de>
43232
43233         * doc/lto.texi (fresolution): Fix typo.
43234
43235 2014-03-18  Richard Biener  <rguenther@suse.de>
43236
43237         * doc/invoke.texi (flto): Update for changes in 4.9.
43238
43239 2014-03-18  Richard Biener  <rguenther@suse.de>
43240
43241         * doc/loop.texi: Remove section on the removed lambda framework.
43242         Update loop docs with recent changes in preserving loop structure.
43243
43244 2014-03-18  Richard Biener  <rguenther@suse.de>
43245
43246         * doc/lto.texi (-fresolution): Document.
43247
43248 2014-03-18  Richard Biener  <rguenther@suse.de>
43249
43250         * doc/contrib.texi: Adjust my name.
43251
43252 2014-03-18  Jakub Jelinek  <jakub@redhat.com>
43253
43254         PR ipa/58721
43255         * internal-fn.c: Include diagnostic-core.h.
43256         (expand_BUILTIN_EXPECT): New function.
43257         * gimplify.c (gimplify_call_expr): Use false instead of FALSE.
43258         (gimplify_modify_expr): Gimplify 3 argument __builtin_expect into
43259         IFN_BUILTIN_EXPECT call instead of __builtin_expect builtin call.
43260         * ipa-inline-analysis.c (find_foldable_builtin_expect): Handle
43261         IFN_BUILTIN_EXPECT.
43262         * predict.c (expr_expected_value_1): Handle IFN_BUILTIN_EXPECT.
43263         Revert 3 argument __builtin_expect code.
43264         (strip_predict_hints): Handle IFN_BUILTIN_EXPECT.
43265         * gimple-fold.c (gimple_fold_call): Likewise.
43266         * tree.h (fold_builtin_expect): New prototype.
43267         * builtins.c (build_builtin_expect_predicate): Add predictor
43268         argument, if non-NULL, create 3 argument __builtin_expect.
43269         (fold_builtin_expect): No longer static.  Add ARG2 argument,
43270         pass it through to build_builtin_expect_predicate.
43271         (fold_builtin_2): Adjust caller.
43272         (fold_builtin_3): Handle BUILT_IN_EXPECT.
43273         * internal-fn.def (BUILTIN_EXPECT): New.
43274
43275 2014-03-18  Tobias Burnus  <burnus@net-b.de>
43276
43277         PR ipa/58721
43278         * predict.def (PRED_FORTRAN_OVERFLOW, PRED_FORTRAN_FAIL_ALLOC,
43279         PRED_FORTRAN_FAIL_IO, PRED_FORTRAN_WARN_ONCE, PRED_FORTRAN_SIZE_ZERO,
43280         PRED_FORTRAN_INVALID_BOUND, PRED_FORTRAN_ABSENT_DUMMY): Add.
43281
43282 2014-03-18  Jan Hubicka  <hubicka@ucw.cz>
43283
43284         PR ipa/58721
43285         * predict.c (combine_predictions_for_bb): Fix up formatting.
43286         (expr_expected_value_1, expr_expected_value): Add predictor argument,
43287         fill what it points to if non-NULL.
43288         (tree_predict_by_opcode): Adjust caller, use the predictor.
43289         * predict.def (PRED_COMPARE_AND_SWAP): Add.
43290
43291 2014-03-18  Eric Botcazou  <ebotcazou@adacore.com>
43292
43293         * config/sparc/sparc.c (sparc_do_work_around_errata): Speed up and use
43294         proper constant for the store mode.
43295
43296 2014-03-18  Ilya Enkovich  <ilya.enkovich@intel.com>
43297
43298         * symtab.c (change_decl_assembler_name): Fix transparent alias
43299         chain construction.
43300
43301 2014-03-16  Renlin Li  <Renlin.Li@arm.com>
43302
43303         * config/aarch64/aarch64.c: Correct the comments about the
43304         aarch64 stack layout.
43305
43306 2014-03-18  Thomas Schwinge  <thomas@codesourcery.com>
43307
43308         * omp-low.c (lower_rec_input_clauses) <build_omp_barrier>: Restore
43309         check for GF_OMP_FOR_KIND_FOR.
43310
43311 2013-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
43312
43313         * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add
43314         ymm and zmm register names.
43315
43316 2014-03-17  Jakub Jelinek  <jakub@redhat.com>
43317
43318         PR target/60516
43319         * config/i386/i386.c (ix86_expand_epilogue): Adjust REG_CFA_ADJUST_CFA
43320         note creation for the 2010-08-31 changes.
43321
43322 2014-03-17  Marek Polacek  <polacek@redhat.com>
43323
43324         PR middle-end/60534
43325         * omp-low.c (omp_max_vf): Treat -fno-tree-loop-optimize the same
43326         as -fno-tree-loop-vectorize.
43327         (expand_omp_simd): Likewise.
43328
43329 2014-03-15  Eric Botcazou  <ebotcazou@adacore.com>
43330
43331         * config/sparc/sparc-protos.h (tls_call_delay): Delete.
43332         (eligible_for_call_delay): New prototype.
43333         * config/sparc/sparc.c (tls_call_delay): Rename into...
43334         (eligible_for_call_delay): ...this.  Return false if the instruction
43335         cannot be put in the delay slot of a branch.
43336         (eligible_for_restore_insn): Simplify.
43337         (eligible_for_return_delay): Return false if the instruction cannot be
43338         put in the delay slot of a branch and simplify.
43339         (eligible_for_sibcall_delay): Return false if the instruction cannot be
43340         put in the delay slot of a branch.
43341         * config/sparc/sparc.md (fix_ut699): New attribute.
43342         (tls_call_delay): Delete.
43343         (in_call_delay): Reimplement.
43344         (eligible_for_sibcall_delay): Rename into...
43345         (in_sibcall_delay): ...this.
43346         (eligible_for_return_delay): Rename into...
43347         (in_return_delay): ...this.
43348         (in_branch_delay): Reimplement.
43349         (in_uncond_branch_delay): Delete.
43350         (in_annul_branch_delay): Delete.
43351
43352 2014-03-14  Richard Henderson  <rth@redhat.com>
43353
43354         PR target/60525
43355         * config/i386/i386.md (floathi<X87MODEF>2): Delete expander; rename
43356         define_insn from *floathi<X87MODEF>2_i387; allow nonimmediate_operand.
43357         (*floathi<X87MODEF>2_i387_with_temp): Remove.
43358         (floathi splitters): Remove.
43359         (float<SWI48x>xf2): New pattern.
43360         (float<SWI48><MODEF>2): Rename from float<SWI48x><X87MODEF>2.  Drop
43361         code that tried to handle DImode for 32-bit, but which was excluded
43362         by the pattern's condition.  Drop allocation of stack temporary.
43363         (*floatsi<MODEF>2_vector_mixed_with_temp): Remove.
43364         (*float<SWI48><MODEF>2_mixed_with_temp): Remove.
43365         (*float<SWI48><MODEF>2_mixed_interunit): Remove.
43366         (*float<SWI48><MODEF>2_mixed_nointerunit): Remove.
43367         (*floatsi<MODEF>2_vector_sse_with_temp): Remove.
43368         (*float<SWI48><MODEF>2_sse_with_temp): Remove.
43369         (*float<SWI48><MODEF>2_sse_interunit): Remove.
43370         (*float<SWI48><MODEF>2_sse_nointerunit): Remove.
43371         (*float<SWI48x><X87MODEF>2_i387_with_temp): Remove.
43372         (*float<SWI48x><X87MODEF>2_i387): Remove.
43373         (all float _with_temp splitters): Remove.
43374         (*float<SWI48x><MODEF>2_i387): New pattern.
43375         (*float<SWI48><MODEF>2_sse): New pattern.
43376         (float TARGET_USE_VECTOR_CONVERTS splitters): Merge them.
43377         (float TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters): Merge them.
43378
43379 2014-03-14  Jakub Jelinek  <jakub@redhat.com>
43380             Marek Polacek  <polacek@redhat.com>
43381
43382         PR middle-end/60484
43383         * common.opt (dump_base_name_prefixed): New Variable.
43384         * opts.c (finish_options): Don't prepend directory to x_dump_base_name
43385         if x_dump_base_name_prefixed is already set, set it at the end.
43386
43387 2014-03-14  Vladimir Makarov  <vmakarov@redhat.com>
43388
43389         PR rtl-optimization/60508
43390         * lra-constraints.c (get_reload_reg): Add new parameter
43391         in_subreg_p.
43392         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
43393         Pass the new parameter values.
43394
43395 2014-03-14  Richard Biener  <rguenther@suse.de>
43396
43397         * common.opt: Revert unintented changes from r205065.
43398         * opts.c: Likewise.
43399
43400 2014-03-14  Richard Biener  <rguenther@suse.de>
43401
43402         PR middle-end/60518
43403         * cfghooks.c (split_block): Properly adjust all loops the
43404         block was a latch of.
43405
43406 2014-03-14  Martin Jambor  <mjambor@suse.cz>
43407
43408         PR lto/60461
43409         * ipa-prop.c (ipa_modify_call_arguments): Fix iteration condition
43410         and simplify it.
43411
43412 2014-03-14  Georg-Johann Lay  <avr@gjlay.de>
43413
43414         PR target/59396
43415         * config/avr/avr.c (avr_set_current_function): Pass function name
43416         through default_strip_name_encoding before sanity checking instead
43417         of skipping the first char of the assembler name.
43418
43419 2014-03-13  Richard Henderson  <rth@redhat.com>
43420
43421         PR debug/60438
43422         * config/i386/i386.c (ix86_split_fp_branch): Remove pushed argument.
43423         (ix86_force_to_memory, ix86_free_from_memory): Remove.
43424         * config/i386/i386-protos.h: Likewise.
43425         * config/i386/i386.md (floathi<X87MODEF>2): Use assign_386_stack_local
43426         in the expander instead of a splitter.
43427         (float<SWI48x><X87MODEF>2): Use assign_386_stack_local if there is
43428         any possibility of requiring a memory.
43429         (*floatsi<MODEF>2_vector_mixed): Remove, and the splitters.
43430         (*floatsi<MODEF>2_vector_sse): Remove, and the splitters.
43431         (fp branch splitters): Update for ix86_split_fp_branch.
43432         (*jcc<X87MODEF>_<SWI24>_i387): Remove r/f alternative.
43433         (*jcc<X87MODEF>_<SWI24>_r_i387): Likewise.
43434         (splitter for jcc<X87MODEF>_<SWI24>_i387 r/f): Remove.
43435         (*fop_<MODEF>_2_i387): Remove f/r alternative.
43436         (*fop_<MODEF>_3_i387): Likewise.
43437         (*fop_xf_2_i387, *fop_xf_3_i387): Likewise.
43438         (splitters for the fop_* register patterns): Remove.
43439         (fscalexf4_i387): Rename from *fscalexf4_i387.
43440         (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387.
43441
43442 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43443
43444         PR tree-optimization/59779
43445         * tree-dfa.c (get_ref_base_and_extent): Use double_int
43446         type for bitsize and maxsize instead of HOST_WIDE_INT.
43447
43448 2014-03-13  Steven Bosscher  <steven@gcc.gnu.org>
43449
43450         PR rtl-optimization/57320
43451         * function.c (rest_of_handle_thread_prologue_and_epilogue): Cleanup
43452         the CFG after thread_prologue_and_epilogue_insns.
43453
43454 2014-03-13  Vladimir Makarov  <vmakarov@redhat.com>
43455
43456         PR rtl-optimization/57189
43457         * lra-constraints.c (process_alt_operands): Disfavor spilling
43458         vector pseudos.
43459
43460 2014-03-13  Cesar Philippidis  <cesar@codesourcery.com>
43461
43462         * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages.
43463
43464 2014-03-13  Jakub Jelinek  <jakub@redhat.com>
43465
43466         PR tree-optimization/59025
43467         PR middle-end/60418
43468         * tree-ssa-reassoc.c (sort_by_operand_rank): For SSA_NAMEs with the
43469         same rank, sort by bb_rank and gimple_uid of SSA_NAME_DEF_STMT first.
43470
43471 2014-03-13  Georg-Johann Lay  <avr@gjlay.de>
43472
43473         PR target/60486
43474         * config/avr/avr.c (avr_out_plus): Swap cc_plus and cc_minus in
43475         calls of avr_out_plus_1.
43476
43477 2014-03-13  Bin Cheng  <bin.cheng@arm.com>
43478
43479         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Record
43480         BB's single pred and update the father loop's latch info later.
43481
43482 2014-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
43483
43484         * config/rs6000/vector.md (VEC_L): Add V1TI mode to vector types.
43485         (VEC_M): Likewise.
43486         (VEC_N): Likewise.
43487         (VEC_R): Likewise.
43488         (VEC_base): Likewise.
43489         (mov<MODE>, VEC_M modes): If we are loading TImode into VSX
43490         registers, we need to swap double words in little endian mode.
43491
43492         * config/rs6000/rs6000-modes.def (V1TImode): Add new vector mode
43493         to be a container mode for 128-bit integer operations added in ISA
43494         2.07.  Unlike TImode and PTImode, the preferred register set is
43495         the Altivec/VMX registers for the 128-bit operations.
43496
43497         * config/rs6000/rs6000-protos.h (rs6000_move_128bit_ok_p): Add
43498         declarations.
43499         (rs6000_split_128bit_ok_p): Likewise.
43500
43501         * config/rs6000/rs6000-builtin.def (BU_P8V_AV_3): Add new support
43502         macros for creating ISA 2.07 normal and overloaded builtin
43503         functions with 3 arguments.
43504         (BU_P8V_OVERLOAD_3): Likewise.
43505         (VPERM_1T): Add support for V1TImode in 128-bit vector operations
43506         for use as overloaded functions.
43507         (VPERM_1TI_UNS): Likewise.
43508         (VSEL_1TI): Likewise.
43509         (VSEL_1TI_UNS): Likewise.
43510         (ST_INTERNAL_1ti): Likewise.
43511         (LD_INTERNAL_1ti): Likewise.
43512         (XXSEL_1TI): Likewise.
43513         (XXSEL_1TI_UNS): Likewise.
43514         (VPERM_1TI): Likewise.
43515         (VPERM_1TI_UNS): Likewise.
43516         (XXPERMDI_1TI): Likewise.
43517         (SET_1TI): Likewise.
43518         (LXVD2X_V1TI): Likewise.
43519         (STXVD2X_V1TI): Likewise.
43520         (VEC_INIT_V1TI): Likewise.
43521         (VEC_SET_V1TI): Likewise.
43522         (VEC_EXT_V1TI): Likewise.
43523         (EQV_V1TI): Likewise.
43524         (NAND_V1TI): Likewise.
43525         (ORC_V1TI): Likewise.
43526         (VADDCUQ): Add support for 128-bit integer arithmetic instructions
43527         added in ISA 2.07.  Add both normal 'altivec' builtins, and the
43528         overloaded builtin.
43529         (VADDUQM): Likewise.
43530         (VSUBCUQ): Likewise.
43531         (VADDEUQM): Likewise.
43532         (VADDECUQ): Likewise.
43533         (VSUBEUQM): Likewise.
43534         (VSUBECUQ): Likewise.
43535
43536         * config/rs6000/rs6000-c.c (__int128_type): New static to hold
43537         __int128_t and __uint128_t types.
43538         (__uint128_type): Likewise.
43539         (altivec_categorize_keyword): Add support for vector __int128_t,
43540         vector __uint128_t, vector __int128, and vector unsigned __int128
43541         as a container type for TImode operations that need to be done in
43542         VSX/Altivec registers.
43543         (rs6000_macro_to_expand): Likewise.
43544         (altivec_overloaded_builtins): Add ISA 2.07 overloaded functions
43545         to support 128-bit integer instructions vaddcuq, vadduqm,
43546         vaddecuq, vaddeuqm, vsubcuq, vsubuqm, vsubecuq, vsubeuqm.
43547         (altivec_resolve_overloaded_builtin): Add support for V1TImode.
43548
43549         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
43550         for V1TImode, and set up preferences to use VSX/Altivec registers.
43551         Setup VSX reload handlers.
43552         (rs6000_debug_reg_global): Likewise.
43553         (rs6000_init_hard_regno_mode_ok): Likewise.
43554         (rs6000_preferred_simd_mode): Likewise.
43555         (vspltis_constant): Do not allow V1TImode as easy altivec constants.
43556         (easy_altivec_constant): Likewise.
43557         (output_vec_const_move): Likewise.
43558         (rs6000_expand_vector_set): Convert V1TImode set and extract to
43559         simple move.
43560         (rs6000_expand_vector_extract): Likewise.
43561         (reg_offset_addressing_ok_p): Setup V1TImode to use VSX reg+reg
43562         addressing.
43563         (rs6000_const_vec): Add support for V1TImode.
43564         (rs6000_emit_le_vsx_load): Swap double words when loading or
43565         storing TImode/V1TImode.
43566         (rs6000_emit_le_vsx_store): Likewise.
43567         (rs6000_emit_le_vsx_move): Likewise.
43568         (rs6000_emit_move): Add support for V1TImode.
43569         (altivec_expand_ld_builtin): Likewise.
43570         (altivec_expand_st_builtin): Likewise.
43571         (altivec_expand_vec_init_builtin): Likewise.
43572         (altivec_expand_builtin): Likewise.
43573         (rs6000_init_builtins): Add support for V1TImode type.  Add
43574         support for ISA 2.07 128-bit integer builtins.  Define type names
43575         for the VSX/Altivec vector types.
43576         (altivec_init_builtins): Add support for overloaded vector
43577         functions with V1TImode type.
43578         (rs6000_preferred_reload_class): Prefer Altivec registers for V1TImode.
43579         (rs6000_move_128bit_ok_p): Move 128-bit move/split validation to
43580         external function.
43581         (rs6000_split_128bit_ok_p): Likewise.
43582         (rs6000_handle_altivec_attribute): Create V1TImode from vector
43583         __int128_t and vector __uint128_t.
43584
43585         * config/rs6000/vsx.md (VSX_L): Add V1TImode to vector iterators
43586         and mode attributes.
43587         (VSX_M): Likewise.
43588         (VSX_M2): Likewise.
43589         (VSm): Likewise.
43590         (VSs): Likewise.
43591         (VSr): Likewise.
43592         (VSv): Likewise.
43593         (VS_scalar): Likewise.
43594         (VS_double): Likewise.
43595         (vsx_set_v1ti): New builtin function to create V1TImode from TImode.
43596
43597         * config/rs6000/rs6000.h (TARGET_VADDUQM): New macro to say whether
43598         we support the ISA 2.07 128-bit integer arithmetic instructions.
43599         (ALTIVEC_OR_VSX_VECTOR_MODE): Add V1TImode.
43600         (enum rs6000_builtin_type_index): Add fields to hold V1TImode
43601         and TImode types for use with the builtin functions.
43602         (V1TI_type_node): Likewise.
43603         (unsigned_V1TI_type_node): Likewise.
43604         (intTI_type_internal_node): Likewise.
43605         (uintTI_type_internal_node): Likewise.
43606
43607         * config/rs6000/altivec.md (UNSPEC_VADDCUQ): New unspecs for ISA 2.07
43608         128-bit builtin functions.
43609         (UNSPEC_VADDEUQM): Likewise.
43610         (UNSPEC_VADDECUQ): Likewise.
43611         (UNSPEC_VSUBCUQ): Likewise.
43612         (UNSPEC_VSUBEUQM): Likewise.
43613         (UNSPEC_VSUBECUQ): Likewise.
43614         (VM): Add V1TImode to vector mode iterators.
43615         (VM2): Likewise.
43616         (VI_unit): Likewise.
43617         (altivec_vadduqm): Add ISA 2.07 128-bit binary builtins.
43618         (altivec_vaddcuq): Likewise.
43619         (altivec_vsubuqm): Likewise.
43620         (altivec_vsubcuq): Likewise.
43621         (altivec_vaddeuqm): Likewise.
43622         (altivec_vaddecuq): Likewise.
43623         (altivec_vsubeuqm): Likewise.
43624         (altivec_vsubecuq): Likewise.
43625
43626         * config/rs6000/rs6000.md (FMOVE128_GPR): Add V1TImode to vector
43627         mode iterators.
43628         (BOOL_128): Likewise.
43629         (BOOL_REGS_OUTPUT): Likewise.
43630         (BOOL_REGS_OP1): Likewise.
43631         (BOOL_REGS_OP2): Likewise.
43632         (BOOL_REGS_UNARY): Likewise.
43633         (BOOL_REGS_AND_CR0): Likewise.
43634
43635         * config/rs6000/altivec.h (vec_vaddcuq): Add support for ISA 2.07
43636         128-bit integer builtin support.
43637         (vec_vadduqm): Likewise.
43638         (vec_vaddecuq): Likewise.
43639         (vec_vaddeuqm): Likewise.
43640         (vec_vsubecuq): Likewise.
43641         (vec_vsubeuqm): Likewise.
43642         (vec_vsubcuq): Likewise.
43643         (vec_vsubuqm): Likewise.
43644
43645         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
43646         Document vec_vaddcuq, vec_vadduqm, vec_vaddecuq, vec_vaddeuqm,
43647         vec_subecuq, vec_subeuqm, vec_vsubcuq, vec_vsubeqm builtins adding
43648         128-bit integer add/subtract to ISA 2.07.
43649
43650 2014-03-12  Joern Rennecke  <joern.rennecke@embecosm.com>
43651
43652         * config/arc/arc.c (arc_predicate_delay_insns):
43653         Fix third argument passed to conditionalize_nonjump.
43654
43655 2014-03-12  Yufeng Zhang  <yufeng.zhang@arm.com>
43656
43657         * config/aarch64/aarch64-builtins.c
43658         (aarch64_builtin_vectorized_function): Add BUILT_IN_LFLOORF,
43659         BUILT_IN_LLFLOOR, BUILT_IN_LCEILF and BUILT_IN_LLCEIL.
43660         * config/aarch64/arm_neon.h (vcvtaq_u64_f64): Call __builtin_llfloor
43661         instead of __builtin_lfloor.
43662         (vcvtnq_u64_f64): Call __builtin_llceil instead of __builtin_lceil.
43663
43664 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43665
43666         * tree-ssa-ifcombine.c (forwarder_block_to): New function.
43667         (tree_ssa_ifcombine_bb_1): New function.
43668         (tree_ssa_ifcombine_bb): Use it.  Handle also cases where else_bb
43669         is an empty forwarder block to then_bb or vice versa and then_bb
43670         and else_bb are effectively swapped.
43671
43672 2014-03-12  Christian Bruel  <christian.bruel@st.com>
43673
43674         PR target/60264
43675         * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): Emit a
43676         REG_CFA_DEF_CFA note.
43677         (arm_expand_epilogue_apcs_frame): call arm_add_cfa_adjust_cfa_note.
43678         (arm_unwind_emit): Allow REG_CFA_DEF_CFA.
43679
43680 2014-03-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
43681
43682         PR tree-optimization/60454
43683         * tree-ssa-math-opts.c (find_bswap_1): Fix bswap detection.
43684
43685 2014-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43686
43687         * config.gcc (aarch64*-*-*): Use ISA flags from aarch64-arches.def.
43688         Do not define target_cpu_default2 to generic.
43689         * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Use generic cpu.
43690         * config/aarch64/aarch64.c (aarch64_override_options): Update comment.
43691         * config/aarch64/aarch64-arches.def (armv8-a): Use generic cpu.
43692
43693 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43694             Marc Glisse  <marc.glisse@inria.fr>
43695
43696         PR tree-optimization/60502
43697         * tree-ssa-reassoc.c (eliminate_not_pairs): Use build_all_ones_cst
43698         instead of build_low_bits_mask.
43699
43700 2014-03-12  Jakub Jelinek  <jakub@redhat.com>
43701
43702         PR middle-end/60482
43703         * tree-vrp.c (register_edge_assert_for_1): Don't add assert
43704         if there are multiple uses, but op doesn't live on E edge.
43705         * tree-cfg.c (assert_unreachable_fallthru_edge_p): Also ignore
43706         clobber stmts before __builtin_unreachable.
43707
43708 2014-03-11  Richard Sandiford  <rdsandiford@googlemail.com>
43709
43710         * builtins.c (expand_builtin_setjmp_receiver): Use and clobber
43711         hard_frame_pointer_rtx.
43712         * cse.c (cse_insn): Remove volatile check.
43713         * cselib.c (cselib_process_insn): Likewise.
43714         * dse.c (scan_insn): Likewise.
43715
43716 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43717
43718         * config/arc/arc.c (conditionalize_nonjump): New function,
43719         broken out of ...
43720         (arc_ifcvt): ... this.
43721         (arc_predicate_delay_insns): Use it.
43722
43723 2014-03-11  Joern Rennecke  <joern.rennecke@embecosm.com>
43724
43725         * config/arc/predicates.md (extend_operand): During/after reload,
43726         allow const_int_operand.
43727         * config/arc/arc.md (mulsidi3_700): Use extend_operand predicate.
43728         (umulsidi3_700): Likewise.  Change operand 2 constraint back to "cL".
43729         (mulsi3_highpart): Change operand 2 constraint alternatives 2 and 3
43730         to "i".
43731         (umulsi3_highpart_i): Likewise.
43732
43733 2014-03-11  Richard Biener  <rguenther@suse.de>
43734
43735         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
43736         Add asserts to guard possible wrong-code bugs.
43737
43738 2014-03-11  Richard Biener  <rguenther@suse.de>
43739
43740         PR tree-optimization/60429
43741         PR tree-optimization/60485
43742         * tree-ssa-structalias.c (set_union_with_increment): Properly
43743         take into account all fields that overlap the shifted vars.
43744         (do_sd_constraint): Likewise.
43745         (do_ds_constraint): Likewise.
43746         (get_constraint_for_ptr_offset): Likewise.
43747
43748 2014-03-11  Chung-Lin Tang  <cltang@codesourcery.com>
43749
43750         * config/nios2/nios2.c (machine_function): Add fp_save_offset field.
43751         (nios2_compute_frame_layout):
43752         Add calculation of cfun->machine->fp_save_offset.
43753         (nios2_expand_prologue): Correct setting of frame pointer register
43754         in prologue.
43755         (nios2_expand_epilogue): Update recovery of stack pointer from
43756         frame pointer accordingly.
43757         (nios2_initial_elimination_offset): Update calculation of offset
43758         for eliminating to HARD_FRAME_POINTER_REGNUM.
43759
43760 2014-03-10  Jakub Jelinek  <jakub@redhat.com>
43761
43762         PR ipa/60457
43763         * ipa.c (symtab_remove_unreachable_nodes): Don't call
43764         cgraph_get_create_node on VAR_DECLs.
43765
43766 2014-03-10  Richard Biener  <rguenther@suse.de>
43767
43768         PR middle-end/60474
43769         * tree.c (signed_or_unsigned_type_for): Handle OFFSET_TYPEs.
43770
43771 2014-03-08  Douglas B Rupp  <rupp@gnat.com>
43772
43773         * config/vms/vms.opt (vms_float_format): New variable.
43774
43775 2014-03-08  Tobias Burnus  <burnus@net-b.de>
43776
43777         * doc/invoke.texi (-fcilkplus): Update implementation status.
43778
43779 2014-03-08  Paulo Matos  <paulo@matos-sorge.com>
43780             Richard Biener  <rguenther@suse.de>
43781
43782         * lto-wrapper.c (merge_and_complain): Ensure -fshort-double is used
43783         consistently accross all TUs.
43784         (run_gcc): Enable -fshort-double automatically at link at link-time
43785         and disallow override.
43786
43787 2014-03-08  Richard Sandiford  <rdsandiford@googlemail.com>
43788
43789         PR target/58271
43790         * config/mips/mips.c (mips_option_override): Promote -mpaired-single
43791         warning to an error.  Disable TARGET_PAIRED_SINGLE and TARGET_MIPS3D
43792         if they can't be used.
43793
43794 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43795
43796         * configure.ac (HAVE_AS_IX86_TLSLDMPLT): Improve test
43797         for Solaris 11/x86 ld.
43798         * configure: Regenerate.
43799
43800 2014-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
43801
43802         * configure.ac (TLS_SECTION_ASM_FLAG): Save as tls_section_flag.
43803         (LIB_TLS_SPEC): Save as ld_tls_libs.
43804         (HAVE_AS_IX86_TLSLDMPLT): Define as 1/0.
43805         (HAVE_AS_IX86_TLSLDM): New test.
43806         * configure, config.in: Regenerate.
43807         * config/i386/i386.c (legitimize_tls_address): Fall back to
43808         TLS_MODEL_GLOBAL_DYNAMIC on 32-bit Solaris/x86 if tool chain
43809         cannot support TLS_MODEL_LOCAL_DYNAMIC.
43810         * config/i386/i386.md (*tls_local_dynamic_base_32_gnu): Use if
43811         instead of #ifdef in HAVE_AS_IX86_TLSLDMPLT test.
43812
43813 2014-03-07  Paulo Matos  <paulo@matos-sorge.com>
43814
43815         * common.opt (fira-loop-pressure): Mark as optimization.
43816
43817 2014-03-07  Thomas Schwinge  <thomas@codesourcery.com>
43818
43819         * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not
43820         an OpenMP mappable type.
43821
43822 2014-03-06  Matthias Klose  <doko@ubuntu.com>
43823
43824         * Makefile.in (s-mlib): Only pass MULTIARCH_DIRNAME if
43825         MULTILIB_OSDIRNAMES is not defined.
43826
43827 2014-03-06  Jakub Jelinek  <jakub@redhat.com>
43828             Meador Inge  <meadori@codesourcery.com>
43829
43830         PR target/58595
43831         * config/arm/arm.c (arm_tls_symbol_p): Remove.
43832         (arm_legitimize_address): Call legitimize_tls_address for any
43833         arm_tls_referenced_p expression, handle constant addend.  Call it
43834         before testing for !TARGET_ARM.
43835         (thumb_legitimize_address): Don't handle arm_tls_symbol_p here.
43836
43837 2014-03-06  Richard Biener  <rguenther@suse.de>
43838
43839         PR middle-end/60445
43840         PR lto/60424
43841         PR lto/60427
43842         Revert
43843         2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
43844
43845         * tree-streamer.c (record_common_node): Assert we don't record
43846         nodes with type double.
43847         (preload_common_node): Skip type double, complex double and double
43848         pointer since it is now frontend dependent due to fshort-double option.
43849
43850 2014-03-06  Richard Biener  <rguenther@suse.de>
43851
43852         * gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
43853         or -fno-lto is specified and the linker has full plugin support.
43854         * collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is enabled.
43855         (main): Remove -flto processing, adjust lto_mode using use_plugin late.
43856         * lto-wrapper.c (merge_and_complain): Merge compile-time
43857         optimization levels.
43858         (run_gcc): And pass it through to the link options.
43859
43860 2014-03-06  Alexandre Oliva  <aoliva@redhat.com>
43861
43862         PR debug/60381
43863         Revert:
43864         2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
43865         PR debug/59992
43866         * cselib.c (remove_useless_values): Skip to avoid quadratic
43867         behavior if the condition moved from...
43868         (cselib_process_insn): ... here holds.
43869
43870 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
43871
43872         PR plugins/59335
43873         * Makefile.in (PLUGIN_HEADERS): Add tree-phinodes.h, stor-layout.h,
43874         ssa-iterators.h, $(RESOURCE_H) and tree-cfgcleanup.h.
43875
43876         PR plugins/59335
43877         * config/i386/t-i386 (OPTIONS_H_EXTRA): Add stringop.def.
43878         (TM_H): Add x86-tune.def.
43879
43880 2014-03-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
43881
43882         * config/aarch64/aarch64.c (generic_tunings):
43883         Use cortexa57_extra_costs.
43884
43885 2014-03-05  Jakub Jelinek  <jakub@redhat.com>
43886
43887         PR lto/60404
43888         * cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
43889         of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
43890         * tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
43891         cost for in_lto_p.
43892
43893 2014-03-04  Heiher  <r@hev.cc>
43894
43895         * config/mips/mips-cpus.def (loongson3a): Mark as a MIPS64r2 processor.
43896         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Adjust accordingly.
43897
43898 2014-03-04  Uros Bizjak  <ubizjak@gmail.com>
43899
43900         * config/i386/predicates.md (const2356_operand): Change to ...
43901         (const2367_operand): ... this.
43902         * config/i386/sse.md (avx512pf_scatterpf<mode>sf): Use
43903         const2367_operand.
43904         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
43905         (*avx512pf_scatterpf<mode>sf): Ditto.
43906         (avx512pf_scatterpf<mode>df): Ditto.
43907         (*avx512pf_scatterpf<mode>df_mask): Ditto.
43908         (*avx512pf_scatterpf<mode>df): Ditto.
43909         * config/i386/i386.c (ix86_expand_builtin): Update
43910         incorrect hint operand error message.
43911
43912 2014-03-04  Richard Biener  <rguenther@suse.de>
43913
43914         * lto-section-in.c (lto_get_section_data): Fix const cast.
43915
43916 2014-03-04  Paulo Matos  <paulo@matos-sorge.com>
43917
43918         * tree-streamer.c (record_common_node): Assert we don't record
43919         nodes with type double.
43920         (preload_common_node): Skip type double, complex double and double
43921         pointer since it is now frontend dependent due to fshort-double option.
43922
43923 2014-03-04  Richard Biener  <rguenther@suse.de>
43924
43925         PR lto/60405
43926         * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version check.
43927         (lto_input_toplevel_asms): Likewise.
43928         * lto-section-in.c (lto_get_section_data): Instead do it here
43929         for every section.
43930
43931 2014-03-04  Richard Biener  <rguenther@suse.de>
43932
43933         PR tree-optimization/60382
43934         * tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
43935         dead PHIs a reduction.
43936
43937 2014-03-03  Uros Bizjak  <ubizjak@gmail.com>
43938
43939         * config/i386/xmmintrin.h (enum _mm_hint) <_MM_HINT_ET0>: Correct
43940         hint value.
43941         (_mm_prefetch): Move out of GCC target("sse") pragma.
43942         * config/i386/prfchwintrin.h (_m_prefetchw): Move out of
43943         GCC target("prfchw") pragma.
43944         * config/i386/i386.md (prefetch): Emit prefetchwt1 only
43945         for locality <= 2.
43946         * config/i386/i386.c (ix86_option_override_internal): Enable
43947         -mprfchw with -mprefetchwt1.
43948
43949 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
43950
43951         * config/arc/arc.md (casesi_load) <length attribute alternative 0>:
43952         Mark as varying.
43953
43954 2014-03-03  Joern Rennecke  <joern.rennecke@embecosm.com>
43955
43956         * opts.h (CL_PCH_IGNORE): Define.
43957         * targhooks.c (option_affects_pch_p):
43958         Return false for options that have CL_PCH_IGNORE set.
43959         * opt-functions.awk: Process PchIgnore.
43960         * doc/options.texi: Document PchIgnore.
43961
43962         * config/arc/arc.opt (misize): Add PchIgnore property.
43963
43964 2014-03-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
43965
43966         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
43967         reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
43968         constraint on constants to permit them being loaded into
43969         GENERAL_REGS or BASE_REGS.
43970
43971 2014-03-03  Nick Clifton  <nickc@redhat.com>
43972
43973         * config/rl78/rl78-real.md (cbranchsi4_real_signed): Add
43974         anti-cacnonical alternatives.
43975         (negandhi3_real): New pattern.
43976         * config/rl78/rl78-virt.md (negandhi3_virt): New pattern.
43977
43978 2014-03-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
43979
43980         * config/avr/avr-mcus.def: Remove atxmega16x1.
43981         * config/avr/avr-tables.opt: Regenerate.
43982         * config/avr/t-multilib: Regenerate.
43983         * doc/avr-mmcu.texi: Regenerate.
43984
43985 2014-03-03  Tobias Grosser  <tobias@grosser.es>
43986             Mircea Namolaru  <mircea.namolaru@inria.fr>
43987
43988         PR tree-optimization/58028
43989         * graphite-clast-to-gimple.c (set_cloog_options): Don't remove
43990         scalar dimensions.
43991
43992 2014-03-03  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
43993
43994         * config/arm/neon.md (*movmisalign<mode>): Legitimize addresses
43995         not handled by recognizers.
43996
43997 2014-03-03  Jakub Jelinek  <jakub@redhat.com>
43998
43999         PR middle-end/60175
44000         * function.c (expand_function_end): Don't emit
44001         clobber_return_register sequence if clobber_after is a BARRIER.
44002         * cfgexpand.c (construct_exit_block): Append instructions before
44003         return_label to prev_bb.
44004
44005 2014-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44006
44007         * config/rs6000/constraints.md: Document reserved use of "wc".
44008
44009 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44010
44011         PR ipa/60150
44012         * ipa.c (function_and_variable_visibility): When dissolving comdat
44013         group, also set all symbols to local.
44014
44015 2014-03-02  Jan Hubicka  <hubicka@ucw.cz>
44016
44017         PR ipa/60306
44018
44019         Revert:
44020         2013-12-14  Jan Hubicka  <jh@suse.cz>
44021         PR middle-end/58477
44022         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Skip clobbers.
44023
44024 2014-03-02  Jon Beniston  <jon@beniston.com>
44025
44026         PR bootstrap/48230
44027         PR bootstrap/50927
44028         PR bootstrap/52466
44029         PR target/46898
44030         * config/lm32/lm32.c (lm32_legitimate_constant_p): Remove, as incorrect.
44031         (TARGET_LEGITIMATE_CONSTANT_P): Undefine, as not needed.
44032         * config/lm32/lm32.md (movsi_insn): Add 32-bit immediate support.
44033         (simple_return, *simple_return): New patterns
44034         * config/lm32/predicates.md (movsi_rhs_operand): Remove as obsolete.
44035         * configure.ac (force_sjlj_exceptions): Force sjlj exceptions for lm32.
44036
44037 2014-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
44038
44039         * dwarf2out.c (gen_subprogram_die): Tidy.
44040
44041 2014-03-01  Oleg Endo  <olegendo@gcc.gnu.org>
44042
44043         PR target/60071
44044         * config/sh/sh.md (*mov_t_msb_neg): Split into ...
44045         (*mov_t_msb_neg_negc): ... this new insn.
44046
44047 2014-02-28  Jason Merrill  <jason@redhat.com>
44048
44049         PR c++/58678
44050         * ipa-devirt.c (ipa_devirt): Don't choose an implicitly-declared
44051         function.
44052
44053 2014-02-28  Paolo Carlini  <paolo.carlini@oracle.com>
44054
44055         PR c++/60314
44056         * dwarf2out.c (decltype_auto_die): New static.
44057         (gen_subprogram_die): Handle 'decltype(auto)' like 'auto'.
44058         (gen_type_die_with_usage): Handle 'decltype(auto)'.
44059         (is_cxx_auto): Likewise.
44060
44061 2014-02-28  Ian Bolton  <ian.bolton@arm.com>
44062
44063         * config/aarch64/aarch64.h: Define __ARM_NEON by default if
44064         we are not using general regs only.
44065
44066 2014-02-28  Richard Biener  <rguenther@suse.de>
44067
44068         PR target/60280
44069         * tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
44070         previous fix and only allow to remove trivial pre-headers
44071         and latches.  Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
44072         (remove_forwarder_block): Properly update the latch of a loop.
44073
44074 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44075
44076         PR debug/59992
44077         * cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
44078         (cselib_preserved_hash_table): New.
44079         (preserve_constants_and_equivs): Move preserved vals to it.
44080         (cselib_find_slot): Look it up first.
44081         (cselib_init): Initialize it.
44082         (cselib_finish): Release it.
44083         (dump_cselib_table): Dump it.
44084
44085 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44086
44087         PR debug/59992
44088         * cselib.c (remove_useless_values): Skip to avoid quadratic
44089         behavior if the condition moved from...
44090         (cselib_process_insn): ... here holds.
44091
44092 2014-02-28  Alexandre Oliva  <aoliva@redhat.com>
44093
44094         PR debug/57232
44095         * var-tracking.c (vt_initialize): Apply the same condition to
44096         preserve the CFA base value.
44097
44098 2014-02-28  Joey Ye  <joey.ye@arm.com>
44099
44100         PR target/PR60169
44101         * config/arm/arm.c (thumb_far_jump_used_p): Don't change
44102         if reload in progress or completed.
44103
44104 2014-02-28  Tobias Burnus  <burnus@net-b.de>
44105
44106         PR middle-end/60147
44107         * tree-pretty-print.c (dump_generic_node, print_declaration): Handle
44108         NAMELIST_DECL.
44109
44110 2014-02-27  H.J. Lu  <hongjiu.lu@intel.com>
44111
44112         * doc/tm.texi.in (Condition Code Status): Update documention for
44113         relative locations of cc0-setter and cc0-user.
44114
44115 2014-02-27  Jeff Law  <law@redhat.com>
44116
44117         PR rtl-optimization/52714
44118         * combine.c (try_combine): When splitting an unrecognized PARALLEL
44119         into two independent simple sets, if I3 is a jump, ensure the
44120         pattern we place into I3 is a (set (pc) ...).
44121
44122 2014-02-27  Mikael Pettersson  <mikpe@it.uu.se>
44123             Jeff Law  <law@redhat.com>
44124
44125         PR rtl-optimization/49847
44126         * cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
44127         are in different blocks.
44128         * doc/tm.texi (Condition Code Status): Update documention for
44129         relative locations of cc0-setter and cc0-user.
44130
44131 2014-02-27  Vladimir Makarov  <vmakarov@redhat.com>
44132
44133         PR target/59222
44134         * lra.c (lra_emit_add): Check SUBREG too.
44135
44136 2014-02-27  Andreas Schwab  <schwab@suse.de>
44137
44138         * config/m68k/m68k.c (m68k_option_override): Disable
44139         -flive-range-shrinkage for classic m68k.
44140         (m68k_override_options_after_change): Likewise.
44141
44142 2014-02-27  Marek Polacek  <polacek@redhat.com>
44143
44144         PR middle-end/59223
44145         * tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
44146         -Wmaybe-uninitialized.
44147
44148 2014-02-27  Alan Modra  <amodra@gmail.com>
44149
44150         PR target/57936
44151         * reload1.c (emit_input_reload_insns): When reload_override_in,
44152         set old to rl->in_reg when rl->in_reg is a subreg.
44153
44154 2014-02-26  Richard Biener  <rguenther@suse.de>
44155
44156         PR bootstrap/60343
44157         * lra-assigns.c (spill_for): Avoid mixed-sign comparison.
44158
44159 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44160
44161         * common/config/i386/predicates.md (const1256_operand): Remove.
44162         (const2356_operand): New.
44163         (const_1_to_2_operand): Remove.
44164         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
44165         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
44166         (*avx512pf_gatherpf<mode>sf): Ditto.
44167         (avx512pf_gatherpf<mode>df): Ditto.
44168         (*avx512pf_gatherpf<mode>df_mask): Ditto.
44169         (*avx512pf_gatherpf<mode>df): Ditto.
44170         (avx512pf_scatterpf<mode>sf): Ditto.
44171         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
44172         (*avx512pf_scatterpf<mode>sf): Ditto.
44173         (avx512pf_scatterpf<mode>df): Ditto.
44174         (*avx512pf_scatterpf<mode>df_mask): Ditto.
44175         (*avx512pf_scatterpf<mode>df): Ditto.
44176         * common/config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET0.
44177
44178 2014-02-26  Ilya Tocar  <ilya.tocar@intel.com>
44179
44180         * config/i386/avx512fintrin.h (_mm512_testn_epi32_mask),
44181         (_mm512_mask_testn_epi32_mask), (_mm512_testn_epi64_mask),
44182         (_mm512_mask_testn_epi64_mask): Move to ...
44183         * config/i386/avx512cdintrin.h: Here.
44184         * config/i386/i386.c (bdesc_args): Change MASK_ISA for testnm.
44185         * config/i386/sse.md (avx512f_vmscalef<mode><round_name>): Remove %.
44186         (avx512f_scalef<mode><mask_name><round_name>): Ditto.
44187         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Change conditon to
44188         TARGET_AVX512F from TARGET_AVX512CD.
44189
44190 2014-02-26  Richard Biener  <rguenther@suse.de>
44191
44192         PR ipa/60327
44193         * ipa.c (walk_polymorphic_call_targets): Properly guard
44194         call to inline_update_overall_summary.
44195
44196 2014-02-26  Bin Cheng  <bin.cheng@arm.com>
44197
44198         PR target/60280
44199         * tree-cfgcleanup.c (tree_forwarder_block_p): Protect loop preheaders
44200         and latches only if requested.  Fix latch if it is removed.
44201         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Set
44202         LOOPS_HAVE_PREHEADERS.
44203
44204 2014-02-25  Andrew Pinski  <apinski@cavium.com>
44205
44206         * builtins.c (expand_builtin_thread_pointer): Create a new target
44207         when the target is NULL.
44208
44209 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
44210
44211         PR rtl-optimization/60317
44212         * params.def (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44213         * params.h (LRA_MAX_CONSIDERED_RELOAD_PSEUDOS): New.
44214         * lra-assigns.c: Include params.h.
44215         (spill_for): Use LRA_MAX_CONSIDERED_RELOAD_PSEUDOS as guard for
44216         other reload pseudos considerations.
44217
44218 2014-02-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44219
44220         * config/rs6000/vector.md (*vector_unordered<mode>): Change split
44221         to use canonical form for nor<mode>3.
44222
44223 2014-02-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
44224
44225         PR target/55426
44226         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Allow 128 to 64-bit
44227         conversions.
44228
44229 2014-02-25  Ilya Tocar  <ilya.tocar@intel.com>
44230
44231         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PREFETCHWT1_SET),
44232         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): New.
44233         (ix86_handle_option): Handle OPT_mprefetchwt1.
44234         * config/i386/cpuid.h (bit_PREFETCHWT1): New.
44235         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
44236         PREFETCHWT1 CPUID.
44237         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
44238         OPTION_MASK_ISA_PREFETCHWT1.
44239         * config/i386/i386.c (ix86_target_string): Handle mprefetchwt1.
44240         (PTA_PREFETCHWT1): New.
44241         (ix86_option_override_internal): Handle PTA_PREFETCHWT1.
44242         (ix86_valid_target_attribute_inner_p): Handle OPT_mprefetchwt1.
44243         * config/i386/i386.h (TARGET_PREFETCHWT1, TARGET_PREFETCHWT1_P): New.
44244         * config/i386/i386.md (prefetch): Check TARGET_PREFETCHWT1
44245         (*prefetch_avx512pf_<mode>_: Change into ...
44246         (*prefetch_prefetchwt1_<mode>: This.
44247         * config/i386/i386.opt (mprefetchwt1): New.
44248         * config/i386/xmmintrin.h (_mm_hint): Add _MM_HINT_ET1.
44249         (_mm_prefetch): Handle intent to write.
44250         * doc/invoke.texi (mprefetchwt1), (mno-prefetchwt1): Doccument.
44251
44252 2014-02-25  Richard Biener  <rguenther@suse.de>
44253
44254         PR middle-end/60291
44255         * emit-rtl.c (mem_attrs_htab): Remove.
44256         (mem_attrs_htab_hash): Likewise.
44257         (mem_attrs_htab_eq): Likewise.
44258         (set_mem_attrs): Always allocate new mem-attrs when something changed.
44259         (init_emit_once): Do not allocate mem_attrs_htab.
44260
44261 2014-02-25  Richard Biener  <rguenther@suse.de>
44262
44263         PR lto/60319
44264         * lto-opts.c (lto_write_options): Output non-explicit conservative
44265         -fwrapv, -fno-trapv and -fno-strict-overflow.
44266         * lto-wrapper.c (merge_and_complain): Handle merging those options.
44267         (run_gcc): And pass them through.
44268
44269 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44270
44271         * sel-sched.c (calculate_new_fences): New parameter ptime.
44272         Calculate it as a maximum over all fence cycles.
44273         (sel_sched_region_2): Adjust the call to calculate_new_fences.
44274         Print the final schedule timing when sched_verbose.
44275
44276 2014-02-25  Andrey Belevantsev  <abel@ispras.ru>
44277
44278         PR rtl-optimization/60292
44279         * sel-sched.c (fill_vec_av_set): Do not reset target availability
44280         bit fot the fence instruction.
44281
44282 2014-02-24  Alangi Derick  <alangiderick@gmail.com>
44283
44284         * calls.h: Fix typo in comment.
44285
44286 2014-02-24  John David Anglin  <danglin@gcc.gnu.org>
44287
44288         * config/pa/pa.c (pa_output_move_double): Don't valididate when
44289         adjusting offsetable addresses.
44290
44291 2014-02-24  Guozhi Wei  <carrot@google.com>
44292
44293         * sparseset.h (sparseset_pop): Fix the wrong index.
44294
44295 2014-02-24  Walter Lee  <walt@tilera.com>
44296
44297         * config.gcc (tilepro-*-*): Change to tilepro*-*-*.
44298         (tilegx-*-linux*): Change to tilegx*-*-linux*; Support tilegxbe
44299         triplet.
44300         * common/config/tilegx/tilegx-common.c
44301         (TARGET_DEFAULT_TARGET_FLAGS): Define.
44302         * config/tilegx/linux.h (ASM_SPEC): Add endian_spec.
44303         (LINK_SPEC): Ditto.
44304         * config/tilegx/sync.md (atomic_test_and_set): Handle big endian.
44305         * config/tilegx/tilegx.c (tilegx_return_in_msb): New.
44306         (tilegx_gimplify_va_arg_expr): Handle big endian.
44307         (tilegx_expand_unaligned_load): Ditto.
44308         (tilegx_expand_unaligned_store): Ditto.
44309         (TARGET_RETURN_IN_MSB): New.
44310         * config/tilegx/tilegx.h (TARGET_DEFAULT): New.
44311         (TARGET_ENDIAN_DEFAULT): New.
44312         (TARGET_BIG_ENDIAN): Handle big endian.
44313         (BYTES_BIG_ENDIAN): Ditto.
44314         (WORDS_BIG_ENDIAN): Ditto.
44315         (FLOAT_WORDS_BIG_ENDIAN): Ditto.
44316         (ENDIAN_SPEC): New.
44317         (EXTRA_SPECS): New.
44318         * config/tilegx/tilegx.md (extv): Handle big endian.
44319         (extzv): Ditto.
44320         (insn_st<n>): Ditto.
44321         (insn_st<n>_add<bitsuffix>): Ditto.
44322         (insn_stnt<n>): Ditto.
44323         (insn_stnt<n>_add<bitsuffix>):Ditto.
44324         (vec_interleave_highv8qi): Handle big endian.
44325         (vec_interleave_highv8qi_be): New.
44326         (vec_interleave_highv8qi_le): New.
44327         (insn_v1int_h): Handle big endian.
44328         (vec_interleave_lowv8qi): Handle big endian.
44329         (vec_interleave_lowv8qi_be): New.
44330         (vec_interleave_lowv8qi_le): New.
44331         (insn_v1int_l): Handle big endian.
44332         (vec_interleave_highv4hi): Handle big endian.
44333         (vec_interleave_highv4hi_be): New.
44334         (vec_interleave_highv4hi_le): New.
44335         (insn_v2int_h): Handle big endian.
44336         (vec_interleave_lowv4hi): Handle big endian.
44337         (vec_interleave_lowv4hi_be): New.
44338         (vec_interleave_lowv4hi_le): New.
44339         (insn_v2int_l): Handle big endian.
44340         (vec_interleave_highv2si): Handle big endian.
44341         (vec_interleave_highv2si_be): New.
44342         (vec_interleave_highv2si_le): New.
44343         (insn_v4int_h): Handle big endian.
44344         (vec_interleave_lowv2si): Handle big endian.
44345         (vec_interleave_lowv2si_be): New.
44346         (vec_interleave_lowv2si_le): New.
44347         (insn_v4int_l): Handle big endian.
44348         * config/tilegx/tilegx.opt (mbig-endian): New option.
44349         (mlittle-endian): New option.
44350         * doc/install.texi: Document tilegxbe-linux.
44351         * doc/invoke.texi: Document -mbig-endian and -mlittle-endian.
44352
44353 2014-02-24  Martin Jambor  <mjambor@suse.cz>
44354
44355         PR ipa/60266
44356         * ipa-cp.c (propagate_constants_accross_call): Bail out early if
44357         there are no parameter descriptors.
44358
44359 2014-02-24  Andrey Belevantsev  <abel@ispras.ru>
44360
44361         PR rtl-optimization/60268
44362         * sched-rgn.c (haifa_find_rgns): Move the nr_regions_initial variable
44363         initialization to ...
44364         (sched_rgn_init): ... here.
44365         (schedule_region): Check for SCHED_PRESSURE_NONE earlier.
44366
44367 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44368
44369         * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg
44370         names.
44371
44372 2014-02-23  Edgar E. Iglesias  <edgar.iglesias@xilinx.com>
44373
44374         * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED
44375         definition.
44376
44377 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44378
44379         * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk,
44380         define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK.
44381
44382 2014-02-23  David Holsgrove  <david.holsgrove@xilinx.com>
44383
44384         * config/microblaze/predicates.md: Add cmp_op predicate.
44385         * config/microblaze/microblaze.md: Add branch_compare instruction
44386         which uses cmp_op predicate and emits cmp insn before branch.
44387         * config/microblaze/microblaze.c (microblaze_emit_compare): Rename
44388         to microblaze_expand_conditional_branch and consolidate logic.
44389         (microblaze_expand_conditional_branch): emit branch_compare
44390         insn instead of handling cmp op separate from branch insn.
44391
44392 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44393
44394         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Relax assert
44395         to permit subregs.
44396
44397 2014-02-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44398
44399         * config/rs6000/altivec.md (altivec_lve<VI_char>x): Replace
44400         define_insn with define_expand and new define_insn
44401         *altivec_lve<VI_char>x_internal.
44402         (altivec_stve<VI_char>x): Replace define_insn with define_expand
44403         and new define_insn *altivec_stve<VI_char>x_internal.
44404         * config/rs6000/rs6000-protos.h (altivec_expand_stvex_be): New
44405         prototype.
44406         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Document use by
44407         lve*x built-ins.
44408         (altivec_expand_stvex_be): New function.
44409
44410 2014-02-22  Joern Rennecke  <joern.rennecke@embecosm.com>
44411
44412         * config/avr/avr.c (avr_can_eliminate): Allow elimination from
44413         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM if !frame_pointer_needed.
44414         * config/avr/avr.c (ELIMINABLE_REGS): Add elimination from
44415         ARG_POINTER_REGNUM to STACK_POINTER_REGNUM.
44416
44417 2014-02-21  Vladimir Makarov  <vmakarov@redhat.com>
44418
44419         PR target/60298
44420         * lra-constraints.c (inherit_reload_reg): Use lra_emit_move
44421         instead of emit_move_insn.
44422
44423 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44424
44425         * config/rs6000/altivec.md (altivec_vsumsws): Replace second
44426         vspltw with vsldoi.
44427         (reduc_uplus_v16qi): Use gen_altivec_vsumsws_direct instead of
44428         gen_altivec_vsumsws.
44429
44430 2014-02-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44431
44432         * config/rs6000/altivec.md (altivec_lvxl): Rename as
44433         *altivec_lvxl_<mode>_internal and use VM2 iterator instead of V4SI.
44434         (altivec_lvxl_<mode>): New define_expand incorporating
44435         -maltivec=be semantics where needed.
44436         (altivec_lvx): Rename as *altivec_lvx_<mode>_internal.
44437         (altivec_lvx_<mode>): New define_expand incorporating -maltivec=be
44438         semantics where needed.
44439         (altivec_stvx): Rename as *altivec_stvx_<mode>_internal.
44440         (altivec_stvx_<mode>): New define_expand incorporating
44441         -maltivec=be semantics where needed.
44442         (altivec_stvxl): Rename as *altivec_stvxl_<mode>_internal and use
44443         VM2 iterator instead of V4SI.
44444         (altivec_stvxl_<mode>): New define_expand incorporating
44445         -maltivec=be semantics where needed.
44446         * config/rs6000/rs6000-builtin.def: Add new built-in definitions
44447         LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, LVXL_V16QI,
44448         LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, LVX_V8HI, LVX_V16QI, STVX_V2DF,
44449         STVX_V2DI, STVX_V4SF, STVX_V4SI, STVX_V8HI, STVX_V16QI, STVXL_V2DF,
44450         STVXL_V2DI, STVXL_V4SF, STVXL_V4SI, STVXL_V8HI, STVXL_V16QI.
44451         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Replace
44452         ALTIVEC_BUILTIN_LVX with ALTIVEC_BUILTIN_LVX_<MODE> throughout;
44453         similarly for ALTIVEC_BUILTIN_LVXL, ALTIVEC_BUILTIN_STVX, and
44454         ALTIVEC_BUILTIN_STVXL.
44455         * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be): New prototype.
44456         (altivec_expand_stvx_be): Likewise.
44457         * config/rs6000/rs6000.c (swap_selector_for_mode): New function.
44458         (altivec_expand_lvx_be): Likewise.
44459         (altivec_expand_stvx_be): Likewise.
44460         (altivec_expand_builtin): Add cases for
44461         ALTIVEC_BUILTIN_STVX_<MODE>, ALTIVEC_BUILTIN_STVXL_<MODE>,
44462         ALTIVEC_BUILTIN_LVXL_<MODE>, and ALTIVEC_BUILTIN_LVX_<MODE>.
44463         (altivec_init_builtins): Add definitions for
44464         __builtin_altivec_lvxl_<mode>, __builtin_altivec_lvx_<mode>,
44465         __builtin_altivec_stvx_<mode>, and __builtin_altivec_stvxl_<mode>.
44466
44467 2014-02-21  Catherine Moore  <clm@codesourcery.com>
44468
44469         * doc/invoke.texi (mvirt, mno-virt): Document.
44470         * config/mips/mips.opt (mvirt): New option.
44471         * config/mips/mips.h (ASM_SPEC): Pass mvirt to the assembler.
44472
44473 2014-02-21  Richard Biener  <rguenther@suse.de>
44474
44475         PR tree-optimization/60276
44476         * tree-vectorizer.h (struct _stmt_vec_info): Add min_neg_dist field.
44477         (STMT_VINFO_MIN_NEG_DIST): New macro.
44478         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Record
44479         STMT_VINFO_MIN_NEG_DIST.
44480         * tree-vect-stmts.c (vectorizable_load): Verify if assumptions
44481         made for negative dependence distances still hold.
44482
44483 2014-02-21  Richard Biener  <rguenther@suse.de>
44484
44485         PR middle-end/60291
44486         * tree-ssa-live.c (mark_all_vars_used_1): Do not walk
44487         DECL_INITIAL for globals not in the current function context.
44488
44489 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44490
44491         PR tree-optimization/56490
44492         * params.def (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS): New param.
44493         * tree-ssa-uninit.c: Include params.h.
44494         (compute_control_dep_chain): Add num_calls argument, return false
44495         if it exceed PARAM_UNINIT_CONTROL_DEP_ATTEMPTS param, pass
44496         num_calls to recursive call.
44497         (find_predicates): Change dep_chain into normal array,
44498         cur_chain into auto_vec<edge, MAX_CHAIN_LEN + 1>, add num_calls
44499         variable and adjust compute_control_dep_chain caller.
44500         (find_def_preds): Likewise.
44501
44502 2014-02-21  Thomas Schwinge  <thomas@codesourcery.com>
44503
44504         * gimple-pretty-print.c (dump_gimple_omp_for) [flags & TDF_RAW]
44505         <case GF_OMP_FOR_KIND_CILKSIMD>: Add missing break statement.
44506
44507 2014-02-21  Nick Clifton  <nickc@redhat.com>
44508
44509         * config/stormy16/stormy16.md (pushdqi1): Add mode to post_inc.
44510         (pushhi1): Likewise.
44511         (popqi1): Add mode to pre_dec.
44512         (pophi1): Likewise.
44513
44514 2014-02-21  Jakub Jelinek  <jakub@redhat.com>
44515
44516         * config/i386/i386.c (ix86_expand_vec_perm): Use V8SImode
44517         mode for mask of V8SFmode permutation.
44518
44519 2014-02-20  Richard Henderson  <rth@redhat.com>
44520
44521         PR c++/60272
44522         * builtins.c (expand_builtin_atomic_compare_exchange): Always make
44523         a new pseudo for OLDVAL.
44524
44525 2014-02-20  Jakub Jelinek  <jakub@redhat.com>
44526
44527         PR target/57896
44528         * config/i386/i386.c (expand_vec_perm_interleave2): Don't call
44529         gen_reg_rtx if d->testing_p.
44530         (expand_vec_perm_pshufb2, expand_vec_perm_broadcast_1): Return early
44531         if d->testing_p and we will certainly return true.
44532         (expand_vec_perm_even_odd_1): Likewise.  Don't call gen_reg_rtx
44533         if d->testing_p.
44534
44535 2014-02-20  Uros Bizjak  <ubizjak@gmail.com>
44536
44537         * emit-rtl.c (gen_reg_rtx): Assert that
44538         crtl->emit.regno_pointer_align_length is non-zero.
44539
44540 2014-02-20  Richard Henderson  <rth@redhat.com>
44541
44542         PR c++/60272
44543         * builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
44544         on failure the store back into EXPECT.
44545
44546 2014-02-20  Chung-Lin Tang  <cltang@codesourcery.com>
44547             Sandra Loosemore  <sandra@codesourcery.com>
44548
44549         * config/nios2/nios2.md (unspec): Add UNSPEC_PIC_GOTOFF_SYM enum.
44550         * config/nios2/nios2.c (nios2_function_profiler): Add
44551         -fPIC (flag_pic == 2) support.
44552         (nios2_handle_custom_fpu_cfg): Fix warning parameter.
44553         (nios2_large_offset_p): New function.
44554         (nios2_unspec_reloc_p): Move up position, update to use
44555         nios2_large_offset_p.
44556         (nios2_unspec_address): Remove function.
44557         (nios2_unspec_offset): New function.
44558         (nios2_large_got_address): New function.
44559         (nios2_got_address): Add large offset support.
44560         (nios2_legitimize_tls_address): Update usage of removed and new
44561         functions.
44562         (nios2_symbol_binds_local_p): New function.
44563         (nios2_load_pic_address): Add -fPIC (flag_pic == 2) support.
44564         (nios2_legitimize_address): Update to use nios2_large_offset_p.
44565         (nios2_emit_move_sequence): Avoid legitimizing (const (unspec ...)).
44566         (nios2_print_operand): Merge H/L processing, add hiadj/lo
44567         processing for (const (unspec ...)).
44568         (nios2_unspec_reloc_name): Add UNSPEC_PIC_GOTOFF_SYM case.
44569
44570 2014-02-20  Richard Biener  <rguenther@suse.de>
44571
44572         * tree-cfg.c (replace_uses_by): Mark altered BBs before
44573         doing the substitution.
44574         (verify_gimple_assign_single): Also verify bare MEM_REFs on the lhs.
44575
44576 2014-02-20  Martin Jambor  <mjambor@suse.cz>
44577
44578         PR ipa/55260
44579         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
44580         info when checking whether lattices are bottom.
44581
44582 2014-02-20  Richard Biener  <rguenther@suse.de>
44583
44584         PR middle-end/60221
44585         * tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
44586         regions at -O0.
44587
44588 2014-02-20  Jan Hubicka  <hubicka@ucw.cz>
44589
44590         PR ipa/58555
44591         * ipa-inline-transform.c (clone_inlined_nodes): Add freq_scale
44592         parameter specifying the scaling.
44593         (inline_call): Update.
44594         (want_inline_recursively): Guard division by zero.
44595         (recursive_inlining): Update.
44596         * ipa-inline.h (clone_inlined_nodes): Update.
44597
44598 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44599
44600         PR target/60204
44601         * config/i386/i386.c (classify_argument): Pass structures of size
44602         64 bytes or less in register.
44603
44604 2014-02-20  Ilya Tocar  <ilya.tocar@intel.com>
44605             Kirill Yukhin  <kirill.yukhin@intel.com>
44606
44607         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
44608         (_mm_rcp28_round_ss): Ditto.
44609         (_mm_rsqrt28_round_sd): Ditto.
44610         (_mm_rsqrt28_round_ss): Ditto.
44611         * config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
44612         (_mm_rcp14_round_ss): Ditto.
44613         (_mm_rsqrt14_round_sd): Ditto.
44614         (_mm_rsqrt14_round_ss): Ditto.
44615         * config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
44616         the first input operand, get rid of match_dup.
44617         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
44618         attribute to sse.
44619         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
44620         Ditto.
44621         (avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
44622         operand as the first input operand, set type attribute.
44623         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
44624         Set type attribute.
44625         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
44626         operand as the first input operand, set type attribute.
44627
44628 2014-02-19  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44629
44630         * config/rs6000/rs6000.c (vspltis_constant): Fix most significant
44631         bit of zero.
44632
44633 2014-02-19  H.J. Lu  <hongjiu.lu@intel.com>
44634
44635         PR target/60207
44636         * config/i386/i386.c (construct_container): Remove TFmode check
44637         for X86_64_INTEGER_CLASS.
44638
44639 2014-02-19  Uros Bizjak  <ubizjak@gmail.com>
44640
44641         PR target/59794
44642         * config/i386/i386.c (type_natural_mode): Warn for ABI changes
44643         only when -Wpsabi is enabled.
44644
44645 2014-02-19  Michael Hudson-Doyle  <michael.hudson@linaro.org>
44646
44647         PR target/59799
44648         * config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
44649         passing arrays in registers are the same as for structs, so remove the
44650         special case for them.
44651
44652 2014-02-19  Eric Botcazou  <ebotcazou@adacore.com>
44653
44654         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
44655         destination type, extract only the valid bits if the source type is not
44656         integral and has a different mode.
44657
44658 2014-02-19  Richard Biener  <rguenther@suse.de>
44659
44660         PR ipa/60243
44661         * tree-inline.c (estimate_num_insns): Avoid calling cgraph_get_node
44662         for all calls.
44663
44664 2014-02-19  Richard Biener  <rguenther@suse.de>
44665
44666         PR ipa/60243
44667         * ipa-prop.c: Include stringpool.h and tree-ssanames.h.
44668         (ipa_modify_call_arguments): Emit an argument load explicitely and
44669         preserve virtual SSA form there and for the replacement call.
44670         Do not update SSA form nor free dominance info.
44671
44672 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44673
44674         * ipa.c (function_and_variable_visibility): Also clear WEAK
44675         flag when disolving COMDAT_GROUP.
44676
44677 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44678
44679         * ipa-prop.h (ipa_ancestor_jf_data): Update ocmment.
44680         * ipa-prop.c (ipa_set_jf_known_type): Return early when
44681         not devirtualizing.
44682         (ipa_set_ancestor_jf): Set type to NULL hwen it is not preserved;
44683         do more sanity checks.
44684         (detect_type_change): Return true when giving up early.
44685         (compute_complex_assign_jump_func): Fix type parameter of
44686         ipa_set_ancestor_jf.
44687         (compute_complex_ancestor_jump_func): Likewise.
44688         (update_jump_functions_after_inlining): Fix updating of
44689         ancestor function.
44690         * ipa-cp.c (ipa_get_jf_ancestor_result): Be ready for type to be NULL.
44691
44692 2014-02-18  Jan Hubicka  <hubicka@ucw.cz>
44693
44694         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Also remove
44695         inline clones when edge disappears.
44696
44697 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
44698
44699         PR target/60203
44700         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
44701         Split 64-bit moves into 2 patterns.  Do not allow the use of
44702         direct move for TDmode in little endian, since the decimal value
44703         has little endian bytes within a word, but the 64-bit pieces are
44704         ordered in a big endian fashion, and normal subreg's of TDmode are
44705         not allowed.
44706         (mov<mode>_64bit_dm): Likewise.
44707         (movtd_64bit_nodm): Likewise.
44708
44709 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44710
44711         PR tree-optimization/60174
44712         * tree-ssa-reassoc.c (init_range_entry): Do not look into the defining
44713         statement of an SSA_NAME that occurs in an abnormal PHI node.
44714
44715 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44716
44717         PR sanitizer/60142
44718         * final.c (SEEN_BB): Remove.
44719         (SEEN_NOTE, SEEN_EMITTED): Renumber.
44720         (final_scan_insn): Don't force_source_line on second
44721         NOTE_INSN_BASIC_BLOCK.
44722
44723 2014-02-18  Uros Bizjak  <ubizjak@gmail.com>
44724
44725         PR target/60205
44726         * config/i386/i386.h (struct ix86_args): Add warn_avx512f.
44727         * config/i386/i386.c (init_cumulative_args): Initialize warn_avx512f.
44728         (type_natural_mode): Warn ABI change when %zmm register is not
44729         available for AVX512F vector value passing.
44730
44731 2014-02-18  Kai Tietz  <ktietz@redhat.com>
44732
44733         PR target/60193
44734         * config/i386/i386.c (ix86_expand_prologue): Use value in
44735         rax register as displacement when restoring %r10 or %rax.
44736         Fix wrong offset when restoring both registers.
44737
44738 2014-02-18  Eric Botcazou  <ebotcazou@adacore.com>
44739
44740         * ipa-prop.c (compute_complex_ancestor_jump_func): Replace overzealous
44741         assertion with conditional return.
44742
44743 2014-02-18  Jakub Jelinek  <jakub@redhat.com>
44744             Uros Bizjak  <ubizjak@gmail.com>
44745
44746         PR driver/60233
44747         * config/i386/driver-i386.c (host_detect_local_cpu): If
44748         YMM state is not saved by the OS, also clear has_f16c.  Move
44749         CPUID 0x80000001 handling before YMM state saving checking.
44750
44751 2014-02-18  Andrey Belevantsev  <abel@ispras.ru>
44752
44753         PR rtl-optimization/58960
44754         * haifa-sched.c (alloc_global_sched_pressure_data): New,
44755         factored out from ...
44756         (sched_init): ... here.
44757         (free_global_sched_pressure_data): New, factored out from ...
44758         (sched_finish): ... here.
44759         * sched-int.h (free_global_sched_pressure_data): Declare.
44760         * sched-rgn.c (nr_regions_initial): New static global.
44761         (haifa_find_rgns): Initialize it.
44762         (schedule_region): Disable sched-pressure for the newly
44763         generated regions.
44764
44765 2014-02-17  Richard Biener  <rguenther@suse.de>
44766
44767         * tree-vect-stmts.c (free_stmt_vec_info): Clear BB and
44768         release SSA defs of pattern stmts.
44769
44770 2014-02-17  Richard Biener  <rguenther@suse.de>
44771
44772         * tree-inline.c (expand_call_inline): Release the virtual
44773         operand defined by the call we are about to inline.
44774
44775 2014-02-17  Richard Biener  <rguenther@suse.de>
44776
44777         * tree-ssa.c (verify_ssa): If verify_def found an error, ICE.
44778
44779 2014-02-17  Kirill Yukhin  <kirill.yukhin@intel.com>
44780             Ilya Tocar  <ilya.tocar@intel.com>
44781
44782         * config/i386/avx512fintrin.h (_mm512_maskz_permutexvar_epi64): Swap
44783         arguments order in builtin.
44784         (_mm512_permutexvar_epi64): Ditto.
44785         (_mm512_mask_permutexvar_epi64): Ditto
44786         (_mm512_maskz_permutexvar_epi32): Ditto
44787         (_mm512_permutexvar_epi32): Ditto
44788         (_mm512_mask_permutexvar_epi32): Ditto
44789
44790 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44791
44792         * config/rs6000/altivec.md (p8_vmrgew): Handle little endian targets.
44793         (p8_vmrgow): Likewise.
44794
44795 2014-02-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
44796
44797         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Handle little
44798         endian targets.
44799
44800 2014-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
44801
44802         PR target/60203
44803         * config/rs6000/rs6000.md (rreg): Add TFmode, TDmode constraints.
44804         (mov<mode>_internal, TFmode/TDmode): Split TFmode/TDmode moves
44805         into 64-bit and 32-bit moves.  On 64-bit moves, add support for
44806         using direct move instructions on ISA 2.07.  Also adjust
44807         instruction length for 64-bit.
44808         (mov<mode>_64bit, TFmode/TDmode): Likewise.
44809         (mov<mode>_32bit, TFmode/TDmode): Likewise.
44810
44811 2014-02-15  Alan Modra  <amodra@gmail.com>
44812
44813         PR target/58675
44814         PR target/57935
44815         * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
44816         find_replacement on parts of insn rtl that might be reloaded.
44817
44818 2014-02-15  Richard Biener  <rguenther@suse.de>
44819
44820         PR tree-optimization/60183
44821         * tree-ssa-phiprop.c (propagate_with_phi): Avoid speculating loads.
44822         (tree_ssa_phiprop): Calculate and free post-dominators.
44823
44824 2014-02-14  Jeff Law  <law@redhat.com>
44825
44826         PR rtl-optimization/60131
44827         * ree.c (get_extended_src_reg): New function.
44828         (combine_reaching_defs): Use it rather than assuming location of REG.
44829         (find_and_remove_re): Verify first operand of extension is
44830         a REG before adding the insns to the copy list.
44831
44832 2014-02-14  Roland McGrath  <mcgrathr@google.com>
44833
44834         * configure.ac (HAVE_AS_IX86_UD2): New test for 'ud2' mnemonic.
44835         * configure: Regenerated.
44836         * config.in: Regenerated.
44837         * config/i386/i386.md (trap) [HAVE_AS_IX86_UD2]: Use the mnemonic
44838         instead of ASM_SHORT.
44839
44840 2014-02-14  Vladimir Makarov  <vmakarov@redhat.com>
44841             Richard Earnshaw  <rearnsha@arm.com>
44842
44843         PR rtl-optimization/59535
44844         * lra-constraints.c (process_alt_operands): Encourage alternative
44845         when unassigned pseudo class is superset of the alternative class.
44846         (inherit_reload_reg): Don't inherit when optimizing for code size.
44847         * config/arm/arm.h (MODE_BASE_REG_CLASS): Add version for LRA
44848         returning CORE_REGS for anything but Thumb1 and BASE_REGS for
44849         modes not less than 4 for Thumb1.
44850
44851 2014-02-14  Kyle McMartin  <kyle@redhat.com>
44852
44853         PR pch/60010
44854         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for AArch64.
44855
44856 2014-02-14  Richard Biener  <rguenther@suse.de>
44857
44858         * cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
44859         (get_frame_arg): Drop the assert with langhook types_compatible_p.
44860         Do not strip INDIRECT_REFs.
44861
44862 2014-02-14  Richard Biener  <rguenther@suse.de>
44863
44864         PR lto/60179
44865         * lto-streamer-out.c (DFS_write_tree_body): Do not follow
44866         DECL_FUNCTION_SPECIFIC_TARGET.
44867         (hash_tree): Do not hash DECL_FUNCTION_SPECIFIC_TARGET.
44868         * tree-streamer-out.c (pack_ts_target_option): Remove.
44869         (streamer_pack_tree_bitfields): Do not stream TS_TARGET_OPTION.
44870         (write_ts_function_decl_tree_pointers): Do not stream
44871         DECL_FUNCTION_SPECIFIC_TARGET.
44872         * tree-streamer-in.c (unpack_ts_target_option): Remove.
44873         (unpack_value_fields): Do not stream TS_TARGET_OPTION.
44874         (lto_input_ts_function_decl_tree_pointers): Do not stream
44875         DECL_FUNCTION_SPECIFIC_TARGET.
44876
44877 2014-02-14  Jakub Jelinek  <jakub@redhat.com>
44878
44879         * tree-vect-loop.c (vect_is_slp_reduction): Don't set use_stmt twice.
44880         (get_initial_def_for_induction, vectorizable_induction): Ignore
44881         debug stmts when looking for exit_phi.
44882         (vectorizable_live_operation): Fix up condition.
44883
44884 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
44885
44886         * config/nds32/nds32.c (nds32_asm_function_prologue): Do not use
44887         nreverse() because it changes the content of original tree list.
44888
44889 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
44890
44891         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Fix typo in comment.
44892         * config/nds32/nds32.c (nds32_merge_decl_attributes): Likewise.
44893
44894 2014-02-14  Chung-Ju Wu  <jasonwucj@gmail.com>
44895
44896         * config/nds32/nds32.c (nds32_naked_function_p): Follow the
44897         GNU coding standards.
44898
44899 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
44900
44901         PR debug/60152
44902         * dwarf2out.c (gen_subprogram_die): Don't call
44903         add_calling_convention_attribute if subr_die is old_die.
44904
44905 2014-02-13  Sharad Singhai  <singhai@google.com>
44906
44907         * doc/optinfo.texi: Fix order of nodes.
44908
44909 2014-02-13  Uros Bizjak  <ubizjak@gmail.com>
44910
44911         * config/i386/sse.md (xop_vmfrcz<mode>2): Generate const0 in
44912         operands[2], not operands[3].
44913
44914 2014-02-13  Richard Biener  <rguenther@suse.de>
44915
44916         PR bootstrap/59878
44917         * doc/install.texi (ISL): Update recommended version to 0.12.2,
44918         mention the possibility of an in-tree build.
44919         (CLooG): Update recommended version to 0.18.1, mention the
44920         possibility of an in-tree build and clarify that the ISL
44921         bundled with CLooG does not work.
44922
44923 2014-02-13  Jakub Jelinek  <jakub@redhat.com>
44924
44925         PR target/43546
44926         * expr.c (compress_float_constant): If x is a hard register,
44927         extend into a pseudo and then move to x.
44928
44929 2014-02-13  Dominik Vogt  <vogt@linux.vnet.ibm.com>
44930
44931         * config/s390/s390.c (s390_asm_output_function_label): Fix crash
44932         caused by bad second argument to warning_at() with -mhotpatch and
44933         nested functions (e.g. with gfortran).
44934
44935 2014-02-13  Richard Sandiford  <rdsandiford@googlemail.com>
44936
44937         * opts.c (option_name): Remove "enabled by default" rider.
44938
44939 2014-02-12  John David Anglin  <danglin@gcc.gnu.org>
44940
44941         * config/pa/pa.c (pa_option_override): Remove auto increment FIXME.
44942
44943 2014-02-12  H.J. Lu  <hongjiu.lu@intel.com>
44944             Uros Bizjak  <ubizjak@gmail.com>
44945
44946         PR target/60151
44947         * configure.ac (HAVE_AS_GOTOFF_IN_DATA): Pass --32 to GNU assembler.
44948         * configure: Regenerated.
44949
44950 2014-02-12  Richard Biener  <rguenther@suse.de>
44951
44952         * vec.c (vec_prefix::calculate_allocation): Move as
44953         inline variant to vec.h.
44954         (vec_prefix::calculate_allocation_1): New out-of-line version.
44955         * vec.h (vec_prefix::calculate_allocation_1): Declare.
44956         (vec_prefix::m_has_auto_buf): Rename to ...
44957         (vec_prefix::m_using_auto_storage): ... this.
44958         (vec_prefix::calculate_allocation): Inline the easy cases
44959         and dispatch to calculate_allocation_1 which doesn't need the
44960         prefix address.
44961         (va_heap::reserve): Use gcc_checking_assert.
44962         (vec<T, A, vl_embed>::embedded_init): Add argument to initialize
44963         m_using_auto_storage.
44964         (auto_vec): Change m_vecpfx member to a vec<T, va_heap, vl_embed>
44965         member and adjust.
44966         (vec<T, va_heap, vl_ptr>::reserve): Remove redundant check.
44967         (vec<T, va_heap, vl_ptr>::release): Avoid casting.
44968         (vec<T, va_heap, vl_ptr>::using_auto_storage): Simplify.
44969
44970 2014-02-12  Richard Biener  <rguenther@suse.de>
44971
44972         * gcse.c (compute_transp): break from loop over canon_modify_mem_list
44973         when we found a dependence.
44974
44975 2014-02-12  Thomas Schwinge  <thomas@codesourcery.com>
44976
44977         * gimplify.c (gimplify_call_expr, gimplify_modify_expr): Move
44978         common code...
44979         (maybe_fold_stmt): ... into this new function.
44980         * omp-low.c (lower_omp): Update comment.
44981
44982         * omp-low.c (lower_omp_target): Add clobber for sizes array, after
44983         last use.
44984
44985         * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to
44986         dereference.
44987
44988 2014-02-12  James Greenhalgh  <james.greenhalgh@arm.com>
44989
44990         * config/arm/aarch-cost-tables.h (generic_extra_costs): Fix
44991         identifiers in comments.
44992         (cortexa53_extra_costs): Likewise.
44993         * config/arm/arm.c (cortexa9_extra_costs): Fix identifiers in comments.
44994         (cortexa7_extra_costs): Likewise.
44995         (cortexa12_extra_costs): Likewise.
44996         (cortexa15_extra_costs): Likewise.
44997         (v7m_extra_costs): Likewise.
44998
44999 2014-02-12  Richard Biener  <rguenther@suse.de>
45000
45001         PR middle-end/60092
45002         * gimple-low.c (lower_builtin_posix_memalign): Lower conditional
45003         of posix_memalign being successful.
45004         (lower_stmt): Restrict lowering of posix_memalign to when
45005         -ftree-bit-ccp is enabled.
45006
45007 2014-02-12  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
45008
45009         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Pass vNULL for
45010         arg_loc.
45011         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
45012
45013 2014-02-12  Eric Botcazou  <ebotcazou@adacore.com>
45014
45015         PR rtl-optimization/60116
45016         * combine.c (try_combine): Also remove dangling REG_DEAD notes on the
45017         other_insn once the combination has been validated.
45018
45019 2014-02-11  Jan Hubicka  <hubicka@ucw.cz>
45020
45021         PR lto/59468
45022         * ipa-utils.h (possible_polymorphic_call_targets): Update prototype
45023         and wrapper.
45024         * ipa-devirt.c: Include demangle.h
45025         (odr_violation_reported): New static variable.
45026         (add_type_duplicate): Update odr_violations.
45027         (maybe_record_node): Add completep parameter; update it.
45028         (record_target_from_binfo): Add COMPLETEP parameter;
45029         update it as needed.
45030         (possible_polymorphic_call_targets_1): Likewise.
45031         (struct polymorphic_call_target_d): Add nonconstruction_targets;
45032         rename FINAL to COMPLETE.
45033         (record_targets_from_bases): Sanity check we found the binfo;
45034         fix COMPLETEP updating.
45035         (possible_polymorphic_call_targets): Add NONCONSTRUTION_TARGETSP
45036         parameter, fix computing of COMPLETEP.
45037         (dump_possible_polymorphic_call_targets): Imrove readability of dump;
45038         at LTO time do demangling.
45039         (ipa_devirt): Use nonconstruction_targets; Improve dumps.
45040         * gimple-fold.c (gimple_get_virt_method_for_vtable): Add can_refer
45041         parameter.
45042         (gimple_get_virt_method_for_binfo): Likewise.
45043         * gimple-fold.h (gimple_get_virt_method_for_binfo,
45044         gimple_get_virt_method_for_vtable): Update prototypes.
45045
45046 2014-02-11  Vladimir Makarov  <vmakarov@redhat.com>
45047
45048         PR target/49008
45049         * genautomata.c (add_presence_absence): Fix typo with
45050         {final_}presence_list.
45051
45052 2014-02-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
45053
45054         PR target/60137
45055         * config/rs6000/rs6000.md (128-bit GPR splitter): Add a splitter
45056         for VSX/Altivec vectors that land in GPR registers.
45057
45058 2014-02-11  Richard Henderson  <rth@redhat.com>
45059             Jakub Jelinek  <jakub@redhat.com>
45060
45061         PR debug/59776
45062         * tree-sra.c (load_assign_lhs_subreplacements): Add VIEW_CONVERT_EXPR
45063         around drhs if type conversion to lacc->type is not useless.
45064
45065 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45066
45067         * config/aarch64/aarch64-cores.def (cortex-a57): Use cortexa57
45068         tuning struct.
45069         (cortex-a57.cortex-a53): Likewise.
45070         * config/aarch64/aarch64.c (cortexa57_tunings): New tuning struct.
45071
45072 2014-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45073
45074         * config/arm/thumb2.md (*thumb2_movhi_insn): Add alternatives for
45075         arm_restrict_it.
45076
45077 2014-02-11  Renlin Li  <Renlin.Li@arm.com>
45078
45079         * doc/sourcebuild.texi: Document check_effective_target_arm_vfp3_ok and
45080         add_options_for_arm_vfp3.
45081
45082 2014-02-11  Jeff Law  <law@redhat.com>
45083
45084         PR middle-end/54041
45085         * expr.c (expand_expr_addr_expr_1): Handle expand_expr returning an
45086         object with an undesirable mode.
45087
45088 2014-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45089
45090         PR libgomp/60107
45091         * config/i386/sol2-9.h: New file.
45092         * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*,
45093         *-*-solaris2.9*): Use it.
45094
45095 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45096
45097         * config/microblaze/microblaze.md: Add movsi4_rev insn pattern.
45098         * config/microblaze/predicates.md: Add reg_or_mem_operand predicate.
45099
45100 2014-02-10  Nagaraju Mekala  <nagaraju.mekala@xilinx.com>
45101
45102         * config/microblaze/microblaze.c: Extend mcpu version format
45103
45104 2014-02-10  David Holsgrove  <david.holsgrove@xilinx.com>
45105
45106         * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE.
45107
45108 2014-02-10  Richard Henderson  <rth@redhat.com>
45109
45110         PR target/59927
45111         * calls.c (expand_call): Don't double-push for reg_parm_stack_space.
45112         * config/i386/i386.c (init_cumulative_args): Remove sorry for 64-bit
45113         ms-abi vs -mno-accumulate-outgoing-args.
45114         (ix86_expand_prologue): Unconditionally call ix86_eax_live_at_start_p.
45115         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Fix comment with
45116         respect to ms-abi.
45117
45118 2014-02-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45119
45120         PR middle-end/60080
45121         * cfgexpand.c (expand_asm_operands): Attach source location to
45122         ASM_INPUT rtx objects.
45123         * print-rtl.c (print_rtx): Check for UNKNOWN_LOCATION.
45124
45125 2014-02-10  Nick Clifton  <nickc@redhat.com>
45126
45127         * config/mn10300/mn10300.c (popcount): New function.
45128         (mn10300_expand_prologue): Include saved registers in stack usage
45129         count.
45130
45131 2014-02-10  Jeff Law  <law@redhat.com>
45132
45133         PR middle-end/52306
45134         * reload1.c (emit_input_reload_insns): Do not create invalid RTL
45135         when changing the SET_DEST of a prior insn to avoid an input reload.
45136
45137 2014-02-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
45138
45139         * config/rs6000/sysv4.h (ENDIAN_SELECT): Do not attempt to enforce
45140         big-endian mode for -mcall-aixdesc, -mcall-freebsd, -mcall-netbsd,
45141         -mcall-openbsd, or -mcall-linux.
45142         (CC1_ENDIAN_BIG_SPEC): Remove.
45143         (CC1_ENDIAN_LITTLE_SPEC): Remove.
45144         (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45145         (CC1_SPEC): Remove (always empty) %cc1_endian_... spec.
45146         (SUBTARGET_EXTRA_SPECS): Remove %cc1_endian_big, %cc1_endian_little,
45147         and %cc1_endian_default.
45148         * config/rs6000/sysv4le.h (CC1_ENDIAN_DEFAULT_SPEC): Remove.
45149
45150 2014-02-10  Richard Biener  <rguenther@suse.de>
45151
45152         PR tree-optimization/60115
45153         * tree-eh.c (tree_could_trap_p): Unify TARGET_MEM_REF and
45154         MEM_REF handling.  Properly verify that the accesses are not
45155         out of the objects bound.
45156
45157 2014-02-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45158
45159         * config/aarch64/aarch64.c (aarch64_override_options): Fix typo from
45160         coretex to cortex.
45161
45162 2014-02-10  Eric Botcazou  <ebotcazou@adacore.com>
45163
45164         * ipa-devirt.c (get_polymorphic_call_info_from_invariant): Return
45165         proper constants and fix formatting.
45166         (possible_polymorphic_call_targets): Fix formatting.
45167
45168 2014-02-10  Kirill Yukhin  <kirill.yukhin@intel.com>
45169             Ilya Tocar  <ilya.tocar@intel.com>
45170
45171         * config/i386/avx512fintrin.h (_mm512_storeu_epi64): Removed.
45172         (_mm512_loadu_epi32): Renamed into...
45173         (_mm512_loadu_si512): This.
45174         (_mm512_storeu_epi32): Renamed into...
45175         (_mm512_storeu_si512): This.
45176         (_mm512_maskz_ceil_ps): Removed.
45177         (_mm512_maskz_ceil_pd): Ditto.
45178         (_mm512_maskz_floor_ps): Ditto.
45179         (_mm512_maskz_floor_pd): Ditto.
45180         (_mm512_floor_round_ps): Ditto.
45181         (_mm512_floor_round_pd): Ditto.
45182         (_mm512_ceil_round_ps): Ditto.
45183         (_mm512_ceil_round_pd): Ditto.
45184         (_mm512_mask_floor_round_ps): Ditto.
45185         (_mm512_mask_floor_round_pd): Ditto.
45186         (_mm512_mask_ceil_round_ps): Ditto.
45187         (_mm512_mask_ceil_round_pd): Ditto.
45188         (_mm512_maskz_floor_round_ps): Ditto.
45189         (_mm512_maskz_floor_round_pd): Ditto.
45190         (_mm512_maskz_ceil_round_ps): Ditto.
45191         (_mm512_maskz_ceil_round_pd): Ditto.
45192         (_mm512_expand_pd): Ditto.
45193         (_mm512_expand_ps): Ditto.
45194         * config/i386/i386.c (ix86_builtins): Remove
45195         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK.
45196         (bdesc_args): Ditto.
45197         * config/i386/predicates.md (const1256_operand): New.
45198         (const_1_to_2_operand): Ditto.
45199         * config/i386/sse.md (avx512pf_gatherpf<mode>sf): Change hint value.
45200         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
45201         (*avx512pf_gatherpf<mode>sf): Ditto.
45202         (avx512pf_gatherpf<mode>df): Ditto.
45203         (*avx512pf_gatherpf<mode>df_mask): Ditto.
45204         (*avx512pf_gatherpf<mode>df): Ditto.
45205         (avx512pf_scatterpf<mode>sf): Ditto.
45206         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
45207         (*avx512pf_scatterpf<mode>sf): Ditto.
45208         (avx512pf_scatterpf<mode>df): Ditto.
45209         (*avx512pf_scatterpf<mode>df_mask): Ditto.
45210         (*avx512pf_scatterpf<mode>df): Ditto.
45211         (avx512f_expand<mode>): Removed.
45212         (<shift_insn><mode>3<mask_name>): Change predicate type.
45213
45214 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45215
45216         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers
45217         not at the end of datarefs vector use ordered_remove to avoid
45218         reordering datarefs vector.
45219
45220         PR c/59984
45221         * gimplify.c (gimplify_bind_expr): In ORT_SIMD region
45222         mark local addressable non-static vars as GOVD_PRIVATE
45223         instead of GOVD_LOCAL.
45224         * omp-low.c (lower_omp_for): Move gimple_bind_vars
45225         and BLOCK_VARS of gimple_bind_block to new_stmt rather
45226         than copying them.
45227
45228         PR middle-end/60092
45229         * tree-ssa-ccp.c (surely_varying_stmt_p): Don't return true
45230         if TYPE_ATTRIBUTES (gimple_call_fntype ()) contain
45231         assume_aligned or alloc_align attributes.
45232         (bit_value_assume_aligned): Add ATTR, PTRVAL and ALLOC_ALIGN
45233         arguments.  Handle also assume_aligned and alloc_align attributes.
45234         (evaluate_stmt): Adjust bit_value_assume_aligned caller.  Handle
45235         calls to functions with assume_aligned or alloc_align attributes.
45236         * doc/extend.texi: Document assume_aligned and alloc_align attributes.
45237
45238 2014-02-08  Terry Guo  <terry.guo@arm.com>
45239
45240         * doc/invoke.texi: Document ARM -march=armv7e-m.
45241
45242 2014-02-08  Jakub Jelinek  <jakub@redhat.com>
45243
45244         * cilk-common.c (cilk_init_builtins): Clear TREE_NOTHROW
45245         flag on __cilkrts_rethrow builtin.
45246
45247         PR ipa/60026
45248         * ipa-cp.c (determine_versionability): Fail at -O0
45249         or __attribute__((optimize (0))) or -fno-ipa-cp functions.
45250         * tree-sra.c (ipa_sra_preliminary_function_checks): Similarly.
45251
45252         Revert:
45253         2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45254
45255         PR ipa/60026
45256         * tree-inline.c (copy_forbidden): Fail for
45257         __attribute__((optimize (0))) functions.
45258
45259 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45260
45261         * varpool.c: Include pointer-set.h.
45262         (varpool_remove_unreferenced_decls): Variables in other partitions
45263         will not be output; be however careful to not lose information
45264         about partitioning.
45265
45266 2014-02-07  Jan Hubicka  <hubicka@ucw.cz>
45267
45268         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do O(1)
45269         lookup in the vtable constructor.
45270
45271 2014-02-07  Jeff Law  <law@redhat.com>
45272
45273         PR target/40977
45274         * config/m68k/m68k.md (ashldi_extsi): Turn into a
45275         define_insn_and_split.
45276
45277         * ipa-inline.c (inline_small_functions): Fix typos.
45278
45279 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45280
45281         * config/s390/s390-protos.h (s390_can_use_simple_return_insn)
45282         (s390_can_use_return_insn): Declare.
45283         * config/s390/s390.h (EPILOGUE_USES): Define.
45284         * config/s390/s390.c (s390_mainpool_start): Allow two main_pool
45285         instructions.
45286         (s390_chunkify_start): Handle return JUMP_LABELs.
45287         (s390_early_mach): Emit a main_pool instruction on the entry edge.
45288         (s300_set_up_by_prologue, s390_can_use_simple_return_insn)
45289         (s390_can_use_return_insn): New functions.
45290         (s390_fix_long_loop_prediction): Handle conditional returns.
45291         (TARGET_SET_UP_BY_PROLOGUE): Define.
45292         * config/s390/s390.md (ANY_RETURN): New code iterator.
45293         (*creturn, *csimple_return, return, simple_return): New patterns.
45294
45295 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45296
45297         * config/s390/s390.c (s390_restore_gprs_from_fprs): Add REG_CFA_RESTORE
45298         notes to each restore.  Also add REG_CFA_DEF_CFA when restoring %r15.
45299         (s390_optimize_prologue): Don't clear RTX_FRAME_RELATED_P.  Update the
45300         REG_CFA_RESTORE list when deciding not to restore a register.
45301
45302 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45303
45304         * config/s390/s390.c: Include tree-pass.h and context.h.
45305         (s390_early_mach): New function, split out from...
45306         (s390_emit_prologue): ...here.
45307         (pass_data_s390_early_mach): New pass structure.
45308         (pass_s390_early_mach): New class.
45309         (s390_option_override): Create and register early_mach pass.
45310         Move to end of file.
45311
45312 2014-02-07  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
45313
45314         * var-tracking.c (vt_stack_adjustments): Don't require stack_adjusts
45315         to match for the exit block.
45316
45317 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45318
45319         * config/s390/s390.md ("atomic_load<mode>", "atomic_store<mode>")
45320         ("atomic_compare_and_swap<mode>", "atomic_fetch_<atomic><mode>"):
45321         Reject misaligned operands.
45322
45323 2014-02-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
45324
45325         * optabs.c (expand_atomic_compare_and_swap): Allow expander to fail.
45326
45327 2014-02-07  Richard Biener  <rguenther@suse.de>
45328
45329         PR middle-end/60092
45330         * gimple-low.c (lower_builtin_posix_memalign): New function.
45331         (lower_stmt): Call it to lower posix_memalign in a way
45332         to make alignment info accessible.
45333
45334 2014-02-07  Jakub Jelinek  <jakub@redhat.com>
45335
45336         PR c++/60082
45337         * tree.c (build_common_builtin_nodes): Set ECF_LEAF for
45338         __builtin_setjmp_receiver.
45339
45340 2014-02-07  Richard Biener  <rguenther@suse.de>
45341
45342         PR middle-end/60092
45343         * builtin-types.def (BT_FN_INT_PTRPTR_SIZE_SIZE): Add.
45344         * builtins.def (BUILT_IN_POSIX_MEMALIGN): Likewise.
45345         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
45346         Handle BUILT_IN_POSIX_MEMALIGN.
45347         (find_func_clobbers): Likewise.
45348         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
45349         (call_may_clobber_ref_p_1): Likewise.
45350
45351 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45352
45353         PR ipa/59918
45354         * ipa-devirt.c (record_target_from_binfo): Remove overactive
45355         sanity check.
45356
45357 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45358
45359         PR ipa/59469
45360         * lto-cgraph.c (lto_output_node): Use
45361         symtab_get_symbol_partitioning_class.
45362         (lto_output_varpool_node): likewise.
45363         (symtab_get_symbol_partitioning_class): Move here from
45364         lto/lto-partition.c
45365         * cgraph.h (symbol_partitioning_class): Likewise.
45366         (symtab_get_symbol_partitioning_class): Declare.
45367
45368 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45369
45370         * ggc.h (ggc_internal_cleared_alloc): New macro.
45371         * vec.h (vec_safe_copy): Handle memory stats.
45372         * omp-low.c (simd_clone_struct_alloc): Use ggc_internal_cleared_alloc.
45373         * target-globals.c (save_target_globals): Likewise.
45374
45375 2014-02-06  Jan Hubicka  <hubicka@ucw.cz>
45376
45377         PR target/60077
45378         * expr.c (emit_move_resolve_push): Export; be bit more selective
45379         on when to clear alias set.
45380         * expr.h (emit_move_resolve_push): Declare.
45381         * function.h (struct function): Add tail_call_marked.
45382         * tree-tailcall.c (optimize_tail_call): Set tail_call_marked.
45383         * config/i386/i386-protos.h (ix86_expand_push): Remove.
45384         * config/i386/i386.md (TImode move expander): De not call
45385         ix86_expand_push.
45386         (FP push expanders): Preserve memory attributes.
45387         * config/i386/sse.md (push<mode>1): Remove.
45388         * config/i386/i386.c (ix86_expand_vector_move): Handle push operation.
45389         (ix86_expand_push): Remove.
45390         * config/i386/mmx.md (push<mode>1): Remove.
45391
45392 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45393
45394         PR rtl-optimization/60030
45395         * internal-fn.c (ubsan_expand_si_overflow_mul_check): Surround
45396         lopart with paradoxical subreg before shifting it up by hprec.
45397
45398 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45399
45400         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): New table.
45401         Remove extra newline at end of file.
45402         * config/arm/arm.c (arm_cortex_a57_tune): New tuning struct.
45403         (arm_issue_rate): Handle cortexa57.
45404         * config/arm/arm-cores.def (cortex-a57): Use cortex_a57 tuning.
45405         (cortex-a57.cortex-a53): Likewise.
45406
45407 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45408
45409         PR target/59575
45410         * config/arm/arm.c (emit_multi_reg_push): Add dwarf_regs_mask argument,
45411         don't record in REG_FRAME_RELATED_EXPR registers not set in that
45412         bitmask.
45413         (arm_expand_prologue): Adjust all callers.
45414         (arm_unwind_emit_sequence): Allow saved, but not important for unwind
45415         info, registers also at the lowest numbered registers side.  Use
45416         gcc_assert instead of abort, and SET_SRC/SET_DEST macros instead of
45417         XEXP.
45418
45419         PR debug/59992
45420         * var-tracking.c (adjust_mems): Before adding a SET to
45421         amd->side_effects, adjust it's SET_SRC using simplify_replace_fn_rtx.
45422
45423 2014-02-06  Alan Modra  <amodra@gmail.com>
45424
45425         PR target/60032
45426         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
45427         change SDmode to DDmode when lra_in_progress.
45428
45429 2014-02-06  Jakub Jelinek  <jakub@redhat.com>
45430
45431         PR middle-end/59150
45432         * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers, call
45433         free_data_ref on the dr first, and before goto again also set dr
45434         to the next dr.  For simd_lane_access, free old datarefs[i] before
45435         overwriting it.  For get_vectype_for_scalar_type failure, don't
45436         free_data_ref if simd_lane_access.
45437
45438         * Makefile.in (prefix.o, cppbuiltin.o): Depend on $(BASEVER).
45439
45440         PR target/60062
45441         * tree.h (opts_for_fn): New inline function.
45442         (opt_for_fn): Define.
45443         * config/i386/i386.c (ix86_function_regparm): Use
45444         opt_for_fn (decl, optimize) instead of optimize.
45445
45446 2014-02-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
45447
45448         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix logic
45449         for SYMBOL_REF in large memory model.
45450
45451 2014-02-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45452
45453         * config/aarch64/aarch64-cores.def (cortex-a53): Specify CRC32
45454         and crypto support.
45455         (cortex-a57): Likewise.
45456         (cortex-a57.cortex-a53): Likewise.
45457
45458 2014-02-06  Yury Gribov  <y.gribov@samsung.com>
45459             Kugan Vivekanandarajah  <kuganv@linaro.org>
45460
45461         * config/arm/arm.c (arm_vector_alignment_reachable): Check
45462         unaligned_access.
45463         * config/arm/arm.c (arm_builtin_support_vector_misalignment): Likewise.
45464
45465 2014-02-06  Richard Biener  <rguenther@suse.de>
45466
45467         * tree-cfg.c (gimple_duplicate_sese_region): Fix ordering of
45468         set_loop_copy and initialize_original_copy_tables.
45469
45470 2014-02-06  Alex Velenko  <Alex.Velenko@arm.com>
45471
45472         * config/aarch64/aarch64-simd.md
45473         (aarch64_ashr_simddi): Change QI to SI.
45474
45475 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45476             Jakub Jelinek  <jakub@redhat.com>
45477
45478         PR middle-end/60013
45479         * ipa-inline-analysis.c (compute_bb_predicates): Ensure monotonicity
45480         of the dataflow.
45481
45482 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45483
45484         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Change
45485         CODE_FOR_altivec_vpku[hw]um to
45486         CODE_FOR_altivec_vpku[hw]um_direct.
45487         * config/rs6000/altivec.md (vec_unpacks_hi_<VP_small_lc>): Change
45488         UNSPEC_VUNPACK_HI_SIGN to UNSPEC_VUNPACK_HI_SIGN_DIRECT.
45489         (vec_unpacks_lo_<VP_small_lc>): Change UNSPEC_VUNPACK_LO_SIGN to
45490         UNSPEC_VUNPACK_LO_SIGN_DIRECT.
45491
45492 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45493
45494         * config/rs6000/altivec.md (altivec_vsum2sws): Adjust code
45495         generation for -maltivec=be.
45496         (altivec_vsumsws): Simplify redundant test.
45497
45498 2014-02-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45499
45500         * altivec.md (UNSPEC_VPACK_UNS_UNS_MOD_DIRECT): New unspec.
45501         (UNSPEC_VUNPACK_HI_SIGN_DIRECT): Likewise.
45502         (UNSPEC_VUNPACK_LO_SIGN_DIRECT): Likewise.
45503         (mulv8hi3): Use gen_altivec_vpkuwum_direct instead of
45504         gen_altivec_vpkuwum.
45505         (altivec_vpkpx): Test for VECTOR_ELT_ORDER_BIG instead of for
45506         BYTES_BIG_ENDIAN.
45507         (altivec_vpks<VI_char>ss): Likewise.
45508         (altivec_vpks<VI_char>us): Likewise.
45509         (altivec_vpku<VI_char>us): Likewise.
45510         (altivec_vpku<VI_char>um): Likewise.
45511         (altivec_vpku<VI_char>um_direct): New (copy of
45512         altivec_vpku<VI_char>um that still relies on BYTES_BIG_ENDIAN, for
45513         internal use).
45514         (altivec_vupkhs<VU_char>): Emit vupkls* instead of vupkhs* when
45515         target is little endian and -maltivec=be is not specified.
45516         (*altivec_vupkhs<VU_char>_direct): New (copy of
45517         altivec_vupkhs<VU_char> that always emits vupkhs*, for internal use).
45518         (altivec_vupkls<VU_char>): Emit vupkhs* instead of vupkls* when
45519         target is little endian and -maltivec=be is not specified.
45520         (*altivec_vupkls<VU_char>_direct): New (copy of
45521         altivec_vupkls<VU_char> that always emits vupkls*, for internal use).
45522         (altivec_vupkhpx): Emit vupklpx instead of vupkhpx when target is
45523         little endian and -maltivec=be is not specified.
45524         (altivec_vupklpx): Emit vupkhpx instead of vupklpx when target is
45525         little endian and -maltivec=be is not specified.
45526
45527 2014-02-05  Richard Henderson  <rth@redhat.com>
45528
45529         PR debug/52727
45530         * combine-stack-adj.c: Revert r206943.
45531         * sched-int.h (struct deps_desc): Add last_args_size.
45532         * sched-deps.c (init_deps): Initialize it.
45533         (sched_analyze_insn): Add OUTPUT dependencies between insns that
45534         contain REG_ARGS_SIZE notes.
45535
45536 2014-02-05  Jan Hubicka  <hubicka@ucw.cz>
45537
45538         * lto-cgraph.c (asm_nodes_output): Make global.
45539         * lto-wrapper.c (run_gcc): Pass down paralelizm to WPA.
45540         * gcc.c (AS_NEEDS_DASH_FOR_PIPED_INPUT): Allow WPA parameter
45541         (driver_handle_option): Handle OPT_fwpa.
45542
45543 2014-02-05  Jakub Jelinek  <jakub@redhat.com>
45544
45545         PR ipa/59947
45546         * ipa-devirt.c (possible_polymorphic_call_targets): Fix
45547         a comment typo and formatting issue.  If odr_hash hasn't been
45548         created, return vNULL and set *completep to false.
45549
45550         PR middle-end/57499
45551         * tree-eh.c (cleanup_empty_eh): Bail out on totally empty
45552         bb with no successors.
45553
45554 2014-02-05  James Greenhalgh  <james.greenhalgh@arm.com>
45555
45556         PR target/59718
45557         * doc/invoke.texi (-march): Clarify documentation for ARM.
45558         (-mtune): Likewise.
45559         (-mcpu): Likewise.
45560
45561 2014-02-05  Richard Biener  <rguenther@suse.de>
45562
45563         * tree-vect-loop.c (vect_analyze_loop_2): Be more informative
45564         when not vectorizing because of too many alias checks.
45565         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
45566         Add more verboseness, avoid duplicate MSG_MISSED_OPTIMIZATION.
45567
45568 2014-02-05  Nick Clifton  <nickc@redhat.com>
45569
45570         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Do not
45571         accept extended registers in any mode when compiling for the MN10300.
45572
45573 2014-02-05  Yury Gribov  <y.gribov@samsung.com>
45574
45575         * cif-code.def (ATTRIBUTE_MISMATCH): New CIF code.
45576         * ipa-inline.c (report_inline_failed_reason): Handle mismatched
45577         sanitization attributes.
45578         (can_inline_edge_p): Likewise.
45579         (sanitize_attrs_match_for_inline_p): New function.
45580
45581 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45582
45583         * ipa-prop.c (detect_type_change): Shor circuit testing of
45584         type changes on THIS pointer.
45585
45586 2014-02-04  John David Anglin  <danglin@gcc.gnu.org>
45587
45588         PR target/59777
45589         * config/pa/pa.c (legitimize_tls_address): Return original address
45590         if not passed a SYMBOL_REF rtx.
45591         (hppa_legitimize_address): Call legitimize_tls_address for all TLS
45592         addresses.
45593         (pa_emit_move_sequence): Simplify TLS source operands.
45594         (pa_legitimate_constant_p): Reject all TLS constants.
45595         * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): Correct comment.
45596         (CONSTANT_ADDRESS_P): Reject TLS CONST addresses.
45597
45598 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45599
45600         * ipa.c (function_and_variable_visibility): Decompose DECL_ONE_ONLY
45601         groups when we know they are controlled by LTO.
45602         * varasm.c (default_binds_local_p_1): If object is in other partition,
45603         it will be resolved locally.
45604
45605 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45606
45607         * config/host-linux.c (linux_gt_pch_use_address): Don't
45608         use SSIZE_MAX because it is not always defined.
45609
45610 2014-02-04  Vladimir Makarov  <vmakarov@redhat.com>
45611
45612         PR bootstrap/59913
45613         * lra-constraints.c (need_for_split_p): Use more 3 reloads as
45614         threshold for pseudo splitting.
45615         (update_ebb_live_info): Process call argument hard registers and
45616         hard registers from insn definition too.
45617         (max_small_class_regs_num): New constant.
45618         (inherit_in_ebb): Update live hard regs through EBBs.  Update
45619         reloads_num only for small register classes.  Don't split for
45620         outputs of jumps.
45621
45622 2014-02-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
45623
45624         PR ipa/60058
45625         * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that target
45626         is non-null.
45627
45628 2014-02-04  Jan Hubicka  <hubicka@ucw.cz>
45629
45630         * gimple-fold.c (can_refer_decl_in_current_unit_p): Default
45631         visibility is safe.
45632
45633 2014-02-04  Marek Polacek  <polacek@redhat.com>
45634
45635         * gdbinit.in (pel): Define.
45636
45637 2014-02-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
45638
45639         * doc/invoke.texi (fstrict-volatile-bitfields): Clarify current
45640         behavior.
45641
45642 2014-02-04  Richard Biener  <rguenther@suse.de>
45643
45644         PR lto/59723
45645         * lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
45646         in function context local.
45647         (lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
45648         * lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
45649         similar to LTO_imported_decl_ref.
45650
45651 2014-02-04  Jakub Jelinek  <jakub@redhat.com>
45652
45653         PR tree-optimization/60002
45654         * cgraphclones.c (build_function_decl_skip_args): Clear
45655         DECL_LANG_SPECIFIC.
45656
45657         PR tree-optimization/60023
45658         * tree-if-conv.c (predicate_mem_writes): Pass true instead of
45659         false to gsi_replace.
45660         * tree-vect-stmts.c (vect_finish_stmt_generation): If stmt
45661         has been in some EH region and vec_stmt could throw, add
45662         vec_stmt into the same EH region.
45663         * tree-data-ref.c (get_references_in_stmt): If IFN_MASK_LOAD
45664         has no lhs, ignore it.
45665         * internal-fn.c (expand_MASK_LOAD): Likewise.
45666
45667         PR ipa/60026
45668         * tree-inline.c (copy_forbidden): Fail for
45669         __attribute__((optimize (0))) functions.
45670
45671         PR other/58712
45672         * omp-low.c (simd_clone_struct_copy): If from->inbranch
45673         is set, copy one less argument.
45674         (expand_simd_clones): Don't subtract clone_info->inbranch
45675         from simd_clone_struct_alloc argument.
45676
45677         PR rtl-optimization/57915
45678         * recog.c (simplify_while_replacing): If all unary/binary/relational
45679         operation arguments are constant, attempt to simplify those.
45680
45681         PR middle-end/59261
45682         * expmed.c (expand_mult): For MODE_VECTOR_INT multiplication
45683         if there is no vashl<mode>3 or ashl<mode>3 insn, skip_synth.
45684
45685 2014-02-04  Richard Biener  <rguenther@suse.de>
45686
45687         PR tree-optimization/60012
45688         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Apply
45689         TBAA disambiguation to all DDRs.
45690
45691 2014-02-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
45692
45693         PR target/59788
45694         * config/sol2.h (LINK_LIBGCC_MAPFILE_SPEC): Define.
45695         (LINK_SPEC): Use it for -shared, -shared-libgcc.
45696
45697 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45698
45699         PR ipa/59882
45700         * tree.c (get_binfo_at_offset): Do not get confused by empty classes;
45701
45702 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45703
45704         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Remove.
45705         * gimple-fold.h (gimple_extract_devirt_binfo_from_cst): Remove.
45706
45707 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45708
45709         PR ipa/59831
45710         * ipa-cp.c (ipa_get_indirect_edge_target_1): Use ipa-devirt
45711         to figure out targets of polymorphic calls with known decl.
45712         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45713         * ipa-utils.h (get_polymorphic_call_info_from_invariant): Declare.
45714         * ipa-devirt.c (get_polymorphic_call_info_for_decl): Break out from ...
45715         (get_polymorphic_call_info): ... here.
45716         (get_polymorphic_call_info_from_invariant): New function.
45717
45718 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45719
45720         * ipa-cp.c (ipa_get_indirect_edge_target_1): Do direct
45721         lookup via vtable pointer; check for type consistency
45722         and turn inconsitent facts into UNREACHABLE.
45723         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45724         * gimple-fold.c (gimple_get_virt_method_for_vtable): Do not ICE on
45725         type inconsistent querries; return UNREACHABLE instead.
45726
45727 2014-02-03  Richard Henderson  <rth@twiddle.net>
45728
45729         PR tree-opt/59924
45730         * tree-ssa-uninit.c (push_to_worklist): Don't re-push if we've
45731         already processed this node.
45732         (normalize_one_pred_1): Pass along mark_set.
45733         (normalize_one_pred): Create and destroy a pointer_set_t.
45734         (normalize_one_pred_chain): Likewise.
45735
45736 2014-02-03  Laurent Aflonsi  <laurent.alfonsi@st.com>
45737
45738         PR gcov-profile/58602
45739         * gcc/gcov-io.c (gcov_open): Open with truncation when mode < 0.
45740
45741 2014-02-03  Jan Hubicka  <hubicka@ucw.cz>
45742
45743         PR ipa/59831
45744         * ipa-cp.c (ipa_get_indirect_edge_target_1): Give up on
45745         -fno-devirtualize; try to devirtualize by the knowledge of
45746         virtual table pointer given by aggregate propagation.
45747         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
45748         (ipa_print_node_jump_functions): Dump also offset that
45749         is relevant for polymorphic calls.
45750         (determine_known_aggregate_parts): Add arg_type parameter; use it
45751         instead of determining the type from pointer type.
45752         (ipa_compute_jump_functions_for_edge): Update call of
45753         determine_known_aggregate_parts.
45754         * gimple-fold.c (gimple_get_virt_method_for_vtable): Break out from ...
45755         (gimple_get_virt_method_for_binfo): ... here; simplify using
45756         vtable_pointer_value_to_vtable.
45757         * gimple-fold.h (gimple_get_virt_method_for_vtable): Declare.
45758         * ipa-devirt.c (subbinfo_with_vtable_at_offset): Turn OFFSET parameter
45759         to unsigned HOST_WIDE_INT; use vtable_pointer_value_to_vtable.
45760         (vtable_pointer_value_to_vtable): Break out from ...; handle also
45761         POINTER_PLUS_EXPR.
45762         (vtable_pointer_value_to_binfo): ... here.
45763         * ipa-utils.h (vtable_pointer_value_to_vtable): Declare.
45764
45765 2014-02-03  Teresa Johnson  <tejohnson@google.com>
45766
45767         * tree-vect-slp.c (vect_supported_load_permutation_p): Avoid
45768         redef of outer loop index variable.
45769
45770 2014-02-03  Marc Glisse  <marc.glisse@inria.fr>
45771
45772         PR c++/53017
45773         PR c++/59211
45774         * doc/extend.texi (Function Attributes): Typo.
45775
45776 2014-02-03  Cong Hou  <congh@google.com>
45777
45778         PR tree-optimization/60000
45779         * tree-vect-loop.c (vect_transform_loop): Set pattern_def_seq to NULL
45780         if the vectorized statement is a store.  A store statement can only
45781         appear at the end of pattern statements.
45782
45783 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
45784
45785         * config/i386/i386.c (flag_opts): Add -mlong-double-128.
45786         (ix86_option_override_internal): Default long double to 64-bit for
45787         32-bit Bionic and to 128-bit for 64-bit Bionic.
45788
45789         * config/i386/i386.h (LONG_DOUBLE_TYPE_SIZE): Use 128 if
45790         TARGET_LONG_DOUBLE_128 is true.
45791         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
45792
45793         * config/i386/i386.opt (mlong-double-80): Negate -mlong-double-64.
45794         (mlong-double-64): Negate -mlong-double-128.
45795         (mlong-double-128): New option.
45796
45797         * config/i386/i386-c.c (ix86_target_macros): Define
45798         __LONG_DOUBLE_128__ for TARGET_LONG_DOUBLE_128.
45799
45800         * doc/invoke.texi: Document -mlong-double-128.
45801
45802 2014-02-03  H.J. Lu  <hongjiu.lu@intel.com>
45803
45804         PR rtl-optimization/60024
45805         * sel-sched.c (init_regs_for_mode): Check if mode is OK first.
45806
45807 2014-02-03  Markus Trippelsdorf  <markus@trippelsdorf.de>
45808
45809         * doc/invoke.texi (fprofile-reorder-functions): Fix typo.
45810
45811 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
45812
45813         PR rtl-optimization/57662
45814         * sel-sched.c (code_motion_path_driver): Do not mark already not
45815         existing blocks in the visiting bitmap.
45816
45817 2014-02-03  Andrey Belevantsev  <abel@ispras.ru>
45818
45819         * sel-sched-ir.c (sel_gen_insn_from_expr_after): Reset INSN_DELETED_P
45820         on the insn being emitted.
45821
45822 2014-02-03  James Greenhalgh  <james.greenhalgh@arm.com>
45823             Will Deacon  <will.deacon@arm.com>
45824
45825         * doc/gimple.texi (gimple_asm_clear_volatile): Remove.
45826
45827 2014-02-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
45828
45829         * config/arm/arm-tables.opt: Regenerate.
45830
45831 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45832
45833         * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): Generalize
45834         for vector types other than V16QImode.
45835         * config/rs6000/altivec.md (altivec_vperm_<mode>): Change to a
45836         define_expand, and call altivec_expand_vec_perm_le when producing
45837         code with little endian element order.
45838         (*altivec_vperm_<mode>_internal): New insn having previous
45839         behavior of altivec_vperm_<mode>.
45840         (altivec_vperm_<mode>_uns): Change to a define_expand, and call
45841         altivec_expand_vec_perm_le when producing code with little endian
45842         element order.
45843         (*altivec_vperm_<mode>_uns_internal): New insn having previous
45844         behavior of altivec_vperm_<mode>_uns.
45845
45846 2014-02-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45847
45848         * config/rs6000/altivec.md (UNSPEC_VSUMSWS_DIRECT): New unspec.
45849         (altivec_vsumsws): Add handling for -maltivec=be with a little
45850         endian target.
45851         (altivec_vsumsws_direct): New.
45852         (reduc_splus_<mode>): Call gen_altivec_vsumsws_direct instead of
45853         gen_altivec_vsumsws.
45854
45855 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
45856
45857         * ipa-devirt.c (subbinfo_with_vtable_at_offset,
45858         vtable_pointer_value_to_binfo): New functions.
45859         * ipa-utils.h (vtable_pointer_value_to_binfo): Declare.
45860         * ipa-prop.c (extr_type_from_vtbl_ptr_store): Use it.
45861
45862 2014-02-02  Sandra Loosemore  <sandra@codesourcery.com>
45863
45864         * config/nios2/nios2.md (load_got_register): Initialize GOT
45865         pointer from _gp_got instead of _GLOBAL_OFFSET_TABLE_.
45866         * config/nios2/nios2.c (nios2_function_profiler): Likewise.
45867
45868 2014-02-02  Jan Hubicka  <hubicka@ucw.cz>
45869
45870         * ipa-prop.c (update_jump_functions_after_inlining): When type is not
45871         preserverd by passthrough, do not propagate the type.
45872
45873 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
45874
45875         * config/mips/mips.c (MIPS_GET_FCSR, MIPS_SET_FCSR): New macros.
45876         (mips_atomic_assign_expand_fenv): New function.
45877         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
45878
45879 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
45880
45881         * doc/extend.texi (__builtin_mips_get_fcsr): Document.
45882         (__builtin_mips_set_fcsr): Likewise.
45883         * config/mips/mips-ftypes.def: Add MIPS_VOID_FTYPE_USI and
45884         MIPS_USI_FTYPE_VOID.
45885         * config/mips/mips-protos.h (mips16_expand_get_fcsr): Declare
45886         (mips16_expand_set_fcsr): Likewise.
45887         * config/mips/mips.c (mips16_get_fcsr_stub): New variable.
45888         (mips16_set_fcsr_stub): Likewise.
45889         (mips16_get_fcsr_one_only_stub): New class.
45890         (mips16_set_fcsr_one_only_stub): Likewise.
45891         (mips16_expand_get_fcsr, mips16_expand_set_fcsr): New functions.
45892         (mips_code_end): Output the get_fcsr and set_fcsr stubs, if needed.
45893         (BUILTIN_AVAIL_MIPS16, AVAIL_ALL): New macros.
45894         (hard_float): New availability predicate.
45895         (mips_builtins): Add get_fcsr and set_fcsr.
45896         (mips_expand_builtin): Check BUILTIN_AVAIL_MIPS16.
45897         * config/mips/mips.md (UNSPEC_GET_FCSR, UNSPEC_SET_FCSR): New unspecs.
45898         (GET_FCSR_REGNUM, SET_FCSR_REGNUM): New constants.
45899         (mips_get_fcsr, *mips_get_fcsr, mips_get_fcsr_mips16_<mode>)
45900         (mips_set_fcsr, *mips_set_fcsr, mips_set_fcsr_mips16_<mode>): New
45901         patterns.
45902
45903 2014-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
45904
45905         * config/mips/mips.c (mips_one_only_stub): New class.
45906         (mips_need_mips16_rdhwr_p): Replace with...
45907         (mips16_rdhwr_stub): ...this new variable.
45908         (mips16_stub_call_address): New function.
45909         (mips16_rdhwr_one_only_stub): New class.
45910         (mips_expand_thread_pointer): Use mips16_stub_call_address.
45911         (mips_output_mips16_rdhwr): Delete.
45912         (mips_finish_stub): New function.
45913         (mips_code_end): Use it to handle rdhwr stubs.
45914
45915 2014-02-02  Uros Bizjak  <ubizjak@gmail.com>
45916
45917         PR target/60017
45918         * config/i386/i386.c (classify_argument): Fix handling of bit_offset
45919         when calculating size of integer atomic types.
45920
45921 2014-02-02  H.J. Lu  <hongjiu.lu@intel.com>
45922
45923         * ipa-inline-analysis.c (true_predicate_p): Fix a typo in comments.
45924
45925 2014-02-01  Jakub Jelinek  <jakub@redhat.com>
45926
45927         PR tree-optimization/60003
45928         * gimple-low.c (lower_builtin_setjmp): Set cfun->has_nonlocal_label.
45929         * profile.c (branch_prob): Use gimple_call_builtin_p
45930         to check for BUILT_IN_SETJMP_RECEIVER.
45931         * tree-inline.c (copy_bb): Call notice_special_calls.
45932
45933 2014-01-31  Vladimir Makarov  <vmakarov@redhat.com>
45934
45935         PR bootstrap/59985
45936         * lra-constraints.c (process_alt_operands): Update reload_sum only
45937         on the first pass.
45938
45939 2014-01-31  Richard Henderson  <rth@redhat.com>
45940
45941         PR middle-end/60004
45942         * tree-eh.c (lower_try_finally_switch): Delay lowering finally block
45943         until after else_eh is processed.
45944
45945 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
45946
45947         * config/i386/avx512fintrin.h (_MM_FROUND_TO_NEAREST_INT),
45948         (_MM_FROUND_TO_NEG_INF), (_MM_FROUND_TO_POS_INF),
45949         (_MM_FROUND_TO_ZERO), (_MM_FROUND_CUR_DIRECTION): Are already defined
45950         in smmintrin.h, remove them.
45951         (_MM_FROUND_NO_EXC): Same as above, bit also wrong value.
45952         * config/i386/i386.c (ix86_print_operand): Split sae and rounding.
45953         * config/i386/i386.md (ROUND_SAE): Fix value.
45954         * config/i386/predicates.md (const_4_or_8_to_11_operand): New.
45955         (const48_operand): New.
45956         * config/i386/subst.md (round), (round_expand): Use
45957         const_4_or_8_to_11_operand.
45958         (round_saeonly), (round_saeonly_expand): Use const48_operand.
45959
45960 2014-01-31  Ilya Tocar  <ilya.tocar@intel.com>
45961
45962         * config/i386/constraints.md (Yk): Swap meaning with k.
45963         * config/i386/i386.md (movhi_internal): Change Yk to k.
45964         (movqi_internal): Ditto.
45965         (*k<logic><mode>): Ditto.
45966         (*andhi_1): Ditto.
45967         (*andqi_1): Ditto.
45968         (kandn<mode>): Ditto.
45969         (*<code>hi_1): Ditto.
45970         (*<code>qi_1): Ditto.
45971         (kxnor<mode>): Ditto.
45972         (kortestzhi): Ditto.
45973         (kortestchi): Ditto.
45974         (kunpckhi): Ditto.
45975         (*one_cmplhi2_1): Ditto.
45976         (*one_cmplqi2_1): Ditto.
45977         * config/i386/sse.md (): Change k to Yk.
45978         (avx512f_load<mode>_mask): Ditto.
45979         (avx512f_blendm<mode>): Ditto.
45980         (avx512f_store<mode>_mask): Ditto.
45981         (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
45982         (avx512f_storedqu<mode>_mask): Ditto.
45983         (avx512f_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>):
45984         Ditto.
45985         (avx512f_ucmp<mode>3<mask_scalar_merge_name>): Ditto.
45986         (avx512f_vmcmp<mode>3<round_saeonly_name>): Ditto.
45987         (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Ditto.
45988         (avx512f_maskcmp<mode>3): Ditto.
45989         (avx512f_fmadd_<mode>_mask<round_name>): Ditto.
45990         (avx512f_fmadd_<mode>_mask3<round_name>): Ditto.
45991         (avx512f_fmsub_<mode>_mask<round_name>): Ditto.
45992         (avx512f_fmsub_<mode>_mask3<round_name>): Ditto.
45993         (avx512f_fnmadd_<mode>_mask<round_name>): Ditto.
45994         (avx512f_fnmadd_<mode>_mask3<round_name>): Ditto.
45995         (avx512f_fnmsub_<mode>_mask<round_name>): Ditto.
45996         (avx512f_fnmsub_<mode>_mask3<round_name>): Ditto.
45997         (avx512f_fmaddsub_<mode>_mask<round_name>): Ditto.
45998         (avx512f_fmaddsub_<mode>_mask3<round_name>): Ditto.
45999         (avx512f_fmsubadd_<mode>_mask<round_name>): Ditto.
46000         (avx512f_fmsubadd_<mode>_mask3<round_name>): Ditto.
46001         (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
46002         (vec_extract_lo_<mode>_maskm): Ditto.
46003         (vec_extract_hi_<mode>_maskm): Ditto.
46004         (avx512f_vternlog<mode>_mask): Ditto.
46005         (avx512f_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
46006         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Ditto.
46007         (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
46008         (avx512f_<code>v8div16qi2_mask): Ditto.
46009         (avx512f_<code>v8div16qi2_mask_store): Ditto.
46010         (avx512f_eq<mode>3<mask_scalar_merge_name>_1): Ditto.
46011         (avx512f_gt<mode>3<mask_scalar_merge_name>): Ditto.
46012         (avx512f_testm<mode>3<mask_scalar_merge_name>): Ditto.
46013         (avx512f_testnm<mode>3<mask_scalar_merge_name>): Ditto.
46014         (*avx512pf_gatherpf<mode>sf_mask): Ditto.
46015         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46016         (*avx512pf_scatterpf<mode>sf_mask): Ditto.
46017         (*avx512pf_scatterpf<mode>df_mask): Ditto.
46018         (avx512cd_maskb_vec_dupv8di): Ditto.
46019         (avx512cd_maskw_vec_dupv16si): Ditto.
46020         (avx512f_vpermi2var<mode>3_maskz): Ditto.
46021         (avx512f_vpermi2var<mode>3_mask): Ditto.
46022         (avx512f_vpermi2var<mode>3_mask): Ditto.
46023         (avx512f_vpermt2var<mode>3_maskz): Ditto.
46024         (*avx512f_gathersi<mode>): Ditto.
46025         (*avx512f_gathersi<mode>_2): Ditto.
46026         (*avx512f_gatherdi<mode>): Ditto.
46027         (*avx512f_gatherdi<mode>_2): Ditto.
46028         (*avx512f_scattersi<mode>): Ditto.
46029         (*avx512f_scatterdi<mode>): Ditto.
46030         (avx512f_compress<mode>_mask): Ditto.
46031         (avx512f_compressstore<mode>_mask): Ditto.
46032         (avx512f_expand<mode>_mask): Ditto.
46033         * config/i386/subst.md (mask): Change k to Yk.
46034         (mask_scalar_merge): Ditto.
46035         (sd): Ditto.
46036
46037 2014-01-31  Marc Glisse  <marc.glisse@inria.fr>
46038
46039         * doc/extend.texi (Vector Extensions): Document ?: in C++.
46040
46041 2014-01-31  Richard Biener  <rguenther@suse.de>
46042
46043         PR middle-end/59990
46044         * builtins.c (fold_builtin_memory_op): Make sure to not
46045         use a floating-point mode or a boolean or enumeral type for
46046         the copy operation.
46047
46048 2014-01-30  DJ Delorie  <dj@redhat.com>
46049
46050         * config/msp430/msp430.h (LIB_SPEC): Add -lcrt
46051         * config/msp430/msp430.md (msp430_refsym_need_exit): New.
46052         * config/msp430/msp430.c (msp430_expand_epilogue): Call it
46053         whenever main() has an epilogue.
46054
46055 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46056
46057         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Remove
46058         unused variable "field".
46059         * config/rs6000/vsx.md (vsx_mergel_<mode>): Add missing DONE.
46060         (vsx_mergeh_<mode>): Likewise.
46061         * config/rs6000/altivec.md (altivec_vmrghb): Likewise.
46062         (altivec_vmrghh): Likewise.
46063         (altivec_vmrghw): Likewise.
46064         (altivec_vmrglb): Likewise.
46065         (altivec_vmrglh): Likewise.
46066         (altivec_vmrglw): Likewise.
46067         (altivec_vspltb): Add missing uses.
46068         (altivec_vsplth): Likewise.
46069         (altivec_vspltw): Likewise.
46070         (altivec_vspltsf): Likewise.
46071
46072 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46073
46074         PR target/59923
46075         * ifcvt.c (cond_exec_process_insns): Don't conditionalize
46076         frame related instructions.
46077
46078 2014-01-30  Vladimir Makarov  <vmakarov@redhat.com>
46079
46080         PR rtl-optimization/59959
46081         * lra-constrains.c (simplify_operand_subreg): Assign NO_REGS to
46082         any reload of register whose subreg is invalid.
46083
46084 2014-01-30  Jakub Jelinek  <jakub@redhat.com>
46085
46086         * config/i386/f16cintrin.h (_cvtsh_ss): Avoid -Wnarrowing warning.
46087         * config/i386/avx512fintrin.h (_mm512_mask_cvtusepi64_storeu_epi32):
46088         Add missing return type - void.
46089
46090 2014-01-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46091
46092         * gcc/config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
46093         gen_vsx_xxspltw_v4sf_direct instead of gen_vsx_xxspltw_v4sf;
46094         remove element index adjustment for endian (now handled in vsx.md
46095         and altivec.md).
46096         (altivec_expand_vec_perm_const): Use
46097         gen_altivec_vsplt[bhw]_direct instead of gen_altivec_vsplt[bhw].
46098         * gcc/config/rs6000/vsx.md (UNSPEC_VSX_XXSPLTW): New unspec.
46099         (vsx_xxspltw_<mode>): Adjust element index for little endian.
46100         * gcc/config/rs6000/altivec.md (altivec_vspltb): Divide into a
46101         define_expand and a new define_insn *altivec_vspltb_internal;
46102         adjust for -maltivec=be on a little endian target.
46103         (altivec_vspltb_direct): New.
46104         (altivec_vsplth): Divide into a define_expand and a new
46105         define_insn *altivec_vsplth_internal; adjust for -maltivec=be on a
46106         little endian target.
46107         (altivec_vsplth_direct): New.
46108         (altivec_vspltw): Divide into a define_expand and a new
46109         define_insn *altivec_vspltw_internal; adjust for -maltivec=be on a
46110         little endian target.
46111         (altivec_vspltw_direct): New.
46112         (altivec_vspltsf): Divide into a define_expand and a new
46113         define_insn *altivec_vspltsf_internal; adjust for -maltivec=be on
46114         a little endian target.
46115
46116 2014-01-30  Richard Biener  <rguenther@suse.de>
46117
46118         PR tree-optimization/59993
46119         * tree-ssa-forwprop.c (associate_pointerplus): Check we
46120         can propagate form the earlier stmt and avoid the transform
46121         when the intermediate result is needed.
46122
46123 2014-01-30  Alangi Derick  <alangiderick@gmail.com>
46124
46125         * README.Portability: Fix typo.
46126
46127 2014-01-30  David Holsgrove  <david.holsgrove@xilinx.com>
46128
46129         * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace
46130         comparison_operator with ordered_comparison_operator.
46131
46132 2014-01-30  Nick Clifton  <nickc@redhat.com>
46133
46134         * config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation_p):
46135         Rename to mn10300_store_multiple_regs.
46136         * config/mn10300/mn10300.c: Likewise.
46137         * config/mn10300/mn10300.md (store_movm): Fix typo: call
46138         store_multiple_regs.
46139         * config/mn10300/predicates.md (mn10300_store_multiple_operation):
46140         Call mn10300_store_multiple_regs.
46141
46142 2014-01-30  Nick Clifton  <nickc@redhat.com>
46143             DJ Delorie  <dj@redhat.com>
46144
46145         * config/rl78/rl78.c (register_sizes): Make the "upper half" of
46146         %fp 2 to keep registers after it properly word-aligned.
46147         (rl78_alloc_physical_registers_umul): Handle the case where both
46148         input operands are the same.
46149
46150 2014-01-30  Richard Biener  <rguenther@suse.de>
46151
46152         PR tree-optimization/59903
46153         * tree-vect-loop.c (vect_transform_loop): Guard multiple-types
46154         check properly.
46155
46156 2014-01-30  Jason Merrill  <jason@redhat.com>
46157
46158         PR c++/59633
46159         * tree.c (walk_type_fields): Handle VECTOR_TYPE.
46160
46161         PR c++/59645
46162         * cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.
46163
46164 2014-01-30  Richard Biener  <rguenther@suse.de>
46165
46166         PR tree-optimization/59951
46167         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug insns.
46168
46169 2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>
46170
46171         PR target/59784
46172         * config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
46173         SFmode to DFmode case.
46174
46175 2014-01-29  DJ Delorie  <dj@redhat.com>
46176
46177         * config/msp430/msp430.opt (-minrt): New.
46178         * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
46179         if -minrt given.
46180         (ENDFILE_SPEC): Likewise.
46181
46182 2014-01-29  Jan Hubicka  <hubicka@ucw.cz>
46183
46184         * ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
46185         (estimate_function_body_sizes): Use it.
46186
46187 2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
46188
46189         PR c++/58561
46190         * dwarf2out.c (is_cxx_auto): New.
46191         (is_base_type): Use it.
46192         (gen_type_die_with_usage): Likewise.
46193
46194 2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46195
46196         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
46197         CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
46198         * config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
46199         -maltivec=be with LE targets.
46200         (vsx_mergeh_<mode>): Likewise.
46201         * config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New unspecs.
46202         (mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
46203         (altivec_vmrghb): Replace with define_expand and new
46204         *altivec_vmrghb_internal insn; adjust for -maltivec=be with LE targets.
46205         (altivec_vmrghb_direct): New define_insn.
46206         (altivec_vmrghh): Replace with define_expand and new
46207         *altivec_vmrghh_internal insn; adjust for -maltivec=be with LE targets.
46208         (altivec_vmrghh_direct): New define_insn.
46209         (altivec_vmrghw): Replace with define_expand and new
46210         *altivec_vmrghw_internal insn; adjust for -maltivec=be with LE targets.
46211         (altivec_vmrghw_direct): New define_insn.
46212         (*altivec_vmrghsf): Adjust for endianness.
46213         (altivec_vmrglb): Replace with define_expand and new
46214         *altivec_vmrglb_internal insn; adjust for -maltivec=be with LE targets.
46215         (altivec_vmrglb_direct): New define_insn.
46216         (altivec_vmrglh): Replace with define_expand and new
46217         *altivec_vmrglh_internal insn; adjust for -maltivec=be with LE targets.
46218         (altivec_vmrglh_direct): New define_insn.
46219         (altivec_vmrglw): Replace with define_expand and new
46220         *altivec_vmrglw_internal insn; adjust for -maltivec=be with LE targets.
46221         (altivec_vmrglw_direct): New define_insn.
46222         (*altivec_vmrglsf): Adjust for endianness.
46223         (vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46224         (vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46225         (vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
46226         (vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
46227         (vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46228         (vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46229         (vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
46230         (vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.
46231
46232 2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>
46233
46234         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
46235         (aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
46236         whitespace.
46237
46238 2014-01-29  Richard Biener  <rguenther@suse.de>
46239
46240         PR tree-optimization/58742
46241         * tree-ssa-forwprop.c (associate_pointerplus): Rename to
46242         associate_pointerplus_align.
46243         (associate_pointerplus_diff): New function.
46244         (associate_pointerplus): Likewise.  Call associate_pointerplus_align
46245         and associate_pointerplus_diff.
46246
46247 2014-01-29  Richard Biener  <rguenther@suse.de>
46248
46249         * lto-streamer.h (LTO_major_version): Bump to 3.
46250         (LTO_minor_version): Reset to 0.
46251
46252 2014-01-29  Renlin Li  <Renlin.Li@arm.com>
46253
46254         * config/arm/arm-arches.def (ARM_ARCH): Add armv7ve arch.
46255         * config/arm/arm.c (FL_FOR_ARCH7VE): New.
46256         (arm_file_start): Generate correct asm header for armv7ve.
46257         * config/arm/bpabi.h: Add multilib support for armv7ve.
46258         * config/arm/driver-arm.c: Change the architectures of cortex-a7
46259         and cortex-a15 to armv7ve.
46260         * config/arm/t-aprofile: Add multilib support for armv7ve.
46261         * doc/invoke.texi: Document -march=armv7ve.
46262
46263 2014-01-29  Richard Biener  <rguenther@suse.de>
46264
46265         PR tree-optimization/58742
46266         * tree-ssa-forwprop.c (associate_plusminus): Return true
46267         if we changed sth, defer EH cleanup to ...
46268         (ssa_forward_propagate_and_combine): ... here.  Call simplify_mult.
46269         (simplify_mult): New function.
46270
46271 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46272
46273         PR middle-end/59917
46274         PR tree-optimization/59920
46275         * tree.c (build_common_builtin_nodes): Remove
46276         __builtin_setjmp_dispatcher initialization.
46277         * omp-low.h (make_gimple_omp_edges): Add a new int * argument.
46278         * profile.c (branch_prob): Use gsi_start_nondebug_after_labels_bb
46279         instead of gsi_after_labels + manually skipping debug stmts.
46280         Don't ignore bbs with BUILT_IN_SETJMP_DISPATCHER, instead
46281         ignore bbs with IFN_ABNORMAL_DISPATCHER.
46282         * tree-inline.c (copy_edges_for_bb): Remove
46283         can_make_abnormal_goto argument, instead add abnormal_goto_dest
46284         argument.  Ignore computed_goto_p stmts.  Don't call
46285         make_abnormal_goto_edges.  If a call might need abnormal edges
46286         for non-local gotos, see if it already has an edge to
46287         IFN_ABNORMAL_DISPATCHER or if it is IFN_ABNORMAL_DISPATCHER
46288         with true argument, don't do anything then, otherwise add
46289         EDGE_ABNORMAL from the call's bb to abnormal_goto_dest.
46290         (copy_cfg_body): Compute abnormal_goto_dest, adjust copy_edges_for_bb
46291         caller.
46292         * gimple-low.c (struct lower_data): Remove calls_builtin_setjmp.
46293         (lower_function_body): Don't emit __builtin_setjmp_dispatcher.
46294         (lower_stmt): Don't set data->calls_builtin_setjmp.
46295         (lower_builtin_setjmp): Adjust comment.
46296         * builtins.def (BUILT_IN_SETJMP_DISPATCHER): Remove.
46297         * tree-cfg.c (found_computed_goto): Remove.
46298         (factor_computed_gotos): Remove.
46299         (make_goto_expr_edges): Return bool, true for computed gotos.
46300         Don't call make_abnormal_goto_edges.
46301         (build_gimple_cfg): Don't set found_computed_goto, don't call
46302         factor_computed_gotos.
46303         (computed_goto_p): No longer static.
46304         (make_blocks): Don't set found_computed_goto.
46305         (get_abnormal_succ_dispatcher, handle_abnormal_edges): New functions.
46306         (make_edges): If make_goto_expr_edges returns true, push bb
46307         into ab_edge_goto vector, for stmt_can_make_abnormal_goto calls
46308         instead of calling make_abnormal_goto_edges push bb into ab_edge_call
46309         vector.  Record mapping between bbs and OpenMP regions if there
46310         are any, adjust make_gimple_omp_edges caller.  Call
46311         handle_abnormal_edges.
46312         (make_abnormal_goto_edges): Remove.
46313         * tree-cfg.h (make_abnormal_goto_edges): Remove.
46314         (computed_goto_p, get_abnormal_succ_dispatcher): New prototypes.
46315         * internal-fn.c (expand_ABNORMAL_DISPATCHER): New function.
46316         * builtins.c (expand_builtin): Don't handle BUILT_IN_SETJMP_DISPATCHER.
46317         * internal-fn.def (ABNORMAL_DISPATCHER): New.
46318         * omp-low.c (make_gimple_omp_edges): Add region_idx argument, when
46319         filling *region also set *region_idx to (*region)->entry->index.
46320
46321         PR other/58712
46322         * read-rtl.c (read_rtx_code): Clear all of RTX_CODE_SIZE (code).
46323         For REGs set ORIGINAL_REGNO.
46324
46325 2014-01-29  Bingfeng Mei  <bmei@broadcom.com>
46326
46327         * doc/md.texi: Mention that a target shouldn't implement
46328         vec_widen_(s|u)mul_even/odd pair if it is less efficient
46329         than hi/lo pair.
46330
46331 2014-01-29  Jakub Jelinek  <jakub@redhat.com>
46332
46333         PR tree-optimization/59594
46334         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Sort
46335         a copy of the datarefs vector rather than the vector itself.
46336
46337 2014-01-28  Jason Merrill  <jason@redhat.com>
46338
46339         PR c++/53756
46340         * dwarf2out.c (auto_die): New static.
46341         (gen_type_die_with_usage): Handle C++1y 'auto'.
46342         (gen_subprogram_die): If in-class DIE had 'auto', emit type again
46343         on definition.
46344
46345 2014-01-28  H.J. Lu  <hongjiu.lu@intel.com>
46346
46347         PR target/59672
46348         * config/i386/gnu-user64.h (SPEC_32): Add "m16|" to "m32".
46349         (SPEC_X32): Likewise.
46350         (SPEC_64): Likewise.
46351         * config/i386/i386.c (ix86_option_override_internal): Turn off
46352         OPTION_MASK_ISA_64BIT, OPTION_MASK_ABI_X32 and OPTION_MASK_ABI_64
46353         for TARGET_16BIT.
46354         (x86_file_start): Output .code16gcc for TARGET_16BIT.
46355         * config/i386/i386.h (TARGET_16BIT): New macro.
46356         (TARGET_16BIT_P): Likewise.
46357         * config/i386/i386.opt: Add m16.
46358         * doc/invoke.texi: Document -m16.
46359
46360 2014-01-28  Jakub Jelinek  <jakub@redhat.com>
46361
46362         PR preprocessor/59935
46363         * input.c (location_get_source_line): Bail out on when line number
46364         is zero, and test the return value of lookup_or_add_file_to_cache_tab.
46365
46366 2014-01-28  Richard Biener  <rguenther@suse.de>
46367
46368         PR tree-optimization/58742
46369         * tree-ssa-forwprop.c (associate_plusminus): Handle
46370         pointer subtraction of the form (T)(P + A) - (T)P.
46371
46372 2014-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
46373
46374         * config/arm/arm.c (arm_new_rtx_costs): Remove useless statement
46375         at const_int_cost.
46376
46377 2014-01-28  Richard Biener  <rguenther@suse.de>
46378
46379         Revert
46380         2014-01-28  Richard Biener  <rguenther@suse.de>
46381
46382         PR rtl-optimization/45364
46383         PR rtl-optimization/59890
46384         * var-tracking.c (local_get_addr_clear_given_value): Handle
46385         already cleared slot.
46386         (val_reset): Handle not allocated local_get_addr_cache.
46387         (vt_find_locations): Use post-order on the inverted CFG.
46388
46389 2014-01-28  Richard Biener  <rguenther@suse.de>
46390
46391         * tree-data-ref.h (ddr_is_anti_dependent, ddrs_have_anti_deps): Remove.
46392
46393 2014-01-28  Richard Biener  <rguenther@suse.de>
46394
46395         PR rtl-optimization/45364
46396         PR rtl-optimization/59890
46397         * var-tracking.c (local_get_addr_clear_given_value): Handle
46398         already cleared slot.
46399         (val_reset): Handle not allocated local_get_addr_cache.
46400         (vt_find_locations): Use post-order on the inverted CFG.
46401
46402 2014-01-28  Alan Modra  <amodra@gmail.com>
46403
46404         * Makefile.in (BUILD_CPPFLAGS): Do not use ALL_CPPFLAGS.
46405         * configure.ac <recursive call for build != host>: Define
46406         GENERATOR_FILE.  Comment.  Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD
46407         and LD_FOR_BUILD too.
46408         * configure: Regenerate.
46409
46410 2014-01-27  Allan Sandfeld Jensen  <sandfeld@kde.org>
46411
46412         * config/i386/i386.c (get_builtin_code_for_version): Separate
46413         Westmere from Nehalem, Ivy Bridge from Sandy Bridge and
46414         Broadwell from Haswell.
46415
46416 2014-01-27  Steve Ellcey  <sellcey@mips.com>
46417
46418         * common/config/mips/mips-common.c (TARGET_DEFAULT_TARGET_FLAGS):
46419         Remove TARGET_FP_EXCEPTIONS_DEFAULT and MASK_FUSED_MADD.
46420         * config/mips/mips.c (mips_option_override): Change setting
46421         of TARGET_DSP.
46422         * config/mips/mips.h (TARGET_FP_EXCEPTIONS_DEFAULT): Remove.
46423         * config/mips/mips.opt (DSP, DSPR2, FP_EXCEPTIONS, FUSED_MADD, MIPS3D):
46424         Change from Mask to Var.
46425
46426 2014-01-27  Jeff Law  <law@redhat.com>
46427
46428         * ipa-inline.c (inline_small_functions): Fix typo.
46429
46430 2014-01-27  Ilya Tocar  <ilya.tocar@intel.com>
46431
46432         * config/i386/avx512fintrin.h (_mm512_mask_cvtepi32_storeu_epi8): New.
46433         (_mm512_mask_cvtsepi32_storeu_epi8): Ditto.
46434         (_mm512_mask_cvtusepi32_storeu_epi8): Ditto.
46435         (_mm512_mask_cvtepi32_storeu_epi16): Ditto.
46436         (_mm512_mask_cvtsepi32_storeu_epi16): Ditto.
46437         (_mm512_mask_cvtusepi32_storeu_epi16): Ditto.
46438         (_mm512_mask_cvtepi64_storeu_epi32): Ditto.
46439         (_mm512_mask_cvtsepi64_storeu_epi32): Ditto.
46440         (_mm512_mask_cvtusepi64_storeu_epi32): Ditto.
46441         (_mm512_mask_cvtepi64_storeu_epi16): Ditto.
46442         (_mm512_mask_cvtsepi64_storeu_epi16): Ditto.
46443         (_mm512_mask_cvtusepi64_storeu_epi16): Ditto.
46444         (_mm512_mask_cvtepi64_storeu_epi8): Ditto.
46445         (_mm512_mask_cvtsepi64_storeu_epi8): Ditto.
46446         (_mm512_mask_cvtusepi64_storeu_epi8): Ditto.
46447         (_mm512_storeu_epi64): Ditto.
46448         (_mm512_cmpge_epi32_mask): Ditto.
46449         (_mm512_cmpge_epu32_mask): Ditto.
46450         (_mm512_cmpge_epi64_mask): Ditto.
46451         (_mm512_cmpge_epu64_mask): Ditto.
46452         (_mm512_cmple_epi32_mask): Ditto.
46453         (_mm512_cmple_epu32_mask): Ditto.
46454         (_mm512_cmple_epi64_mask): Ditto.
46455         (_mm512_cmple_epu64_mask): Ditto.
46456         (_mm512_cmplt_epi32_mask): Ditto.
46457         (_mm512_cmplt_epu32_mask): Ditto.
46458         (_mm512_cmplt_epi64_mask): Ditto.
46459         (_mm512_cmplt_epu64_mask): Ditto.
46460         (_mm512_cmpneq_epi32_mask): Ditto.
46461         (_mm512_cmpneq_epu32_mask): Ditto.
46462         (_mm512_cmpneq_epi64_mask): Ditto.
46463         (_mm512_cmpneq_epu64_mask): Ditto.
46464         (_mm512_expand_pd): Ditto.
46465         (_mm512_expand_ps): Ditto.
46466         * config/i386/i386-builtin-types.def: Add PV16QI, PV16QI, PV16HI,
46467         VOID_PV8SI_V8DI_QI, VOID_PV8HI_V8DI_QI, VOID_PV16QI_V8DI_QI,
46468         VOID_PV16QI_V16SI_HI, VOID_PV16HI_V16SI_HI.
46469         * config/i386/i386.c (ix86_builtins): Add
46470         IX86_BUILTIN_EXPANDPD512_NOMASK, IX86_BUILTIN_EXPANDPS512_NOMASK,
46471         IX86_BUILTIN_PMOVDB512_MEM, IX86_BUILTIN_PMOVDW512_MEM,
46472         IX86_BUILTIN_PMOVQB512_MEM, IX86_BUILTIN_PMOVQD512_MEM,
46473         IX86_BUILTIN_PMOVQW512_MEM, IX86_BUILTIN_PMOVSDB512_MEM,
46474         IX86_BUILTIN_PMOVSDW512_MEM, IX86_BUILTIN_PMOVSQB512_MEM,
46475         IX86_BUILTIN_PMOVSQD512_MEM, IX86_BUILTIN_PMOVSQW512_MEM,
46476         IX86_BUILTIN_PMOVUSDB512_MEM, IX86_BUILTIN_PMOVUSDW512_MEM,
46477         IX86_BUILTIN_PMOVUSQB512_MEM, IX86_BUILTIN_PMOVUSQD512_MEM,
46478         IX86_BUILTIN_PMOVUSQW512_MEM.
46479         (bdesc_special_args): Add __builtin_ia32_pmovusqd512mem_mask,
46480         __builtin_ia32_pmovsqd512mem_mask,
46481         __builtin_ia32_pmovqd512mem_mask,
46482         __builtin_ia32_pmovusqw512mem_mask,
46483         __builtin_ia32_pmovsqw512mem_mask,
46484         __builtin_ia32_pmovqw512mem_mask,
46485         __builtin_ia32_pmovusdw512mem_mask,
46486         __builtin_ia32_pmovsdw512mem_mask,
46487         __builtin_ia32_pmovdw512mem_mask,
46488         __builtin_ia32_pmovqb512mem_mask,
46489         __builtin_ia32_pmovusqb512mem_mask,
46490         __builtin_ia32_pmovsqb512mem_mask,
46491         __builtin_ia32_pmovusdb512mem_mask,
46492         __builtin_ia32_pmovsdb512mem_mask,
46493         __builtin_ia32_pmovdb512mem_mask.
46494         (bdesc_args): Add __builtin_ia32_expanddf512,
46495         __builtin_ia32_expandsf512.
46496         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PV8SI_V8DI_QI,
46497         VOID_FTYPE_PV8HI_V8DI_QI, VOID_FTYPE_PV16HI_V16SI_HI,
46498         VOID_FTYPE_PV16QI_V8DI_QI, VOID_FTYPE_PV16QI_V16SI_HI.
46499         * config/i386/sse.md (unspec): Add UNSPEC_EXPAND_NOMASK.
46500         (avx512f_<code><pmov_src_lower><mode>2_mask_store): New.
46501         (*avx512f_<code>v8div16qi2_store_mask): Renamed to ...
46502         (avx512f_<code>v8div16qi2_mask_store): This.
46503         (avx512f_expand<mode>): New.
46504
46505 2014-01-27  Kirill Yukhin  <kirill.yukhin@intel.com>
46506
46507         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd):
46508         New.
46509         (_mm512_mask_prefetch_i64gather_pd): Ditto.
46510         (_mm512_prefetch_i32scatter_pd): Ditto.
46511         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
46512         (_mm512_prefetch_i64scatter_pd): Ditto.
46513         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
46514         (_mm512_mask_prefetch_i32gather_ps): Fix operand type.
46515         (_mm512_mask_prefetch_i64gather_ps): Ditto.
46516         (_mm512_prefetch_i32scatter_ps): Ditto.
46517         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
46518         (_mm512_prefetch_i64scatter_ps): Ditto.
46519         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
46520         * config/i386/i386-builtin-types.def: Define
46521         VOID_FTYPE_QI_V8SI_PCINT64_INT_INT
46522         and VOID_FTYPE_QI_V8DI_PCINT64_INT_INT.
46523         * config/i386/i386.c (ix86_builtins): Define IX86_BUILTIN_GATHERPFQPD,
46524         IX86_BUILTIN_GATHERPFDPD, IX86_BUILTIN_SCATTERPFDPD,
46525         IX86_BUILTIN_SCATTERPFQPD.
46526         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_gatherpfdpd,
46527         __builtin_ia32_gatherpfdps, __builtin_ia32_gatherpfqpd,
46528         __builtin_ia32_gatherpfqps, __builtin_ia32_scatterpfdpd,
46529         __builtin_ia32_scatterpfdps, __builtin_ia32_scatterpfqpd,
46530         __builtin_ia32_scatterpfqps.
46531         (ix86_expand_builtin): Expand new built-ins.
46532         * config/i386/sse.md (avx512pf_gatherpf<mode>): Add SF suffix,
46533         fix memory access data type.
46534         (*avx512pf_gatherpf<mode>_mask): Ditto.
46535         (*avx512pf_gatherpf<mode>): Ditto.
46536         (avx512pf_scatterpf<mode>): Ditto.
46537         (*avx512pf_scatterpf<mode>_mask): Ditto.
46538         (*avx512pf_scatterpf<mode>): Ditto.
46539         (GATHER_SCATTER_SF_MEM_MODE): New.
46540         (avx512pf_gatherpf<mode>df): Ditto.
46541         (*avx512pf_gatherpf<mode>df_mask): Ditto.
46542         (*avx512pf_scatterpf<mode>df): Ditto.
46543
46544 2014-01-27  Jakub Jelinek  <jakub@redhat.com>
46545
46546         PR bootstrap/59934
46547         * expmed.h (expmed_mode_index): Rework so that analysis and optimziers
46548         know when the MODE_PARTIAL_INT and MODE_VECTOR_INT cases can never be
46549         reached.
46550
46551 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46552
46553         * common/config/arm/arm-common.c
46554         (arm_rewrite_mcpu): Handle multiple names.
46555         * config/arm/arm.h
46556         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46557
46558 2014-01-27  James Greenhalgh  <james.greenhalgh@arm.com>
46559
46560         * gimple-builder.h (create_gimple_tmp): Delete.
46561
46562 2014-01-27  Christian Bruel  <christian.bruel@st.com>
46563
46564         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Fix remaining bytes after
46565         words comparisons.
46566
46567 2014-01-26  John David Anglin  <danglin@gcc.gnu.org>
46568
46569         * config/pa/pa.md (call): Generate indirect long calls to non-local
46570         functions when outputing 32-bit code.
46571         (call_value): Likewise except for special call to buggy powf function.
46572
46573         * config/pa/pa.c (pa_attr_length_indirect_call): Adjust length of
46574         portable runtime and PIC indirect calls.
46575         (pa_output_indirect_call): Remove unnecessary nop from portable runtime
46576         and PIC call sequences.  Use ldo instead of blr to set return register
46577         in PIC call sequence.
46578
46579 2014-01-25  Walter Lee  <walt@tilera.com>
46580
46581         * config/tilegx/sync.md (atomic_fetch_sub): Fix negation and
46582         avoid clobbering a live register.
46583
46584 2014-01-25  Walter Lee  <walt@tilera.com>
46585
46586         * config/tilegx/tilegx-c.c (tilegx_cpu_cpp_builtins):
46587         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2}.
46588         * config/tilegx/tilepro-c.c (tilepro_cpu_cpp_builtins):
46589         Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{1,2,4,8}.
46590
46591 2014-01-25  Walter Lee  <walt@tilera.com>
46592
46593         * config/tilegx/tilegx.c (tilegx_function_arg): Start 16-byte
46594         arguments on even registers.
46595         (tilegx_gimplify_va_arg_expr): Align 16-byte var args to
46596         STACK_BOUNDARY.
46597         * config/tilegx/tilegx.h (STACK_BOUNDARY): Change to 16 bytes.
46598         (BIGGEST_ALIGNMENT): Ditto.
46599         (BIGGEST_FIELD_ALIGNMENT): Ditto.
46600
46601 2014-01-25  Walter Lee  <walt@tilera.com>
46602
46603         * config/tilegx/tilegx.c (tilegx_gen_bundles): Delete barrier
46604         insns before bundling.
46605         * config/tilegx/tilegx.md (tile_network_barrier): Update comment.
46606
46607 2014-01-25  Walter Lee  <walt@tilera.com>
46608
46609         * config/tilegx/tilegx.c (tilegx_expand_builtin): Set
46610         PREFETCH_SCHEDULE_BARRIER_P to true for prefetches.
46611         * config/tilepro/tilepro.c (tilepro_expand_builtin): Ditto.
46612
46613 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46614
46615         * config/mips/constraints.md (kl): Delete.
46616         * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Turn into
46617         define expands, using...
46618         (divmod<mode>4_mips16, udivmod<mode>4_mips16): ...these new
46619         instructions for MIPS16.
46620         (*divmod<mode>4, *udivmod<mode>4): New patterns, taken from the
46621         non-MIPS16 version of the old divmod<mode>4 and udivmod<mode>4.
46622
46623 2014-01-25  Walter Lee  <walt@tilera.com>
46624
46625         * config/tilepro/tilepro.md (ctzdi2): Use register_operand predicate.
46626         (clzdi2): Ditto.
46627         (ffsdi2): Ditto.
46628
46629 2014-01-25  Walter Lee  <walt@tilera.com>
46630
46631         * config/tilegx/tilegx.c (tilegx_expand_to_rtl_hook): New.
46632         (TARGET_EXPAND_TO_RTL_HOOK): Define.
46633
46634 2014-01-25  Richard Sandiford  <rdsandiford@googlemail.com>
46635
46636         * rtlanal.c (canonicalize_condition): Split out duplicated mode check.
46637         Handle XOR.
46638
46639 2014-01-25  Jakub Jelinek  <jakub@redhat.com>
46640
46641         * print-rtl.c (in_call_function_usage): New var.
46642         (print_rtx): When in CALL_INSN_FUNCTION_USAGE, always print
46643         EXPR_LIST mode as mode and not as reg note name.
46644
46645         PR middle-end/59561
46646         * cfgloopmanip.c (copy_loop_info): If
46647         loop->warned_aggressive_loop_optimizations, make sure
46648         the flag is set in target loop too.
46649
46650 2014-01-24  Balaji V. Iyer  <balaji.v.iyer@intel.com>
46651
46652         * builtins.c (is_builtin_name): Renamed flag_enable_cilkplus to
46653         flag_cilkplus.
46654         * builtins.def: Likewise.
46655         * cilk.h (fn_contains_cilk_spawn_p): Likewise.
46656         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Likewise.
46657         * ira.c (ira_setup_eliminable_regset): Likewise.
46658         * omp-low.c (gate_expand_omp): Likewise.
46659         (execute_lower_omp): Likewise.
46660         (diagnose_sb_0): Likewise.
46661         (gate_diagnose_omp_blocks): Likewise.
46662         (simd_clone_clauses_extract): Likewise.
46663         (gate): Likewise.
46664
46665 2014-01-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46666
46667         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Remove
46668         correction for little endian...
46669         * config/rs6000/vsx.md (vsx_xxpermdi2_<mode>_1): ...and move it to
46670         here.
46671
46672 2014-01-24  Jeff Law  <law@redhat.com>
46673
46674         PR tree-optimization/59919
46675         * tree-vrp.c (find_assert_locations_1): Do not register asserts
46676         for non-returning calls.
46677
46678 2014-01-24  James Greenhalgh  <james.greenhalgh@arm.com>
46679
46680         * common/config/aarch64/aarch64-common.c
46681         (aarch64_rewrite_mcpu): Handle multiple names.
46682         * config/aarch64/aarch64.h
46683         (BIG_LITTLE_SPEC): Do not discard mcpu switches.
46684
46685 2014-01-24  Dodji Seketeli  <dodji@redhat.com>
46686
46687         * input.c (add_file_to_cache_tab): Handle the case where fopen
46688         returns NULL.
46689
46690 2014-01-23  H.J. Lu  <hongjiu.lu@intel.com>
46691
46692         PR target/59929
46693         * config/i386/i386.md (pushsf splitter): Get stack adjustment
46694         from push operand if code of push isn't PRE_DEC.
46695
46696 2014-01-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
46697
46698         PR target/59909
46699         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
46700         -mquad-memory-atomic.  Update -mquad-memory documentation to say
46701         it is only used for non-atomic loads/stores.
46702
46703         * config/rs6000/predicates.md (quad_int_reg_operand): Allow either
46704         -mquad-memory or -mquad-memory-atomic switches.
46705
46706         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Add
46707         -mquad-memory-atomic to ISA 2.07 support.
46708
46709         * config/rs6000/rs6000.opt (-mquad-memory-atomic): Add new switch
46710         to separate support of normal quad word memory operations (ldq, stq)
46711         from the atomic quad word memory operations.
46712
46713         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
46714         support to separate non-atomic quad word operations from atomic
46715         quad word operations.  Disable non-atomic quad word operations in
46716         little endian mode so that we don't have to swap words after the
46717         load and before the store.
46718         (quad_load_store_p): Add comment about atomic quad word support.
46719         (rs6000_opt_masks): Add -mquad-memory-atomic to the list of
46720         options printed with -mdebug=reg.
46721
46722         * config/rs6000/rs6000.h (TARGET_SYNC_TI): Use
46723         -mquad-memory-atomic as the test for whether we have quad word
46724         atomic instructions.
46725         (TARGET_SYNC_HI_QI): If either -mquad-memory-atomic, -mquad-memory,
46726         or -mp8-vector are used, allow byte/half-word atomic operations.
46727
46728         * config/rs6000/sync.md (load_lockedti): Insure that the address
46729         is a proper indexed or indirect address for the lqarx instruction.
46730         On little endian systems, swap the hi/lo registers after the lqarx
46731         instruction.
46732         (load_lockedpti): Use indexed_or_indirect_operand predicate to
46733         insure the address is valid for the lqarx instruction.
46734         (store_conditionalti): Insure that the address is a proper indexed
46735         or indirect address for the stqcrx. instruction.  On little endian
46736         systems, swap the hi/lo registers before doing the stqcrx.
46737         instruction.
46738         (store_conditionalpti): Use indexed_or_indirect_operand predicate to
46739         insure the address is valid for the stqcrx. instruction.
46740
46741         * gcc/config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
46742         Define __QUAD_MEMORY__ and __QUAD_MEMORY_ATOMIC__ based on what
46743         type of quad memory support is available.
46744
46745 2014-01-23  Vladimir Makarov  <vmakarov@redhat.com>
46746
46747         PR regression/59915
46748         * lra-constraints.c (simplify_operand_subreg): Spill pseudo if
46749         there is a danger of looping.
46750
46751 2014-01-23  Pat Haugen  <pthaugen@us.ibm.com>
46752
46753         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
46754         force flag_ira_loop_pressure if set via command line.
46755
46756 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46757
46758         * config/aarch64/aarch64-simd-builtins.def (ashr): DI mode removed.
46759         (ashr_simd): New builtin handling DI mode.
46760         * config/aarch64/aarch64-simd.md (aarch64_ashr_simddi): New pattern.
46761         (aarch64_sshr_simddi): New match pattern.
46762         * config/aarch64/arm_neon.h (vshr_n_s32): Builtin call modified.
46763         (vshrd_n_s64): Likewise.
46764         * config/aarch64/predicates.md (aarch64_shift_imm64_di): New predicate.
46765
46766 2014-01-23  Nick Clifton  <nickc@redhat.com>
46767
46768         * config/msp430/msp430.h (ASM_SPEC): Pass the -mcpu as -mcpu.
46769         (LIB_SPEC): Drop use of memory.ld and peripherals.ld scripts in
46770         favour of mcu specific scripts.
46771         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more matches for
46772         430x multilibs.
46773
46774 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
46775             Alex Velenko  <Alex.Velenko@arm.com>
46776
46777         * config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
46778         (vaddv_s16): Likewise.
46779         (vaddv_s32): Likewise.
46780         (vaddv_u8): Likewise.
46781         (vaddv_u16): Likewise.
46782         (vaddv_u32): Likewise.
46783         (vaddvq_s8): Likewise.
46784         (vaddvq_s16): Likewise.
46785         (vaddvq_s32): Likewise.
46786         (vaddvq_s64): Likewise.
46787         (vaddvq_u8): Likewise.
46788         (vaddvq_u16): Likewise.
46789         (vaddvq_u32): Likewise.
46790         (vaddvq_u64): Likewise.
46791         (vaddv_f32): Likewise.
46792         (vaddvq_f32): Likewise.
46793         (vaddvq_f64): Likewise.
46794         (vmaxv_f32): Likewise.
46795         (vmaxv_s8): Likewise.
46796         (vmaxv_s16): Likewise.
46797         (vmaxv_s32): Likewise.
46798         (vmaxv_u8): Likewise.
46799         (vmaxv_u16): Likewise.
46800         (vmaxv_u32): Likewise.
46801         (vmaxvq_f32): Likewise.
46802         (vmaxvq_f64): Likewise.
46803         (vmaxvq_s8): Likewise.
46804         (vmaxvq_s16): Likewise.
46805         (vmaxvq_s32): Likewise.
46806         (vmaxvq_u8): Likewise.
46807         (vmaxvq_u16): Likewise.
46808         (vmaxvq_u32): Likewise.
46809         (vmaxnmv_f32): Likewise.
46810         (vmaxnmvq_f32): Likewise.
46811         (vmaxnmvq_f64): Likewise.
46812         (vminv_f32): Likewise.
46813         (vminv_s8): Likewise.
46814         (vminv_s16): Likewise.
46815         (vminv_s32): Likewise.
46816         (vminv_u8): Likewise.
46817         (vminv_u16): Likewise.
46818         (vminv_u32): Likewise.
46819         (vminvq_f32): Likewise.
46820         (vminvq_f64): Likewise.
46821         (vminvq_s8): Likewise.
46822         (vminvq_s16): Likewise.
46823         (vminvq_s32): Likewise.
46824         (vminvq_u8): Likewise.
46825         (vminvq_u16): Likewise.
46826         (vminvq_u32): Likewise.
46827         (vminnmv_f32): Likewise.
46828         (vminnmvq_f32): Likewise.
46829         (vminnmvq_f64): Likewise.
46830
46831 2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
46832
46833         * config/aarch64/aarch64-simd.md
46834         (aarch64_dup_lane<mode>): Correct lane number on big-endian.
46835         (aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
46836         (*aarch64_mul3_elt<mode>): Likewise.
46837         (*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
46838         (*aarch64_mul3_elt_to_64v2df): Likewise.
46839         (*aarch64_mla_elt<mode>): Likewise.
46840         (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
46841         (*aarch64_mls_elt<mode>): Likewise.
46842         (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
46843         (*aarch64_fma4_elt<mode>): Likewise.
46844         (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
46845         (*aarch64_fma4_elt_to_64v2df): Likewise.
46846         (*aarch64_fnma4_elt<mode>): Likewise.
46847         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
46848         (*aarch64_fnma4_elt_to_64v2df): Likewise.
46849         (aarch64_sq<r>dmulh_lane<mode>): Likewise.
46850         (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
46851         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46852         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
46853         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
46854         (aarch64_sqdmull_lane<mode>_internal): Likewise.
46855         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
46856
46857 2013-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46858
46859         * config/aarch64/aarch64-simd.md
46860         (aarch64_be_checked_get_lane<mode>): New define_expand.
46861         * config/aarch64/aarch64-simd-builtins.def
46862         (BUILTIN_VALL (GETLANE, be_checked_get_lane, 0)):
46863         New builtin definition.
46864         * config/aarch64/arm_neon.h: (__aarch64_vget_lane_any):
46865         Use new safe be builtin.
46866
46867 2014-01-23  Alex Velenko  <Alex.Velenko@arm.com>
46868
46869         * config/aarch64/aarch64-simd.md (aarch64_be_ld1<mode>):
46870         New define_insn.
46871         (aarch64_be_st1<mode>): Likewise.
46872         (aarch_ld1<VALL:mode>): Define_expand modified.
46873         (aarch_st1<VALL:mode>): Likewise.
46874         * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition.
46875         (UNSPEC_ST1): Likewise.
46876
46877 2014-01-23  David Holsgrove  <david.holsgrove@xilinx.com>
46878
46879         * config/microblaze/microblaze.md: Add trap insn and attribute
46880
46881 2014-01-23  Dodji Seketeli  <dodji@redhat.com>
46882
46883         PR preprocessor/58580
46884         * input.h (location_get_source_line): Take an additional line_size
46885         parameter.
46886         (void diagnostics_file_cache_fini): Declare new function.
46887         * input.c (struct fcache): New type.
46888         (fcache_tab_size, fcache_buffer_size, fcache_line_record_size):
46889         New static constants.
46890         (diagnostic_file_cache_init, total_lines_num)
46891         (lookup_file_in_cache_tab, evicted_cache_tab_entry)
46892         (add_file_to_cache_tab, lookup_or_add_file_to_cache_tab)
46893         (needs_read, needs_grow, maybe_grow, read_data, maybe_read_data)
46894         (get_next_line, read_next_line, goto_next_line, read_line_num):
46895         New static function definitions.
46896         (diagnostic_file_cache_fini): New function.
46897         (location_get_source_line): Take an additional output line_len
46898         parameter.  Re-write using lookup_or_add_file_to_cache_tab and
46899         read_line_num.
46900         * diagnostic.c (diagnostic_finish): Call
46901         diagnostic_file_cache_fini.
46902         (adjust_line): Take an additional input parameter for the length
46903         of the line, rather than calculating it with strlen.
46904         (diagnostic_show_locus): Adjust the use of
46905         location_get_source_line and adjust_line with respect to their new
46906         signature.  While displaying a line now, do not stop at the first
46907         null byte.  Rather, display the zero byte as a space and keep
46908         going until we reach the size of the line.
46909         * Makefile.in: Add vec.o to OBJS-libcommon
46910
46911 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
46912             Ilya Tocar  <ilya.tocar@intel.com>
46913
46914         * config/i386/avx512fintrin.h (_mm512_kmov): New.
46915         * config/i386/i386.c (IX86_BUILTIN_KMOV16): Ditto.
46916         (__builtin_ia32_kmov16): Ditto.
46917         * config/i386/i386.md (UNSPEC_KMOV): New.
46918         (kmovw): Ditto.
46919
46920 2014-01-23  Kirill Yukhin  <kirill.yukhin@intel.com>
46921
46922         * config/i386/avx512fintrin.h (_mm512_loadu_si512): Rename.
46923         (_mm512_storeu_si512): Ditto.
46924
46925 2014-01-23  Richard Sandiford  <rdsandiford@googlemail.com>
46926
46927         PR target/52125
46928         * rtl.h (get_referenced_operands): Declare.
46929         * recog.c (get_referenced_operands): New function.
46930         * config/mips/mips.c (mips_reorg_process_insns): Check which asm
46931         operands have been referenced when recording LO_SUM references.
46932
46933 2014-01-22  David Holsgrove  <david.holsgrove@xilinx.com>
46934
46935         * config/microblaze/microblaze.md: Correct bswaphi2 insn.
46936
46937 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
46938
46939         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
46940         Enable for generic and recent AMD targets.
46941
46942 2014-01-22  Jan Hubicka  <hubicka@ucw.cz>
46943
46944         * combine-stack-adj.c (combine_stack_adjustments_for_block): Remove
46945         ARG_SIZE note when adjustment was eliminated.
46946
46947 2014-01-22  Jeff Law  <law@redhat.com>
46948
46949         PR tree-optimization/59597
46950         * tree-ssa-threadupdate.c (dump_jump_thread_path): Move to earlier
46951         in file.  Accept new argument REGISTERING and use it to modify
46952         dump output appropriately.
46953         (register_jump_thread): Corresponding changes.
46954         (mark_threaded_blocks): Reinstate code to cancel unprofitable
46955         thread paths involving joiner blocks.  Add code to dump cancelled
46956         jump threading paths.
46957
46958 2014-01-22  Vladimir Makarov  <vmakarov@redhat.com>
46959
46960         PR rtl-optimization/59477
46961         * lra-constraints.c (inherit_in_ebb): Process call for living hard
46962         regs.  Update reloads_num and potential_reload_hard_regs for all insns.
46963
46964 2014-01-22  Tom Tromey  <tromey@redhat.com>
46965
46966         * config/i386/i386-interix.h (i386_pe_unique_section): Don't use
46967         PARAMS.
46968         * config/cr16/cr16-protos.h (notice_update_cc): Don't use PARAMS.
46969
46970 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
46971
46972         PR rtl-optimization/59896
46973         * lra-constraints.c (process_alt_operands): Check unused note for
46974         matched operands of insn with no output reloads.
46975
46976 2014-01-21  Richard Sandiford  <rdsandiford@googlemail.com>
46977
46978         * config/mips/mips.c (mips_move_to_gpr_cost): Add M16_REGS case.
46979         (mips_move_from_gpr_cost): Likewise.
46980
46981 2014-01-21  Vladimir Makarov  <vmakarov@redhat.com>
46982
46983         PR rtl-optimization/59858
46984         * lra-constraints.c (SMALL_REGISTER_CLASS_P): Use
46985         ira_class_hard_regs_num.
46986         (process_alt_operands): Increase reject for dying matched operand.
46987
46988 2014-01-21  Jakub Jelinek  <jakub@redhat.com>
46989
46990         PR target/59003
46991         * config/i386/i386.c (expand_small_movmem_or_setmem): If mode is
46992         smaller than size, perform several stores or loads and stores
46993         at dst + count - size to store or copy all of size bytes, rather
46994         than just last modesize bytes.
46995
46996 2014-01-20  DJ Delorie  <dj@redhat.com>
46997
46998         * config/rl78/rl78.c (rl78_propogate_register_origins): Verify
46999         that CLOBBERs are REGs before propogating their values.
47000
47001 2014-01-20  H.J. Lu  <hongjiu.lu@intel.com>
47002
47003         PR middle-end/59789
47004         * cgraph.c (cgraph_inline_failed_string): Add type to DEFCIFCODE.
47005         (cgraph_inline_failed_type): New function.
47006         * cgraph.h (DEFCIFCODE): Add type.
47007         (cgraph_inline_failed_type_t): New enum.
47008         (cgraph_inline_failed_type): New prototype.
47009         * cif-code.def: Add CIF_FINAL_NORMAL to OK, FUNCTION_NOT_CONSIDERED,
47010         FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
47011         FUNCTION_NOT_INLINE_CANDIDATE, LARGE_FUNCTION_GROWTH_LIMIT,
47012         LARGE_STACK_FRAME_GROWTH_LIMIT, MAX_INLINE_INSNS_SINGLE_LIMIT,
47013         MAX_INLINE_INSNS_AUTO_LIMIT, INLINE_UNIT_GROWTH_LIMIT,
47014         RECURSIVE_INLINING, UNLIKELY_CALL, NOT_DECLARED_INLINED,
47015         OPTIMIZING_FOR_SIZE, ORIGINALLY_INDIRECT_CALL,
47016         INDIRECT_UNKNOWN_CALL, USES_COMDAT_LOCAL.
47017         Add CIF_FINAL_ERROR to UNSPECIFIED, BODY_NOT_AVAILABLE,
47018         FUNCTION_NOT_INLINABLE, OVERWRITABLE, MISMATCHED_ARGUMENTS,
47019         EH_PERSONALITY, NON_CALL_EXCEPTIONS, TARGET_OPTION_MISMATCH,
47020         OPTIMIZATION_MISMATCH.
47021         * tree-inline.c (expand_call_inline): Emit errors during
47022         early_inlining if cgraph_inline_failed_type returns CIF_FINAL_ERROR.
47023
47024 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47025
47026         PR target/59685
47027         * config/i386/sse.md (*andnot<mode>3<mask_name>): Handle MODE_V16SF
47028         mode attribute in insn output.
47029
47030 2014-01-20  Eric Botcazou  <ebotcazou@adacore.com>
47031
47032         * output.h (output_constant): Delete.
47033         * varasm.c (output_constant): Make private.
47034
47035 2014-01-20  Alex Velenko  <Alex.Velenko@arm.com>
47036
47037         * config/aarch64/aarch64-simd.md (vec_perm<mode>): Add BE check.
47038
47039 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47040
47041         PR middle-end/59860
47042         * tree.h (fold_builtin_strcat): New prototype.
47043         * builtins.c (fold_builtin_strcat): No longer static.  Add len
47044         argument, if non-NULL, don't call c_strlen.  Optimize
47045         directly into __builtin_memcpy instead of __builtin_strcpy.
47046         (fold_builtin_2): Adjust fold_builtin_strcat caller.
47047         * gimple-fold.c (gimple_fold_builtin): Handle BUILT_IN_STRCAT.
47048
47049 2014-01-20  Uros Bizjak  <ubizjak@gmail.com>
47050
47051         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47052         for SImode_address_operand operands, having only a REG argument.
47053
47054 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
47055
47056         * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER): Expand
47057         loader name using mbig-endian.
47058         (LINUX_TARGET_LINK_SPEC): Pass linker -m flag.
47059
47060 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47061
47062         * doc/invoke.texi (-march): Clarify documentation for AArch64.
47063         (-mtune): Likewise.
47064         (-mcpu): Likewise.
47065
47066 2014-01-20  Tejas Belagod  <tejas.belagod@arm.com>
47067
47068         * config/aarch64/aarch64-protos.h
47069         (aarch64_cannot_change_mode_class_ptr): Declare.
47070         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class,
47071         aarch64_cannot_change_mode_class_ptr): New.
47072         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Change to call
47073         backend hook aarch64_cannot_change_mode_class.
47074
47075 2014-01-20  James Greenhalgh  <james.greenhalgh@arm.com>
47076
47077         * common/config/aarch64/aarch64-common.c
47078         (aarch64_handle_option): Don't handle any option order logic here.
47079         * config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
47080         selected_cpu, warn on architecture version mismatch.
47081         (aarch64_override_options): Fix parsing order for option strings.
47082
47083 2014-01-20  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47084             Iain Sandoe  <iain@codesourcery.com>
47085
47086         PR bootstrap/59496
47087         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Fix unused variable
47088         warning.  Amend comment to reflect current functionality.
47089
47090 2014-01-20  Richard Biener  <rguenther@suse.de>
47091
47092         PR middle-end/59860
47093         * builtins.c (fold_builtin_strcat): Remove case better handled
47094         by tree-ssa-strlen.c.
47095
47096 2014-01-20  Alan Lawrence  <alan.lawrence@arm.com>
47097
47098         * config/aarch64/aarch64.opt
47099         (mcpu, march, mtune): Make case-insensitive.
47100
47101 2014-01-20  Jakub Jelinek  <jakub@redhat.com>
47102
47103         PR target/59880
47104         * config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
47105         if operands[1] is a REG or ZERO_EXTEND of a REG.
47106
47107 2014-01-19  Jan Hubicka  <hubicka@ucw.cz>
47108
47109         * varasm.c (compute_reloc_for_constant): Use targetm.binds_local_p.
47110
47111 2014-01-19  John David Anglin  <danglin@gcc.gnu.org>
47112
47113         * config/pa/pa.c (pa_attr_length_millicode_call): Correct length of
47114         long non-pic millicode calls.
47115
47116 2014-01-19  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
47117
47118         * config/vax/vax.h (FUNCTION_ARG_REGNO_P): Fix unused variable warning.
47119
47120 2014-01-19  Kito Cheng  <kito@0xlab.org>
47121
47122         * builtins.c (expand_movstr): Check movstr expand done or fail.
47123
47124 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47125             H.J. Lu  <hongjiu.lu@intel.com>
47126
47127         PR target/59379
47128         * config/i386/i386.md (*lea<mode>): Zero-extend return register
47129         to DImode for zero-extended addresses.
47130
47131 2014-01-19  Jakub Jelinek  <jakub@redhat.com>
47132
47133         PR rtl-optimization/57763
47134         * bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
47135         on the new indirect jump_insn and increment LABEL_NUSES (label).
47136
47137 2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
47138
47139         PR bootstrap/59580
47140         PR bootstrap/59583
47141         * config.gcc (x86_archs): New variable.
47142         (x86_64_archs): Likewise.
47143         (x86_cpus): Likewise.
47144         Use $x86_archs, $x86_64_archs and $x86_cpus to check valid
47145         --with-arch/--with-cpu= options.
47146         Support --with-arch=/--with-cpu={nehalem,westmere,
47147         sandybridge,ivybridge,haswell,broadwell,bonnell,silvermont}.
47148
47149 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47150
47151         * config/i386/i386.c (ix86_adjust_cost): Reorder PROCESSOR_K8
47152         and PROCESSOR_ATHLON to simplify code.  Move "memory" calculation.
47153
47154 2014-01-18  Uros Bizjak  <ubizjak@gmail.com>
47155
47156         * config/i386/i386.md (*swap<mode>): Rename from swap<mode>.
47157
47158 2014-01-18  Jakub Jelinek  <jakub@redhat.com>
47159
47160         PR target/58944
47161         * config/i386/i386-c.c (ix86_pragma_target_parse): Temporarily
47162         clear cpp_get_options (parse_in)->warn_unused_macros for
47163         ix86_target_macros_internal with cpp_define.
47164
47165 2014-01-18  Richard Sandiford  <rdsandiford@googlemail.com>
47166
47167         * jump.c (delete_related_insns): Keep (use (insn))s.
47168         * reorg.c (redundant_insn): Check for barriers too.
47169
47170 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47171
47172         * config/i386/i386.c (ix86_split_lea_for_addr): Fix a comment typo.
47173
47174 2014-01-17  John David Anglin  <danglin@gcc.gnu.org>
47175
47176         * config/pa/pa.c (pa_attr_length_indirect_call): Don't output a short
47177         call to $$dyncall when TARGET_LONG_CALLS is true.
47178
47179 2014-01-17  Jeff Law  <law@redhat.com>
47180
47181         * ree.c (combine_set_extension): Temporarily disable test for
47182         changing number of hard registers.
47183
47184 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47185
47186         PR middle-end/58125
47187         * ipa-inline-analysis.c (inline_free_summary):
47188         Do not free summary of aliases.
47189
47190 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47191
47192         PR middle-end/59706
47193         * gimplify.c (gimplify_expr): Use create_tmp_var
47194         instead of create_tmp_var_raw.  If cond doesn't have
47195         integral type, don't add the IFN_ANNOTATE builtin at all.
47196
47197 2014-01-17  Martin Jambor  <mjambor@suse.cz>
47198
47199         PR ipa/59736
47200         * ipa-cp.c (prev_edge_clone): New variable.
47201         (grow_next_edge_clone_vector): Renamed to grow_edge_clone_vectors.
47202         Also resize prev_edge_clone vector.
47203         (ipcp_edge_duplication_hook): Also update prev_edge_clone.
47204         (ipcp_edge_removal_hook): New function.
47205         (ipcp_driver): Register ipcp_edge_removal_hook.
47206
47207 2014-01-17  Andrew Pinski  <apinski@cavium.com>
47208             Steve Ellcey  <sellcey@mips.com>
47209
47210         PR target/59462
47211         * config/mips/mips.c (mips_print_operand): Check operand mode instead
47212         of operator mode.
47213
47214 2014-01-17  Jeff Law  <law@redhat.com>
47215
47216         PR middle-end/57904
47217         * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
47218         so that pass_ccp runs first.
47219
47220 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47221
47222         * config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
47223         (ix86_adjust_cost): Use !TARGET_XXX.
47224         (do_reorder_for_imul): Likewise.
47225         (swap_top_of_ready_list): Likewise.
47226         (ix86_sched_reorder): Likewise.
47227
47228 2014-01-17  H.J. Lu  <hongjiu.lu@intel.com>
47229
47230         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
47231         PROCESSOR_INTEL.  Treat like PROCESSOR_GENERIC.
47232         * config/i386/i386.c (intel_memcpy): New.  Duplicate slm_memcpy.
47233         (intel_memset): New.  Duplicate slm_memset.
47234         (intel_cost): New.  Duplicate slm_cost.
47235         (m_INTEL): New macro.
47236         (processor_target_table): Add "intel".
47237         (ix86_option_override_internal): Replace PROCESSOR_SILVERMONT
47238         with PROCESSOR_INTEL for "intel".
47239         (ix86_lea_outperforms): Support PROCESSOR_INTEL.  Duplicate
47240         PROCESSOR_SILVERMONT.
47241         (ix86_issue_rate): Likewise.
47242         (ix86_adjust_cost): Likewise.
47243         (ia32_multipass_dfa_lookahead): Likewise.
47244         (swap_top_of_ready_list): Likewise.
47245         (ix86_sched_reorder): Likewise.
47246         (ix86_avoid_lea_for_addr): Check TARGET_AVOID_LEA_FOR_ADDR
47247         instead of TARGET_OPT_AGU.
47248         * config/i386/i386.h (TARGET_INTEL): New.
47249         (TARGET_AVOID_LEA_FOR_ADDR): Likewise.
47250         (processor_type): Add PROCESSOR_INTEL.
47251         * config/i386/x86-tune.def: Support m_INTEL. Duplicate m_SILVERMONT.
47252         Add X86_TUNE_AVOID_LEA_FOR_ADDR.
47253
47254 2014-01-17  Marek Polacek  <polacek@redhat.com>
47255
47256         PR c/58346
47257         * gimple-fold.c (fold_array_ctor_reference): Don't fold if element
47258         size is zero.
47259
47260 2014-01-17  Richard Biener  <rguenther@suse.de>
47261
47262         PR tree-optimization/46590
47263         * opts.c (default_options_table): Add entries for
47264         OPT_fbranch_count_reg, OPT_fmove_loop_invariants and OPT_ftree_pta,
47265         all enabled at -O1 but not for -Og.
47266         * common.opt (fbranch-count-reg): Remove Init(1).
47267         (fmove-loop-invariants): Likewise.
47268         (ftree-pta): Likewise.
47269
47270 2014-01-17  Jakub Jelinek  <jakub@redhat.com>
47271
47272         * config/i386/i386.c (ix86_data_alignment): For compatibility with
47273         (incorrect) GCC 4.8 and earlier alignment assumptions ensure we align
47274         decls to at least the GCC 4.8 used alignments.
47275
47276         PR fortran/59440
47277         * tree-nested.c (convert_nonlocal_reference_stmt,
47278         convert_local_reference_stmt): For NAMELIST_DECLs in gimple_bind_vars
47279         of GIMPLE_BIND stmts, adjust associated decls.
47280
47281 2014-01-17  Richard Biener  <rguenther@suse.de>
47282
47283         PR tree-optimization/46590
47284         * vec.h (vec<>::bseach): New member function implementing
47285         binary search according to C89 bsearch.
47286         (vec<>::qsort): Avoid calling ::qsort for vectors with sizes 0 or 1.
47287         * tree-ssa-loop-im.c (struct mem_ref): Make stored member a
47288         bitmap pointer again.  Make accesses_in_loop a flat array.
47289         (mem_ref_obstack): New global.
47290         (outermost_indep_loop): Adjust for mem_ref->stored changes.
47291         (mark_ref_stored): Likewise.
47292         (ref_indep_loop_p_2): Likewise.
47293         (set_ref_stored_in_loop): New helper function.
47294         (mem_ref_alloc): Allocate mem_refs on the mem_ref_obstack obstack.
47295         (memref_free): Adjust.
47296         (record_mem_ref_loc): Simplify.
47297         (gather_mem_refs_stmt): Adjust.
47298         (sort_locs_in_loop_postorder_cmp): New function.
47299         (analyze_memory_references): Sort accesses_in_loop after
47300         loop postorder number.
47301         (find_ref_loc_in_loop_cmp): New function.
47302         (for_all_locs_in_loop): Find relevant cluster of locs in
47303         accesses_in_loop and iterate without recursion.
47304         (execute_sm): Avoid uninit warning.
47305         (struct ref_always_accessed): Simplify.
47306         (ref_always_accessed::operator ()): Likewise.
47307         (ref_always_accessed_p): Likewise.
47308         (tree_ssa_lim_initialize): Initialize mem_ref_obstack, compute
47309         loop postorder numbers here.
47310         (tree_ssa_lim_finalize): Free mem_ref_obstack and loop postorder
47311         numbers.
47312
47313 2014-01-17  Jan Hubicka  <hubicka@ucw.cz>
47314
47315         PR c++/57945
47316         * passes.c (rest_of_decl_compilation): Don't call varpool_finalize_decl
47317         on decls for which assemble_alias has been called.
47318
47319 2014-01-17  Nick Clifton  <nickc@redhat.com>
47320
47321         * config/msp430/msp430.opt: (mcpu): New option.
47322         * config/msp430/msp430.c (msp430_mcu_name): Use target_mcu.
47323         (msp430_option_override): Parse target_cpu.  If the MCU name
47324         matches a generic string, clear target_mcu.
47325         (msp430_attr): Allow numeric interrupt values up to 63.
47326         (msp430_expand_epilogue): No longer invert operand 1 of gen_popm.
47327         * config/msp430/msp430.h (ASM_SPEC): Convert -mcpu into a -mmcu
47328         option.
47329         * config/msp430/t-msp430: (MULTILIB_MATCHES): Remove mcu matches.
47330         Add mcpu matches.
47331         * config/msp430/msp430.md (popm): Use %J rather than %I.
47332         (addsi3): Use msp430_nonimmediate_operand for operand 2.
47333         (addhi_cy_i): Use immediate_operand for operand 2.
47334         * doc/invoke.texi: Document -mcpu option.
47335
47336 2014-01-17  Richard Biener  <rguenther@suse.de>
47337
47338         PR rtl-optimization/38518
47339         * df.h (df_analyze_loop): Declare.
47340         * df-core.c: Include cfgloop.h.
47341         (df_analyze_1): Split out main part of df_analyze.
47342         (df_analyze): Adjust.
47343         (loop_inverted_post_order_compute): New function.
47344         (loop_post_order_compute): Likewise.
47345         (df_analyze_loop): New function avoiding whole-function
47346         postorder computes.
47347         * loop-invariant.c (find_defs): Use df_analyze_loop.
47348         (find_invariants): Adjust.
47349         * loop-iv.c (iv_analysis_loop_init): Use df_analyze_loop.
47350
47351 2014-01-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>
47352
47353         * config/arm/arm.c (arm_v7m_tune): Set max_insns_skipped to 2.
47354         (thumb2_final_prescan_insn): Set max to MAX_INSN_PER_IT_BLOCK.
47355
47356 2014-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
47357
47358         * ipa-ref.c (ipa_remove_stmt_references): Fix references
47359         traversal when removing references.
47360
47361 2014-01-16  Jan Hubicka  <hubicka@ucw.cz>
47362
47363         PR ipa/59775
47364         * tree.c (get_binfo_at_offset): Look harder for virtual bases.
47365
47366 2014-01-16  Bernd Schmidt  <bernds@codesourcery.com>
47367
47368         PR middle-end/56791
47369         * reload.c (find_reloads_address_1): Do not use RELOAD_OTHER when
47370         pushing a reload for an autoinc when we had previously reloaded an
47371         inner part of the address.
47372
47373 2014-01-16  Jakub Jelinek  <jakub@redhat.com>
47374
47375         * tree-vectorizer.h (struct _loop_vec_info): Add no_data_dependencies
47376         field.
47377         (LOOP_VINFO_NO_DATA_DEPENDENCIES): Define.
47378         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Clear it
47379         when not giving up or versioning for alias only because of
47380         loop->safelen.
47381         (vect_analyze_data_ref_dependences): Set to true.
47382         * tree-vect-stmts.c (hoist_defs_of_uses): Return false if def_stmt
47383         is a GIMPLE_PHI.
47384         (vectorizable_load): Use LOOP_VINFO_NO_DATA_DEPENDENCIES instead of
47385         LOOP_REQUIRES_VERSIONING_FOR_ALIAS, add && !nested_in_vect_loop
47386         to the condition.
47387
47388         PR middle-end/58344
47389         * expr.c (expand_expr_real_1): Handle init == NULL_TREE.
47390
47391         PR target/59839
47392         * config/i386/i386.c (ix86_expand_builtin): If target doesn't satisfy
47393         operand 0 predicate for gathers, use a new pseudo as subtarget.
47394
47395 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47396
47397         PR middle-end/59609
47398         * lra-constraints.c (process_alt_operands): Add printing debug info.
47399         Check absence of input/output reloads for matched operands too.
47400
47401 2014-01-16  Vladimir Makarov  <vmakarov@redhat.com>
47402
47403         PR rtl-optimization/59835
47404         * ira.c (ira_init_register_move_cost): Increase cost for
47405         impossible modes.
47406
47407 2014-01-16  Alan Lawrence  <alan.lawrence@arm.com>
47408
47409         * config/arm/arm.opt (mcpu, march, mtune): Make case-insensitive.
47410
47411 2014-01-16  Richard Earnshaw  <rearnsha@arm.com>
47412
47413         PR target/59780
47414         * aarch64.c (aarch64_split_128bit_move): Don't lookup REGNO on
47415         non-register objects.  Use gen_(high/low)part more consistently.
47416         Fix assertions.
47417
47418 2014-01-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
47419
47420         PR target/59844
47421         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Add little
47422         endian support, remove tests for WORDS_BIG_ENDIAN.
47423         (p8_mfvsrd_3_<mode>): Likewise.
47424         (reload_gpr_from_vsx<mode>): Likewise.
47425         (reload_gpr_from_vsxsf): Likewise.
47426         (p8_mfvsrd_4_disf): Likewise.
47427
47428 2014-01-16  Richard Biener  <rguenther@suse.de>
47429
47430         PR rtl-optimization/46590
47431         * lcm.c (compute_antinout_edge): Use postorder iteration.
47432         (compute_laterin): Use inverted postorder iteration.
47433
47434 2014-01-16  Nick Clifton  <nickc@redhat.com>
47435
47436         PR middle-end/28865
47437         * varasm.c (output_constant): Return the number of bytes actually
47438         emitted.
47439         (output_constructor_array_range): Update the field size with the
47440         number of bytes emitted by output_constant.
47441         (output_constructor_regular_field): Likewise.  Also do not
47442         complain if the total number of bytes emitted is now greater
47443         than the expected fieldpos.
47444         * output.h (output_constant): Update prototype and descriptive comment.
47445
47446 2014-01-16  Marek Polacek  <polacek@redhat.com>
47447
47448         PR middle-end/59827
47449         * cgraph.c (gimple_check_call_args): Don't use DECL_ARG_TYPE if
47450         it is error_mark_node.
47451
47452 2014-01-15  Uros Bizjak  <ubizjak@gmail.com>
47453
47454         * config/i386/i386.c (ix86_hard_regno_mode_ok): Use
47455         VALID_AVX256_REG_OR_OI_MODE.
47456
47457 2014-01-15  Pat Haugen  <pthaugen@us.ibm.com>
47458
47459         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Check if
47460         current procedure should be profiled.
47461
47462 2014-01-15  Andrew Pinski  <apinski@cavium.com>
47463
47464         * config/aarch64/aarch64.c (aarch64_register_move_cost): Correct cost
47465         of moving from/to the STACK_REG register class.
47466
47467 2014-01-15  Richard Henderson  <rth@redhat.com>
47468
47469         PR debug/54694
47470         * reginfo.c (global_regs_decl): Globalize.
47471         * rtl.h (global_regs_decl): Declare.
47472         * ira.c (do_reload): Diagnose frame_pointer_needed and it
47473         reserved via global_regs.
47474
47475 2014-01-15  Teresa Johnson  <tejohnson@google.com>
47476
47477         * tree-ssa-sccvn.c (visit_reference_op_call): Handle NULL vdef.
47478
47479 2014-01-15  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
47480
47481         * config/rs6000/altivec.md (mulv8hi3): Explicitly generate vmulesh
47482         and vmulosh rather than call gen_vec_widen_smult_*.
47483         (vec_widen_umult_even_v16qi): Test VECTOR_ELT_ORDER_BIG rather
47484         than BYTES_BIG_ENDIAN to determine use of even or odd instruction.
47485         (vec_widen_smult_even_v16qi): Likewise.
47486         (vec_widen_umult_even_v8hi): Likewise.
47487         (vec_widen_smult_even_v8hi): Likewise.
47488         (vec_widen_umult_odd_v16qi): Likewise.
47489         (vec_widen_smult_odd_v16qi): Likewise.
47490         (vec_widen_umult_odd_v8hi): Likewise.
47491         (vec_widen_smult_odd_v8hi): Likewise.
47492         (vec_widen_umult_hi_v16qi): Explicitly generate vmuleub and
47493         vmuloub rather than call gen_vec_widen_umult_*.
47494         (vec_widen_umult_lo_v16qi): Likewise.
47495         (vec_widen_smult_hi_v16qi): Explicitly generate vmulesb and
47496         vmulosb rather than call gen_vec_widen_smult_*.
47497         (vec_widen_smult_lo_v16qi): Likewise.
47498         (vec_widen_umult_hi_v8hi): Explicitly generate vmuleuh and vmulouh
47499         rather than call gen_vec_widen_umult_*.
47500         (vec_widen_umult_lo_v8hi): Likewise.
47501         (vec_widen_smult_hi_v8hi): Explicitly gnerate vmulesh and vmulosh
47502         rather than call gen_vec_widen_smult_*.
47503         (vec_widen_smult_lo_v8hi): Likewise.
47504
47505 2014-01-15  Jeff Law  <law@redhat.com>
47506
47507         PR tree-optimization/59747
47508         * ree.c (find_and_remove_re): Properly handle case where a second
47509         eliminated extension requires widening a copy created for elimination
47510         of a prior extension.
47511         (combine_set_extension): Ensure that the number of hard regs needed
47512         for a destination register does not change when we widen it.
47513
47514 2014-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
47515
47516         * config.gcc (*-*-rtems*): Add t-rtems to tmake_file.
47517         (arm*-*-uclinux*eabi*): Do not override an existing tmake_file.
47518         (arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*): Likwise.
47519         (arm*-*-rtems*): Use t-rtems from existing tmake_file.
47520         (avr-*-rtems*): Likewise.
47521         (bfin*-rtems*): Likewise.
47522         (moxie-*-rtems*): Likewise.
47523         (h8300-*-rtems*): Likewise.
47524         (i[34567]86-*-rtems*): Likewise.
47525         (lm32-*-rtems*): Likewise.
47526         (m32r-*-rtems*): Likewise.
47527         (m68k-*-rtems*): Likewise.
47528         (microblaze*-*-rtems*): Likewise.
47529         (mips*-*-rtems*): Likewise.
47530         (powerpc-*-rtems*): Likewise.
47531         (sh-*-rtems*): Likewise.
47532         (sparc-*-rtems*): Likewise.
47533         (sparc64-*-rtems*): Likewise.
47534         (v850-*-rtems*): Likewise.
47535         (m32c-*-rtems*): Likewise.
47536
47537 2014-01-15  Vladimir Makarov  <vmakarov@redhat.com>
47538
47539         PR rtl-optimization/59511
47540         * ira.c (ira_init_register_move_cost): Use memory costs for some
47541         cases of register move cost calculations.
47542         * lra-constraints.c (lra_constraints): Use REG_FREQ_FROM_BB
47543         instead of BB frequency.
47544         * lra-coalesce.c (move_freq_compare_func, lra_coalesce): Ditto.
47545         * lra-assigns.c (find_hard_regno_for): Ditto.
47546
47547 2014-01-15  Richard Biener  <rguenther@suse.de>
47548
47549         PR tree-optimization/59822
47550         * tree-vect-stmts.c (hoist_defs_of_uses): New function.
47551         (vectorizable_load): Use it to hoist defs of uses of invariant
47552         loads out of the loop.
47553
47554 2014-01-15  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
47555             Kugan Vivekanandarajah  <kuganv@linaro.org>
47556
47557         PR target/59695
47558         * config/aarch64/aarch64.c (aarch64_build_constant): Fix incorrect
47559         truncation.
47560
47561 2014-01-15  Richard Biener  <rguenther@suse.de>
47562
47563         PR rtl-optimization/59802
47564         * lcm.c (compute_available): Use inverted postorder to seed
47565         the initial worklist.
47566
47567 2014-01-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47568
47569         PR target/59803
47570         * config/s390/s390.c (s390_preferred_reload_class): Don't return
47571         ADDR_REGS for invalid symrefs in non-PIC code.
47572
47573 2014-01-15  Jakub Jelinek  <jakub@redhat.com>
47574
47575         PR other/58712
47576         * builtins.c (determine_block_size): Initialize *probable_max_size
47577         even if len_rtx is CONST_INT.
47578
47579 2014-01-14  Andrew Pinski  <apinski@cavium.com>
47580
47581         * config/aarch64/aarch64-protos.h (tune_params): Add issue_rate.
47582         * config/aarch64/aarch64.c (generic_tunings): Add issue rate of 2.
47583         (cortexa53_tunings): Likewise.
47584         (aarch64_sched_issue_rate): New function.
47585         (TARGET_SCHED_ISSUE_RATE): Define.
47586
47587 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47588
47589         * ira-costs.c (find_costs_and_classes): Add missed
47590         ira_init_register_move_cost_if_necessary.
47591
47592 2014-01-14  Vladimir Makarov  <vmakarov@redhat.com>
47593
47594         PR target/59787
47595         * config/arm/arm.c (arm_coproc_mem_operand): Add lra_in_progress.
47596
47597 2014-01-14  H.J. Lu  <hongjiu.lu@intel.com>
47598
47599         PR target/59794
47600         * config/i386/i386.c (type_natural_mode): Add a bool parameter
47601         to indicate if type is used for function return value.  Warn ABI
47602         change if the vector mode isn't available for function return value.
47603         (ix86_function_arg_advance): Pass false to type_natural_mode.
47604         (ix86_function_arg): Likewise.
47605         (ix86_gimplify_va_arg): Likewise.
47606         (function_arg_32): Don't warn ABI change.
47607         (ix86_function_value): Pass true to type_natural_mode.
47608         (ix86_return_in_memory): Likewise.
47609         (ix86_struct_value_rtx): Removed.
47610         (TARGET_STRUCT_VALUE_RTX): Likewise.
47611
47612 2014-01-14  Richard Sandiford  <rsandifo@linux.vnet.ibm.com>
47613
47614         * jump.c (redirect_jump_2): Remove REG_CROSSING_JUMP notes when
47615         converting a conditional jump into a conditional return.
47616
47617 2014-01-14  Richard Biener  <rguenther@suse.de>
47618
47619         PR tree-optimization/58921
47620         PR tree-optimization/59006
47621         * tree-vect-loop-manip.c (vect_loop_versioning): Remove code
47622         hoisting invariant stmts.
47623         * tree-vect-stmts.c (vectorizable_load): Insert the splat of
47624         invariant loads on the preheader edge if possible.
47625
47626 2014-01-14  Joey Ye  <joey.ye@arm.com>
47627
47628         * doc/plugin.texi (Building GCC plugins): Update to C++.
47629
47630 2014-01-14  Kirill Yukhin  <kirill.yukhin@intel.com>
47631
47632         * config/i386/avx512erintrin.h (_mm_rcp28_round_sd): New.
47633         (_mm_rcp28_round_ss): Ditto.
47634         (_mm_rsqrt28_round_sd): Ditto.
47635         (_mm_rsqrt28_round_ss): Ditto.
47636         (_mm_rcp28_sd): Ditto.
47637         (_mm_rcp28_ss): Ditto.
47638         (_mm_rsqrt28_sd): Ditto.
47639         (_mm_rsqrt28_ss): Ditto.
47640         * config/i386/avx512fintrin.h (_mm512_stream_load_si512): Ditto.
47641         * config/i386/i386-builtin-types.def (V8DI_FTYPE_PV8DI): Ditto.
47642         * config/i386/i386.c (IX86_BUILTIN_MOVNTDQA512): Ditto.
47643         (IX86_BUILTIN_RCP28SD): Ditto.
47644         (IX86_BUILTIN_RCP28SS): Ditto.
47645         (IX86_BUILTIN_RSQRT28SD): Ditto.
47646         (IX86_BUILTIN_RSQRT28SS): Ditto.
47647         (bdesc_special_args): Define __builtin_ia32_movntdqa512,
47648         __builtin_ia32_rcp28sd_round, __builtin_ia32_rcp28ss_round,
47649         __builtin_ia32_rsqrt28sd_round, __builtin_ia32_rsqrt28ss_round.
47650         (ix86_expand_special_args_builtin): Expand new FTYPE.
47651         * config/i386/sse.md (define_mode_attr "sse4_1_avx2"): Expand to V8DI.
47652         (srcp14<mode>): Make insn unary.
47653         (avx512f_vmscalef<mode><round_name>): Use substed predicate.
47654         (avx512f_sgetexp<mode><round_saeonly_name>): Ditto.
47655         (avx512f_rndscale<mode><round_saeonly_name>): Ditto.
47656         (<sse4_1_avx2>_movntdqa): Extend to 512 bits.
47657         (avx512er_exp2<mode><mask_name><round_saeonly_name>):
47658         Fix rounding: make it SAE only.
47659         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
47660         Ditto.
47661         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
47662         Ditto.
47663         (avx512er_vmrcp28<mode><round_saeonly_name>): Ditto.
47664         (avx512er_vmrsqrt28<mode><round_saeonly_name>): Ditto.
47665         (avx512f_getmant<mode><mask_name><round_saeonly_name>): Ditto.
47666         * config/i386/subst.md (round_saeonly_mask_scalar_operand3): Remove.
47667         (round_saeonly_mask_scalar_operand4): Ditto.
47668         (round_saeonly_mask_scalar_op3): Ditto.
47669         (round_saeonly_mask_scalar_op4): Ditto.
47670
47671 2014-01-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47672
47673         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
47674         Implement -maltivec=be for vec_insert and vec_extract.
47675
47676 2014-01-10  DJ Delorie  <dj@redhat.com>
47677
47678         * config/msp430/msp430.md (call_internal): Don't allow memory
47679         references with SP as the base register.
47680         (call_value_internal): Likewise.
47681         * config/msp430/constraints.md (Yc): New.  For memory references
47682         that don't use SP as a base register.
47683
47684         * config/msp430/msp430.c (msp430_print_operand): Add 'J' to mean
47685         "an integer without a # prefix"
47686         * config/msp430/msp430.md (epilogue_helper): Use it.
47687
47688 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47689
47690         PR target/59617
47691         * config/i386/i386.c (ix86_vectorize_builtin_gather): Uncomment
47692         AVX512F gather builtins.
47693         * tree-vect-stmts.c (vectorizable_mask_load_store): For now punt
47694         on gather decls with INTEGER_TYPE masktype.
47695         (vectorizable_load): For INTEGER_TYPE masktype, put the INTEGER_CST
47696         directly into the builtin rather than hoisting it before loop.
47697
47698         PR tree-optimization/59387
47699         * tree-scalar-evolution.c: Include gimple-fold.h and gimplify-me.h.
47700         (scev_const_prop): If folded_casts and type has undefined overflow,
47701         use force_gimple_operand instead of force_gimple_operand_gsi and
47702         for each added stmt if it is assign with
47703         arith_code_with_undefined_signed_overflow, call
47704         rewrite_to_defined_overflow.
47705         * tree-ssa-loop-im.c: Don't include gimplify-me.h, include
47706         gimple-fold.h instead.
47707         (arith_code_with_undefined_signed_overflow,
47708         rewrite_to_defined_overflow): Moved to ...
47709         * gimple-fold.c (arith_code_with_undefined_signed_overflow,
47710         rewrite_to_defined_overflow): ... here.  No longer static.
47711         Include gimplify-me.h.
47712         * gimple-fold.h (arith_code_with_undefined_signed_overflow,
47713         rewrite_to_defined_overflow): New prototypes.
47714
47715 2014-01-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47716
47717         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Fix typo in description.
47718
47719 2014-01-13  Eric Botcazou  <ebotcazou@adacore.com>
47720
47721         * builtins.c (get_object_alignment_2): Minor tweak.
47722         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Rewrite.
47723
47724 2014-01-13  Christian Bruel  <christian.bruel@st.com>
47725
47726         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Unroll small sizes and
47727         optimized non constant lengths.
47728
47729 2014-01-13  Jakub Jelinek  <jakub@redhat.com>
47730
47731         PR libgomp/59194
47732         * omp-low.c (expand_omp_atomic_pipeline): Expand the initial
47733         load as __atomic_load_N if possible.
47734
47735 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47736
47737         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): Remove
47738         target parameter.
47739         (rs6000_expand_builtin): Adjust call.
47740
47741 2014-01-11  David Edelsohn  <dje.gcc@gmail.com>
47742
47743         PR target/58115
47744         * config/rs6000/rs6000.h (SWITCHABLE_TARGET): Define.
47745         * config/rs6000/rs6000.c: Include target-globals.h.
47746         (rs6000_set_current_function): Instead of doing target_reinit
47747         unconditionally, use save_target_globals_default_opts and
47748         restore_target_globals.
47749
47750         * config/rs6000/rs6000-builtin.def (mffs, mtfsf): Add builtins for
47751         FPSCR.
47752         * config/rs6000/rs6000.c (rs6000_expand_mtfsf_builtin): New.
47753         (rs6000_expand_builtin): Handle mffs and mtfsf.
47754         (rs6000_init_builtins): Define mffs and mtfsf.
47755         * config/rs6000/rs6000.md (UNSPECV_MFFS, UNSPECV_MTFSF): New constants.
47756         (rs6000_mffs): New pattern.
47757         (rs6000_mtfsf): New pattern.
47758
47759 2014-01-11  Bin Cheng  <bin.cheng@arm.com>
47760
47761         * tree-ssa-loop-ivopts.c (iv_ca_narrow): New parameter.
47762         Start narrowing with START.  Apply candidate-use pair
47763         and check overall cost in narrowing.
47764         (iv_ca_prune): Pass new argument.
47765
47766 2014-01-10  Jeff Law  <law@redhat.com>
47767
47768         PR middle-end/59743
47769         * ree.c (combine_reaching_defs): Ensure the defining statement
47770         occurs before the extension when optimizing extensions with
47771         different source and destination hard registers.
47772
47773 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
47774
47775         PR ipa/58585
47776         * ipa-devirt.c (build_type_inheritance_graph): Also add types of
47777         vtables into the type inheritance graph.
47778
47779 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47780
47781         PR rtl-optimization/59754
47782         * ree.c (combine_reaching_defs): Disallow !SCALAR_INT_MODE_P
47783         modes in the REGNO != REGNO case.
47784
47785 2014-01-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47786
47787         * config/rs6000/rs6000-builtin.def: Fix pasto for VPKSDUS.
47788
47789 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47790
47791         PR tree-optimization/59745
47792         * tree-predcom.c (tree_predictive_commoning_loop): Call
47793         free_affine_expand_cache if giving up because components is NULL.
47794
47795         * target-globals.c (save_target_globals): Allocate < 4KB structs using
47796         GC in payload of target_globals struct instead of allocating them on
47797         the heap and the larger structs separately using GC.
47798         * target-globals.h (struct target_globals): Make regs, hard_regs,
47799         reload, expmed, ira, ira_int and lra_fields GTY((atomic)) instead
47800         of GTY((skip)) and change type to void *.
47801         (reset_target_globals): Cast loads from those fields to corresponding
47802         types.
47803
47804 2014-01-10  Steve Ellcey  <sellcey@mips.com>
47805
47806         PR plugins/59335
47807         * Makefile.in (PLUGIN_HEADERS): Add gimplify.h, gimple-iterator.h,
47808         gimple-ssa.h, fold-const.h, tree-cfg.h, tree-into-ssa.h,
47809         tree-ssanames.h, print-tree.h, varasm.h, and context.h.
47810
47811 2014-01-10  Richard Earnshaw  <rearnsha@arm.com>
47812
47813         PR target/59744
47814         * aarch64-modes.def (CC_Zmode): New flags mode.
47815         * aarch64.c (aarch64_select_cc_mode): Only allow NEG when the condition
47816         represents an equality.
47817         (aarch64_get_condition_code): Handle CC_Zmode.
47818         * aarch64.md (compare_neg<mode>): Restrict to equality operations.
47819
47820 2014-01-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
47821
47822         * config/s390/s390.c (s390_expand_tbegin): Remove jump over CC
47823         extraction in good case.
47824
47825 2014-01-10  Richard Biener  <rguenther@suse.de>
47826
47827         PR tree-optimization/59374
47828         * tree-vect-slp.c (vect_slp_analyze_bb_1): Move dependence
47829         checking after SLP discovery.  Mark stmts not participating
47830         in any SLP instance properly.
47831
47832 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47833
47834         * config/arm/arm.c (arm_new_rtx_costs): Use destination mode
47835         when handling a SET rtx.
47836
47837 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47838
47839         * config/arm/arm-cores.def (cortex-a53): Specify FL_CRC32.
47840         (cortex-a57): Likewise.
47841         (cortex-a57.cortex-a53): Likewise. Remove redundant flags.
47842
47843 2014-01-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47844
47845         * config/arm/arm.c (arm_init_iwmmxt_builtins): Skip
47846         non-iwmmxt builtins.
47847
47848 2014-01-10  Jan Hubicka  <hubicka@ucw.cz>
47849
47850         PR ipa/58252
47851         PR ipa/59226
47852         * ipa-devirt.c record_target_from_binfo): Take as argument
47853         stack of binfos and lookup matching one for virtual inheritance.
47854         (possible_polymorphic_call_targets_1): Update.
47855
47856 2014-01-10  Huacai Chen  <chenhc@lemote.com>
47857
47858         * config/mips/driver-native.c (host_detect_local_cpu): Handle new
47859         kernel strings for Loongson-2E/2F/3A.
47860
47861 2014-01-10  Jakub Jelinek  <jakub@redhat.com>
47862
47863         PR middle-end/59670
47864         * tree-vect-data-refs.c (vect_analyze_data_refs): Check
47865         is_gimple_call before calling gimple_call_internal_p.
47866
47867 2014-01-09  Steve Ellcey  <sellcey@mips.com>
47868
47869         * Makefile.in (TREE_FLOW_H): Remove.
47870         (TREE_SSA_H): Add file names from tree-flow.h.
47871         * doc/tree-ssa.texi (Annotations): Remove reference to tree-flow.h
47872         * tree.h: Remove tree-flow.h reference.
47873         * hash-table.h: Remove tree-flow.h reference.
47874         * tree-ssa-loop-niter.c (dump_affine_iv): Replace tree-flow.h
47875         reference with tree-ssa-loop.h.
47876
47877 2014-01-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47878
47879         * doc/invoke.texi: Add -maltivec={be,le} options, and document
47880         default element-order behavior for -maltivec.
47881         * config/rs6000/rs6000.opt: Add -maltivec={be,le} options.
47882         * config/rs6000/rs6000.c (rs6000_option_override_internal): Ensure
47883         that -maltivec={le,be} implies -maltivec; disallow -maltivec=le
47884         when targeting big endian, at least for now.
47885         * config/rs6000/rs6000.h: Add #define of VECTOR_ELT_ORDER_BIG.
47886
47887 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
47888
47889         PR middle-end/47735
47890         * cfgexpand.c (expand_one_var): For SSA_NAMEs, if the underlying
47891         var satisfies use_register_for_decl, just take into account type
47892         alignment, rather than decl alignment.
47893
47894         PR tree-optimization/59622
47895         * gimple-fold.c (gimple_fold_call): Fix a typo in message.  For
47896         __builtin_unreachable replace the OBJ_TYPE_REF call with a call to
47897         __builtin_unreachable and add if needed a setter of the lhs SSA_NAME.
47898         Don't devirtualize for inplace at all.  For targets.length () == 1,
47899         if the call is noreturn and cfun isn't in SSA form yet, clear lhs.
47900
47901 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
47902
47903         * config/i386/i386.md (cpu): Remove the unused btver1.
47904
47905 2014-01-09  H.J. Lu  <hongjiu.lu@intel.com>
47906
47907         * gdbasan.in: Put a breakpoint on __sanitizer::Report.
47908
47909 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
47910
47911         PR target/58115
47912         * tree-core.h (struct target_globals): New forward declaration.
47913         (struct tree_target_option): Add globals field.
47914         * tree.h (TREE_TARGET_GLOBALS): Define.
47915         (prepare_target_option_nodes_for_pch): New prototype.
47916         * target-globals.h (struct target_globals): Define even if
47917         !SWITCHABLE_TARGET.
47918         * tree.c (prepare_target_option_node_for_pch,
47919         prepare_target_option_nodes_for_pch): New functions.
47920         * config/i386/i386.h (SWITCHABLE_TARGET): Define.
47921         * config/i386/i386.c: Include target-globals.h.
47922         (ix86_set_current_function): Instead of doing target_reinit
47923         unconditionally, use save_target_globals_default_opts and
47924         restore_target_globals.
47925
47926 2014-01-09  Richard Biener  <rguenther@suse.de>
47927
47928         PR tree-optimization/59715
47929         * tree-cfg.h (split_critical_edges): Declare.
47930         * tree-cfg.c (split_critical_edges): Export.
47931         * tree-ssa-sink.c (execute_sink_code): Split critical edges.
47932
47933 2014-01-09  Max Ostapenko  <m.ostapenko@partner.samsung.com>
47934
47935         * cfgexpand.c (expand_stack_vars): Optionally disable
47936         asan stack protection.
47937         (expand_used_vars): Likewise.
47938         (partition_stack_vars): Likewise.
47939         * asan.c (asan_emit_stack_protection): Optionally disable
47940         after return stack usage.
47941         (instrument_derefs): Optionally disable memory access instrumentation.
47942         (instrument_builtin_call): Likewise.
47943         (instrument_strlen_call): Likewise.
47944         (asan_protect_global): Optionally disable global variables protection.
47945         * doc/invoke.texi: Added doc for new options.
47946         * params.def: Added new options.
47947         * params.h: Likewise.
47948
47949 2014-01-09  Jakub Jelinek  <jakub@redhat.com>
47950
47951         PR rtl-optimization/59724
47952         * ifcvt.c (cond_exec_process_if_block): Don't call
47953         flow_find_head_matching_sequence with 0 longest_match.
47954         * cfgcleanup.c (flow_find_head_matching_sequence): Count even
47955         non-active insns if !stop_after.
47956         (try_head_merge_bb): Revert 2014-01-07 changes.
47957
47958 2014-01-08  Jeff Law  <law@redhat.com>
47959
47960         * ree.c (get_sub_rtx): New function, extracted from...
47961         (merge_def_and_ext): Here.
47962         (combine_reaching_defs): Use get_sub_rtx.
47963
47964 2014-01-08  Eric Botcazou  <ebotcazou@adacore.com>
47965
47966         * cgraph.h (varpool_variable_node): Do not choke on null node.
47967
47968 2014-01-08  Catherine Moore  <clm@codesourcery.com>
47969
47970         * config/mips/mips.md (simple_return): Attempt to use JRC
47971         for microMIPS.
47972         * config/mips/mips.h (MIPS_CALL): Attempt to use JALS for microMIPS.
47973
47974 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
47975
47976         PR rtl-optimization/59137
47977         * reorg.c (steal_delay_list_from_target): Call update_block for
47978         elided insns.
47979         (steal_delay_list_from_fallthrough, relax_delay_slots): Likewise.
47980
47981 2014-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
47982
47983         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
47984         two duplicate entries.
47985
47986 2014-01-08  Richard Sandiford  <rdsandiford@googlemail.com>
47987
47988         Revert:
47989         2012-10-07  Richard Sandiford  <rdsandiford@googlemail.com>
47990
47991         * config/mips/mips.c (mips_truncated_op_cost): New function.
47992         (mips_rtx_costs): Adjust test for BADDU.
47993         * config/mips/mips.md (*baddu_di<mode>): Push truncates to operands.
47994
47995         2012-10-02  Richard Sandiford  <rdsandiford@googlemail.com>
47996
47997         * config/mips/mips.md (*baddu_si_eb, *baddu_si_el): Merge into...
47998         (*baddu_si): ...this new pattern.
47999
48000 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48001
48002         PR ipa/59722
48003         * ipa-prop.c (ipa_analyze_params_uses): Ignore uses in debug stmts.
48004
48005 2014-01-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
48006
48007         PR middle-end/57748
48008         * expr.h (expand_expr_real, expand_expr_real_1): Add new parameter
48009         inner_reference_p.
48010         (expand_expr, expand_normal): Adjust.
48011         * expr.c (expand_expr_real, expand_expr_real_1): Add new parameter
48012         inner_reference_p. Use inner_reference_p to expand inner references.
48013         (store_expr): Adjust.
48014         * cfgexpand.c (expand_call_stmt): Adjust.
48015
48016 2014-01-08  Rong Xu  <xur@google.com>
48017
48018         * gcov-io.c (gcov_var): Move from gcov-io.h.
48019         (gcov_position): Ditto.
48020         (gcov_is_error): Ditto.
48021         (gcov_rewrite): Ditto.
48022         * gcov-io.h: Refactor. Move gcov_var to gcov-io.h, and libgcov
48023         only part to libgcc/libgcov.h.
48024
48025 2014-01-08  Marek Polacek  <polacek@redhat.com>
48026
48027         PR middle-end/59669
48028         * omp-low.c (simd_clone_adjust): Don't crash if def is NULL.
48029
48030 2014-01-08  Marek Polacek  <polacek@redhat.com>
48031
48032         PR sanitizer/59667
48033         * ubsan.c (ubsan_type_descriptor): Call strip_array_types on type2.
48034
48035 2014-01-08  Jakub Jelinek  <jakub@redhat.com>
48036
48037         PR rtl-optimization/59649
48038         * stor-layout.c (get_mode_bounds): For BImode return
48039         0 and STORE_FLAG_VALUE.
48040
48041 2014-01-08  Richard Biener  <rguenther@suse.de>
48042
48043         PR middle-end/59630
48044         * gimple.h (is_gimple_builtin_call): Remove.
48045         (gimple_builtin_call_types_compatible_p): New.
48046         (gimple_call_builtin_p): New overload.
48047         * gimple.c (is_gimple_builtin_call): Remove.
48048         (validate_call): Rename to ...
48049         (gimple_builtin_call_types_compatible_p): ... this and export.  Also
48050         check return types.
48051         (validate_type): New static function.
48052         (gimple_call_builtin_p): New overload and adjust.
48053         * gimple-fold.c (gimple_fold_builtin): Fold the return value.
48054         (gimple_fold_call): Likewise.  Use gimple_call_builtin_p.
48055         (gimple_fold_stmt_to_constant_1): Likewise.
48056         * tsan.c (instrument_gimple): Use gimple_call_builtin_p.
48057
48058 2014-01-08  Richard Biener  <rguenther@suse.de>
48059
48060         PR middle-end/59471
48061         * gimplify.c (gimplify_expr): Gimplify register-register type
48062         VIEW_CONVERT_EXPRs to separate stmts.
48063
48064 2014-01-07  Jeff Law  <law@redhat.com>
48065
48066         PR middle-end/53623
48067         * ree.c (combine_set_extension): Handle case where source
48068         and destination registers in an extension insn are different.
48069         (combine_reaching_defs): Allow source and destination registers
48070         in extension to be different under limited circumstances.
48071         (add_removable_extension): Remove restriction that the
48072         source and destination registers in the extension are the same.
48073         (find_and_remove_re): Emit a copy from the extension's
48074         destination to its source after the defining insn if
48075         the source and destination registers are different.
48076
48077         PR middle-end/59285
48078         * ifcvt.c (merge_if_block): If we are merging a block with more than
48079         one successor with a block with no successors, remove any BARRIER
48080         after the second block.
48081
48082 2014-01-07  Dan Xio Qiang  <ziyan01@163.com>
48083
48084         * hw-doloop.c (reorg_loops): Release the bitmap obstack.
48085
48086 2014-01-07  John David Anglin  <danglin@gcc.gnu.org>
48087
48088         PR target/59652
48089         * config/pa/pa.c (pa_legitimate_address_p): Return false before reload
48090         for 14-bit register offsets when INT14_OK_STRICT is false.
48091
48092 2014-01-07  Roland Stigge  <stigge@antcom.de>
48093             Michael Meissner  <meissner@linux.vnet.ibm.com>
48094
48095         PR 57386/target
48096         * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p):
48097         Only check TFmode for SPE constants.  Don't check TImode or TDmode.
48098
48099 2014-01-07  James Greenhalgh  <james.greenhalgh@arm.com>
48100
48101         * config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity spec for
48102         -mcpu.
48103
48104 2014-01-07  Yufeng Zhang  <yufeng.zhang@arm.com>
48105
48106         * config/arm/arm.c (arm_expand_neon_args): Call expand_expr
48107         with EXPAND_MEMORY for NEON_ARG_MEMORY; check if the returned
48108         rtx is const0_rtx or not.
48109
48110 2014-01-07  Richard Sandiford  <rdsandiford@googlemail.com>
48111
48112         PR target/58115
48113         * target-globals.c (save_target_globals): Remove this_fn_optab
48114         handling.
48115         * toplev.c: Include optabs.h.
48116         (target_reinit): Temporarily restore the global options if another
48117         set of options are in force.
48118
48119 2014-01-07  Jakub Jelinek  <jakub@redhat.com>
48120
48121         PR rtl-optimization/58668
48122         * cfgcleanup.c (flow_find_cross_jump): Don't count
48123         any jumps if dir_p is NULL.  Remove p1 variable, use active_insn_p
48124         to determine what is counted.
48125         (flow_find_head_matching_sequence): Use active_insn_p to determine
48126         what is counted.
48127         (try_head_merge_bb): Adjust for the flow_find_head_matching_sequence
48128         counting change.
48129         * ifcvt.c (count_bb_insns): Use active_insn_p && !JUMP_P to
48130         determine what is counted.
48131
48132         PR tree-optimization/59643
48133         * tree-predcom.c (split_data_refs_to_components): If one dr is
48134         read and one write, determine_offset fails and the write isn't
48135         in the bad component, just put the read into the bad component.
48136
48137 2014-01-07  Mike Stump  <mikestump@comcast.net>
48138             Jakub Jelinek  <jakub@redhat.com>
48139
48140         PR pch/59436
48141         * tree-core.h (struct tree_optimization_option): Change optabs
48142         type from unsigned char * to void *.
48143         * optabs.c (init_tree_optimization_optabs): Adjust
48144         TREE_OPTIMIZATION_OPTABS initialization.
48145
48146 2014-01-06  Jakub Jelinek  <jakub@redhat.com>
48147
48148         PR target/59644
48149         * config/i386/i386.h (struct machine_function): Add
48150         no_drap_save_restore field.
48151         * config/i386/i386.c (ix86_save_reg): Use
48152         !cfun->machine->no_drap_save_restore instead of
48153         crtl->stack_realign_needed.
48154         (ix86_finalize_stack_realign_flags): Don't clear drap_reg unless
48155         this function clears frame_pointer_needed.  Set
48156         cfun->machine->no_drap_save_restore if clearing frame_pointer_needed
48157         and DRAP reg is needed.
48158
48159 2014-01-06  Marek Polacek  <polacek@redhat.com>
48160
48161         PR c/57773
48162         * doc/implement-c.texi: Mention that other integer types are
48163         permitted as bit-field types in strictly conforming mode.
48164
48165 2014-01-06  Felix Yang  <fei.yang0953@gmail.com>
48166
48167         * modulo-sched.c (schedule_reg_moves): Clear distance1_uses if it
48168         is newly allocated.
48169
48170 2014-01-06  Richard Earnshaw  <rearnsha@arm.com>
48171
48172         * aarch64.c (aarch64_rtx_costs): Fix cost calculation for MADD.
48173
48174 2014-01-06  Martin Jambor  <mjambor@suse.cz>
48175
48176         PR ipa/59008
48177         * ipa-cp.c (ipcp_discover_new_direct_edges): Changed param_index type
48178         to int.
48179         * ipa-prop.c (ipa_print_node_params): Fix indentation.
48180
48181 2014-01-06  Eric Botcazou  <ebotcazou@adacore.com>
48182
48183         PR debug/59350
48184         PR debug/59510
48185         * var-tracking.c (add_stores): Preserve the value of the source even if
48186         we don't record the store.
48187
48188 2014-01-06  Terry Guo  <terry.guo@arm.com>
48189
48190         * config.gcc (arm*-*-*): Check --with-arch against arm-arches.def.
48191
48192 2014-01-05  Iain Sandoe  <iain@codesourcery.com>
48193
48194         PR bootstrap/59541
48195         * config/darwin.c (darwin_function_section): Adjust return values to
48196         correspond to optimisation changes made in r206070.
48197
48198 2014-01-05  Uros Bizjak  <ubizjak@gmail.com>
48199
48200         * config/i386/i386.c (ix86_data_alignment): Calculate max_align
48201         from prefetch_block tune setting.
48202         (nocona_cost): Correct size of prefetch block to 64.
48203
48204 2014-01-04  Eric Botcazou  <ebotcazou@adacore.com>
48205
48206         * config/arm/arm.c (arm_get_frame_offsets): Revamp long lines.
48207         (arm_expand_epilogue_apcs_frame): Take into account the number of bytes
48208         used to save the static chain register in the computation of the offset
48209         from which the FP registers need to be restored.
48210
48211 2014-01-04  Jakub Jelinek  <jakub@redhat.com>
48212
48213         PR tree-optimization/59519
48214         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
48215         ICE if get_current_def (current_new_name) is already non-NULL, as long
48216         as it is a phi result of some other phi in *new_exit_bb that has
48217         the same argument.
48218
48219         * config/i386/sse.md (avx512f_load<mode>_mask): Emit vmovup{s,d}
48220         or vmovdqu* for misaligned_operand.
48221         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>,
48222         <sse2_avx_avx512f>_loaddqu<mode><mask_name>): Handle <mask_applied>.
48223         * config/i386/i386.c (ix86_expand_special_args_builtin): Set
48224         aligned_mem for AVX512F masked aligned load and store builtins and for
48225         non-temporal moves.
48226
48227 2014-01-03  Bingfeng Mei  <bmei@broadcom.com>
48228
48229         PR tree-optimization/59651
48230         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
48231         Address range for negative step should be added by TYPE_SIZE_UNIT.
48232
48233 2014-01-03  Andreas Schwab  <schwab@linux-m68k.org>
48234
48235         * config/m68k/m68k.c (handle_move_double): Handle pushes with
48236         overlapping registers also for registers other than the stack pointer.
48237
48238 2014-01-03  Marek Polacek  <polacek@redhat.com>
48239
48240         PR other/59661
48241         * doc/extend.texi: Fix the return value of __builtin_FUNCTION and
48242         __builtin_FILE.
48243
48244 2014-01-03  Jakub Jelinek  <jakub@redhat.com>
48245
48246         PR target/59625
48247         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Don't consider
48248         asm goto as jump.
48249
48250         * config/i386/i386.md (MODE_SIZE): New mode attribute.
48251         (push splitter): Use <P:MODE_SIZE> instead of
48252         GET_MODE_SIZE (<P:MODE>mode).
48253         (lea splitter): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).
48254         (mov -1, reg peephole2): Likewise.
48255         * config/i386/sse.md (*mov<mode>_internal,
48256         <sse>_storeu<ssemodesuffix><avxsizesuffix>,
48257         <sse2_avx_avx512f>_storedqu<mode>, <sse>_andnot<mode>3,
48258         *<code><mode>3, *andnot<mode>3<mask_name>,
48259         <mask_codefor><code><mode>3<mask_name>): Likewise.
48260         * config/i386/subst.md (mask_mode512bit_condition,
48261         sd_mask_mode512bit_condition): Likewise.
48262
48263 2014-01-02  Xinliang David Li  <davidxl@google.com>
48264
48265         PR tree-optimization/59303
48266         * tree-ssa-uninit.c (is_use_properly_guarded): Main cleanup.
48267         (dump_predicates): Better output format.
48268         (pred_equal_p): New function.
48269         (is_neq_relop_p): Ditto.
48270         (is_neq_zero_form_p): Ditto.
48271         (pred_expr_equal_p): Ditto.
48272         (pred_neg_p): Ditto.
48273         (simplify_pred): Ditto.
48274         (simplify_preds_2): Ditto.
48275         (simplify_preds_3): Ditto.
48276         (simplify_preds_4): Ditto.
48277         (simplify_preds): Ditto.
48278         (push_pred): Ditto.
48279         (push_to_worklist): Ditto.
48280         (get_pred_info_from_cmp): Ditto.
48281         (is_degenerated_phi): Ditto.
48282         (normalize_one_pred_1): Ditto.
48283         (normalize_one_pred): Ditto.
48284         (normalize_one_pred_chain): Ditto.
48285         (normalize_preds): Ditto.
48286         (normalize_cond_1): Remove function.
48287         (normalize_cond): Ditto.
48288         (is_gcond_subset_of): Ditto.
48289         (is_subset_of_any): Ditto.
48290         (is_or_set_subset_of): Ditto.
48291         (is_and_set_subset_of): Ditto.
48292         (is_norm_cond_subset_of): Ditto.
48293         (pred_chain_length_cmp): Ditto.
48294         (convert_control_dep_chain_into_preds): Type change.
48295         (find_predicates): Ditto.
48296         (find_def_preds): Ditto.
48297         (destroy_predicates_vecs): Ditto.
48298         (find_matching_predicates_in_rest_chains): Ditto.
48299         (use_pred_not_overlap_with_undef_path_pred): Ditto.
48300         (is_pred_expr_subset): Ditto.
48301         (is_pred_chain_subset_of): Ditto.
48302         (is_included_in): Ditto.
48303         (is_superset_of): Ditto.
48304
48305 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48306
48307         Update copyright years.
48308
48309 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
48310
48311         * common/config/arc/arc-common.c, config/arc/arc-modes.def,
48312         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
48313         config/arc/arc.md, config/arc/arc.opt,
48314         config/arm/arm_neon_builtins.def, config/arm/crypto.def,
48315         config/i386/avx512cdintrin.h, config/i386/avx512erintrin.h,
48316         config/i386/avx512fintrin.h, config/i386/avx512pfintrin.h,
48317         config/i386/btver2.md, config/i386/shaintrin.h, config/i386/slm.md,
48318         config/linux-protos.h, config/linux.c, config/winnt-c.c,
48319         diagnostic-color.c, diagnostic-color.h, gimple-ssa-isolate-paths.c,
48320         vtable-verify.c, vtable-verify.h: Use the standard form for the
48321         copyright notice.
48322
48323 2014-01-02  Tobias Burnus  <burnus@net-b.de>
48324
48325         * gcc.c (process_command): Update copyright notice dates.
48326         * gcov-dump.c: Ditto.
48327         * gcov.c: Ditto.
48328         * doc/cpp.texi: Bump @copying's copyright year.
48329         * doc/cppinternals.texi: Ditto.
48330         * doc/gcc.texi: Ditto.
48331         * doc/gccint.texi: Ditto.
48332         * doc/gcov.texi: Ditto.
48333         * doc/install.texi: Ditto.
48334         * doc/invoke.texi: Ditto.
48335
48336 2014-01-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
48337
48338         * config/nios2/nios2.h (BITS_PER_UNIT): Don't define it.
48339
48340 2014-01-01  Jakub Jelinek  <jakub@redhat.com>
48341
48342         * config/i386/sse.md (*mov<mode>_internal): Guard
48343         EXT_REX_SSE_REGNO_P (REGNO ()) uses with REG_P.
48344
48345         PR rtl-optimization/59647
48346         * cse.c (cse_process_notes_1): Don't substitute negative VOIDmode
48347         new_rtx into UNSIGNED_FLOAT rtxes.
48348 \f
48349 Copyright (C) 2014 Free Software Foundation, Inc.
48350
48351 Copying and distribution of this file, with or without modification,
48352 are permitted in any medium without royalty provided the copyright
48353 notice and this notice are preserved.